From d4b7d474980962eda02592905eecfd0ab0c5b35b Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Fri, 1 Jan 2021 11:13:41 +0100 Subject: [PATCH] Merge macOS app and Core into repository Temporarily drop env and fastlane. --- .env | 12 - .env.beta-archive | 2 - .env.beta-deploy | 3 - .env.dev-archive | 2 - .env.dev-deploy | 3 - .env.template.secret-codesign | 2 - .env.template.secret-deploy | 10 - .gitignore | 12 +- .gitmodules | 3 - .travis.yml | 16 + .../Config.xcconfig => Config.xcconfig | 11 +- Libraries/API | 1 - Libraries/Core | 1 - .../Scenes/About/CreditsViewController.swift | 110 -- Passepartout.xcodeproj/project.pbxproj | 1741 +++++++++++++++-- .../xcschemes/Passepartout-iOS.xcscheme | 4 +- .../xcschemes/Passepartout-macOS.xcscheme | 78 + ...xcscheme => PassepartoutCore-iOS.xcscheme} | 2 +- .../xcschemes/PassepartoutCore-macOS.xcscheme | 91 + .../PassepartoutCoreTests-iOS.xcscheme | 52 + .../PassepartoutCoreTests-macOS.xcscheme | 52 + .../App/iOS/App.entitlements | 0 .../App/iOS}/AppDelegate.swift | 0 .../AppIcon.appiconset/AppIcon-1024.png | Bin .../AppIcon.appiconset/AppIcon-120.png | Bin .../AppIcon.appiconset/AppIcon-152.png | Bin .../AppIcon.appiconset/AppIcon-167.png | Bin .../AppIcon.appiconset/AppIcon-180.png | Bin .../AppIcon.appiconset/AppIcon-76.png | Bin .../AppIcon.appiconset/Contents.json | 0 .../App/iOS}/Assets.xcassets/Contents.json | 0 .../logo.imageset/Contents.json | 0 .../Assets.xcassets/logo.imageset/logo@2x.png | Bin .../Assets.xcassets/logo.imageset/logo@3x.png | Bin .../App/iOS}/Base.lproj/About.storyboard | 0 .../iOS}/Base.lproj/LaunchScreen.storyboard | 0 .../App/iOS}/Base.lproj/Main.storyboard | 0 .../App/iOS}/Base.lproj/Organizer.storyboard | 0 .../App/iOS}/Base.lproj/Purchase.storyboard | 0 .../App/iOS}/Base.lproj/Shortcuts.storyboard | 0 .../App/iOS/CHANGELOG.md | 0 .../iOS}/Cells/ActivityTableViewCell.swift | 0 .../App/iOS}/Cells/Cells.swift | 0 .../iOS}/Cells/DestructiveTableViewCell.swift | 0 .../App/iOS}/Cells/FieldTableViewCell.swift | 0 .../App/iOS}/Cells/SettingTableViewCell.swift | 0 .../App/iOS}/Cells/ToggleTableViewCell.swift | 0 .../App/iOS}/Flags.xcassets/Contents.json | 0 .../Flags.xcassets/ad.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ad.imageset/ad@2x.png | Bin .../iOS}/Flags.xcassets/ad.imageset/ad@3x.png | Bin .../Flags.xcassets/ae.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ae.imageset/ae@2x.png | Bin .../iOS}/Flags.xcassets/ae.imageset/ae@3x.png | Bin .../Flags.xcassets/af.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/af.imageset/af@2x.png | Bin .../iOS}/Flags.xcassets/af.imageset/af@3x.png | Bin .../Flags.xcassets/ag.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ag.imageset/ag@2x.png | Bin .../iOS}/Flags.xcassets/ag.imageset/ag@3x.png | Bin .../Flags.xcassets/ai.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ai.imageset/ai@2x.png | Bin .../iOS}/Flags.xcassets/ai.imageset/ai@3x.png | Bin .../Flags.xcassets/al.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/al.imageset/al@2x.png | Bin .../iOS}/Flags.xcassets/al.imageset/al@3x.png | Bin .../Flags.xcassets/am.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/am.imageset/am@2x.png | Bin .../iOS}/Flags.xcassets/am.imageset/am@3x.png | Bin .../Flags.xcassets/ao.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ao.imageset/ao@2x.png | Bin .../iOS}/Flags.xcassets/ao.imageset/ao@3x.png | Bin .../Flags.xcassets/aq.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/aq.imageset/aq@2x.png | Bin .../iOS}/Flags.xcassets/aq.imageset/aq@3x.png | Bin .../Flags.xcassets/ar.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ar.imageset/ar@2x.png | Bin .../iOS}/Flags.xcassets/ar.imageset/ar@3x.png | Bin .../Flags.xcassets/as.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/as.imageset/as@2x.png | Bin .../iOS}/Flags.xcassets/as.imageset/as@3x.png | Bin .../Flags.xcassets/at.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/at.imageset/at@2x.png | Bin .../iOS}/Flags.xcassets/at.imageset/at@3x.png | Bin .../Flags.xcassets/au.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/au.imageset/au@2x.png | Bin .../iOS}/Flags.xcassets/au.imageset/au@3x.png | Bin .../Flags.xcassets/aw.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/aw.imageset/aw@2x.png | Bin .../iOS}/Flags.xcassets/aw.imageset/aw@3x.png | Bin .../Flags.xcassets/ax.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ax.imageset/ax@2x.png | Bin .../iOS}/Flags.xcassets/ax.imageset/ax@3x.png | Bin .../Flags.xcassets/az.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/az.imageset/az@2x.png | Bin .../iOS}/Flags.xcassets/az.imageset/az@3x.png | Bin .../Flags.xcassets/ba.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ba.imageset/ba@2x.png | Bin .../iOS}/Flags.xcassets/ba.imageset/ba@3x.png | Bin .../Flags.xcassets/bb.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bb.imageset/bb@2x.png | Bin .../iOS}/Flags.xcassets/bb.imageset/bb@3x.png | Bin .../Flags.xcassets/bd.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bd.imageset/bd@2x.png | Bin .../iOS}/Flags.xcassets/bd.imageset/bd@3x.png | Bin .../Flags.xcassets/be.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/be.imageset/be@2x.png | Bin .../iOS}/Flags.xcassets/be.imageset/be@3x.png | Bin .../Flags.xcassets/bf.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bf.imageset/bf@2x.png | Bin .../iOS}/Flags.xcassets/bf.imageset/bf@3x.png | Bin .../Flags.xcassets/bg.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bg.imageset/bg@2x.png | Bin .../iOS}/Flags.xcassets/bg.imageset/bg@3x.png | Bin .../Flags.xcassets/bh.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bh.imageset/bh@2x.png | Bin .../iOS}/Flags.xcassets/bh.imageset/bh@3x.png | Bin .../Flags.xcassets/bi.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bi.imageset/bi@2x.png | Bin .../iOS}/Flags.xcassets/bi.imageset/bi@3x.png | Bin .../Flags.xcassets/bj.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bj.imageset/bj@2x.png | Bin .../iOS}/Flags.xcassets/bj.imageset/bj@3x.png | Bin .../Flags.xcassets/bl.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bl.imageset/bl@2x.png | Bin .../iOS}/Flags.xcassets/bl.imageset/bl@3x.png | Bin .../Flags.xcassets/bm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bm.imageset/bm@2x.png | Bin .../iOS}/Flags.xcassets/bm.imageset/bm@3x.png | Bin .../Flags.xcassets/bn.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bn.imageset/bn@2x.png | Bin .../iOS}/Flags.xcassets/bn.imageset/bn@3x.png | Bin .../Flags.xcassets/bo.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bo.imageset/bo@2x.png | Bin .../iOS}/Flags.xcassets/bo.imageset/bo@3x.png | Bin .../Flags.xcassets/bq.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bq.imageset/bq@2x.png | Bin .../iOS}/Flags.xcassets/bq.imageset/bq@3x.png | Bin .../Flags.xcassets/br.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/br.imageset/br@2x.png | Bin .../iOS}/Flags.xcassets/br.imageset/br@3x.png | Bin .../Flags.xcassets/bs.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bs.imageset/bs@2x.png | Bin .../iOS}/Flags.xcassets/bs.imageset/bs@3x.png | Bin .../Flags.xcassets/bt.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bt.imageset/bt@2x.png | Bin .../iOS}/Flags.xcassets/bt.imageset/bt@3x.png | Bin .../Flags.xcassets/bv.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bv.imageset/bv@2x.png | Bin .../iOS}/Flags.xcassets/bv.imageset/bv@3x.png | Bin .../Flags.xcassets/bw.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bw.imageset/bw@2x.png | Bin .../iOS}/Flags.xcassets/bw.imageset/bw@3x.png | Bin .../Flags.xcassets/by.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/by.imageset/by@2x.png | Bin .../iOS}/Flags.xcassets/by.imageset/by@3x.png | Bin .../Flags.xcassets/bz.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/bz.imageset/bz@2x.png | Bin .../iOS}/Flags.xcassets/bz.imageset/bz@3x.png | Bin .../Flags.xcassets/ca.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ca.imageset/ca@2x.png | Bin .../iOS}/Flags.xcassets/ca.imageset/ca@3x.png | Bin .../Flags.xcassets/cc.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cc.imageset/cc@2x.png | Bin .../iOS}/Flags.xcassets/cc.imageset/cc@3x.png | Bin .../Flags.xcassets/cd.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cd.imageset/cd@2x.png | Bin .../iOS}/Flags.xcassets/cd.imageset/cd@3x.png | Bin .../Flags.xcassets/cf.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cf.imageset/cf@2x.png | Bin .../iOS}/Flags.xcassets/cf.imageset/cf@3x.png | Bin .../Flags.xcassets/cg.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cg.imageset/cg@2x.png | Bin .../iOS}/Flags.xcassets/cg.imageset/cg@3x.png | Bin .../Flags.xcassets/ch.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ch.imageset/ch@2x.png | Bin .../iOS}/Flags.xcassets/ch.imageset/ch@3x.png | Bin .../Flags.xcassets/ci.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ci.imageset/ci@2x.png | Bin .../iOS}/Flags.xcassets/ci.imageset/ci@3x.png | Bin .../Flags.xcassets/ck.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ck.imageset/ck@2x.png | Bin .../iOS}/Flags.xcassets/ck.imageset/ck@3x.png | Bin .../Flags.xcassets/cl.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cl.imageset/cl@2x.png | Bin .../iOS}/Flags.xcassets/cl.imageset/cl@3x.png | Bin .../Flags.xcassets/cm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cm.imageset/cm@2x.png | Bin .../iOS}/Flags.xcassets/cm.imageset/cm@3x.png | Bin .../Flags.xcassets/cn.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cn.imageset/cn@2x.png | Bin .../iOS}/Flags.xcassets/cn.imageset/cn@3x.png | Bin .../Flags.xcassets/co.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/co.imageset/co@2x.png | Bin .../iOS}/Flags.xcassets/co.imageset/co@3x.png | Bin .../Flags.xcassets/cr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cr.imageset/cr@2x.png | Bin .../iOS}/Flags.xcassets/cr.imageset/cr@3x.png | Bin .../Flags.xcassets/cu.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cu.imageset/cu@2x.png | Bin .../iOS}/Flags.xcassets/cu.imageset/cu@3x.png | Bin .../Flags.xcassets/cv.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cv.imageset/cv@2x.png | Bin .../iOS}/Flags.xcassets/cv.imageset/cv@3x.png | Bin .../Flags.xcassets/cw.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cw.imageset/cw@2x.png | Bin .../iOS}/Flags.xcassets/cw.imageset/cw@3x.png | Bin .../Flags.xcassets/cx.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cx.imageset/cx@2x.png | Bin .../iOS}/Flags.xcassets/cx.imageset/cx@3x.png | Bin .../Flags.xcassets/cy.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cy.imageset/cy@2x.png | Bin .../iOS}/Flags.xcassets/cy.imageset/cy@3x.png | Bin .../Flags.xcassets/cz.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/cz.imageset/cz@2x.png | Bin .../iOS}/Flags.xcassets/cz.imageset/cz@3x.png | Bin .../Flags.xcassets/de.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/de.imageset/de@2x.png | Bin .../iOS}/Flags.xcassets/de.imageset/de@3x.png | Bin .../Flags.xcassets/dj.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/dj.imageset/dj@2x.png | Bin .../iOS}/Flags.xcassets/dj.imageset/dj@3x.png | Bin .../Flags.xcassets/dk.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/dk.imageset/dk@2x.png | Bin .../iOS}/Flags.xcassets/dk.imageset/dk@3x.png | Bin .../Flags.xcassets/dm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/dm.imageset/dm@2x.png | Bin .../iOS}/Flags.xcassets/dm.imageset/dm@3x.png | Bin .../Flags.xcassets/do.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/do.imageset/do@2x.png | Bin .../iOS}/Flags.xcassets/do.imageset/do@3x.png | Bin .../Flags.xcassets/dz.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/dz.imageset/dz@2x.png | Bin .../iOS}/Flags.xcassets/dz.imageset/dz@3x.png | Bin .../Flags.xcassets/ec.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ec.imageset/ec@2x.png | Bin .../iOS}/Flags.xcassets/ec.imageset/ec@3x.png | Bin .../Flags.xcassets/ee.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ee.imageset/ee@2x.png | Bin .../iOS}/Flags.xcassets/ee.imageset/ee@3x.png | Bin .../Flags.xcassets/eg.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/eg.imageset/eg@2x.png | Bin .../iOS}/Flags.xcassets/eg.imageset/eg@3x.png | Bin .../Flags.xcassets/eh.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/eh.imageset/eh@2x.png | Bin .../iOS}/Flags.xcassets/eh.imageset/eh@3x.png | Bin .../Flags.xcassets/er.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/er.imageset/er@2x.png | Bin .../iOS}/Flags.xcassets/er.imageset/er@3x.png | Bin .../es-ct.imageset/Contents.json | 0 .../es-ct.imageset/es-ct@2x.png | Bin .../es-ct.imageset/es-ct@3x.png | Bin .../Flags.xcassets/es.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/es.imageset/es@2x.png | Bin .../iOS}/Flags.xcassets/es.imageset/es@3x.png | Bin .../Flags.xcassets/et.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/et.imageset/et@2x.png | Bin .../iOS}/Flags.xcassets/et.imageset/et@3x.png | Bin .../Flags.xcassets/eu.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/eu.imageset/eu@2x.png | Bin .../iOS}/Flags.xcassets/eu.imageset/eu@3x.png | Bin .../Flags.xcassets/fi.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/fi.imageset/fi@2x.png | Bin .../iOS}/Flags.xcassets/fi.imageset/fi@3x.png | Bin .../Flags.xcassets/fj.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/fj.imageset/fj@2x.png | Bin .../iOS}/Flags.xcassets/fj.imageset/fj@3x.png | Bin .../Flags.xcassets/fk.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/fk.imageset/fk@2x.png | Bin .../iOS}/Flags.xcassets/fk.imageset/fk@3x.png | Bin .../Flags.xcassets/fm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/fm.imageset/fm@2x.png | Bin .../iOS}/Flags.xcassets/fm.imageset/fm@3x.png | Bin .../Flags.xcassets/fo.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/fo.imageset/fo@2x.png | Bin .../iOS}/Flags.xcassets/fo.imageset/fo@3x.png | Bin .../Flags.xcassets/fr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/fr.imageset/fr@2x.png | Bin .../iOS}/Flags.xcassets/fr.imageset/fr@3x.png | Bin .../Flags.xcassets/ga.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ga.imageset/ga@2x.png | Bin .../iOS}/Flags.xcassets/ga.imageset/ga@3x.png | Bin .../gb-eng.imageset/Contents.json | 0 .../gb-eng.imageset/gb-eng@2x.png | Bin .../gb-eng.imageset/gb-eng@3x.png | Bin .../gb-nir.imageset/Contents.json | 0 .../gb-nir.imageset/gb-nir@2x.png | Bin .../gb-nir.imageset/gb-nir@3x.png | Bin .../gb-sct.imageset/Contents.json | 0 .../gb-sct.imageset/gb-sct@2x.png | Bin .../gb-sct.imageset/gb-sct@3x.png | Bin .../gb-wls.imageset/Contents.json | 0 .../gb-wls.imageset/gb-wls@2x.png | Bin .../gb-wls.imageset/gb-wls@3x.png | Bin .../Flags.xcassets/gb.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gb.imageset/gb@2x.png | Bin .../iOS}/Flags.xcassets/gb.imageset/gb@3x.png | Bin .../Flags.xcassets/gd.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gd.imageset/gd@2x.png | Bin .../iOS}/Flags.xcassets/gd.imageset/gd@3x.png | Bin .../Flags.xcassets/ge.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ge.imageset/ge@2x.png | Bin .../iOS}/Flags.xcassets/ge.imageset/ge@3x.png | Bin .../Flags.xcassets/gf.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gf.imageset/gf@2x.png | Bin .../iOS}/Flags.xcassets/gf.imageset/gf@3x.png | Bin .../Flags.xcassets/gg.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gg.imageset/gg@2x.png | Bin .../iOS}/Flags.xcassets/gg.imageset/gg@3x.png | Bin .../Flags.xcassets/gh.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gh.imageset/gh@2x.png | Bin .../iOS}/Flags.xcassets/gh.imageset/gh@3x.png | Bin .../Flags.xcassets/gi.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gi.imageset/gi@2x.png | Bin .../iOS}/Flags.xcassets/gi.imageset/gi@3x.png | Bin .../Flags.xcassets/gl.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gl.imageset/gl@2x.png | Bin .../iOS}/Flags.xcassets/gl.imageset/gl@3x.png | Bin .../Flags.xcassets/gm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gm.imageset/gm@2x.png | Bin .../iOS}/Flags.xcassets/gm.imageset/gm@3x.png | Bin .../Flags.xcassets/gn.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gn.imageset/gn@2x.png | Bin .../iOS}/Flags.xcassets/gn.imageset/gn@3x.png | Bin .../Flags.xcassets/gp.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gp.imageset/gp@2x.png | Bin .../iOS}/Flags.xcassets/gp.imageset/gp@3x.png | Bin .../Flags.xcassets/gq.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gq.imageset/gq@2x.png | Bin .../iOS}/Flags.xcassets/gq.imageset/gq@3x.png | Bin .../Flags.xcassets/gr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gr.imageset/gr@2x.png | Bin .../iOS}/Flags.xcassets/gr.imageset/gr@3x.png | Bin .../Flags.xcassets/gs.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gs.imageset/gs@2x.png | Bin .../iOS}/Flags.xcassets/gs.imageset/gs@3x.png | Bin .../Flags.xcassets/gt.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gt.imageset/gt@2x.png | Bin .../iOS}/Flags.xcassets/gt.imageset/gt@3x.png | Bin .../Flags.xcassets/gu.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gu.imageset/gu@2x.png | Bin .../iOS}/Flags.xcassets/gu.imageset/gu@3x.png | Bin .../Flags.xcassets/gw.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gw.imageset/gw@2x.png | Bin .../iOS}/Flags.xcassets/gw.imageset/gw@3x.png | Bin .../Flags.xcassets/gy.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/gy.imageset/gy@2x.png | Bin .../iOS}/Flags.xcassets/gy.imageset/gy@3x.png | Bin .../Flags.xcassets/hk.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/hk.imageset/hk@2x.png | Bin .../iOS}/Flags.xcassets/hk.imageset/hk@3x.png | Bin .../Flags.xcassets/hm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/hm.imageset/hm@2x.png | Bin .../iOS}/Flags.xcassets/hm.imageset/hm@3x.png | Bin .../Flags.xcassets/hn.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/hn.imageset/hn@2x.png | Bin .../iOS}/Flags.xcassets/hn.imageset/hn@3x.png | Bin .../Flags.xcassets/hr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/hr.imageset/hr@2x.png | Bin .../iOS}/Flags.xcassets/hr.imageset/hr@3x.png | Bin .../Flags.xcassets/ht.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ht.imageset/ht@2x.png | Bin .../iOS}/Flags.xcassets/ht.imageset/ht@3x.png | Bin .../Flags.xcassets/hu.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/hu.imageset/hu@2x.png | Bin .../iOS}/Flags.xcassets/hu.imageset/hu@3x.png | Bin .../Flags.xcassets/id.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/id.imageset/id@2x.png | Bin .../iOS}/Flags.xcassets/id.imageset/id@3x.png | Bin .../Flags.xcassets/ie.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ie.imageset/ie@2x.png | Bin .../iOS}/Flags.xcassets/ie.imageset/ie@3x.png | Bin .../Flags.xcassets/il.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/il.imageset/il@2x.png | Bin .../iOS}/Flags.xcassets/il.imageset/il@3x.png | Bin .../Flags.xcassets/im.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/im.imageset/im@2x.png | Bin .../iOS}/Flags.xcassets/im.imageset/im@3x.png | Bin .../Flags.xcassets/in.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/in.imageset/in@2x.png | Bin .../iOS}/Flags.xcassets/in.imageset/in@3x.png | Bin .../Flags.xcassets/io.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/io.imageset/io@2x.png | Bin .../iOS}/Flags.xcassets/io.imageset/io@3x.png | Bin .../Flags.xcassets/iq.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/iq.imageset/iq@2x.png | Bin .../iOS}/Flags.xcassets/iq.imageset/iq@3x.png | Bin .../Flags.xcassets/ir.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ir.imageset/ir@2x.png | Bin .../iOS}/Flags.xcassets/ir.imageset/ir@3x.png | Bin .../Flags.xcassets/is.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/is.imageset/is@2x.png | Bin .../iOS}/Flags.xcassets/is.imageset/is@3x.png | Bin .../Flags.xcassets/it.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/it.imageset/it@2x.png | Bin .../iOS}/Flags.xcassets/it.imageset/it@3x.png | Bin .../Flags.xcassets/je.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/je.imageset/je@2x.png | Bin .../iOS}/Flags.xcassets/je.imageset/je@3x.png | Bin .../Flags.xcassets/jm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/jm.imageset/jm@2x.png | Bin .../iOS}/Flags.xcassets/jm.imageset/jm@3x.png | Bin .../Flags.xcassets/jo.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/jo.imageset/jo@2x.png | Bin .../iOS}/Flags.xcassets/jo.imageset/jo@3x.png | Bin .../Flags.xcassets/jp.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/jp.imageset/jp@2x.png | Bin .../iOS}/Flags.xcassets/jp.imageset/jp@3x.png | Bin .../Flags.xcassets/ke.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ke.imageset/ke@2x.png | Bin .../iOS}/Flags.xcassets/ke.imageset/ke@3x.png | Bin .../Flags.xcassets/kg.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/kg.imageset/kg@2x.png | Bin .../iOS}/Flags.xcassets/kg.imageset/kg@3x.png | Bin .../Flags.xcassets/kh.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/kh.imageset/kh@2x.png | Bin .../iOS}/Flags.xcassets/kh.imageset/kh@3x.png | Bin .../Flags.xcassets/ki.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ki.imageset/ki@2x.png | Bin .../iOS}/Flags.xcassets/ki.imageset/ki@3x.png | Bin .../Flags.xcassets/km.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/km.imageset/km@2x.png | Bin .../iOS}/Flags.xcassets/km.imageset/km@3x.png | Bin .../Flags.xcassets/kn.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/kn.imageset/kn@2x.png | Bin .../iOS}/Flags.xcassets/kn.imageset/kn@3x.png | Bin .../Flags.xcassets/kp.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/kp.imageset/kp@2x.png | Bin .../iOS}/Flags.xcassets/kp.imageset/kp@3x.png | Bin .../Flags.xcassets/kr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/kr.imageset/kr@2x.png | Bin .../iOS}/Flags.xcassets/kr.imageset/kr@3x.png | Bin .../Flags.xcassets/kw.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/kw.imageset/kw@2x.png | Bin .../iOS}/Flags.xcassets/kw.imageset/kw@3x.png | Bin .../Flags.xcassets/ky.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ky.imageset/ky@2x.png | Bin .../iOS}/Flags.xcassets/ky.imageset/ky@3x.png | Bin .../Flags.xcassets/kz.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/kz.imageset/kz@2x.png | Bin .../iOS}/Flags.xcassets/kz.imageset/kz@3x.png | Bin .../Flags.xcassets/la.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/la.imageset/la@2x.png | Bin .../iOS}/Flags.xcassets/la.imageset/la@3x.png | Bin .../Flags.xcassets/lb.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/lb.imageset/lb@2x.png | Bin .../iOS}/Flags.xcassets/lb.imageset/lb@3x.png | Bin .../Flags.xcassets/lc.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/lc.imageset/lc@2x.png | Bin .../iOS}/Flags.xcassets/lc.imageset/lc@3x.png | Bin .../Flags.xcassets/li.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/li.imageset/li@2x.png | Bin .../iOS}/Flags.xcassets/li.imageset/li@3x.png | Bin .../Flags.xcassets/lk.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/lk.imageset/lk@2x.png | Bin .../iOS}/Flags.xcassets/lk.imageset/lk@3x.png | Bin .../Flags.xcassets/lr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/lr.imageset/lr@2x.png | Bin .../iOS}/Flags.xcassets/lr.imageset/lr@3x.png | Bin .../Flags.xcassets/ls.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ls.imageset/ls@2x.png | Bin .../iOS}/Flags.xcassets/ls.imageset/ls@3x.png | Bin .../Flags.xcassets/lt.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/lt.imageset/lt@2x.png | Bin .../iOS}/Flags.xcassets/lt.imageset/lt@3x.png | Bin .../Flags.xcassets/lu.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/lu.imageset/lu@2x.png | Bin .../iOS}/Flags.xcassets/lu.imageset/lu@3x.png | Bin .../Flags.xcassets/lv.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/lv.imageset/lv@2x.png | Bin .../iOS}/Flags.xcassets/lv.imageset/lv@3x.png | Bin .../Flags.xcassets/ly.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ly.imageset/ly@2x.png | Bin .../iOS}/Flags.xcassets/ly.imageset/ly@3x.png | Bin .../Flags.xcassets/ma.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ma.imageset/ma@2x.png | Bin .../iOS}/Flags.xcassets/ma.imageset/ma@3x.png | Bin .../Flags.xcassets/mc.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mc.imageset/mc@2x.png | Bin .../iOS}/Flags.xcassets/mc.imageset/mc@3x.png | Bin .../Flags.xcassets/md.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/md.imageset/md@2x.png | Bin .../iOS}/Flags.xcassets/md.imageset/md@3x.png | Bin .../Flags.xcassets/me.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/me.imageset/me@2x.png | Bin .../iOS}/Flags.xcassets/me.imageset/me@3x.png | Bin .../Flags.xcassets/mf.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mf.imageset/mf@2x.png | Bin .../iOS}/Flags.xcassets/mf.imageset/mf@3x.png | Bin .../Flags.xcassets/mg.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mg.imageset/mg@2x.png | Bin .../iOS}/Flags.xcassets/mg.imageset/mg@3x.png | Bin .../Flags.xcassets/mh.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mh.imageset/mh@2x.png | Bin .../iOS}/Flags.xcassets/mh.imageset/mh@3x.png | Bin .../Flags.xcassets/mk.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mk.imageset/mk@2x.png | Bin .../iOS}/Flags.xcassets/mk.imageset/mk@3x.png | Bin .../Flags.xcassets/ml.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ml.imageset/ml@2x.png | Bin .../iOS}/Flags.xcassets/ml.imageset/ml@3x.png | Bin .../Flags.xcassets/mm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mm.imageset/mm@2x.png | Bin .../iOS}/Flags.xcassets/mm.imageset/mm@3x.png | Bin .../Flags.xcassets/mn.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mn.imageset/mn@2x.png | Bin .../iOS}/Flags.xcassets/mn.imageset/mn@3x.png | Bin .../Flags.xcassets/mo.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mo.imageset/mo@2x.png | Bin .../iOS}/Flags.xcassets/mo.imageset/mo@3x.png | Bin .../Flags.xcassets/mp.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mp.imageset/mp@2x.png | Bin .../iOS}/Flags.xcassets/mp.imageset/mp@3x.png | Bin .../Flags.xcassets/mq.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mq.imageset/mq@2x.png | Bin .../iOS}/Flags.xcassets/mq.imageset/mq@3x.png | Bin .../Flags.xcassets/mr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mr.imageset/mr@2x.png | Bin .../iOS}/Flags.xcassets/mr.imageset/mr@3x.png | Bin .../Flags.xcassets/ms.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ms.imageset/ms@2x.png | Bin .../iOS}/Flags.xcassets/ms.imageset/ms@3x.png | Bin .../Flags.xcassets/mt.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mt.imageset/mt@2x.png | Bin .../iOS}/Flags.xcassets/mt.imageset/mt@3x.png | Bin .../Flags.xcassets/mu.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mu.imageset/mu@2x.png | Bin .../iOS}/Flags.xcassets/mu.imageset/mu@3x.png | Bin .../Flags.xcassets/mv.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mv.imageset/mv@2x.png | Bin .../iOS}/Flags.xcassets/mv.imageset/mv@3x.png | Bin .../Flags.xcassets/mw.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mw.imageset/mw@2x.png | Bin .../iOS}/Flags.xcassets/mw.imageset/mw@3x.png | Bin .../Flags.xcassets/mx.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mx.imageset/mx@2x.png | Bin .../iOS}/Flags.xcassets/mx.imageset/mx@3x.png | Bin .../Flags.xcassets/my.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/my.imageset/my@2x.png | Bin .../iOS}/Flags.xcassets/my.imageset/my@3x.png | Bin .../Flags.xcassets/mz.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/mz.imageset/mz@2x.png | Bin .../iOS}/Flags.xcassets/mz.imageset/mz@3x.png | Bin .../Flags.xcassets/na.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/na.imageset/na@2x.png | Bin .../iOS}/Flags.xcassets/na.imageset/na@3x.png | Bin .../Flags.xcassets/nc.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/nc.imageset/nc@2x.png | Bin .../iOS}/Flags.xcassets/nc.imageset/nc@3x.png | Bin .../Flags.xcassets/ne.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ne.imageset/ne@2x.png | Bin .../iOS}/Flags.xcassets/ne.imageset/ne@3x.png | Bin .../Flags.xcassets/nf.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/nf.imageset/nf@2x.png | Bin .../iOS}/Flags.xcassets/nf.imageset/nf@3x.png | Bin .../Flags.xcassets/ng.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ng.imageset/ng@2x.png | Bin .../iOS}/Flags.xcassets/ng.imageset/ng@3x.png | Bin .../Flags.xcassets/ni.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ni.imageset/ni@2x.png | Bin .../iOS}/Flags.xcassets/ni.imageset/ni@3x.png | Bin .../Flags.xcassets/nl.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/nl.imageset/nl@2x.png | Bin .../iOS}/Flags.xcassets/nl.imageset/nl@3x.png | Bin .../Flags.xcassets/no.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/no.imageset/no@2x.png | Bin .../iOS}/Flags.xcassets/no.imageset/no@3x.png | Bin .../Flags.xcassets/np.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/np.imageset/np@2x.png | Bin .../iOS}/Flags.xcassets/np.imageset/np@3x.png | Bin .../Flags.xcassets/nr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/nr.imageset/nr@2x.png | Bin .../iOS}/Flags.xcassets/nr.imageset/nr@3x.png | Bin .../Flags.xcassets/nu.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/nu.imageset/nu@2x.png | Bin .../iOS}/Flags.xcassets/nu.imageset/nu@3x.png | Bin .../Flags.xcassets/nz.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/nz.imageset/nz@2x.png | Bin .../iOS}/Flags.xcassets/nz.imageset/nz@3x.png | Bin .../Flags.xcassets/om.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/om.imageset/om@2x.png | Bin .../iOS}/Flags.xcassets/om.imageset/om@3x.png | Bin .../Flags.xcassets/pa.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pa.imageset/pa@2x.png | Bin .../iOS}/Flags.xcassets/pa.imageset/pa@3x.png | Bin .../Flags.xcassets/pe.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pe.imageset/pe@2x.png | Bin .../iOS}/Flags.xcassets/pe.imageset/pe@3x.png | Bin .../Flags.xcassets/pf.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pf.imageset/pf@2x.png | Bin .../iOS}/Flags.xcassets/pf.imageset/pf@3x.png | Bin .../Flags.xcassets/pg.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pg.imageset/pg@2x.png | Bin .../iOS}/Flags.xcassets/pg.imageset/pg@3x.png | Bin .../Flags.xcassets/ph.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ph.imageset/ph@2x.png | Bin .../iOS}/Flags.xcassets/ph.imageset/ph@3x.png | Bin .../Flags.xcassets/pk.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pk.imageset/pk@2x.png | Bin .../iOS}/Flags.xcassets/pk.imageset/pk@3x.png | Bin .../Flags.xcassets/pl.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pl.imageset/pl@2x.png | Bin .../iOS}/Flags.xcassets/pl.imageset/pl@3x.png | Bin .../Flags.xcassets/pm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pm.imageset/pm@2x.png | Bin .../iOS}/Flags.xcassets/pm.imageset/pm@3x.png | Bin .../Flags.xcassets/pn.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pn.imageset/pn@2x.png | Bin .../iOS}/Flags.xcassets/pn.imageset/pn@3x.png | Bin .../Flags.xcassets/pr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pr.imageset/pr@2x.png | Bin .../iOS}/Flags.xcassets/pr.imageset/pr@3x.png | Bin .../Flags.xcassets/ps.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ps.imageset/ps@2x.png | Bin .../iOS}/Flags.xcassets/ps.imageset/ps@3x.png | Bin .../Flags.xcassets/pt.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pt.imageset/pt@2x.png | Bin .../iOS}/Flags.xcassets/pt.imageset/pt@3x.png | Bin .../Flags.xcassets/pw.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/pw.imageset/pw@2x.png | Bin .../iOS}/Flags.xcassets/pw.imageset/pw@3x.png | Bin .../Flags.xcassets/py.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/py.imageset/py@2x.png | Bin .../iOS}/Flags.xcassets/py.imageset/py@3x.png | Bin .../Flags.xcassets/qa.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/qa.imageset/qa@2x.png | Bin .../iOS}/Flags.xcassets/qa.imageset/qa@3x.png | Bin .../Flags.xcassets/re.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/re.imageset/re@2x.png | Bin .../iOS}/Flags.xcassets/re.imageset/re@3x.png | Bin .../Flags.xcassets/ro.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ro.imageset/ro@2x.png | Bin .../iOS}/Flags.xcassets/ro.imageset/ro@3x.png | Bin .../Flags.xcassets/rs.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/rs.imageset/rs@2x.png | Bin .../iOS}/Flags.xcassets/rs.imageset/rs@3x.png | Bin .../Flags.xcassets/ru.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ru.imageset/ru@2x.png | Bin .../iOS}/Flags.xcassets/ru.imageset/ru@3x.png | Bin .../Flags.xcassets/rw.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/rw.imageset/rw@2x.png | Bin .../iOS}/Flags.xcassets/rw.imageset/rw@3x.png | Bin .../Flags.xcassets/sa.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sa.imageset/sa@2x.png | Bin .../iOS}/Flags.xcassets/sa.imageset/sa@3x.png | Bin .../Flags.xcassets/sb.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sb.imageset/sb@2x.png | Bin .../iOS}/Flags.xcassets/sb.imageset/sb@3x.png | Bin .../Flags.xcassets/sc.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sc.imageset/sc@2x.png | Bin .../iOS}/Flags.xcassets/sc.imageset/sc@3x.png | Bin .../Flags.xcassets/sd.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sd.imageset/sd@2x.png | Bin .../iOS}/Flags.xcassets/sd.imageset/sd@3x.png | Bin .../Flags.xcassets/se.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/se.imageset/se@2x.png | Bin .../iOS}/Flags.xcassets/se.imageset/se@3x.png | Bin .../Flags.xcassets/sg.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sg.imageset/sg@2x.png | Bin .../iOS}/Flags.xcassets/sg.imageset/sg@3x.png | Bin .../Flags.xcassets/sh.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sh.imageset/sh@2x.png | Bin .../iOS}/Flags.xcassets/sh.imageset/sh@3x.png | Bin .../Flags.xcassets/si.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/si.imageset/si@2x.png | Bin .../iOS}/Flags.xcassets/si.imageset/si@3x.png | Bin .../Flags.xcassets/sj.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sj.imageset/sj@2x.png | Bin .../iOS}/Flags.xcassets/sj.imageset/sj@3x.png | Bin .../Flags.xcassets/sk.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sk.imageset/sk@2x.png | Bin .../iOS}/Flags.xcassets/sk.imageset/sk@3x.png | Bin .../Flags.xcassets/sl.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sl.imageset/sl@2x.png | Bin .../iOS}/Flags.xcassets/sl.imageset/sl@3x.png | Bin .../Flags.xcassets/sm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sm.imageset/sm@2x.png | Bin .../iOS}/Flags.xcassets/sm.imageset/sm@3x.png | Bin .../Flags.xcassets/sn.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sn.imageset/sn@2x.png | Bin .../iOS}/Flags.xcassets/sn.imageset/sn@3x.png | Bin .../Flags.xcassets/so.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/so.imageset/so@2x.png | Bin .../iOS}/Flags.xcassets/so.imageset/so@3x.png | Bin .../Flags.xcassets/sr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sr.imageset/sr@2x.png | Bin .../iOS}/Flags.xcassets/sr.imageset/sr@3x.png | Bin .../Flags.xcassets/ss.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ss.imageset/ss@2x.png | Bin .../iOS}/Flags.xcassets/ss.imageset/ss@3x.png | Bin .../Flags.xcassets/st.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/st.imageset/st@2x.png | Bin .../iOS}/Flags.xcassets/st.imageset/st@3x.png | Bin .../Flags.xcassets/sv.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sv.imageset/sv@2x.png | Bin .../iOS}/Flags.xcassets/sv.imageset/sv@3x.png | Bin .../Flags.xcassets/sx.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sx.imageset/sx@2x.png | Bin .../iOS}/Flags.xcassets/sx.imageset/sx@3x.png | Bin .../Flags.xcassets/sy.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sy.imageset/sy@2x.png | Bin .../iOS}/Flags.xcassets/sy.imageset/sy@3x.png | Bin .../Flags.xcassets/sz.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/sz.imageset/sz@2x.png | Bin .../iOS}/Flags.xcassets/sz.imageset/sz@3x.png | Bin .../Flags.xcassets/tc.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tc.imageset/tc@2x.png | Bin .../iOS}/Flags.xcassets/tc.imageset/tc@3x.png | Bin .../Flags.xcassets/td.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/td.imageset/td@2x.png | Bin .../iOS}/Flags.xcassets/td.imageset/td@3x.png | Bin .../Flags.xcassets/tf.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tf.imageset/tf@2x.png | Bin .../iOS}/Flags.xcassets/tf.imageset/tf@3x.png | Bin .../Flags.xcassets/tg.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tg.imageset/tg@2x.png | Bin .../iOS}/Flags.xcassets/tg.imageset/tg@3x.png | Bin .../Flags.xcassets/th.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/th.imageset/th@2x.png | Bin .../iOS}/Flags.xcassets/th.imageset/th@3x.png | Bin .../Flags.xcassets/tj.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tj.imageset/tj@2x.png | Bin .../iOS}/Flags.xcassets/tj.imageset/tj@3x.png | Bin .../Flags.xcassets/tk.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tk.imageset/tk@2x.png | Bin .../iOS}/Flags.xcassets/tk.imageset/tk@3x.png | Bin .../Flags.xcassets/tl.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tl.imageset/tl@2x.png | Bin .../iOS}/Flags.xcassets/tl.imageset/tl@3x.png | Bin .../Flags.xcassets/tm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tm.imageset/tm@2x.png | Bin .../iOS}/Flags.xcassets/tm.imageset/tm@3x.png | Bin .../Flags.xcassets/tn.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tn.imageset/tn@2x.png | Bin .../iOS}/Flags.xcassets/tn.imageset/tn@3x.png | Bin .../Flags.xcassets/to.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/to.imageset/to@2x.png | Bin .../iOS}/Flags.xcassets/to.imageset/to@3x.png | Bin .../Flags.xcassets/tr.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tr.imageset/tr@2x.png | Bin .../iOS}/Flags.xcassets/tr.imageset/tr@3x.png | Bin .../Flags.xcassets/tt.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tt.imageset/tt@2x.png | Bin .../iOS}/Flags.xcassets/tt.imageset/tt@3x.png | Bin .../Flags.xcassets/tv.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tv.imageset/tv@2x.png | Bin .../iOS}/Flags.xcassets/tv.imageset/tv@3x.png | Bin .../Flags.xcassets/tw.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tw.imageset/tw@2x.png | Bin .../iOS}/Flags.xcassets/tw.imageset/tw@3x.png | Bin .../Flags.xcassets/tz.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/tz.imageset/tz@2x.png | Bin .../iOS}/Flags.xcassets/tz.imageset/tz@3x.png | Bin .../Flags.xcassets/ua.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ua.imageset/ua@2x.png | Bin .../iOS}/Flags.xcassets/ua.imageset/ua@3x.png | Bin .../Flags.xcassets/ug.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ug.imageset/ug@2x.png | Bin .../iOS}/Flags.xcassets/ug.imageset/ug@3x.png | Bin .../Flags.xcassets/um.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/um.imageset/um@2x.png | Bin .../iOS}/Flags.xcassets/um.imageset/um@3x.png | Bin .../Flags.xcassets/un.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/un.imageset/un@2x.png | Bin .../iOS}/Flags.xcassets/un.imageset/un@3x.png | Bin .../Flags.xcassets/us.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/us.imageset/us@2x.png | Bin .../iOS}/Flags.xcassets/us.imageset/us@3x.png | Bin .../Flags.xcassets/uy.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/uy.imageset/uy@2x.png | Bin .../iOS}/Flags.xcassets/uy.imageset/uy@3x.png | Bin .../Flags.xcassets/uz.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/uz.imageset/uz@2x.png | Bin .../iOS}/Flags.xcassets/uz.imageset/uz@3x.png | Bin .../Flags.xcassets/va.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/va.imageset/va@2x.png | Bin .../iOS}/Flags.xcassets/va.imageset/va@3x.png | Bin .../Flags.xcassets/vc.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/vc.imageset/vc@2x.png | Bin .../iOS}/Flags.xcassets/vc.imageset/vc@3x.png | Bin .../Flags.xcassets/ve.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ve.imageset/ve@2x.png | Bin .../iOS}/Flags.xcassets/ve.imageset/ve@3x.png | Bin .../Flags.xcassets/vg.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/vg.imageset/vg@2x.png | Bin .../iOS}/Flags.xcassets/vg.imageset/vg@3x.png | Bin .../Flags.xcassets/vi.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/vi.imageset/vi@2x.png | Bin .../iOS}/Flags.xcassets/vi.imageset/vi@3x.png | Bin .../Flags.xcassets/vn.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/vn.imageset/vn@2x.png | Bin .../iOS}/Flags.xcassets/vn.imageset/vn@3x.png | Bin .../Flags.xcassets/vu.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/vu.imageset/vu@2x.png | Bin .../iOS}/Flags.xcassets/vu.imageset/vu@3x.png | Bin .../Flags.xcassets/wf.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/wf.imageset/wf@2x.png | Bin .../iOS}/Flags.xcassets/wf.imageset/wf@3x.png | Bin .../Flags.xcassets/ws.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ws.imageset/ws@2x.png | Bin .../iOS}/Flags.xcassets/ws.imageset/ws@3x.png | Bin .../Flags.xcassets/xk.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/xk.imageset/xk@2x.png | Bin .../iOS}/Flags.xcassets/xk.imageset/xk@3x.png | Bin .../Flags.xcassets/ye.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/ye.imageset/ye@2x.png | Bin .../iOS}/Flags.xcassets/ye.imageset/ye@3x.png | Bin .../Flags.xcassets/yt.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/yt.imageset/yt@2x.png | Bin .../iOS}/Flags.xcassets/yt.imageset/yt@3x.png | Bin .../Flags.xcassets/za.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/za.imageset/za@2x.png | Bin .../iOS}/Flags.xcassets/za.imageset/za@3x.png | Bin .../Flags.xcassets/zm.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/zm.imageset/zm@2x.png | Bin .../iOS}/Flags.xcassets/zm.imageset/zm@3x.png | Bin .../Flags.xcassets/zw.imageset/Contents.json | 0 .../iOS}/Flags.xcassets/zw.imageset/zw@2x.png | Bin .../iOS}/Flags.xcassets/zw.imageset/zw@3x.png | Bin .../App/iOS}/Global/AppConstants+App.swift | 0 .../App/iOS}/Global/HostImporter.swift | 0 .../App/iOS}/Global/IssueReporter.swift | 0 .../App/iOS}/Global/Macros.swift | 0 .../App/iOS}/Global/ProductManager+App.swift | 0 .../App/iOS}/Global/SwiftGen+Assets.swift | 0 .../App/iOS}/Global/SwiftGen+Scenes.swift | 0 .../App/iOS}/Global/SwiftGen+Segues.swift | 0 .../App/iOS}/Global/SwiftGen+Strings.swift | 0 .../App/iOS}/Global/Theme+Cells.swift | 0 .../App/iOS}/Global/Theme+Titles.swift | 0 .../App/iOS}/Global/Theme.swift | 0 .../App/iOS}/Global/UITextView+Search.swift | 0 .../App/iOS}/Info.plist | 8 +- .../App/iOS}/Providers.xcassets/Contents.json | 0 .../csv.imageset/Contents.json | 0 .../csv.imageset/csv@2x.png | Bin .../csv.imageset/csv@3x.png | Bin .../hideme.imageset/Contents.json | 0 .../hideme.imageset/hideme@2x.png | Bin .../hideme.imageset/hideme@3x.png | Bin .../mullvad.imageset/Contents.json | 0 .../mullvad.imageset/mullvad@2x.png | Bin .../mullvad.imageset/mullvad@3x.png | Bin .../nordvpn.imageset/Contents.json | 0 .../nordvpn.imageset/nordvpn-dark@2x.png | Bin .../nordvpn.imageset/nordvpn-dark@3x.png | Bin .../nordvpn.imageset/nordvpn@2x.png | Bin .../nordvpn.imageset/nordvpn@3x.png | Bin .../pia.imageset/Contents.json | 0 .../pia.imageset/pia@2x.png | Bin .../pia.imageset/pia@3x.png | Bin .../placeholder.imageset/Contents.json | 0 .../placeholder.imageset/placeholder@2x.png | Bin .../placeholder.imageset/placeholder@3x.png | Bin .../protonvpn.imageset/Contents.json | 0 .../protonvpn.imageset/protonvpn@2x.png | Bin .../protonvpn.imageset/protonvpn@3x.png | Bin .../torguard.imageset/Contents.json | 0 .../torguard.imageset/torguard@2x.png | Bin .../torguard.imageset/torguard@3x.png | Bin .../tunnelbear.imageset/Contents.json | 0 .../tunnelbear.imageset/tunnelbear@2x.png | Bin .../tunnelbear.imageset/tunnelbear@3x.png | Bin .../vyprvpn.imageset/Contents.json | 0 .../vyprvpn.imageset/vyprvpn@2x.png | Bin .../vyprvpn.imageset/vyprvpn@3x.png | Bin .../windscribe.imageset/Contents.json | 0 .../windscribe.imageset/windscribe@2x.png | Bin .../windscribe.imageset/windscribe@3x.png | Bin .../Scenes/About/AboutViewController.swift | 0 .../iOS}/Scenes/AccountViewController.swift | 0 .../ConfigurationModificationDelegate.swift | 0 .../Scenes/ConfigurationViewController.swift | 0 .../iOS}/Scenes/DebugLogViewController.swift | 0 .../iOS}/Scenes/EndpointViewController.swift | 0 .../NetworkSettingsViewController.swift | 0 .../Organizer/DonationViewController.swift | 0 .../ImportedHostsViewController.swift | 0 .../Organizer/OrganizerViewController.swift | 0 .../Organizer/WizardHostViewController.swift | 0 .../WizardProviderViewController.swift | 0 .../Scenes/ProviderPoolViewController.swift | 0 .../Scenes/ProviderPresetViewController.swift | 0 .../Purchase/PurchaseTableViewCell.swift | 0 .../Purchase/PurchaseViewController.swift | 0 .../Scenes/ServerNetworkViewController.swift | 0 .../iOS}/Scenes/ServiceViewController.swift | 0 .../ShortcutsAddViewController.swift | 0 .../ShortcutsConnectToViewController.swift | 0 .../Shortcuts/ShortcutsViewController.swift | 0 .../App/iOS}/Settings.bundle/Root.plist | 0 .../Settings.bundle/en.lproj/Root.strings | Bin .../App/iOS}/de.lproj/App.strings | 0 .../App/iOS}/de.lproj/InfoPlist.strings | 0 .../App/iOS}/el.lproj/App.strings | 0 .../App/iOS}/el.lproj/InfoPlist.strings | 0 .../App/iOS}/en.lproj/App.strings | 0 .../App/iOS}/en.lproj/InfoPlist.strings | 0 .../App/iOS}/es.lproj/App.strings | 0 .../App/iOS}/es.lproj/InfoPlist.strings | 0 .../App/iOS}/fr.lproj/App.strings | 0 .../App/iOS}/fr.lproj/InfoPlist.strings | 0 .../App/iOS}/it.lproj/App.strings | 0 .../App/iOS}/it.lproj/InfoPlist.strings | 0 .../App/iOS}/nl.lproj/App.strings | 0 .../App/iOS}/nl.lproj/InfoPlist.strings | 0 .../App/iOS}/pl.lproj/App.strings | 0 .../App/iOS}/pl.lproj/InfoPlist.strings | 0 .../App/iOS}/pt.lproj/App.strings | 0 .../App/iOS}/pt.lproj/InfoPlist.strings | 0 .../App/iOS}/ru.lproj/App.strings | 0 .../App/iOS}/ru.lproj/InfoPlist.strings | 0 .../App/iOS}/sv.lproj/App.strings | 0 .../App/iOS}/sv.lproj/InfoPlist.strings | 0 Passepartout/App/iOS/swiftgen.yml | 29 + .../App/iOS}/zh-Hans.lproj/App.strings | 0 .../App/iOS}/zh-Hans.lproj/InfoPlist.strings | 0 Passepartout/App/macOS/App.entitlements | 20 + Passepartout/App/macOS/AppDelegate.swift | 133 ++ .../AppIcon.appiconset/AppIcon-1024.png | Bin 0 -> 36716 bytes .../AppIcon.appiconset/AppIcon-256.png | Bin 0 -> 10851 bytes .../AppIcon.appiconset/AppIcon-32.png | Bin 0 -> 1344 bytes .../AppIcon.appiconset/AppIcon-512.png | Bin 0 -> 24281 bytes .../AppIcon.appiconset/AppIcon-64.png | Bin 0 -> 2432 bytes .../AppIcon.appiconset/Contents.json | 63 + .../App/macOS/Assets.xcassets/Contents.json | 6 + .../Contents.json | 54 + .../StatusBarButtonImage-dark@2x.png | Bin 0 -> 438 bytes .../StatusBarButtonImage-dark@3x.png | Bin 0 -> 498 bytes .../StatusBarButtonImage@2x.png | Bin 0 -> 434 bytes .../StatusBarButtonImage@3x.png | Bin 0 -> 493 bytes .../App/macOS/Base.lproj/Main.storyboard | 261 +++ .../macOS/Base.lproj/Preferences.storyboard | 362 ++++ .../App/macOS/Base.lproj/Service.storyboard | 1693 ++++++++++++++++ Passepartout/App/macOS/CHANGELOG.md | 30 + .../App/macOS/Flags.xcassets/Contents.json | 6 + .../Flags.xcassets/ad.imageset/Contents.json | 22 + .../Flags.xcassets/ad.imageset/ad@2x.png | Bin 0 -> 560 bytes .../Flags.xcassets/ad.imageset/ad@3x.png | Bin 0 -> 994 bytes .../Flags.xcassets/ae.imageset/Contents.json | 22 + .../Flags.xcassets/ae.imageset/ae@2x.png | Bin 0 -> 249 bytes .../Flags.xcassets/ae.imageset/ae@3x.png | Bin 0 -> 260 bytes .../Flags.xcassets/af.imageset/Contents.json | 22 + .../Flags.xcassets/af.imageset/af@2x.png | Bin 0 -> 587 bytes .../Flags.xcassets/af.imageset/af@3x.png | Bin 0 -> 1026 bytes .../Flags.xcassets/ag.imageset/Contents.json | 22 + .../Flags.xcassets/ag.imageset/ag@2x.png | Bin 0 -> 919 bytes .../Flags.xcassets/ag.imageset/ag@3x.png | Bin 0 -> 1253 bytes .../Flags.xcassets/ai.imageset/Contents.json | 22 + .../Flags.xcassets/ai.imageset/ai@2x.png | Bin 0 -> 1160 bytes .../Flags.xcassets/ai.imageset/ai@3x.png | Bin 0 -> 1916 bytes .../Flags.xcassets/al.imageset/Contents.json | 22 + .../Flags.xcassets/al.imageset/al@2x.png | Bin 0 -> 740 bytes .../Flags.xcassets/al.imageset/al@3x.png | Bin 0 -> 1318 bytes .../Flags.xcassets/am.imageset/Contents.json | 22 + .../Flags.xcassets/am.imageset/am@2x.png | Bin 0 -> 191 bytes .../Flags.xcassets/am.imageset/am@3x.png | Bin 0 -> 194 bytes .../Flags.xcassets/ao.imageset/Contents.json | 22 + .../Flags.xcassets/ao.imageset/ao@2x.png | Bin 0 -> 522 bytes .../Flags.xcassets/ao.imageset/ao@3x.png | Bin 0 -> 804 bytes .../Flags.xcassets/aq.imageset/Contents.json | 22 + .../Flags.xcassets/aq.imageset/aq@2x.png | Bin 0 -> 624 bytes .../Flags.xcassets/aq.imageset/aq@3x.png | Bin 0 -> 908 bytes .../Flags.xcassets/ar.imageset/Contents.json | 22 + .../Flags.xcassets/ar.imageset/ar@2x.png | Bin 0 -> 391 bytes .../Flags.xcassets/ar.imageset/ar@3x.png | Bin 0 -> 595 bytes .../Flags.xcassets/as.imageset/Contents.json | 22 + .../Flags.xcassets/as.imageset/as@2x.png | Bin 0 -> 1097 bytes .../Flags.xcassets/as.imageset/as@3x.png | Bin 0 -> 1730 bytes .../Flags.xcassets/at.imageset/Contents.json | 22 + .../Flags.xcassets/at.imageset/at@2x.png | Bin 0 -> 185 bytes .../Flags.xcassets/at.imageset/at@3x.png | Bin 0 -> 192 bytes .../Flags.xcassets/au.imageset/Contents.json | 22 + .../Flags.xcassets/au.imageset/au@2x.png | Bin 0 -> 1250 bytes .../Flags.xcassets/au.imageset/au@3x.png | Bin 0 -> 1972 bytes .../Flags.xcassets/aw.imageset/Contents.json | 22 + .../Flags.xcassets/aw.imageset/aw@2x.png | Bin 0 -> 470 bytes .../Flags.xcassets/aw.imageset/aw@3x.png | Bin 0 -> 643 bytes .../Flags.xcassets/ax.imageset/Contents.json | 22 + .../Flags.xcassets/ax.imageset/ax@2x.png | Bin 0 -> 341 bytes .../Flags.xcassets/ax.imageset/ax@3x.png | Bin 0 -> 480 bytes .../Flags.xcassets/az.imageset/Contents.json | 22 + .../Flags.xcassets/az.imageset/az@2x.png | Bin 0 -> 490 bytes .../Flags.xcassets/az.imageset/az@3x.png | Bin 0 -> 614 bytes .../Flags.xcassets/ba.imageset/Contents.json | 22 + .../Flags.xcassets/ba.imageset/ba@2x.png | Bin 0 -> 951 bytes .../Flags.xcassets/ba.imageset/ba@3x.png | Bin 0 -> 1662 bytes .../Flags.xcassets/bb.imageset/Contents.json | 22 + .../Flags.xcassets/bb.imageset/bb@2x.png | Bin 0 -> 460 bytes .../Flags.xcassets/bb.imageset/bb@3x.png | Bin 0 -> 703 bytes .../Flags.xcassets/bd.imageset/Contents.json | 22 + .../Flags.xcassets/bd.imageset/bd@2x.png | Bin 0 -> 531 bytes .../Flags.xcassets/bd.imageset/bd@3x.png | Bin 0 -> 739 bytes .../Flags.xcassets/be.imageset/Contents.json | 22 + .../Flags.xcassets/be.imageset/be@2x.png | Bin 0 -> 169 bytes .../Flags.xcassets/be.imageset/be@3x.png | Bin 0 -> 217 bytes .../Flags.xcassets/bf.imageset/Contents.json | 22 + .../Flags.xcassets/bf.imageset/bf@2x.png | Bin 0 -> 529 bytes .../Flags.xcassets/bf.imageset/bf@3x.png | Bin 0 -> 700 bytes .../Flags.xcassets/bg.imageset/Contents.json | 22 + .../Flags.xcassets/bg.imageset/bg@2x.png | Bin 0 -> 205 bytes .../Flags.xcassets/bg.imageset/bg@3x.png | Bin 0 -> 201 bytes .../Flags.xcassets/bh.imageset/Contents.json | 22 + .../Flags.xcassets/bh.imageset/bh@2x.png | Bin 0 -> 601 bytes .../Flags.xcassets/bh.imageset/bh@3x.png | Bin 0 -> 677 bytes .../Flags.xcassets/bi.imageset/Contents.json | 22 + .../Flags.xcassets/bi.imageset/bi@2x.png | Bin 0 -> 956 bytes .../Flags.xcassets/bi.imageset/bi@3x.png | Bin 0 -> 1361 bytes .../Flags.xcassets/bj.imageset/Contents.json | 22 + .../Flags.xcassets/bj.imageset/bj@2x.png | Bin 0 -> 194 bytes .../Flags.xcassets/bj.imageset/bj@3x.png | Bin 0 -> 218 bytes .../Flags.xcassets/bl.imageset/Contents.json | 22 + .../Flags.xcassets/bl.imageset/bl@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/bl.imageset/bl@3x.png | Bin 0 -> 243 bytes .../Flags.xcassets/bm.imageset/Contents.json | 22 + .../Flags.xcassets/bm.imageset/bm@2x.png | Bin 0 -> 979 bytes .../Flags.xcassets/bm.imageset/bm@3x.png | Bin 0 -> 1525 bytes .../Flags.xcassets/bn.imageset/Contents.json | 22 + .../Flags.xcassets/bn.imageset/bn@2x.png | Bin 0 -> 1292 bytes .../Flags.xcassets/bn.imageset/bn@3x.png | Bin 0 -> 1845 bytes .../Flags.xcassets/bo.imageset/Contents.json | 22 + .../Flags.xcassets/bo.imageset/bo@2x.png | Bin 0 -> 467 bytes .../Flags.xcassets/bo.imageset/bo@3x.png | Bin 0 -> 679 bytes .../Flags.xcassets/bq.imageset/Contents.json | 22 + .../Flags.xcassets/bq.imageset/bq@2x.png | Bin 0 -> 213 bytes .../Flags.xcassets/bq.imageset/bq@3x.png | Bin 0 -> 210 bytes .../Flags.xcassets/br.imageset/Contents.json | 22 + .../Flags.xcassets/br.imageset/br@2x.png | Bin 0 -> 1312 bytes .../Flags.xcassets/br.imageset/br@3x.png | Bin 0 -> 1922 bytes .../Flags.xcassets/bs.imageset/Contents.json | 22 + .../Flags.xcassets/bs.imageset/bs@2x.png | Bin 0 -> 647 bytes .../Flags.xcassets/bs.imageset/bs@3x.png | Bin 0 -> 801 bytes .../Flags.xcassets/bt.imageset/Contents.json | 22 + .../Flags.xcassets/bt.imageset/bt@2x.png | Bin 0 -> 1139 bytes .../Flags.xcassets/bt.imageset/bt@3x.png | Bin 0 -> 2040 bytes .../Flags.xcassets/bv.imageset/Contents.json | 22 + .../Flags.xcassets/bv.imageset/bv@2x.png | Bin 0 -> 380 bytes .../Flags.xcassets/bv.imageset/bv@3x.png | Bin 0 -> 476 bytes .../Flags.xcassets/bw.imageset/Contents.json | 22 + .../Flags.xcassets/bw.imageset/bw@2x.png | Bin 0 -> 232 bytes .../Flags.xcassets/bw.imageset/bw@3x.png | Bin 0 -> 204 bytes .../Flags.xcassets/by.imageset/Contents.json | 22 + .../Flags.xcassets/by.imageset/by@2x.png | Bin 0 -> 717 bytes .../Flags.xcassets/by.imageset/by@3x.png | Bin 0 -> 1456 bytes .../Flags.xcassets/bz.imageset/Contents.json | 22 + .../Flags.xcassets/bz.imageset/bz@2x.png | Bin 0 -> 1505 bytes .../Flags.xcassets/bz.imageset/bz@3x.png | Bin 0 -> 2754 bytes .../Flags.xcassets/ca.imageset/Contents.json | 22 + .../Flags.xcassets/ca.imageset/ca@2x.png | Bin 0 -> 450 bytes .../Flags.xcassets/ca.imageset/ca@3x.png | Bin 0 -> 705 bytes .../Flags.xcassets/cc.imageset/Contents.json | 22 + .../Flags.xcassets/cc.imageset/cc@2x.png | Bin 0 -> 650 bytes .../Flags.xcassets/cc.imageset/cc@3x.png | Bin 0 -> 1014 bytes .../Flags.xcassets/cd.imageset/Contents.json | 22 + .../Flags.xcassets/cd.imageset/cd@2x.png | Bin 0 -> 910 bytes .../Flags.xcassets/cd.imageset/cd@3x.png | Bin 0 -> 1081 bytes .../Flags.xcassets/cf.imageset/Contents.json | 22 + .../Flags.xcassets/cf.imageset/cf@2x.png | Bin 0 -> 466 bytes .../Flags.xcassets/cf.imageset/cf@3x.png | Bin 0 -> 546 bytes .../Flags.xcassets/cg.imageset/Contents.json | 22 + .../Flags.xcassets/cg.imageset/cg@2x.png | Bin 0 -> 273 bytes .../Flags.xcassets/cg.imageset/cg@3x.png | Bin 0 -> 360 bytes .../Flags.xcassets/ch.imageset/Contents.json | 22 + .../Flags.xcassets/ch.imageset/ch@2x.png | Bin 0 -> 310 bytes .../Flags.xcassets/ch.imageset/ch@3x.png | Bin 0 -> 349 bytes .../Flags.xcassets/ci.imageset/Contents.json | 22 + .../Flags.xcassets/ci.imageset/ci@2x.png | Bin 0 -> 166 bytes .../Flags.xcassets/ci.imageset/ci@3x.png | Bin 0 -> 222 bytes .../Flags.xcassets/ck.imageset/Contents.json | 22 + .../Flags.xcassets/ck.imageset/ck@2x.png | Bin 0 -> 1326 bytes .../Flags.xcassets/ck.imageset/ck@3x.png | Bin 0 -> 2129 bytes .../Flags.xcassets/cl.imageset/Contents.json | 22 + .../Flags.xcassets/cl.imageset/cl@2x.png | Bin 0 -> 363 bytes .../Flags.xcassets/cl.imageset/cl@3x.png | Bin 0 -> 499 bytes .../Flags.xcassets/cm.imageset/Contents.json | 22 + .../Flags.xcassets/cm.imageset/cm@2x.png | Bin 0 -> 304 bytes .../Flags.xcassets/cm.imageset/cm@3x.png | Bin 0 -> 436 bytes .../Flags.xcassets/cn.imageset/Contents.json | 22 + .../Flags.xcassets/cn.imageset/cn@2x.png | Bin 0 -> 472 bytes .../Flags.xcassets/cn.imageset/cn@3x.png | Bin 0 -> 657 bytes .../Flags.xcassets/co.imageset/Contents.json | 22 + .../Flags.xcassets/co.imageset/co@2x.png | Bin 0 -> 208 bytes .../Flags.xcassets/co.imageset/co@3x.png | Bin 0 -> 196 bytes .../Flags.xcassets/cr.imageset/Contents.json | 22 + .../Flags.xcassets/cr.imageset/cr@2x.png | Bin 0 -> 253 bytes .../Flags.xcassets/cr.imageset/cr@3x.png | Bin 0 -> 218 bytes .../Flags.xcassets/cu.imageset/Contents.json | 22 + .../Flags.xcassets/cu.imageset/cu@2x.png | Bin 0 -> 766 bytes .../Flags.xcassets/cu.imageset/cu@3x.png | Bin 0 -> 1080 bytes .../Flags.xcassets/cv.imageset/Contents.json | 22 + .../Flags.xcassets/cv.imageset/cv@2x.png | Bin 0 -> 711 bytes .../Flags.xcassets/cv.imageset/cv@3x.png | Bin 0 -> 1023 bytes .../Flags.xcassets/cw.imageset/Contents.json | 22 + .../Flags.xcassets/cw.imageset/cw@2x.png | Bin 0 -> 410 bytes .../Flags.xcassets/cw.imageset/cw@3x.png | Bin 0 -> 567 bytes .../Flags.xcassets/cx.imageset/Contents.json | 22 + .../Flags.xcassets/cx.imageset/cx@2x.png | Bin 0 -> 882 bytes .../Flags.xcassets/cx.imageset/cx@3x.png | Bin 0 -> 1280 bytes .../Flags.xcassets/cy.imageset/Contents.json | 22 + .../Flags.xcassets/cy.imageset/cy@2x.png | Bin 0 -> 736 bytes .../Flags.xcassets/cy.imageset/cy@3x.png | Bin 0 -> 1149 bytes .../Flags.xcassets/cz.imageset/Contents.json | 22 + .../Flags.xcassets/cz.imageset/cz@2x.png | Bin 0 -> 415 bytes .../Flags.xcassets/cz.imageset/cz@3x.png | Bin 0 -> 525 bytes .../Flags.xcassets/de.imageset/Contents.json | 22 + .../Flags.xcassets/de.imageset/de@2x.png | Bin 0 -> 186 bytes .../Flags.xcassets/de.imageset/de@3x.png | Bin 0 -> 190 bytes .../Flags.xcassets/dj.imageset/Contents.json | 22 + .../Flags.xcassets/dj.imageset/dj@2x.png | Bin 0 -> 506 bytes .../Flags.xcassets/dj.imageset/dj@3x.png | Bin 0 -> 649 bytes .../Flags.xcassets/dk.imageset/Contents.json | 22 + .../Flags.xcassets/dk.imageset/dk@2x.png | Bin 0 -> 276 bytes .../Flags.xcassets/dk.imageset/dk@3x.png | Bin 0 -> 316 bytes .../Flags.xcassets/dm.imageset/Contents.json | 22 + .../Flags.xcassets/dm.imageset/dm@2x.png | Bin 0 -> 881 bytes .../Flags.xcassets/dm.imageset/dm@3x.png | Bin 0 -> 1384 bytes .../Flags.xcassets/do.imageset/Contents.json | 22 + .../Flags.xcassets/do.imageset/do@2x.png | Bin 0 -> 440 bytes .../Flags.xcassets/do.imageset/do@3x.png | Bin 0 -> 553 bytes .../Flags.xcassets/dz.imageset/Contents.json | 22 + .../Flags.xcassets/dz.imageset/dz@2x.png | Bin 0 -> 627 bytes .../Flags.xcassets/dz.imageset/dz@3x.png | Bin 0 -> 873 bytes .../Flags.xcassets/ec.imageset/Contents.json | 22 + .../Flags.xcassets/ec.imageset/ec@2x.png | Bin 0 -> 1253 bytes .../Flags.xcassets/ec.imageset/ec@3x.png | Bin 0 -> 2074 bytes .../Flags.xcassets/ee.imageset/Contents.json | 22 + .../Flags.xcassets/ee.imageset/ee@2x.png | Bin 0 -> 203 bytes .../Flags.xcassets/ee.imageset/ee@3x.png | Bin 0 -> 203 bytes .../Flags.xcassets/eg.imageset/Contents.json | 22 + .../Flags.xcassets/eg.imageset/eg@2x.png | Bin 0 -> 401 bytes .../Flags.xcassets/eg.imageset/eg@3x.png | Bin 0 -> 570 bytes .../Flags.xcassets/eh.imageset/Contents.json | 22 + .../Flags.xcassets/eh.imageset/eh@2x.png | Bin 0 -> 645 bytes .../Flags.xcassets/eh.imageset/eh@3x.png | Bin 0 -> 790 bytes .../Flags.xcassets/er.imageset/Contents.json | 22 + .../Flags.xcassets/er.imageset/er@2x.png | Bin 0 -> 1176 bytes .../Flags.xcassets/er.imageset/er@3x.png | Bin 0 -> 1845 bytes .../es-ct.imageset/Contents.json | 22 + .../es-ct.imageset/es-ct@2x.png | Bin 0 -> 330 bytes .../es-ct.imageset/es-ct@3x.png | Bin 0 -> 240 bytes .../Flags.xcassets/es.imageset/Contents.json | 22 + .../Flags.xcassets/es.imageset/es@2x.png | Bin 0 -> 579 bytes .../Flags.xcassets/es.imageset/es@3x.png | Bin 0 -> 885 bytes .../Flags.xcassets/et.imageset/Contents.json | 22 + .../Flags.xcassets/et.imageset/et@2x.png | Bin 0 -> 687 bytes .../Flags.xcassets/et.imageset/et@3x.png | Bin 0 -> 1051 bytes .../Flags.xcassets/eu.imageset/Contents.json | 22 + .../Flags.xcassets/eu.imageset/eu@2x.png | Bin 0 -> 661 bytes .../Flags.xcassets/eu.imageset/eu@3x.png | Bin 0 -> 956 bytes .../Flags.xcassets/fi.imageset/Contents.json | 22 + .../Flags.xcassets/fi.imageset/fi@2x.png | Bin 0 -> 266 bytes .../Flags.xcassets/fi.imageset/fi@3x.png | Bin 0 -> 318 bytes .../Flags.xcassets/fj.imageset/Contents.json | 22 + .../Flags.xcassets/fj.imageset/fj@2x.png | Bin 0 -> 1181 bytes .../Flags.xcassets/fj.imageset/fj@3x.png | Bin 0 -> 1972 bytes .../Flags.xcassets/fk.imageset/Contents.json | 22 + .../Flags.xcassets/fk.imageset/fk@2x.png | Bin 0 -> 1608 bytes .../Flags.xcassets/fk.imageset/fk@3x.png | Bin 0 -> 2921 bytes .../Flags.xcassets/fm.imageset/Contents.json | 22 + .../Flags.xcassets/fm.imageset/fm@2x.png | Bin 0 -> 556 bytes .../Flags.xcassets/fm.imageset/fm@3x.png | Bin 0 -> 862 bytes .../Flags.xcassets/fo.imageset/Contents.json | 22 + .../Flags.xcassets/fo.imageset/fo@2x.png | Bin 0 -> 406 bytes .../Flags.xcassets/fo.imageset/fo@3x.png | Bin 0 -> 469 bytes .../Flags.xcassets/fr.imageset/Contents.json | 22 + .../Flags.xcassets/fr.imageset/fr@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/fr.imageset/fr@3x.png | Bin 0 -> 243 bytes .../Flags.xcassets/ga.imageset/Contents.json | 22 + .../Flags.xcassets/ga.imageset/ga@2x.png | Bin 0 -> 206 bytes .../Flags.xcassets/ga.imageset/ga@3x.png | Bin 0 -> 210 bytes .../gb-eng.imageset/Contents.json | 22 + .../gb-eng.imageset/gb-eng@2x.png | Bin 0 -> 223 bytes .../gb-eng.imageset/gb-eng@3x.png | Bin 0 -> 226 bytes .../gb-nir.imageset/Contents.json | 22 + .../gb-nir.imageset/gb-nir@2x.png | Bin 0 -> 681 bytes .../gb-nir.imageset/gb-nir@3x.png | Bin 0 -> 1095 bytes .../gb-sct.imageset/Contents.json | 22 + .../gb-sct.imageset/gb-sct@2x.png | Bin 0 -> 892 bytes .../gb-sct.imageset/gb-sct@3x.png | Bin 0 -> 813 bytes .../gb-wls.imageset/Contents.json | 22 + .../gb-wls.imageset/gb-wls@2x.png | Bin 0 -> 1502 bytes .../gb-wls.imageset/gb-wls@3x.png | Bin 0 -> 2773 bytes .../Flags.xcassets/gb.imageset/Contents.json | 22 + .../Flags.xcassets/gb.imageset/gb@2x.png | Bin 0 -> 1250 bytes .../Flags.xcassets/gb.imageset/gb@3x.png | Bin 0 -> 1396 bytes .../Flags.xcassets/gd.imageset/Contents.json | 22 + .../Flags.xcassets/gd.imageset/gd@2x.png | Bin 0 -> 1114 bytes .../Flags.xcassets/gd.imageset/gd@3x.png | Bin 0 -> 1735 bytes .../Flags.xcassets/ge.imageset/Contents.json | 22 + .../Flags.xcassets/ge.imageset/ge@2x.png | Bin 0 -> 330 bytes .../Flags.xcassets/ge.imageset/ge@3x.png | Bin 0 -> 704 bytes .../Flags.xcassets/gf.imageset/Contents.json | 22 + .../Flags.xcassets/gf.imageset/gf@2x.png | Bin 0 -> 475 bytes .../Flags.xcassets/gf.imageset/gf@3x.png | Bin 0 -> 657 bytes .../Flags.xcassets/gg.imageset/Contents.json | 22 + .../Flags.xcassets/gg.imageset/gg@2x.png | Bin 0 -> 540 bytes .../Flags.xcassets/gg.imageset/gg@3x.png | Bin 0 -> 555 bytes .../Flags.xcassets/gh.imageset/Contents.json | 22 + .../Flags.xcassets/gh.imageset/gh@2x.png | Bin 0 -> 416 bytes .../Flags.xcassets/gh.imageset/gh@3x.png | Bin 0 -> 538 bytes .../Flags.xcassets/gi.imageset/Contents.json | 22 + .../Flags.xcassets/gi.imageset/gi@2x.png | Bin 0 -> 861 bytes .../Flags.xcassets/gi.imageset/gi@3x.png | Bin 0 -> 1279 bytes .../Flags.xcassets/gl.imageset/Contents.json | 22 + .../Flags.xcassets/gl.imageset/gl@2x.png | Bin 0 -> 593 bytes .../Flags.xcassets/gl.imageset/gl@3x.png | Bin 0 -> 797 bytes .../Flags.xcassets/gm.imageset/Contents.json | 22 + .../Flags.xcassets/gm.imageset/gm@2x.png | Bin 0 -> 235 bytes .../Flags.xcassets/gm.imageset/gm@3x.png | Bin 0 -> 214 bytes .../Flags.xcassets/gn.imageset/Contents.json | 22 + .../Flags.xcassets/gn.imageset/gn@2x.png | Bin 0 -> 162 bytes .../Flags.xcassets/gn.imageset/gn@3x.png | Bin 0 -> 208 bytes .../Flags.xcassets/gp.imageset/Contents.json | 22 + .../Flags.xcassets/gp.imageset/gp@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/gp.imageset/gp@3x.png | Bin 0 -> 243 bytes .../Flags.xcassets/gq.imageset/Contents.json | 22 + .../Flags.xcassets/gq.imageset/gq@2x.png | Bin 0 -> 621 bytes .../Flags.xcassets/gq.imageset/gq@3x.png | Bin 0 -> 941 bytes .../Flags.xcassets/gr.imageset/Contents.json | 22 + .../Flags.xcassets/gr.imageset/gr@2x.png | Bin 0 -> 535 bytes .../Flags.xcassets/gr.imageset/gr@3x.png | Bin 0 -> 526 bytes .../Flags.xcassets/gs.imageset/Contents.json | 22 + .../Flags.xcassets/gs.imageset/gs@2x.png | Bin 0 -> 1815 bytes .../Flags.xcassets/gs.imageset/gs@3x.png | Bin 0 -> 3131 bytes .../Flags.xcassets/gt.imageset/Contents.json | 22 + .../Flags.xcassets/gt.imageset/gt@2x.png | Bin 0 -> 405 bytes .../Flags.xcassets/gt.imageset/gt@3x.png | Bin 0 -> 676 bytes .../Flags.xcassets/gu.imageset/Contents.json | 22 + .../Flags.xcassets/gu.imageset/gu@2x.png | Bin 0 -> 949 bytes .../Flags.xcassets/gu.imageset/gu@3x.png | Bin 0 -> 1673 bytes .../Flags.xcassets/gw.imageset/Contents.json | 22 + .../Flags.xcassets/gw.imageset/gw@2x.png | Bin 0 -> 370 bytes .../Flags.xcassets/gw.imageset/gw@3x.png | Bin 0 -> 528 bytes .../Flags.xcassets/gy.imageset/Contents.json | 22 + .../Flags.xcassets/gy.imageset/gy@2x.png | Bin 0 -> 1143 bytes .../Flags.xcassets/gy.imageset/gy@3x.png | Bin 0 -> 1597 bytes .../Flags.xcassets/hk.imageset/Contents.json | 22 + .../Flags.xcassets/hk.imageset/hk@2x.png | Bin 0 -> 689 bytes .../Flags.xcassets/hk.imageset/hk@3x.png | Bin 0 -> 1135 bytes .../Flags.xcassets/hm.imageset/Contents.json | 22 + .../Flags.xcassets/hm.imageset/hm@2x.png | Bin 0 -> 1293 bytes .../Flags.xcassets/hm.imageset/hm@3x.png | Bin 0 -> 2018 bytes .../Flags.xcassets/hn.imageset/Contents.json | 22 + .../Flags.xcassets/hn.imageset/hn@2x.png | Bin 0 -> 467 bytes .../Flags.xcassets/hn.imageset/hn@3x.png | Bin 0 -> 545 bytes .../Flags.xcassets/hr.imageset/Contents.json | 22 + .../Flags.xcassets/hr.imageset/hr@2x.png | Bin 0 -> 760 bytes .../Flags.xcassets/hr.imageset/hr@3x.png | Bin 0 -> 1098 bytes .../Flags.xcassets/ht.imageset/Contents.json | 22 + .../Flags.xcassets/ht.imageset/ht@2x.png | Bin 0 -> 436 bytes .../Flags.xcassets/ht.imageset/ht@3x.png | Bin 0 -> 628 bytes .../Flags.xcassets/hu.imageset/Contents.json | 22 + .../Flags.xcassets/hu.imageset/hu@2x.png | Bin 0 -> 207 bytes .../Flags.xcassets/hu.imageset/hu@3x.png | Bin 0 -> 213 bytes .../Flags.xcassets/id.imageset/Contents.json | 22 + .../Flags.xcassets/id.imageset/id@2x.png | Bin 0 -> 164 bytes .../Flags.xcassets/id.imageset/id@3x.png | Bin 0 -> 171 bytes .../Flags.xcassets/ie.imageset/Contents.json | 22 + .../Flags.xcassets/ie.imageset/ie@2x.png | Bin 0 -> 171 bytes .../Flags.xcassets/ie.imageset/ie@3x.png | Bin 0 -> 237 bytes .../Flags.xcassets/il.imageset/Contents.json | 22 + .../Flags.xcassets/il.imageset/il@2x.png | Bin 0 -> 618 bytes .../Flags.xcassets/il.imageset/il@3x.png | Bin 0 -> 836 bytes .../Flags.xcassets/im.imageset/Contents.json | 22 + .../Flags.xcassets/im.imageset/im@2x.png | Bin 0 -> 853 bytes .../Flags.xcassets/im.imageset/im@3x.png | Bin 0 -> 1481 bytes .../Flags.xcassets/in.imageset/Contents.json | 22 + .../Flags.xcassets/in.imageset/in@2x.png | Bin 0 -> 411 bytes .../Flags.xcassets/in.imageset/in@3x.png | Bin 0 -> 561 bytes .../Flags.xcassets/io.imageset/Contents.json | 22 + .../Flags.xcassets/io.imageset/io@2x.png | Bin 0 -> 2580 bytes .../Flags.xcassets/io.imageset/io@3x.png | Bin 0 -> 4184 bytes .../Flags.xcassets/iq.imageset/Contents.json | 22 + .../Flags.xcassets/iq.imageset/iq@2x.png | Bin 0 -> 440 bytes .../Flags.xcassets/iq.imageset/iq@3x.png | Bin 0 -> 620 bytes .../Flags.xcassets/ir.imageset/Contents.json | 22 + .../Flags.xcassets/ir.imageset/ir@2x.png | Bin 0 -> 837 bytes .../Flags.xcassets/ir.imageset/ir@3x.png | Bin 0 -> 1453 bytes .../Flags.xcassets/is.imageset/Contents.json | 22 + .../Flags.xcassets/is.imageset/is@2x.png | Bin 0 -> 403 bytes .../Flags.xcassets/is.imageset/is@3x.png | Bin 0 -> 445 bytes .../Flags.xcassets/it.imageset/Contents.json | 22 + .../Flags.xcassets/it.imageset/it@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/it.imageset/it@3x.png | Bin 0 -> 242 bytes .../Flags.xcassets/je.imageset/Contents.json | 22 + .../Flags.xcassets/je.imageset/je@2x.png | Bin 0 -> 1257 bytes .../Flags.xcassets/je.imageset/je@3x.png | Bin 0 -> 1796 bytes .../Flags.xcassets/jm.imageset/Contents.json | 22 + .../Flags.xcassets/jm.imageset/jm@2x.png | Bin 0 -> 835 bytes .../Flags.xcassets/jm.imageset/jm@3x.png | Bin 0 -> 730 bytes .../Flags.xcassets/jo.imageset/Contents.json | 22 + .../Flags.xcassets/jo.imageset/jo@2x.png | Bin 0 -> 452 bytes .../Flags.xcassets/jo.imageset/jo@3x.png | Bin 0 -> 455 bytes .../Flags.xcassets/jp.imageset/Contents.json | 22 + .../Flags.xcassets/jp.imageset/jp@2x.png | Bin 0 -> 478 bytes .../Flags.xcassets/jp.imageset/jp@3x.png | Bin 0 -> 664 bytes .../Flags.xcassets/ke.imageset/Contents.json | 22 + .../Flags.xcassets/ke.imageset/ke@2x.png | Bin 0 -> 667 bytes .../Flags.xcassets/ke.imageset/ke@3x.png | Bin 0 -> 1003 bytes .../Flags.xcassets/kg.imageset/Contents.json | 22 + .../Flags.xcassets/kg.imageset/kg@2x.png | Bin 0 -> 829 bytes .../Flags.xcassets/kg.imageset/kg@3x.png | Bin 0 -> 1529 bytes .../Flags.xcassets/kh.imageset/Contents.json | 22 + .../Flags.xcassets/kh.imageset/kh@2x.png | Bin 0 -> 689 bytes .../Flags.xcassets/kh.imageset/kh@3x.png | Bin 0 -> 990 bytes .../Flags.xcassets/ki.imageset/Contents.json | 22 + .../Flags.xcassets/ki.imageset/ki@2x.png | Bin 0 -> 1613 bytes .../Flags.xcassets/ki.imageset/ki@3x.png | Bin 0 -> 2555 bytes .../Flags.xcassets/km.imageset/Contents.json | 22 + .../Flags.xcassets/km.imageset/km@2x.png | Bin 0 -> 892 bytes .../Flags.xcassets/km.imageset/km@3x.png | Bin 0 -> 1260 bytes .../Flags.xcassets/kn.imageset/Contents.json | 22 + .../Flags.xcassets/kn.imageset/kn@2x.png | Bin 0 -> 965 bytes .../Flags.xcassets/kn.imageset/kn@3x.png | Bin 0 -> 1526 bytes .../Flags.xcassets/kp.imageset/Contents.json | 22 + .../Flags.xcassets/kp.imageset/kp@2x.png | Bin 0 -> 693 bytes .../Flags.xcassets/kp.imageset/kp@3x.png | Bin 0 -> 937 bytes .../Flags.xcassets/kr.imageset/Contents.json | 22 + .../Flags.xcassets/kr.imageset/kr@2x.png | Bin 0 -> 1325 bytes .../Flags.xcassets/kr.imageset/kr@3x.png | Bin 0 -> 2065 bytes .../Flags.xcassets/kw.imageset/Contents.json | 22 + .../Flags.xcassets/kw.imageset/kw@2x.png | Bin 0 -> 409 bytes .../Flags.xcassets/kw.imageset/kw@3x.png | Bin 0 -> 441 bytes .../Flags.xcassets/ky.imageset/Contents.json | 22 + .../Flags.xcassets/ky.imageset/ky@2x.png | Bin 0 -> 1533 bytes .../Flags.xcassets/ky.imageset/ky@3x.png | Bin 0 -> 2681 bytes .../Flags.xcassets/kz.imageset/Contents.json | 22 + .../Flags.xcassets/kz.imageset/kz@2x.png | Bin 0 -> 1384 bytes .../Flags.xcassets/kz.imageset/kz@3x.png | Bin 0 -> 2649 bytes .../Flags.xcassets/la.imageset/Contents.json | 22 + .../Flags.xcassets/la.imageset/la@2x.png | Bin 0 -> 448 bytes .../Flags.xcassets/la.imageset/la@3x.png | Bin 0 -> 553 bytes .../Flags.xcassets/lb.imageset/Contents.json | 22 + .../Flags.xcassets/lb.imageset/lb@2x.png | Bin 0 -> 703 bytes .../Flags.xcassets/lb.imageset/lb@3x.png | Bin 0 -> 1117 bytes .../Flags.xcassets/lc.imageset/Contents.json | 22 + .../Flags.xcassets/lc.imageset/lc@2x.png | Bin 0 -> 659 bytes .../Flags.xcassets/lc.imageset/lc@3x.png | Bin 0 -> 1067 bytes .../Flags.xcassets/li.imageset/Contents.json | 22 + .../Flags.xcassets/li.imageset/li@2x.png | Bin 0 -> 425 bytes .../Flags.xcassets/li.imageset/li@3x.png | Bin 0 -> 680 bytes .../Flags.xcassets/lk.imageset/Contents.json | 22 + .../Flags.xcassets/lk.imageset/lk@2x.png | Bin 0 -> 861 bytes .../Flags.xcassets/lk.imageset/lk@3x.png | Bin 0 -> 1382 bytes .../Flags.xcassets/lr.imageset/Contents.json | 22 + .../Flags.xcassets/lr.imageset/lr@2x.png | Bin 0 -> 616 bytes .../Flags.xcassets/lr.imageset/lr@3x.png | Bin 0 -> 644 bytes .../Flags.xcassets/ls.imageset/Contents.json | 22 + .../Flags.xcassets/ls.imageset/ls@2x.png | Bin 0 -> 435 bytes .../Flags.xcassets/ls.imageset/ls@3x.png | Bin 0 -> 605 bytes .../Flags.xcassets/lt.imageset/Contents.json | 22 + .../Flags.xcassets/lt.imageset/lt@2x.png | Bin 0 -> 223 bytes .../Flags.xcassets/lt.imageset/lt@3x.png | Bin 0 -> 212 bytes .../Flags.xcassets/lu.imageset/Contents.json | 22 + .../Flags.xcassets/lu.imageset/lu@2x.png | Bin 0 -> 230 bytes .../Flags.xcassets/lu.imageset/lu@3x.png | Bin 0 -> 203 bytes .../Flags.xcassets/lv.imageset/Contents.json | 22 + .../Flags.xcassets/lv.imageset/lv@2x.png | Bin 0 -> 166 bytes .../Flags.xcassets/lv.imageset/lv@3x.png | Bin 0 -> 209 bytes .../Flags.xcassets/ly.imageset/Contents.json | 22 + .../Flags.xcassets/ly.imageset/ly@2x.png | Bin 0 -> 399 bytes .../Flags.xcassets/ly.imageset/ly@3x.png | Bin 0 -> 468 bytes .../Flags.xcassets/ma.imageset/Contents.json | 22 + .../Flags.xcassets/ma.imageset/ma@2x.png | Bin 0 -> 326 bytes .../Flags.xcassets/ma.imageset/ma@3x.png | Bin 0 -> 453 bytes .../Flags.xcassets/mc.imageset/Contents.json | 22 + .../Flags.xcassets/mc.imageset/mc@2x.png | Bin 0 -> 166 bytes .../Flags.xcassets/mc.imageset/mc@3x.png | Bin 0 -> 176 bytes .../Flags.xcassets/md.imageset/Contents.json | 22 + .../Flags.xcassets/md.imageset/md@2x.png | Bin 0 -> 954 bytes .../Flags.xcassets/md.imageset/md@3x.png | Bin 0 -> 1640 bytes .../Flags.xcassets/me.imageset/Contents.json | 22 + .../Flags.xcassets/me.imageset/me@2x.png | Bin 0 -> 832 bytes .../Flags.xcassets/me.imageset/me@3x.png | Bin 0 -> 1480 bytes .../Flags.xcassets/mf.imageset/Contents.json | 22 + .../Flags.xcassets/mf.imageset/mf@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/mf.imageset/mf@3x.png | Bin 0 -> 243 bytes .../Flags.xcassets/mg.imageset/Contents.json | 22 + .../Flags.xcassets/mg.imageset/mg@2x.png | Bin 0 -> 191 bytes .../Flags.xcassets/mg.imageset/mg@3x.png | Bin 0 -> 224 bytes .../Flags.xcassets/mh.imageset/Contents.json | 22 + .../Flags.xcassets/mh.imageset/mh@2x.png | Bin 0 -> 1394 bytes .../Flags.xcassets/mh.imageset/mh@3x.png | Bin 0 -> 2308 bytes .../Flags.xcassets/mk.imageset/Contents.json | 22 + .../Flags.xcassets/mk.imageset/mk@2x.png | Bin 0 -> 1099 bytes .../Flags.xcassets/mk.imageset/mk@3x.png | Bin 0 -> 1457 bytes .../Flags.xcassets/ml.imageset/Contents.json | 22 + .../Flags.xcassets/ml.imageset/ml@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/ml.imageset/ml@3x.png | Bin 0 -> 217 bytes .../Flags.xcassets/mm.imageset/Contents.json | 22 + .../Flags.xcassets/mm.imageset/mm@2x.png | Bin 0 -> 679 bytes .../Flags.xcassets/mm.imageset/mm@3x.png | Bin 0 -> 917 bytes .../Flags.xcassets/mn.imageset/Contents.json | 22 + .../Flags.xcassets/mn.imageset/mn@2x.png | Bin 0 -> 458 bytes .../Flags.xcassets/mn.imageset/mn@3x.png | Bin 0 -> 813 bytes .../Flags.xcassets/mo.imageset/Contents.json | 22 + .../Flags.xcassets/mo.imageset/mo@2x.png | Bin 0 -> 777 bytes .../Flags.xcassets/mo.imageset/mo@3x.png | Bin 0 -> 1203 bytes .../Flags.xcassets/mp.imageset/Contents.json | 22 + .../Flags.xcassets/mp.imageset/mp@2x.png | Bin 0 -> 1392 bytes .../Flags.xcassets/mp.imageset/mp@3x.png | Bin 0 -> 2462 bytes .../Flags.xcassets/mq.imageset/Contents.json | 22 + .../Flags.xcassets/mq.imageset/mq@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/mq.imageset/mq@3x.png | Bin 0 -> 243 bytes .../Flags.xcassets/mr.imageset/Contents.json | 22 + .../Flags.xcassets/mr.imageset/mr@2x.png | Bin 0 -> 674 bytes .../Flags.xcassets/mr.imageset/mr@3x.png | Bin 0 -> 947 bytes .../Flags.xcassets/ms.imageset/Contents.json | 22 + .../Flags.xcassets/ms.imageset/ms@2x.png | Bin 0 -> 1383 bytes .../Flags.xcassets/ms.imageset/ms@3x.png | Bin 0 -> 2193 bytes .../Flags.xcassets/mt.imageset/Contents.json | 22 + .../Flags.xcassets/mt.imageset/mt@2x.png | Bin 0 -> 449 bytes .../Flags.xcassets/mt.imageset/mt@3x.png | Bin 0 -> 632 bytes .../Flags.xcassets/mu.imageset/Contents.json | 22 + .../Flags.xcassets/mu.imageset/mu@2x.png | Bin 0 -> 235 bytes .../Flags.xcassets/mu.imageset/mu@3x.png | Bin 0 -> 214 bytes .../Flags.xcassets/mv.imageset/Contents.json | 22 + .../Flags.xcassets/mv.imageset/mv@2x.png | Bin 0 -> 388 bytes .../Flags.xcassets/mv.imageset/mv@3x.png | Bin 0 -> 551 bytes .../Flags.xcassets/mw.imageset/Contents.json | 22 + .../Flags.xcassets/mw.imageset/mw@2x.png | Bin 0 -> 574 bytes .../Flags.xcassets/mw.imageset/mw@3x.png | Bin 0 -> 848 bytes .../Flags.xcassets/mx.imageset/Contents.json | 22 + .../Flags.xcassets/mx.imageset/mx@2x.png | Bin 0 -> 454 bytes .../Flags.xcassets/mx.imageset/mx@3x.png | Bin 0 -> 742 bytes .../Flags.xcassets/my.imageset/Contents.json | 22 + .../Flags.xcassets/my.imageset/my@2x.png | Bin 0 -> 949 bytes .../Flags.xcassets/my.imageset/my@3x.png | Bin 0 -> 1111 bytes .../Flags.xcassets/mz.imageset/Contents.json | 22 + .../Flags.xcassets/mz.imageset/mz@2x.png | Bin 0 -> 656 bytes .../Flags.xcassets/mz.imageset/mz@3x.png | Bin 0 -> 891 bytes .../Flags.xcassets/na.imageset/Contents.json | 22 + .../Flags.xcassets/na.imageset/na@2x.png | Bin 0 -> 1104 bytes .../Flags.xcassets/na.imageset/na@3x.png | Bin 0 -> 1781 bytes .../Flags.xcassets/nc.imageset/Contents.json | 22 + .../Flags.xcassets/nc.imageset/nc@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/nc.imageset/nc@3x.png | Bin 0 -> 243 bytes .../Flags.xcassets/ne.imageset/Contents.json | 22 + .../Flags.xcassets/ne.imageset/ne@2x.png | Bin 0 -> 378 bytes .../Flags.xcassets/ne.imageset/ne@3x.png | Bin 0 -> 449 bytes .../Flags.xcassets/nf.imageset/Contents.json | 22 + .../Flags.xcassets/nf.imageset/nf@2x.png | Bin 0 -> 638 bytes .../Flags.xcassets/nf.imageset/nf@3x.png | Bin 0 -> 1109 bytes .../Flags.xcassets/ng.imageset/Contents.json | 22 + .../Flags.xcassets/ng.imageset/ng@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/ng.imageset/ng@3x.png | Bin 0 -> 239 bytes .../Flags.xcassets/ni.imageset/Contents.json | 22 + .../Flags.xcassets/ni.imageset/ni@2x.png | Bin 0 -> 432 bytes .../Flags.xcassets/ni.imageset/ni@3x.png | Bin 0 -> 611 bytes .../Flags.xcassets/nl.imageset/Contents.json | 22 + .../Flags.xcassets/nl.imageset/nl@2x.png | Bin 0 -> 216 bytes .../Flags.xcassets/nl.imageset/nl@3x.png | Bin 0 -> 214 bytes .../Flags.xcassets/no.imageset/Contents.json | 22 + .../Flags.xcassets/no.imageset/no@2x.png | Bin 0 -> 377 bytes .../Flags.xcassets/no.imageset/no@3x.png | Bin 0 -> 469 bytes .../Flags.xcassets/np.imageset/Contents.json | 22 + .../Flags.xcassets/np.imageset/np@2x.png | Bin 0 -> 944 bytes .../Flags.xcassets/np.imageset/np@3x.png | Bin 0 -> 1566 bytes .../Flags.xcassets/nr.imageset/Contents.json | 22 + .../Flags.xcassets/nr.imageset/nr@2x.png | Bin 0 -> 472 bytes .../Flags.xcassets/nr.imageset/nr@3x.png | Bin 0 -> 715 bytes .../Flags.xcassets/nu.imageset/Contents.json | 22 + .../Flags.xcassets/nu.imageset/nu@2x.png | Bin 0 -> 1478 bytes .../Flags.xcassets/nu.imageset/nu@3x.png | Bin 0 -> 2358 bytes .../Flags.xcassets/nz.imageset/Contents.json | 22 + .../Flags.xcassets/nz.imageset/nz@2x.png | Bin 0 -> 1080 bytes .../Flags.xcassets/nz.imageset/nz@3x.png | Bin 0 -> 1709 bytes .../Flags.xcassets/om.imageset/Contents.json | 22 + .../Flags.xcassets/om.imageset/om@2x.png | Bin 0 -> 405 bytes .../Flags.xcassets/om.imageset/om@3x.png | Bin 0 -> 646 bytes .../Flags.xcassets/pa.imageset/Contents.json | 22 + .../Flags.xcassets/pa.imageset/pa@2x.png | Bin 0 -> 577 bytes .../Flags.xcassets/pa.imageset/pa@3x.png | Bin 0 -> 792 bytes .../Flags.xcassets/pe.imageset/Contents.json | 22 + .../Flags.xcassets/pe.imageset/pe@2x.png | Bin 0 -> 838 bytes .../Flags.xcassets/pe.imageset/pe@3x.png | Bin 0 -> 1507 bytes .../Flags.xcassets/pf.imageset/Contents.json | 22 + .../Flags.xcassets/pf.imageset/pf@2x.png | Bin 0 -> 670 bytes .../Flags.xcassets/pf.imageset/pf@3x.png | Bin 0 -> 1154 bytes .../Flags.xcassets/pg.imageset/Contents.json | 22 + .../Flags.xcassets/pg.imageset/pg@2x.png | Bin 0 -> 780 bytes .../Flags.xcassets/pg.imageset/pg@3x.png | Bin 0 -> 1112 bytes .../Flags.xcassets/ph.imageset/Contents.json | 22 + .../Flags.xcassets/ph.imageset/ph@2x.png | Bin 0 -> 929 bytes .../Flags.xcassets/ph.imageset/ph@3x.png | Bin 0 -> 1382 bytes .../Flags.xcassets/pk.imageset/Contents.json | 22 + .../Flags.xcassets/pk.imageset/pk@2x.png | Bin 0 -> 552 bytes .../Flags.xcassets/pk.imageset/pk@3x.png | Bin 0 -> 773 bytes .../Flags.xcassets/pl.imageset/Contents.json | 22 + .../Flags.xcassets/pl.imageset/pl@2x.png | Bin 0 -> 177 bytes .../Flags.xcassets/pl.imageset/pl@3x.png | Bin 0 -> 177 bytes .../Flags.xcassets/pm.imageset/Contents.json | 22 + .../Flags.xcassets/pm.imageset/pm@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/pm.imageset/pm@3x.png | Bin 0 -> 243 bytes .../Flags.xcassets/pn.imageset/Contents.json | 22 + .../Flags.xcassets/pn.imageset/pn@2x.png | Bin 0 -> 1616 bytes .../Flags.xcassets/pn.imageset/pn@3x.png | Bin 0 -> 2673 bytes .../Flags.xcassets/pr.imageset/Contents.json | 22 + .../Flags.xcassets/pr.imageset/pr@2x.png | Bin 0 -> 770 bytes .../Flags.xcassets/pr.imageset/pr@3x.png | Bin 0 -> 1079 bytes .../Flags.xcassets/ps.imageset/Contents.json | 22 + .../Flags.xcassets/ps.imageset/ps@2x.png | Bin 0 -> 386 bytes .../Flags.xcassets/ps.imageset/ps@3x.png | Bin 0 -> 356 bytes .../Flags.xcassets/pt.imageset/Contents.json | 22 + .../Flags.xcassets/pt.imageset/pt@2x.png | Bin 0 -> 641 bytes .../Flags.xcassets/pt.imageset/pt@3x.png | Bin 0 -> 1046 bytes .../Flags.xcassets/pw.imageset/Contents.json | 22 + .../Flags.xcassets/pw.imageset/pw@2x.png | Bin 0 -> 515 bytes .../Flags.xcassets/pw.imageset/pw@3x.png | Bin 0 -> 699 bytes .../Flags.xcassets/py.imageset/Contents.json | 22 + .../Flags.xcassets/py.imageset/py@2x.png | Bin 0 -> 396 bytes .../Flags.xcassets/py.imageset/py@3x.png | Bin 0 -> 542 bytes .../Flags.xcassets/qa.imageset/Contents.json | 22 + .../Flags.xcassets/qa.imageset/qa@2x.png | Bin 0 -> 581 bytes .../Flags.xcassets/qa.imageset/qa@3x.png | Bin 0 -> 602 bytes .../Flags.xcassets/re.imageset/Contents.json | 22 + .../Flags.xcassets/re.imageset/re@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/re.imageset/re@3x.png | Bin 0 -> 243 bytes .../Flags.xcassets/ro.imageset/Contents.json | 22 + .../Flags.xcassets/ro.imageset/ro@2x.png | Bin 0 -> 173 bytes .../Flags.xcassets/ro.imageset/ro@3x.png | Bin 0 -> 221 bytes .../Flags.xcassets/rs.imageset/Contents.json | 22 + .../Flags.xcassets/rs.imageset/rs@2x.png | Bin 0 -> 1221 bytes .../Flags.xcassets/rs.imageset/rs@3x.png | Bin 0 -> 2058 bytes .../Flags.xcassets/ru.imageset/Contents.json | 22 + .../Flags.xcassets/ru.imageset/ru@2x.png | Bin 0 -> 205 bytes .../Flags.xcassets/ru.imageset/ru@3x.png | Bin 0 -> 204 bytes .../Flags.xcassets/rw.imageset/Contents.json | 22 + .../Flags.xcassets/rw.imageset/rw@2x.png | Bin 0 -> 439 bytes .../Flags.xcassets/rw.imageset/rw@3x.png | Bin 0 -> 644 bytes .../Flags.xcassets/sa.imageset/Contents.json | 22 + .../Flags.xcassets/sa.imageset/sa@2x.png | Bin 0 -> 792 bytes .../Flags.xcassets/sa.imageset/sa@3x.png | Bin 0 -> 1425 bytes .../Flags.xcassets/sb.imageset/Contents.json | 22 + .../Flags.xcassets/sb.imageset/sb@2x.png | Bin 0 -> 859 bytes .../Flags.xcassets/sb.imageset/sb@3x.png | Bin 0 -> 1109 bytes .../Flags.xcassets/sc.imageset/Contents.json | 22 + .../Flags.xcassets/sc.imageset/sc@2x.png | Bin 0 -> 880 bytes .../Flags.xcassets/sc.imageset/sc@3x.png | Bin 0 -> 1300 bytes .../Flags.xcassets/sd.imageset/Contents.json | 22 + .../Flags.xcassets/sd.imageset/sd@2x.png | Bin 0 -> 443 bytes .../Flags.xcassets/sd.imageset/sd@3x.png | Bin 0 -> 511 bytes .../Flags.xcassets/se.imageset/Contents.json | 22 + .../Flags.xcassets/se.imageset/se@2x.png | Bin 0 -> 220 bytes .../Flags.xcassets/se.imageset/se@3x.png | Bin 0 -> 353 bytes .../Flags.xcassets/sg.imageset/Contents.json | 22 + .../Flags.xcassets/sg.imageset/sg@2x.png | Bin 0 -> 490 bytes .../Flags.xcassets/sg.imageset/sg@3x.png | Bin 0 -> 717 bytes .../Flags.xcassets/sh.imageset/Contents.json | 22 + .../Flags.xcassets/sh.imageset/sh@2x.png | Bin 0 -> 1433 bytes .../Flags.xcassets/sh.imageset/sh@3x.png | Bin 0 -> 2388 bytes .../Flags.xcassets/si.imageset/Contents.json | 22 + .../Flags.xcassets/si.imageset/si@2x.png | Bin 0 -> 521 bytes .../Flags.xcassets/si.imageset/si@3x.png | Bin 0 -> 707 bytes .../Flags.xcassets/sj.imageset/Contents.json | 22 + .../Flags.xcassets/sj.imageset/sj@2x.png | Bin 0 -> 378 bytes .../Flags.xcassets/sj.imageset/sj@3x.png | Bin 0 -> 465 bytes .../Flags.xcassets/sk.imageset/Contents.json | 22 + .../Flags.xcassets/sk.imageset/sk@2x.png | Bin 0 -> 682 bytes .../Flags.xcassets/sk.imageset/sk@3x.png | Bin 0 -> 998 bytes .../Flags.xcassets/sl.imageset/Contents.json | 22 + .../Flags.xcassets/sl.imageset/sl@2x.png | Bin 0 -> 200 bytes .../Flags.xcassets/sl.imageset/sl@3x.png | Bin 0 -> 191 bytes .../Flags.xcassets/sm.imageset/Contents.json | 22 + .../Flags.xcassets/sm.imageset/sm@2x.png | Bin 0 -> 874 bytes .../Flags.xcassets/sm.imageset/sm@3x.png | Bin 0 -> 1461 bytes .../Flags.xcassets/sn.imageset/Contents.json | 22 + .../Flags.xcassets/sn.imageset/sn@2x.png | Bin 0 -> 419 bytes .../Flags.xcassets/sn.imageset/sn@3x.png | Bin 0 -> 616 bytes .../Flags.xcassets/so.imageset/Contents.json | 22 + .../Flags.xcassets/so.imageset/so@2x.png | Bin 0 -> 407 bytes .../Flags.xcassets/so.imageset/so@3x.png | Bin 0 -> 593 bytes .../Flags.xcassets/sr.imageset/Contents.json | 22 + .../Flags.xcassets/sr.imageset/sr@2x.png | Bin 0 -> 437 bytes .../Flags.xcassets/sr.imageset/sr@3x.png | Bin 0 -> 567 bytes .../Flags.xcassets/ss.imageset/Contents.json | 22 + .../Flags.xcassets/ss.imageset/ss@2x.png | Bin 0 -> 812 bytes .../Flags.xcassets/ss.imageset/ss@3x.png | Bin 0 -> 1008 bytes .../Flags.xcassets/st.imageset/Contents.json | 22 + .../Flags.xcassets/st.imageset/st@2x.png | Bin 0 -> 653 bytes .../Flags.xcassets/st.imageset/st@3x.png | Bin 0 -> 780 bytes .../Flags.xcassets/sv.imageset/Contents.json | 22 + .../Flags.xcassets/sv.imageset/sv@2x.png | Bin 0 -> 443 bytes .../Flags.xcassets/sv.imageset/sv@3x.png | Bin 0 -> 652 bytes .../Flags.xcassets/sx.imageset/Contents.json | 22 + .../Flags.xcassets/sx.imageset/sx@2x.png | Bin 0 -> 774 bytes .../Flags.xcassets/sx.imageset/sx@3x.png | Bin 0 -> 1176 bytes .../Flags.xcassets/sy.imageset/Contents.json | 22 + .../Flags.xcassets/sy.imageset/sy@2x.png | Bin 0 -> 379 bytes .../Flags.xcassets/sy.imageset/sy@3x.png | Bin 0 -> 514 bytes .../Flags.xcassets/sz.imageset/Contents.json | 22 + .../Flags.xcassets/sz.imageset/sz@2x.png | Bin 0 -> 1006 bytes .../Flags.xcassets/sz.imageset/sz@3x.png | Bin 0 -> 1554 bytes .../Flags.xcassets/tc.imageset/Contents.json | 22 + .../Flags.xcassets/tc.imageset/tc@2x.png | Bin 0 -> 1274 bytes .../Flags.xcassets/tc.imageset/tc@3x.png | Bin 0 -> 2107 bytes .../Flags.xcassets/td.imageset/Contents.json | 22 + .../Flags.xcassets/td.imageset/td@2x.png | Bin 0 -> 160 bytes .../Flags.xcassets/td.imageset/td@3x.png | Bin 0 -> 213 bytes .../Flags.xcassets/tf.imageset/Contents.json | 22 + .../Flags.xcassets/tf.imageset/tf@2x.png | Bin 0 -> 711 bytes .../Flags.xcassets/tf.imageset/tf@3x.png | Bin 0 -> 1065 bytes .../Flags.xcassets/tg.imageset/Contents.json | 22 + .../Flags.xcassets/tg.imageset/tg@2x.png | Bin 0 -> 448 bytes .../Flags.xcassets/tg.imageset/tg@3x.png | Bin 0 -> 586 bytes .../Flags.xcassets/th.imageset/Contents.json | 22 + .../Flags.xcassets/th.imageset/th@2x.png | Bin 0 -> 257 bytes .../Flags.xcassets/th.imageset/th@3x.png | Bin 0 -> 237 bytes .../Flags.xcassets/tj.imageset/Contents.json | 22 + .../Flags.xcassets/tj.imageset/tj@2x.png | Bin 0 -> 509 bytes .../Flags.xcassets/tj.imageset/tj@3x.png | Bin 0 -> 714 bytes .../Flags.xcassets/tk.imageset/Contents.json | 22 + .../Flags.xcassets/tk.imageset/tk@2x.png | Bin 0 -> 734 bytes .../Flags.xcassets/tk.imageset/tk@3x.png | Bin 0 -> 1039 bytes .../Flags.xcassets/tl.imageset/Contents.json | 22 + .../Flags.xcassets/tl.imageset/tl@2x.png | Bin 0 -> 831 bytes .../Flags.xcassets/tl.imageset/tl@3x.png | Bin 0 -> 1062 bytes .../Flags.xcassets/tm.imageset/Contents.json | 22 + .../Flags.xcassets/tm.imageset/tm@2x.png | Bin 0 -> 974 bytes .../Flags.xcassets/tm.imageset/tm@3x.png | Bin 0 -> 1823 bytes .../Flags.xcassets/tn.imageset/Contents.json | 22 + .../Flags.xcassets/tn.imageset/tn@2x.png | Bin 0 -> 691 bytes .../Flags.xcassets/tn.imageset/tn@3x.png | Bin 0 -> 1008 bytes .../Flags.xcassets/to.imageset/Contents.json | 22 + .../Flags.xcassets/to.imageset/to@2x.png | Bin 0 -> 369 bytes .../Flags.xcassets/to.imageset/to@3x.png | Bin 0 -> 425 bytes .../Flags.xcassets/tr.imageset/Contents.json | 22 + .../Flags.xcassets/tr.imageset/tr@2x.png | Bin 0 -> 693 bytes .../Flags.xcassets/tr.imageset/tr@3x.png | Bin 0 -> 973 bytes .../Flags.xcassets/tt.imageset/Contents.json | 22 + .../Flags.xcassets/tt.imageset/tt@2x.png | Bin 0 -> 963 bytes .../Flags.xcassets/tt.imageset/tt@3x.png | Bin 0 -> 1707 bytes .../Flags.xcassets/tv.imageset/Contents.json | 22 + .../Flags.xcassets/tv.imageset/tv@2x.png | Bin 0 -> 1345 bytes .../Flags.xcassets/tv.imageset/tv@3x.png | Bin 0 -> 2141 bytes .../Flags.xcassets/tw.imageset/Contents.json | 22 + .../Flags.xcassets/tw.imageset/tw@2x.png | Bin 0 -> 528 bytes .../Flags.xcassets/tw.imageset/tw@3x.png | Bin 0 -> 826 bytes .../Flags.xcassets/tz.imageset/Contents.json | 22 + .../Flags.xcassets/tz.imageset/tz@2x.png | Bin 0 -> 695 bytes .../Flags.xcassets/tz.imageset/tz@3x.png | Bin 0 -> 885 bytes .../Flags.xcassets/ua.imageset/Contents.json | 22 + .../Flags.xcassets/ua.imageset/ua@2x.png | Bin 0 -> 174 bytes .../Flags.xcassets/ua.imageset/ua@3x.png | Bin 0 -> 184 bytes .../Flags.xcassets/ug.imageset/Contents.json | 22 + .../Flags.xcassets/ug.imageset/ug@2x.png | Bin 0 -> 533 bytes .../Flags.xcassets/ug.imageset/ug@3x.png | Bin 0 -> 691 bytes .../Flags.xcassets/um.imageset/Contents.json | 22 + .../Flags.xcassets/um.imageset/um@2x.png | Bin 0 -> 1229 bytes .../Flags.xcassets/um.imageset/um@3x.png | Bin 0 -> 1642 bytes .../Flags.xcassets/un.imageset/Contents.json | 22 + .../Flags.xcassets/un.imageset/un@2x.png | Bin 0 -> 751 bytes .../Flags.xcassets/un.imageset/un@3x.png | Bin 0 -> 1396 bytes .../Flags.xcassets/us.imageset/Contents.json | 22 + .../Flags.xcassets/us.imageset/us@2x.png | Bin 0 -> 1167 bytes .../Flags.xcassets/us.imageset/us@3x.png | Bin 0 -> 1643 bytes .../Flags.xcassets/uy.imageset/Contents.json | 22 + .../Flags.xcassets/uy.imageset/uy@2x.png | Bin 0 -> 730 bytes .../Flags.xcassets/uy.imageset/uy@3x.png | Bin 0 -> 1026 bytes .../Flags.xcassets/uz.imageset/Contents.json | 22 + .../Flags.xcassets/uz.imageset/uz@2x.png | Bin 0 -> 462 bytes .../Flags.xcassets/uz.imageset/uz@3x.png | Bin 0 -> 648 bytes .../Flags.xcassets/va.imageset/Contents.json | 22 + .../Flags.xcassets/va.imageset/va@2x.png | Bin 0 -> 675 bytes .../Flags.xcassets/va.imageset/va@3x.png | Bin 0 -> 1150 bytes .../Flags.xcassets/vc.imageset/Contents.json | 22 + .../Flags.xcassets/vc.imageset/vc@2x.png | Bin 0 -> 483 bytes .../Flags.xcassets/vc.imageset/vc@3x.png | Bin 0 -> 745 bytes .../Flags.xcassets/ve.imageset/Contents.json | 22 + .../Flags.xcassets/ve.imageset/ve@2x.png | Bin 0 -> 466 bytes .../Flags.xcassets/ve.imageset/ve@3x.png | Bin 0 -> 623 bytes .../Flags.xcassets/vg.imageset/Contents.json | 22 + .../Flags.xcassets/vg.imageset/vg@2x.png | Bin 0 -> 1435 bytes .../Flags.xcassets/vg.imageset/vg@3x.png | Bin 0 -> 2455 bytes .../Flags.xcassets/vi.imageset/Contents.json | 22 + .../Flags.xcassets/vi.imageset/vi@2x.png | Bin 0 -> 1444 bytes .../Flags.xcassets/vi.imageset/vi@3x.png | Bin 0 -> 2544 bytes .../Flags.xcassets/vn.imageset/Contents.json | 22 + .../Flags.xcassets/vn.imageset/vn@2x.png | Bin 0 -> 470 bytes .../Flags.xcassets/vn.imageset/vn@3x.png | Bin 0 -> 668 bytes .../Flags.xcassets/vu.imageset/Contents.json | 22 + .../Flags.xcassets/vu.imageset/vu@2x.png | Bin 0 -> 926 bytes .../Flags.xcassets/vu.imageset/vu@3x.png | Bin 0 -> 1268 bytes .../Flags.xcassets/wf.imageset/Contents.json | 22 + .../Flags.xcassets/wf.imageset/wf@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/wf.imageset/wf@3x.png | Bin 0 -> 243 bytes .../Flags.xcassets/ws.imageset/Contents.json | 22 + .../Flags.xcassets/ws.imageset/ws@2x.png | Bin 0 -> 468 bytes .../Flags.xcassets/ws.imageset/ws@3x.png | Bin 0 -> 682 bytes .../Flags.xcassets/xk.imageset/Contents.json | 22 + .../Flags.xcassets/xk.imageset/xk@2x.png | Bin 0 -> 749 bytes .../Flags.xcassets/xk.imageset/xk@3x.png | Bin 0 -> 1181 bytes .../Flags.xcassets/ye.imageset/Contents.json | 22 + .../Flags.xcassets/ye.imageset/ye@2x.png | Bin 0 -> 205 bytes .../Flags.xcassets/ye.imageset/ye@3x.png | Bin 0 -> 193 bytes .../Flags.xcassets/yt.imageset/Contents.json | 22 + .../Flags.xcassets/yt.imageset/yt@2x.png | Bin 0 -> 172 bytes .../Flags.xcassets/yt.imageset/yt@3x.png | Bin 0 -> 243 bytes .../Flags.xcassets/za.imageset/Contents.json | 22 + .../Flags.xcassets/za.imageset/za@2x.png | Bin 0 -> 1112 bytes .../Flags.xcassets/za.imageset/za@3x.png | Bin 0 -> 1641 bytes .../Flags.xcassets/zm.imageset/Contents.json | 22 + .../Flags.xcassets/zm.imageset/zm@2x.png | Bin 0 -> 402 bytes .../Flags.xcassets/zm.imageset/zm@3x.png | Bin 0 -> 600 bytes .../Flags.xcassets/zw.imageset/Contents.json | 22 + .../Flags.xcassets/zw.imageset/zw@2x.png | Bin 0 -> 934 bytes .../Flags.xcassets/zw.imageset/zw@3x.png | Bin 0 -> 1319 bytes .../App/macOS/Global/AppConstants+App.swift | 46 + Passepartout/App/macOS/Global/Credits.html | 24 + Passepartout/App/macOS/Global/Donation.swift | 49 + .../App/macOS/Global/HostImporter.swift | 239 +++ .../App/macOS/Global/IssueReporter.swift | 122 ++ Passepartout/App/macOS/Global/Macros.swift | 139 ++ .../App/macOS/Global/NSTextView+Search.swift | 32 + .../App/macOS/Global/ProductManager+App.swift | 36 + .../App/macOS/Global/SwiftGen+Assets.swift | 348 ++++ .../App/macOS/Global/SwiftGen+Scenes.swift | 82 + .../App/macOS/Global/SwiftGen+Segues.swift | 54 + .../App/macOS/Global/SwiftGen+Strings.swift | 1114 +++++++++++ .../Global/TextInputViewController.swift | 92 + .../App/macOS/Global/Theme+Views.swift | 99 + Passepartout/App/macOS/Global/Theme.swift | 99 + .../App/macOS/Global/WindowManager.swift | 93 + Passepartout/App/macOS/Info.plist | 75 + .../App/macOS/Launcher/AppDelegate.swift | 63 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 58 + .../Launcher/Assets.xcassets/Contents.json | 6 + .../macOS/Launcher/Base.lproj/Main.storyboard | 684 +++++++ Passepartout/App/macOS/Launcher/Info.plist | 38 + .../App/macOS/Launcher/Launcher.entitlements | 10 + Passepartout/App/macOS/Menu/MainMenu.swift | 35 + Passepartout/App/macOS/Menu/MainMenu.xib | 678 +++++++ Passepartout/App/macOS/Menu/StatusMenu.swift | 586 ++++++ .../macOS/Providers.xcassets/Contents.json | 6 + .../csv.imageset/Contents.json | 22 + .../csv.imageset/csv@2x.png | Bin 0 -> 3435 bytes .../csv.imageset/csv@3x.png | Bin 0 -> 5407 bytes .../hideme.imageset/Contents.json | 22 + .../hideme.imageset/hideme@2x.png | Bin 0 -> 3460 bytes .../hideme.imageset/hideme@3x.png | Bin 0 -> 5776 bytes .../mullvad.imageset/Contents.json | 22 + .../mullvad.imageset/mullvad@2x.png | Bin 0 -> 3282 bytes .../mullvad.imageset/mullvad@3x.png | Bin 0 -> 5168 bytes .../nordvpn.imageset/Contents.json | 54 + .../nordvpn.imageset/nordvpn-dark@2x.png | Bin 0 -> 1621 bytes .../nordvpn.imageset/nordvpn-dark@3x.png | Bin 0 -> 2583 bytes .../nordvpn.imageset/nordvpn@2x.png | Bin 0 -> 2211 bytes .../nordvpn.imageset/nordvpn@3x.png | Bin 0 -> 3309 bytes .../pia.imageset/Contents.json | 22 + .../pia.imageset/pia@2x.png | Bin 0 -> 6709 bytes .../pia.imageset/pia@3x.png | Bin 0 -> 9766 bytes .../placeholder.imageset/Contents.json | 22 + .../placeholder.imageset/placeholder@2x.png | Bin 0 -> 2362 bytes .../placeholder.imageset/placeholder@3x.png | Bin 0 -> 3468 bytes .../protonvpn.imageset/Contents.json | 22 + .../protonvpn.imageset/protonvpn@2x.png | Bin 0 -> 3179 bytes .../protonvpn.imageset/protonvpn@3x.png | Bin 0 -> 3603 bytes .../torguard.imageset/Contents.json | 22 + .../torguard.imageset/torguard@2x.png | Bin 0 -> 4448 bytes .../torguard.imageset/torguard@3x.png | Bin 0 -> 7471 bytes .../tunnelbear.imageset/Contents.json | 22 + .../tunnelbear.imageset/tunnelbear@2x.png | Bin 0 -> 2949 bytes .../tunnelbear.imageset/tunnelbear@3x.png | Bin 0 -> 4755 bytes .../vyprvpn.imageset/Contents.json | 22 + .../vyprvpn.imageset/vyprvpn@2x.png | Bin 0 -> 3955 bytes .../vyprvpn.imageset/vyprvpn@3x.png | Bin 0 -> 6758 bytes .../windscribe.imageset/Contents.json | 22 + .../windscribe.imageset/windscribe@2x.png | Bin 0 -> 7386 bytes .../windscribe.imageset/windscribe@3x.png | Bin 0 -> 12273 bytes .../Scenes/OrganizerProfileTableView.swift | 179 ++ .../Scenes/OrganizerProfileTableView.xib | 190 ++ .../Scenes/OrganizerViewController.swift | 358 ++++ .../Preferences/DebugLogViewController.swift | 226 +++ .../PreferencesGeneralViewController.swift | 80 + .../PreferencesViewController.swift | 44 + .../Service/AccountViewController.swift | 106 + .../ConfigurationViewController.swift | 300 +++ .../Customization/DNSViewController.swift | 157 ++ .../DefaultGatewayViewController.swift | 137 ++ .../EndpointViewController.swift | 120 ++ .../Customization/MTUViewController.swift | 139 ++ .../ProfileCustomizationViewController.swift | 258 +++ .../Customization/ProxyViewController.swift | 149 ++ .../TrustedNetworksAddViewController.swift | 59 + .../TrustedNetworksViewController.swift | 235 +++ .../Scenes/Service/HostServiceView.swift | 77 + .../macOS/Scenes/Service/HostServiceView.xib | 87 + .../Scenes/Service/ProviderServiceView.swift | 249 +++ .../Scenes/Service/ProviderServiceView.xib | 146 ++ .../Service/ServiceViewController.swift | 386 ++++ .../App/macOS/Tables/TextTableView.swift | 150 ++ .../App/macOS/Tables/TextTableView.xib | 116 ++ Passepartout/App/macOS/en.lproj/App.strings | 72 + Passepartout/App/macOS/it.lproj/App.strings | 53 + Passepartout/App/macOS/swiftgen.yml | 29 + Passepartout/Core/Info.plist | 24 + .../Core}/PassepartoutCore.h | 0 Passepartout/Core/README.md | 56 + .../Base.lproj/Intents.intentdefinition | 513 +++++ .../Core/Resources/de.lproj/Core.strings | 240 +++ .../Core/Resources/de.lproj/Intents.strings | 45 + .../Core/Resources/el.lproj/Core.strings | 240 +++ .../Core/Resources/el.lproj/Intents.strings | 45 + .../Core/Resources/en.lproj/Core.strings | 269 +++ .../Core/Resources/en.lproj/Intents.strings | 45 + .../Core/Resources/es.lproj/Core.strings | 240 +++ .../Core/Resources/es.lproj/Intents.strings | 45 + .../Core/Resources/fr.lproj/Core.strings | 240 +++ .../Core/Resources/fr.lproj/Intents.strings | 45 + .../Core/Resources/it.lproj/Core.strings | 240 +++ .../Core/Resources/it.lproj/Intents.strings | 45 + .../Core/Resources/nl.lproj/Core.strings | 240 +++ .../Core/Resources/nl.lproj/Intents.strings | 45 + .../Core/Resources/pl.lproj/Core.strings | 269 +++ .../Core/Resources/pl.lproj/Intents.strings | 45 + .../Core/Resources/pt.lproj/Core.strings | 240 +++ .../Core/Resources/pt.lproj/Intents.strings | 45 + .../Core/Resources/ru.lproj/Core.strings | 240 +++ .../Core/Resources/ru.lproj/Intents.strings | 45 + .../Core/Resources/sv.lproj/Core.strings | 240 +++ .../Core/Resources/sv.lproj/Intents.strings | 45 + .../Core/Resources/zh-Hans.lproj/Core.strings | 240 +++ .../Resources/zh-Hans.lproj/Intents.strings | 45 + Passepartout/Core/Sources/AppConstants.swift | 333 ++++ .../Core/Sources/ApplicationError.swift | 38 + .../Core/Sources/GroupConstants.swift | 78 + .../Sources/Intents/IntentDispatcher.swift | 320 +++ Passepartout/Core/Sources/Issue.swift | 58 + .../Sources/Model/ConnectionProfile.swift | 89 + .../ConnectionService+Configurations.swift | 69 + .../Model/ConnectionService+Migration.swift | 185 ++ .../Sources/Model/ConnectionService.swift | 713 +++++++ .../Core/Sources/Model/Credentials.swift | 45 + .../Core/Sources/Model/DataUnit.swift | 93 + .../Core/Sources/Model/DebugLog.swift | 84 + .../Sources/Model/EndpointDataSource.swift | 47 + .../Core/Sources/Model/GracefulVPN.swift | 140 ++ .../Core/Sources/Model/OpenVPNOptions.swift | 63 + .../Core/Sources/Model/Preferences.swift | 42 + Passepartout/Core/Sources/Model/Product.swift | 161 ++ .../Core/Sources/Model/ProductManager.swift | 250 +++ .../Model/ProfileNetworkSettings.swift | 232 +++ .../Profiles/HostConnectionProfile.swift | 132 ++ .../PlaceholderConnectionProfile.swift | 76 + .../Sources/Model/Profiles/PoolCategory.swift | 40 + .../Sources/Model/Profiles/ProfileKey.swift | 77 + .../Profiles/ProviderConnectionProfile.swift | 223 +++ .../Model/SessionProxy+Communication.swift | 42 + .../Core/Sources/Model/TransientStore.swift | 255 +++ .../Core/Sources/Model/TrustPolicy.swift | 32 + .../Core/Sources/Model/TrustedNetworks.swift | 41 + .../Services/Infrastructure+Metadata.swift | 57 + .../Services/Infrastructure+Name.swift | 53 + .../Sources/Services/Infrastructure.swift | 124 ++ .../Services/InfrastructureFactory.swift | 362 ++++ .../Services/InfrastructurePreset.swift | 236 +++ Passepartout/Core/Sources/Services/Pool.swift | 179 ++ .../Core/Sources/Services/PoolGroup.swift | 92 + .../Core/Sources/Services/WebServices.swift | 97 + .../Core/Sources/UI/TrustedNetworksUI.swift | 219 +++ Passepartout/Core/Sources/Utils.swift | 200 ++ Passepartout/Tests/ConnectionService.json | 1 + .../Tests/ConnectionServiceTests.swift | 64 + .../Tests}/Info.plist | 4 +- Passepartout/Tests/InfrastructureTests.swift | 113 ++ Passepartout/Tests/UtilsTests.swift | 69 + .../Tunnel}/Info.plist | 10 +- .../Tunnel}/PacketTunnelProvider.swift | 5 +- .../Tunnel/Tunnel-iOS.entitlements | 0 Passepartout/Tunnel/Tunnel-macOS.entitlements | 18 + Podfile | 44 +- Podfile.lock | 13 +- Submodules/fastlane-ci-templates | 2 +- fastlane/Appfile | 5 - fastlane/Deliverfile | 8 - fastlane/Fastfile | 1 - fastlane/Gymfile | 1 - fastlane/Matchfile | 9 - fastlane/Pluginfile | 5 - fastlane/Precheckfile | 29 - fastlane/metadata/app_icon.jpg | Bin 16745 -> 0 bytes fastlane/metadata/copyright.txt | 1 - .../de-DE/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/de-DE/description.txt | 47 - fastlane/metadata/de-DE/keywords.txt | 1 - fastlane/metadata/de-DE/marketing_url.txt | 1 - fastlane/metadata/de-DE/name.txt | 1 - fastlane/metadata/de-DE/privacy_url.txt | 1 - fastlane/metadata/de-DE/promotional_text.txt | 1 - fastlane/metadata/de-DE/release_notes.txt | 5 - fastlane/metadata/de-DE/subtitle.txt | 1 - fastlane/metadata/de-DE/support_url.txt | 1 - .../metadata/el/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/el/description.txt | 47 - fastlane/metadata/el/keywords.txt | 1 - fastlane/metadata/el/marketing_url.txt | 1 - fastlane/metadata/el/name.txt | 1 - fastlane/metadata/el/privacy_url.txt | 1 - fastlane/metadata/el/promotional_text.txt | 1 - fastlane/metadata/el/release_notes.txt | 5 - fastlane/metadata/el/subtitle.txt | 1 - fastlane/metadata/el/support_url.txt | 1 - .../en-US/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/en-US/description.txt | 47 - fastlane/metadata/en-US/keywords.txt | 1 - fastlane/metadata/en-US/marketing_url.txt | 1 - fastlane/metadata/en-US/name.txt | 1 - fastlane/metadata/en-US/privacy_url.txt | 1 - fastlane/metadata/en-US/promotional_text.txt | 1 - fastlane/metadata/en-US/release_notes.txt | 5 - fastlane/metadata/en-US/subtitle.txt | 1 - fastlane/metadata/en-US/support_url.txt | 1 - .../es-MX/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/es-MX/description.txt | 47 - fastlane/metadata/es-MX/keywords.txt | 1 - fastlane/metadata/es-MX/marketing_url.txt | 1 - fastlane/metadata/es-MX/name.txt | 1 - fastlane/metadata/es-MX/privacy_url.txt | 1 - fastlane/metadata/es-MX/promotional_text.txt | 1 - fastlane/metadata/es-MX/release_notes.txt | 5 - fastlane/metadata/es-MX/subtitle.txt | 1 - fastlane/metadata/es-MX/support_url.txt | 1 - .../fr-FR/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/fr-FR/description.txt | 47 - fastlane/metadata/fr-FR/keywords.txt | 1 - fastlane/metadata/fr-FR/marketing_url.txt | 1 - fastlane/metadata/fr-FR/name.txt | 1 - fastlane/metadata/fr-FR/privacy_url.txt | 1 - fastlane/metadata/fr-FR/promotional_text.txt | 1 - fastlane/metadata/fr-FR/release_notes.txt | 5 - fastlane/metadata/fr-FR/subtitle.txt | 1 - fastlane/metadata/fr-FR/support_url.txt | 1 - .../metadata/it/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/it/description.txt | 47 - fastlane/metadata/it/keywords.txt | 1 - fastlane/metadata/it/marketing_url.txt | 1 - fastlane/metadata/it/name.txt | 1 - fastlane/metadata/it/privacy_url.txt | 1 - fastlane/metadata/it/promotional_text.txt | 1 - fastlane/metadata/it/release_notes.txt | 5 - fastlane/metadata/it/subtitle.txt | 1 - fastlane/metadata/it/support_url.txt | 1 - .../nl-NL/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/nl-NL/description.txt | 46 - fastlane/metadata/nl-NL/keywords.txt | 1 - fastlane/metadata/nl-NL/marketing_url.txt | 1 - fastlane/metadata/nl-NL/name.txt | 1 - fastlane/metadata/nl-NL/privacy_url.txt | 1 - fastlane/metadata/nl-NL/promotional_text.txt | 1 - fastlane/metadata/nl-NL/release_notes.txt | 5 - fastlane/metadata/nl-NL/subtitle.txt | 1 - fastlane/metadata/nl-NL/support_url.txt | 1 - .../metadata/pl/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/pl/description.txt | 47 - fastlane/metadata/pl/keywords.txt | 1 - fastlane/metadata/pl/marketing_url.txt | 1 - fastlane/metadata/pl/name.txt | 1 - fastlane/metadata/pl/privacy_url.txt | 1 - fastlane/metadata/pl/promotional_text.txt | 1 - fastlane/metadata/pl/release_notes.txt | 5 - fastlane/metadata/pl/subtitle.txt | 1 - fastlane/metadata/pl/support_url.txt | 1 - fastlane/metadata/primary_category.txt | 1 - .../metadata/primary_first_sub_category.txt | 1 - .../metadata/primary_second_sub_category.txt | 1 - .../pt-BR/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/pt-BR/description.txt | 47 - fastlane/metadata/pt-BR/keywords.txt | 1 - fastlane/metadata/pt-BR/marketing_url.txt | 1 - fastlane/metadata/pt-BR/name.txt | 1 - fastlane/metadata/pt-BR/privacy_url.txt | 1 - fastlane/metadata/pt-BR/promotional_text.txt | 1 - fastlane/metadata/pt-BR/release_notes.txt | 5 - fastlane/metadata/pt-BR/subtitle.txt | 1 - fastlane/metadata/pt-BR/support_url.txt | 1 - .../metadata/ru/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/ru/description.txt | 47 - fastlane/metadata/ru/keywords.txt | 1 - fastlane/metadata/ru/marketing_url.txt | 1 - fastlane/metadata/ru/name.txt | 1 - fastlane/metadata/ru/privacy_url.txt | 1 - fastlane/metadata/ru/promotional_text.txt | 1 - fastlane/metadata/ru/release_notes.txt | 5 - fastlane/metadata/ru/subtitle.txt | 1 - fastlane/metadata/ru/support_url.txt | 1 - fastlane/metadata/secondary_category.txt | 1 - .../metadata/secondary_first_sub_category.txt | 1 - .../secondary_second_sub_category.txt | 1 - .../metadata/sv/apple_tv_privacy_policy.txt | 1 - fastlane/metadata/sv/description.txt | 47 - fastlane/metadata/sv/keywords.txt | 1 - fastlane/metadata/sv/marketing_url.txt | 1 - fastlane/metadata/sv/name.txt | 1 - fastlane/metadata/sv/privacy_url.txt | 1 - fastlane/metadata/sv/promotional_text.txt | 1 - fastlane/metadata/sv/release_notes.txt | 5 - fastlane/metadata/sv/subtitle.txt | 1 - fastlane/metadata/sv/support_url.txt | 1 - fastlane/screenshots/en-US/ipad-01.png | Bin 381188 -> 0 bytes fastlane/screenshots/en-US/ipad-02.png | Bin 316107 -> 0 bytes fastlane/screenshots/en-US/ipad-03.png | Bin 305262 -> 0 bytes fastlane/screenshots/en-US/ipad-04.png | Bin 232920 -> 0 bytes fastlane/screenshots/en-US/ipad-05.png | Bin 225305 -> 0 bytes fastlane/screenshots/en-US/iphone55-01.png | Bin 165776 -> 0 bytes fastlane/screenshots/en-US/iphone55-02.png | Bin 191843 -> 0 bytes fastlane/screenshots/en-US/iphone55-03.png | Bin 85368 -> 0 bytes fastlane/screenshots/en-US/iphone55-04.png | Bin 118259 -> 0 bytes fastlane/screenshots/en-US/iphone55-05.png | Bin 117392 -> 0 bytes fastlane/screenshots/en-US/iphone65-01.png | Bin 166597 -> 0 bytes fastlane/screenshots/en-US/iphone65-02.png | Bin 243465 -> 0 bytes fastlane/screenshots/en-US/iphone65-03.png | Bin 107903 -> 0 bytes fastlane/screenshots/en-US/iphone65-04.png | Bin 150812 -> 0 bytes fastlane/screenshots/en-US/iphone65-05.png | Bin 150201 -> 0 bytes scripts/export-for-translations.sh | 34 +- scripts/list-untranslated.sh | 31 +- scripts/push-release.sh | 7 +- scripts/reset-archive.sh | 4 +- swiftgen.yml | 29 - 2019 files changed, 29554 insertions(+), 1087 deletions(-) delete mode 100644 .env delete mode 100644 .env.beta-archive delete mode 100644 .env.beta-deploy delete mode 100644 .env.dev-archive delete mode 100644 .env.dev-deploy delete mode 100644 .env.template.secret-codesign delete mode 100644 .env.template.secret-deploy create mode 100644 .travis.yml rename Passepartout-iOS/Config.xcconfig => Config.xcconfig (74%) delete mode 120000 Libraries/API delete mode 120000 Libraries/Core delete mode 100644 Passepartout-iOS/Scenes/About/CreditsViewController.swift create mode 100644 Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-macOS.xcscheme rename Passepartout.xcodeproj/xcshareddata/xcschemes/{Passepartout-Core.xcscheme => PassepartoutCore-iOS.xcscheme} (98%) create mode 100644 Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCore-macOS.xcscheme create mode 100644 Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCoreTests-iOS.xcscheme create mode 100644 Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCoreTests-macOS.xcscheme rename Passepartout-iOS/Passepartout.entitlements => Passepartout/App/iOS/App.entitlements (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/AppDelegate.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/AppIcon.appiconset/AppIcon-120.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/AppIcon.appiconset/AppIcon-152.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/AppIcon.appiconset/AppIcon-167.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/AppIcon.appiconset/AppIcon-180.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/AppIcon.appiconset/AppIcon-76.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/logo.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/logo.imageset/logo@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Assets.xcassets/logo.imageset/logo@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Base.lproj/About.storyboard (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Base.lproj/LaunchScreen.storyboard (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Base.lproj/Main.storyboard (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Base.lproj/Organizer.storyboard (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Base.lproj/Purchase.storyboard (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Base.lproj/Shortcuts.storyboard (100%) rename CHANGELOG.md => Passepartout/App/iOS/CHANGELOG.md (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Cells/ActivityTableViewCell.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Cells/Cells.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Cells/DestructiveTableViewCell.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Cells/FieldTableViewCell.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Cells/SettingTableViewCell.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Cells/ToggleTableViewCell.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ad.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ad.imageset/ad@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ad.imageset/ad@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ae.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ae.imageset/ae@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ae.imageset/ae@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/af.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/af.imageset/af@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/af.imageset/af@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ag.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ag.imageset/ag@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ag.imageset/ag@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ai.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ai.imageset/ai@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ai.imageset/ai@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/al.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/al.imageset/al@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/al.imageset/al@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/am.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/am.imageset/am@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/am.imageset/am@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ao.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ao.imageset/ao@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ao.imageset/ao@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/aq.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/aq.imageset/aq@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/aq.imageset/aq@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ar.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ar.imageset/ar@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ar.imageset/ar@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/as.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/as.imageset/as@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/as.imageset/as@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/at.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/at.imageset/at@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/at.imageset/at@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/au.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/au.imageset/au@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/au.imageset/au@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/aw.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/aw.imageset/aw@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/aw.imageset/aw@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ax.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ax.imageset/ax@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ax.imageset/ax@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/az.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/az.imageset/az@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/az.imageset/az@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ba.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ba.imageset/ba@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ba.imageset/ba@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bb.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bb.imageset/bb@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bb.imageset/bb@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bd.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bd.imageset/bd@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bd.imageset/bd@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/be.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/be.imageset/be@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/be.imageset/be@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bf.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bf.imageset/bf@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bf.imageset/bf@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bg.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bg.imageset/bg@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bg.imageset/bg@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bh.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bh.imageset/bh@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bh.imageset/bh@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bi.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bi.imageset/bi@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bi.imageset/bi@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bj.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bj.imageset/bj@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bj.imageset/bj@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bl.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bl.imageset/bl@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bl.imageset/bl@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bm.imageset/bm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bm.imageset/bm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bn.imageset/bn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bn.imageset/bn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bo.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bo.imageset/bo@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bo.imageset/bo@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bq.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bq.imageset/bq@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bq.imageset/bq@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/br.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/br.imageset/br@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/br.imageset/br@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bs.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bs.imageset/bs@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bs.imageset/bs@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bt.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bt.imageset/bt@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bt.imageset/bt@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bv.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bv.imageset/bv@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bv.imageset/bv@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bw.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bw.imageset/bw@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bw.imageset/bw@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/by.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/by.imageset/by@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/by.imageset/by@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bz.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bz.imageset/bz@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/bz.imageset/bz@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ca.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ca.imageset/ca@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ca.imageset/ca@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cc.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cc.imageset/cc@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cc.imageset/cc@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cd.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cd.imageset/cd@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cd.imageset/cd@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cf.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cf.imageset/cf@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cf.imageset/cf@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cg.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cg.imageset/cg@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cg.imageset/cg@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ch.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ch.imageset/ch@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ch.imageset/ch@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ci.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ci.imageset/ci@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ci.imageset/ci@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ck.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ck.imageset/ck@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ck.imageset/ck@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cl.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cl.imageset/cl@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cl.imageset/cl@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cm.imageset/cm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cm.imageset/cm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cn.imageset/cn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cn.imageset/cn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/co.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/co.imageset/co@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/co.imageset/co@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cr.imageset/cr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cr.imageset/cr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cu.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cu.imageset/cu@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cu.imageset/cu@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cv.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cv.imageset/cv@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cv.imageset/cv@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cw.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cw.imageset/cw@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cw.imageset/cw@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cx.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cx.imageset/cx@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cx.imageset/cx@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cy.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cy.imageset/cy@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cy.imageset/cy@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cz.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cz.imageset/cz@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/cz.imageset/cz@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/de.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/de.imageset/de@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/de.imageset/de@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dj.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dj.imageset/dj@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dj.imageset/dj@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dk.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dk.imageset/dk@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dk.imageset/dk@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dm.imageset/dm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dm.imageset/dm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/do.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/do.imageset/do@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/do.imageset/do@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dz.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dz.imageset/dz@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/dz.imageset/dz@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ec.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ec.imageset/ec@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ec.imageset/ec@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ee.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ee.imageset/ee@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ee.imageset/ee@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/eg.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/eg.imageset/eg@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/eg.imageset/eg@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/eh.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/eh.imageset/eh@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/eh.imageset/eh@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/er.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/er.imageset/er@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/er.imageset/er@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/es-ct.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/es-ct.imageset/es-ct@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/es-ct.imageset/es-ct@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/es.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/es.imageset/es@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/es.imageset/es@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/et.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/et.imageset/et@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/et.imageset/et@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/eu.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/eu.imageset/eu@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/eu.imageset/eu@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fi.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fi.imageset/fi@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fi.imageset/fi@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fj.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fj.imageset/fj@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fj.imageset/fj@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fk.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fk.imageset/fk@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fk.imageset/fk@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fm.imageset/fm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fm.imageset/fm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fo.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fo.imageset/fo@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fo.imageset/fo@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fr.imageset/fr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/fr.imageset/fr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ga.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ga.imageset/ga@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ga.imageset/ga@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-eng.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-eng.imageset/gb-eng@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-eng.imageset/gb-eng@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-nir.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-nir.imageset/gb-nir@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-nir.imageset/gb-nir@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-sct.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-sct.imageset/gb-sct@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-sct.imageset/gb-sct@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-wls.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-wls.imageset/gb-wls@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb-wls.imageset/gb-wls@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb.imageset/gb@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gb.imageset/gb@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gd.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gd.imageset/gd@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gd.imageset/gd@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ge.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ge.imageset/ge@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ge.imageset/ge@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gf.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gf.imageset/gf@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gf.imageset/gf@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gg.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gg.imageset/gg@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gg.imageset/gg@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gh.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gh.imageset/gh@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gh.imageset/gh@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gi.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gi.imageset/gi@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gi.imageset/gi@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gl.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gl.imageset/gl@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gl.imageset/gl@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gm.imageset/gm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gm.imageset/gm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gn.imageset/gn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gn.imageset/gn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gp.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gp.imageset/gp@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gp.imageset/gp@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gq.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gq.imageset/gq@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gq.imageset/gq@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gr.imageset/gr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gr.imageset/gr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gs.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gs.imageset/gs@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gs.imageset/gs@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gt.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gt.imageset/gt@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gt.imageset/gt@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gu.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gu.imageset/gu@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gu.imageset/gu@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gw.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gw.imageset/gw@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gw.imageset/gw@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gy.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gy.imageset/gy@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/gy.imageset/gy@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hk.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hk.imageset/hk@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hk.imageset/hk@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hm.imageset/hm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hm.imageset/hm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hn.imageset/hn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hn.imageset/hn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hr.imageset/hr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hr.imageset/hr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ht.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ht.imageset/ht@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ht.imageset/ht@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hu.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hu.imageset/hu@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/hu.imageset/hu@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/id.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/id.imageset/id@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/id.imageset/id@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ie.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ie.imageset/ie@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ie.imageset/ie@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/il.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/il.imageset/il@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/il.imageset/il@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/im.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/im.imageset/im@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/im.imageset/im@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/in.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/in.imageset/in@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/in.imageset/in@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/io.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/io.imageset/io@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/io.imageset/io@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/iq.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/iq.imageset/iq@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/iq.imageset/iq@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ir.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ir.imageset/ir@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ir.imageset/ir@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/is.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/is.imageset/is@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/is.imageset/is@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/it.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/it.imageset/it@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/it.imageset/it@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/je.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/je.imageset/je@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/je.imageset/je@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/jm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/jm.imageset/jm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/jm.imageset/jm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/jo.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/jo.imageset/jo@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/jo.imageset/jo@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/jp.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/jp.imageset/jp@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/jp.imageset/jp@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ke.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ke.imageset/ke@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ke.imageset/ke@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kg.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kg.imageset/kg@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kg.imageset/kg@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kh.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kh.imageset/kh@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kh.imageset/kh@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ki.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ki.imageset/ki@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ki.imageset/ki@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/km.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/km.imageset/km@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/km.imageset/km@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kn.imageset/kn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kn.imageset/kn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kp.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kp.imageset/kp@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kp.imageset/kp@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kr.imageset/kr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kr.imageset/kr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kw.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kw.imageset/kw@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kw.imageset/kw@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ky.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ky.imageset/ky@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ky.imageset/ky@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kz.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kz.imageset/kz@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/kz.imageset/kz@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/la.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/la.imageset/la@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/la.imageset/la@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lb.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lb.imageset/lb@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lb.imageset/lb@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lc.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lc.imageset/lc@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lc.imageset/lc@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/li.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/li.imageset/li@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/li.imageset/li@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lk.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lk.imageset/lk@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lk.imageset/lk@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lr.imageset/lr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lr.imageset/lr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ls.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ls.imageset/ls@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ls.imageset/ls@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lt.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lt.imageset/lt@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lt.imageset/lt@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lu.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lu.imageset/lu@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lu.imageset/lu@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lv.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lv.imageset/lv@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/lv.imageset/lv@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ly.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ly.imageset/ly@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ly.imageset/ly@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ma.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ma.imageset/ma@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ma.imageset/ma@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mc.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mc.imageset/mc@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mc.imageset/mc@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/md.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/md.imageset/md@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/md.imageset/md@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/me.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/me.imageset/me@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/me.imageset/me@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mf.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mf.imageset/mf@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mf.imageset/mf@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mg.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mg.imageset/mg@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mg.imageset/mg@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mh.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mh.imageset/mh@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mh.imageset/mh@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mk.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mk.imageset/mk@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mk.imageset/mk@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ml.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ml.imageset/ml@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ml.imageset/ml@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mm.imageset/mm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mm.imageset/mm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mn.imageset/mn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mn.imageset/mn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mo.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mo.imageset/mo@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mo.imageset/mo@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mp.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mp.imageset/mp@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mp.imageset/mp@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mq.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mq.imageset/mq@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mq.imageset/mq@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mr.imageset/mr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mr.imageset/mr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ms.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ms.imageset/ms@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ms.imageset/ms@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mt.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mt.imageset/mt@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mt.imageset/mt@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mu.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mu.imageset/mu@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mu.imageset/mu@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mv.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mv.imageset/mv@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mv.imageset/mv@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mw.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mw.imageset/mw@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mw.imageset/mw@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mx.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mx.imageset/mx@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mx.imageset/mx@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/my.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/my.imageset/my@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/my.imageset/my@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mz.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mz.imageset/mz@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/mz.imageset/mz@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/na.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/na.imageset/na@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/na.imageset/na@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nc.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nc.imageset/nc@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nc.imageset/nc@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ne.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ne.imageset/ne@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ne.imageset/ne@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nf.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nf.imageset/nf@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nf.imageset/nf@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ng.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ng.imageset/ng@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ng.imageset/ng@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ni.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ni.imageset/ni@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ni.imageset/ni@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nl.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nl.imageset/nl@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nl.imageset/nl@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/no.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/no.imageset/no@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/no.imageset/no@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/np.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/np.imageset/np@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/np.imageset/np@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nr.imageset/nr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nr.imageset/nr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nu.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nu.imageset/nu@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nu.imageset/nu@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nz.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nz.imageset/nz@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/nz.imageset/nz@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/om.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/om.imageset/om@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/om.imageset/om@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pa.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pa.imageset/pa@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pa.imageset/pa@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pe.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pe.imageset/pe@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pe.imageset/pe@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pf.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pf.imageset/pf@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pf.imageset/pf@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pg.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pg.imageset/pg@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pg.imageset/pg@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ph.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ph.imageset/ph@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ph.imageset/ph@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pk.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pk.imageset/pk@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pk.imageset/pk@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pl.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pl.imageset/pl@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pl.imageset/pl@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pm.imageset/pm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pm.imageset/pm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pn.imageset/pn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pn.imageset/pn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pr.imageset/pr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pr.imageset/pr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ps.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ps.imageset/ps@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ps.imageset/ps@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pt.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pt.imageset/pt@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pt.imageset/pt@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pw.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pw.imageset/pw@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/pw.imageset/pw@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/py.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/py.imageset/py@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/py.imageset/py@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/qa.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/qa.imageset/qa@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/qa.imageset/qa@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/re.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/re.imageset/re@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/re.imageset/re@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ro.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ro.imageset/ro@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ro.imageset/ro@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/rs.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/rs.imageset/rs@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/rs.imageset/rs@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ru.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ru.imageset/ru@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ru.imageset/ru@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/rw.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/rw.imageset/rw@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/rw.imageset/rw@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sa.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sa.imageset/sa@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sa.imageset/sa@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sb.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sb.imageset/sb@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sb.imageset/sb@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sc.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sc.imageset/sc@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sc.imageset/sc@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sd.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sd.imageset/sd@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sd.imageset/sd@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/se.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/se.imageset/se@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/se.imageset/se@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sg.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sg.imageset/sg@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sg.imageset/sg@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sh.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sh.imageset/sh@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sh.imageset/sh@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/si.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/si.imageset/si@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/si.imageset/si@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sj.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sj.imageset/sj@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sj.imageset/sj@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sk.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sk.imageset/sk@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sk.imageset/sk@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sl.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sl.imageset/sl@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sl.imageset/sl@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sm.imageset/sm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sm.imageset/sm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sn.imageset/sn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sn.imageset/sn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/so.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/so.imageset/so@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/so.imageset/so@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sr.imageset/sr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sr.imageset/sr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ss.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ss.imageset/ss@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ss.imageset/ss@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/st.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/st.imageset/st@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/st.imageset/st@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sv.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sv.imageset/sv@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sv.imageset/sv@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sx.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sx.imageset/sx@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sx.imageset/sx@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sy.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sy.imageset/sy@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sy.imageset/sy@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sz.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sz.imageset/sz@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/sz.imageset/sz@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tc.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tc.imageset/tc@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tc.imageset/tc@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/td.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/td.imageset/td@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/td.imageset/td@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tf.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tf.imageset/tf@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tf.imageset/tf@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tg.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tg.imageset/tg@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tg.imageset/tg@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/th.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/th.imageset/th@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/th.imageset/th@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tj.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tj.imageset/tj@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tj.imageset/tj@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tk.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tk.imageset/tk@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tk.imageset/tk@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tl.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tl.imageset/tl@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tl.imageset/tl@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tm.imageset/tm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tm.imageset/tm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tn.imageset/tn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tn.imageset/tn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/to.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/to.imageset/to@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/to.imageset/to@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tr.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tr.imageset/tr@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tr.imageset/tr@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tt.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tt.imageset/tt@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tt.imageset/tt@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tv.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tv.imageset/tv@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tv.imageset/tv@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tw.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tw.imageset/tw@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tw.imageset/tw@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tz.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tz.imageset/tz@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/tz.imageset/tz@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ua.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ua.imageset/ua@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ua.imageset/ua@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ug.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ug.imageset/ug@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ug.imageset/ug@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/um.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/um.imageset/um@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/um.imageset/um@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/un.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/un.imageset/un@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/un.imageset/un@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/us.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/us.imageset/us@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/us.imageset/us@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/uy.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/uy.imageset/uy@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/uy.imageset/uy@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/uz.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/uz.imageset/uz@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/uz.imageset/uz@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/va.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/va.imageset/va@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/va.imageset/va@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vc.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vc.imageset/vc@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vc.imageset/vc@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ve.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ve.imageset/ve@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ve.imageset/ve@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vg.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vg.imageset/vg@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vg.imageset/vg@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vi.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vi.imageset/vi@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vi.imageset/vi@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vn.imageset/vn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vn.imageset/vn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vu.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vu.imageset/vu@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/vu.imageset/vu@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/wf.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/wf.imageset/wf@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/wf.imageset/wf@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ws.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ws.imageset/ws@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ws.imageset/ws@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/xk.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/xk.imageset/xk@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/xk.imageset/xk@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ye.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ye.imageset/ye@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/ye.imageset/ye@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/yt.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/yt.imageset/yt@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/yt.imageset/yt@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/za.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/za.imageset/za@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/za.imageset/za@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/zm.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/zm.imageset/zm@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/zm.imageset/zm@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/zw.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/zw.imageset/zw@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Flags.xcassets/zw.imageset/zw@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/AppConstants+App.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/HostImporter.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/IssueReporter.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/Macros.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/ProductManager+App.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/SwiftGen+Assets.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/SwiftGen+Scenes.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/SwiftGen+Segues.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/SwiftGen+Strings.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/Theme+Cells.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/Theme+Titles.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/Theme.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Global/UITextView+Search.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Info.plist (93%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/csv.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/csv.imageset/csv@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/csv.imageset/csv@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/hideme.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/hideme.imageset/hideme@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/hideme.imageset/hideme@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/mullvad.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/mullvad.imageset/mullvad@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/mullvad.imageset/mullvad@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/nordvpn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/nordvpn.imageset/nordvpn-dark@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/nordvpn.imageset/nordvpn-dark@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/nordvpn.imageset/nordvpn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/nordvpn.imageset/nordvpn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/pia.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/pia.imageset/pia@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/pia.imageset/pia@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/placeholder.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/placeholder.imageset/placeholder@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/placeholder.imageset/placeholder@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/protonvpn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/protonvpn.imageset/protonvpn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/protonvpn.imageset/protonvpn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/torguard.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/torguard.imageset/torguard@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/torguard.imageset/torguard@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/tunnelbear.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/tunnelbear.imageset/tunnelbear@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/tunnelbear.imageset/tunnelbear@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/vyprvpn.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/vyprvpn.imageset/vyprvpn@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/vyprvpn.imageset/vyprvpn@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/windscribe.imageset/Contents.json (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/windscribe.imageset/windscribe@2x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Providers.xcassets/windscribe.imageset/windscribe@3x.png (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/About/AboutViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/AccountViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/ConfigurationModificationDelegate.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/ConfigurationViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/DebugLogViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/EndpointViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/NetworkSettingsViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/Organizer/DonationViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/Organizer/ImportedHostsViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/Organizer/OrganizerViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/Organizer/WizardHostViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/Organizer/WizardProviderViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/ProviderPoolViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/ProviderPresetViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/Purchase/PurchaseTableViewCell.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/Purchase/PurchaseViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/ServerNetworkViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/ServiceViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/Shortcuts/ShortcutsAddViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/Shortcuts/ShortcutsConnectToViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Scenes/Shortcuts/ShortcutsViewController.swift (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Settings.bundle/Root.plist (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/Settings.bundle/en.lproj/Root.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/de.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/de.lproj/InfoPlist.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/el.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/el.lproj/InfoPlist.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/en.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/en.lproj/InfoPlist.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/es.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/es.lproj/InfoPlist.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/fr.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/fr.lproj/InfoPlist.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/it.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/it.lproj/InfoPlist.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/nl.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/nl.lproj/InfoPlist.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/pl.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/pl.lproj/InfoPlist.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/pt.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/pt.lproj/InfoPlist.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/ru.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/ru.lproj/InfoPlist.strings (100%) rename {Passepartout-iOS/Global => Passepartout/App/iOS}/sv.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/sv.lproj/InfoPlist.strings (100%) create mode 100644 Passepartout/App/iOS/swiftgen.yml rename {Passepartout-iOS/Global => Passepartout/App/iOS}/zh-Hans.lproj/App.strings (100%) rename {Passepartout-iOS => Passepartout/App/iOS}/zh-Hans.lproj/InfoPlist.strings (100%) create mode 100644 Passepartout/App/macOS/App.entitlements create mode 100644 Passepartout/App/macOS/AppDelegate.swift create mode 100644 Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png create mode 100644 Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-256.png create mode 100644 Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png create mode 100644 Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-512.png create mode 100644 Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-64.png create mode 100644 Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Passepartout/App/macOS/Assets.xcassets/Contents.json create mode 100644 Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage-dark@2x.png create mode 100644 Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage-dark@3x.png create mode 100644 Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage@2x.png create mode 100644 Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage@3x.png create mode 100644 Passepartout/App/macOS/Base.lproj/Main.storyboard create mode 100644 Passepartout/App/macOS/Base.lproj/Preferences.storyboard create mode 100644 Passepartout/App/macOS/Base.lproj/Service.storyboard create mode 100644 Passepartout/App/macOS/CHANGELOG.md create mode 100644 Passepartout/App/macOS/Flags.xcassets/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ad.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ad.imageset/ad@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ad.imageset/ad@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ae.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ae.imageset/ae@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ae.imageset/ae@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/af.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/af.imageset/af@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/af.imageset/af@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ag.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ag.imageset/ag@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ag.imageset/ag@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ai.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ai.imageset/ai@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ai.imageset/ai@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/al.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/al.imageset/al@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/al.imageset/al@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/am.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/am.imageset/am@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/am.imageset/am@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ao.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ao.imageset/ao@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ao.imageset/ao@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/aq.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/aq.imageset/aq@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/aq.imageset/aq@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ar.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ar.imageset/ar@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ar.imageset/ar@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/as.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/as.imageset/as@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/as.imageset/as@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/at.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/at.imageset/at@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/at.imageset/at@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/au.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/au.imageset/au@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/au.imageset/au@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/aw.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/aw.imageset/aw@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/aw.imageset/aw@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ax.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ax.imageset/ax@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ax.imageset/ax@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/az.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/az.imageset/az@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/az.imageset/az@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ba.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ba.imageset/ba@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ba.imageset/ba@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bb.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bb.imageset/bb@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bb.imageset/bb@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bd.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bd.imageset/bd@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bd.imageset/bd@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/be.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/be.imageset/be@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/be.imageset/be@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bf.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bf.imageset/bf@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bf.imageset/bf@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bg.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bg.imageset/bg@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bg.imageset/bg@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bh.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bh.imageset/bh@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bh.imageset/bh@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bi.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bi.imageset/bi@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bi.imageset/bi@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bj.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bj.imageset/bj@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bj.imageset/bj@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bl.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bl.imageset/bl@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bl.imageset/bl@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bm.imageset/bm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bm.imageset/bm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bn.imageset/bn@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bn.imageset/bn@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bo.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bo.imageset/bo@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bo.imageset/bo@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bq.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bq.imageset/bq@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bq.imageset/bq@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/br.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/br.imageset/br@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/br.imageset/br@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bs.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bs.imageset/bs@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bs.imageset/bs@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bt.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bt.imageset/bt@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bt.imageset/bt@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bv.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bv.imageset/bv@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bv.imageset/bv@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bw.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bw.imageset/bw@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bw.imageset/bw@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/by.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/by.imageset/by@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/by.imageset/by@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bz.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/bz.imageset/bz@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/bz.imageset/bz@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ca.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ca.imageset/ca@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ca.imageset/ca@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cc.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cc.imageset/cc@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cc.imageset/cc@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cd.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cd.imageset/cd@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cd.imageset/cd@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cf.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cf.imageset/cf@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cf.imageset/cf@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cg.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cg.imageset/cg@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cg.imageset/cg@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ch.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ch.imageset/ch@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ch.imageset/ch@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ci.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ci.imageset/ci@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ci.imageset/ci@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ck.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ck.imageset/ck@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ck.imageset/ck@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cl.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cl.imageset/cl@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cl.imageset/cl@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cm.imageset/cm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cm.imageset/cm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cn.imageset/cn@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cn.imageset/cn@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/co.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/co.imageset/co@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/co.imageset/co@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cr.imageset/cr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cr.imageset/cr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cu.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cu.imageset/cu@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cu.imageset/cu@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cv.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cv.imageset/cv@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cv.imageset/cv@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cw.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cw.imageset/cw@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cw.imageset/cw@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cx.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cx.imageset/cx@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cx.imageset/cx@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cy.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cy.imageset/cy@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cy.imageset/cy@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cz.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/cz.imageset/cz@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/cz.imageset/cz@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/de.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/de.imageset/de@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/de.imageset/de@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/dj.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/dj.imageset/dj@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/dj.imageset/dj@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/dk.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/dk.imageset/dk@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/dk.imageset/dk@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/dm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/dm.imageset/dm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/dm.imageset/dm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/do.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/do.imageset/do@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/do.imageset/do@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/dz.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/dz.imageset/dz@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/dz.imageset/dz@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ec.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ec.imageset/ec@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ec.imageset/ec@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ee.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ee.imageset/ee@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ee.imageset/ee@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/eg.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/eg.imageset/eg@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/eg.imageset/eg@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/eh.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/eh.imageset/eh@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/eh.imageset/eh@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/er.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/er.imageset/er@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/er.imageset/er@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/es-ct.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/es-ct.imageset/es-ct@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/es-ct.imageset/es-ct@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/es.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/es.imageset/es@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/es.imageset/es@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/et.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/et.imageset/et@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/et.imageset/et@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/eu.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/eu.imageset/eu@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/eu.imageset/eu@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fi.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/fi.imageset/fi@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fi.imageset/fi@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fj.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/fj.imageset/fj@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fj.imageset/fj@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fk.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/fk.imageset/fk@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fk.imageset/fk@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/fm.imageset/fm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fm.imageset/fm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fo.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/fo.imageset/fo@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fo.imageset/fo@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/fr.imageset/fr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/fr.imageset/fr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ga.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ga.imageset/ga@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ga.imageset/ga@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-eng.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-eng.imageset/gb-eng@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-eng.imageset/gb-eng@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-nir.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-nir.imageset/gb-nir@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-nir.imageset/gb-nir@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-sct.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-sct.imageset/gb-sct@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-sct.imageset/gb-sct@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-wls.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-wls.imageset/gb-wls@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb-wls.imageset/gb-wls@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb.imageset/gb@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gb.imageset/gb@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gd.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gd.imageset/gd@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gd.imageset/gd@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ge.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ge.imageset/ge@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ge.imageset/ge@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gf.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gf.imageset/gf@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gf.imageset/gf@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gg.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gg.imageset/gg@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gg.imageset/gg@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gh.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gh.imageset/gh@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gh.imageset/gh@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gi.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gi.imageset/gi@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gi.imageset/gi@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gl.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gl.imageset/gl@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gl.imageset/gl@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gm.imageset/gm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gm.imageset/gm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gn.imageset/gn@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gn.imageset/gn@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gp.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gp.imageset/gp@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gp.imageset/gp@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gq.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gq.imageset/gq@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gq.imageset/gq@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gr.imageset/gr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gr.imageset/gr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gs.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gs.imageset/gs@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gs.imageset/gs@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gt.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gt.imageset/gt@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gt.imageset/gt@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gu.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gu.imageset/gu@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gu.imageset/gu@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gw.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gw.imageset/gw@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gw.imageset/gw@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gy.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/gy.imageset/gy@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/gy.imageset/gy@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/hk.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/hk.imageset/hk@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/hk.imageset/hk@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/hm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/hm.imageset/hm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/hm.imageset/hm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/hn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/hn.imageset/hn@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/hn.imageset/hn@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/hr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/hr.imageset/hr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/hr.imageset/hr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ht.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ht.imageset/ht@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ht.imageset/ht@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/hu.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/hu.imageset/hu@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/hu.imageset/hu@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/id.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/id.imageset/id@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/id.imageset/id@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ie.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ie.imageset/ie@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ie.imageset/ie@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/il.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/il.imageset/il@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/il.imageset/il@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/im.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/im.imageset/im@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/im.imageset/im@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/in.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/in.imageset/in@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/in.imageset/in@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/io.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/io.imageset/io@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/io.imageset/io@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/iq.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/iq.imageset/iq@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/iq.imageset/iq@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ir.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ir.imageset/ir@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ir.imageset/ir@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/is.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/is.imageset/is@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/is.imageset/is@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/it.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/it.imageset/it@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/it.imageset/it@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/je.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/je.imageset/je@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/je.imageset/je@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/jm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/jm.imageset/jm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/jm.imageset/jm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/jo.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/jo.imageset/jo@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/jo.imageset/jo@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/jp.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/jp.imageset/jp@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/jp.imageset/jp@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ke.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ke.imageset/ke@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ke.imageset/ke@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kg.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/kg.imageset/kg@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kg.imageset/kg@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kh.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/kh.imageset/kh@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kh.imageset/kh@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ki.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ki.imageset/ki@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ki.imageset/ki@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/km.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/km.imageset/km@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/km.imageset/km@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/kn.imageset/kn@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kn.imageset/kn@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kp.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/kp.imageset/kp@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kp.imageset/kp@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/kr.imageset/kr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kr.imageset/kr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kw.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/kw.imageset/kw@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kw.imageset/kw@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ky.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ky.imageset/ky@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ky.imageset/ky@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kz.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/kz.imageset/kz@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/kz.imageset/kz@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/la.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/la.imageset/la@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/la.imageset/la@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lb.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/lb.imageset/lb@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lb.imageset/lb@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lc.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/lc.imageset/lc@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lc.imageset/lc@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/li.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/li.imageset/li@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/li.imageset/li@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lk.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/lk.imageset/lk@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lk.imageset/lk@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/lr.imageset/lr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lr.imageset/lr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ls.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ls.imageset/ls@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ls.imageset/ls@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lt.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/lt.imageset/lt@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lt.imageset/lt@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lu.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/lu.imageset/lu@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lu.imageset/lu@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lv.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/lv.imageset/lv@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/lv.imageset/lv@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ly.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ly.imageset/ly@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ly.imageset/ly@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ma.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ma.imageset/ma@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ma.imageset/ma@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mc.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mc.imageset/mc@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mc.imageset/mc@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/md.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/md.imageset/md@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/md.imageset/md@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/me.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/me.imageset/me@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/me.imageset/me@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mf.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mf.imageset/mf@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mf.imageset/mf@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mg.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mg.imageset/mg@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mg.imageset/mg@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mh.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mh.imageset/mh@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mh.imageset/mh@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mk.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mk.imageset/mk@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mk.imageset/mk@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ml.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ml.imageset/ml@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ml.imageset/ml@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mm.imageset/mm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mm.imageset/mm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mn.imageset/mn@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mn.imageset/mn@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mo.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mo.imageset/mo@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mo.imageset/mo@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mp.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mp.imageset/mp@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mp.imageset/mp@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mq.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mq.imageset/mq@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mq.imageset/mq@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mr.imageset/mr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mr.imageset/mr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ms.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ms.imageset/ms@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ms.imageset/ms@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mt.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mt.imageset/mt@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mt.imageset/mt@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mu.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mu.imageset/mu@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mu.imageset/mu@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mv.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mv.imageset/mv@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mv.imageset/mv@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mw.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mw.imageset/mw@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mw.imageset/mw@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mx.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mx.imageset/mx@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mx.imageset/mx@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/my.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/my.imageset/my@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/my.imageset/my@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mz.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/mz.imageset/mz@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/mz.imageset/mz@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/na.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/na.imageset/na@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/na.imageset/na@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nc.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/nc.imageset/nc@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nc.imageset/nc@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ne.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ne.imageset/ne@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ne.imageset/ne@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nf.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/nf.imageset/nf@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nf.imageset/nf@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ng.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ng.imageset/ng@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ng.imageset/ng@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ni.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ni.imageset/ni@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ni.imageset/ni@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nl.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/nl.imageset/nl@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nl.imageset/nl@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/no.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/no.imageset/no@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/no.imageset/no@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/np.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/np.imageset/np@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/np.imageset/np@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/nr.imageset/nr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nr.imageset/nr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nu.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/nu.imageset/nu@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nu.imageset/nu@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nz.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/nz.imageset/nz@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/nz.imageset/nz@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/om.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/om.imageset/om@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/om.imageset/om@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pa.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pa.imageset/pa@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pa.imageset/pa@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pe.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pe.imageset/pe@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pe.imageset/pe@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pf.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pf.imageset/pf@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pf.imageset/pf@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pg.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pg.imageset/pg@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pg.imageset/pg@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ph.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ph.imageset/ph@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ph.imageset/ph@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pk.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pk.imageset/pk@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pk.imageset/pk@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pl.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pl.imageset/pl@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pl.imageset/pl@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pm.imageset/pm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pm.imageset/pm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pn.imageset/pn@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pn.imageset/pn@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pr.imageset/pr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pr.imageset/pr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ps.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ps.imageset/ps@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ps.imageset/ps@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pt.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pt.imageset/pt@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pt.imageset/pt@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pw.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/pw.imageset/pw@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/pw.imageset/pw@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/py.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/py.imageset/py@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/py.imageset/py@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/qa.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/qa.imageset/qa@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/qa.imageset/qa@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/re.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/re.imageset/re@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/re.imageset/re@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ro.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ro.imageset/ro@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ro.imageset/ro@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/rs.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/rs.imageset/rs@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/rs.imageset/rs@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ru.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ru.imageset/ru@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ru.imageset/ru@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/rw.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/rw.imageset/rw@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/rw.imageset/rw@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sa.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sa.imageset/sa@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sa.imageset/sa@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sb.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sb.imageset/sb@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sb.imageset/sb@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sc.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sc.imageset/sc@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sc.imageset/sc@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sd.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sd.imageset/sd@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sd.imageset/sd@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/se.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/se.imageset/se@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/se.imageset/se@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sg.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sg.imageset/sg@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sg.imageset/sg@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sh.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sh.imageset/sh@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sh.imageset/sh@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/si.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/si.imageset/si@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/si.imageset/si@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sj.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sj.imageset/sj@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sj.imageset/sj@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sk.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sk.imageset/sk@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sk.imageset/sk@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sl.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sl.imageset/sl@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sl.imageset/sl@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sm.imageset/sm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sm.imageset/sm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sn.imageset/sn@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sn.imageset/sn@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/so.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/so.imageset/so@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/so.imageset/so@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sr.imageset/sr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sr.imageset/sr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ss.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ss.imageset/ss@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ss.imageset/ss@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/st.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/st.imageset/st@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/st.imageset/st@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sv.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sv.imageset/sv@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sv.imageset/sv@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sx.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sx.imageset/sx@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sx.imageset/sx@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sy.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sy.imageset/sy@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sy.imageset/sy@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sz.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/sz.imageset/sz@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/sz.imageset/sz@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tc.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tc.imageset/tc@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tc.imageset/tc@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/td.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/td.imageset/td@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/td.imageset/td@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tf.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tf.imageset/tf@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tf.imageset/tf@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tg.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tg.imageset/tg@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tg.imageset/tg@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/th.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/th.imageset/th@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/th.imageset/th@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tj.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tj.imageset/tj@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tj.imageset/tj@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tk.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tk.imageset/tk@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tk.imageset/tk@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tl.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tl.imageset/tl@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tl.imageset/tl@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tm.imageset/tm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tm.imageset/tm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tn.imageset/tn@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tn.imageset/tn@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/to.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/to.imageset/to@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/to.imageset/to@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tr.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tr.imageset/tr@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tr.imageset/tr@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tt.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tt.imageset/tt@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tt.imageset/tt@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tv.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tv.imageset/tv@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tv.imageset/tv@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tw.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tw.imageset/tw@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tw.imageset/tw@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tz.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/tz.imageset/tz@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/tz.imageset/tz@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ua.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ua.imageset/ua@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ua.imageset/ua@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ug.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ug.imageset/ug@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ug.imageset/ug@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/um.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/um.imageset/um@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/um.imageset/um@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/un.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/un.imageset/un@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/un.imageset/un@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/us.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/us.imageset/us@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/us.imageset/us@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/uy.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/uy.imageset/uy@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/uy.imageset/uy@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/uz.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/uz.imageset/uz@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/uz.imageset/uz@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/va.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/va.imageset/va@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/va.imageset/va@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/vc.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/vc.imageset/vc@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/vc.imageset/vc@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ve.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ve.imageset/ve@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ve.imageset/ve@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/vg.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/vg.imageset/vg@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/vg.imageset/vg@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/vi.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/vi.imageset/vi@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/vi.imageset/vi@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/vn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/vn.imageset/vn@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/vn.imageset/vn@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/vu.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/vu.imageset/vu@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/vu.imageset/vu@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/wf.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/wf.imageset/wf@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/wf.imageset/wf@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ws.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ws.imageset/ws@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ws.imageset/ws@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/xk.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/xk.imageset/xk@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/xk.imageset/xk@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ye.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/ye.imageset/ye@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/ye.imageset/ye@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/yt.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/yt.imageset/yt@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/yt.imageset/yt@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/za.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/za.imageset/za@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/za.imageset/za@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/zm.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/zm.imageset/zm@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/zm.imageset/zm@3x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/zw.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Flags.xcassets/zw.imageset/zw@2x.png create mode 100644 Passepartout/App/macOS/Flags.xcassets/zw.imageset/zw@3x.png create mode 100644 Passepartout/App/macOS/Global/AppConstants+App.swift create mode 100644 Passepartout/App/macOS/Global/Credits.html create mode 100644 Passepartout/App/macOS/Global/Donation.swift create mode 100644 Passepartout/App/macOS/Global/HostImporter.swift create mode 100644 Passepartout/App/macOS/Global/IssueReporter.swift create mode 100644 Passepartout/App/macOS/Global/Macros.swift create mode 100644 Passepartout/App/macOS/Global/NSTextView+Search.swift create mode 100644 Passepartout/App/macOS/Global/ProductManager+App.swift create mode 100644 Passepartout/App/macOS/Global/SwiftGen+Assets.swift create mode 100644 Passepartout/App/macOS/Global/SwiftGen+Scenes.swift create mode 100644 Passepartout/App/macOS/Global/SwiftGen+Segues.swift create mode 100644 Passepartout/App/macOS/Global/SwiftGen+Strings.swift create mode 100644 Passepartout/App/macOS/Global/TextInputViewController.swift create mode 100644 Passepartout/App/macOS/Global/Theme+Views.swift create mode 100644 Passepartout/App/macOS/Global/Theme.swift create mode 100644 Passepartout/App/macOS/Global/WindowManager.swift create mode 100644 Passepartout/App/macOS/Info.plist create mode 100644 Passepartout/App/macOS/Launcher/AppDelegate.swift create mode 100644 Passepartout/App/macOS/Launcher/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Passepartout/App/macOS/Launcher/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Passepartout/App/macOS/Launcher/Assets.xcassets/Contents.json create mode 100644 Passepartout/App/macOS/Launcher/Base.lproj/Main.storyboard create mode 100644 Passepartout/App/macOS/Launcher/Info.plist create mode 100644 Passepartout/App/macOS/Launcher/Launcher.entitlements create mode 100644 Passepartout/App/macOS/Menu/MainMenu.swift create mode 100644 Passepartout/App/macOS/Menu/MainMenu.xib create mode 100644 Passepartout/App/macOS/Menu/StatusMenu.swift create mode 100644 Passepartout/App/macOS/Providers.xcassets/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/csv.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/csv.imageset/csv@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/csv.imageset/csv@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/hideme.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/hideme.imageset/hideme@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/hideme.imageset/hideme@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/mullvad.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/mullvad.imageset/mullvad@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/mullvad.imageset/mullvad@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/nordvpn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/nordvpn.imageset/nordvpn-dark@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/nordvpn.imageset/nordvpn-dark@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/nordvpn.imageset/nordvpn@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/nordvpn.imageset/nordvpn@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/pia.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/pia.imageset/pia@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/pia.imageset/pia@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/placeholder.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/placeholder.imageset/placeholder@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/placeholder.imageset/placeholder@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/protonvpn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/protonvpn.imageset/protonvpn@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/protonvpn.imageset/protonvpn@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/torguard.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/torguard.imageset/torguard@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/torguard.imageset/torguard@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/tunnelbear.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/vyprvpn.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@3x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/windscribe.imageset/Contents.json create mode 100644 Passepartout/App/macOS/Providers.xcassets/windscribe.imageset/windscribe@2x.png create mode 100644 Passepartout/App/macOS/Providers.xcassets/windscribe.imageset/windscribe@3x.png create mode 100644 Passepartout/App/macOS/Scenes/OrganizerProfileTableView.swift create mode 100644 Passepartout/App/macOS/Scenes/OrganizerProfileTableView.xib create mode 100644 Passepartout/App/macOS/Scenes/OrganizerViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Preferences/DebugLogViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Preferences/PreferencesGeneralViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Preferences/PreferencesViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/AccountViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/Customization/ConfigurationViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/Customization/DNSViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/Customization/DefaultGatewayViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/Customization/EndpointViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/Customization/MTUViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/Customization/ProfileCustomizationViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/Customization/ProxyViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/Customization/TrustedNetworksAddViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/Customization/TrustedNetworksViewController.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/HostServiceView.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/HostServiceView.xib create mode 100644 Passepartout/App/macOS/Scenes/Service/ProviderServiceView.swift create mode 100644 Passepartout/App/macOS/Scenes/Service/ProviderServiceView.xib create mode 100644 Passepartout/App/macOS/Scenes/Service/ServiceViewController.swift create mode 100644 Passepartout/App/macOS/Tables/TextTableView.swift create mode 100644 Passepartout/App/macOS/Tables/TextTableView.xib create mode 100644 Passepartout/App/macOS/en.lproj/App.strings create mode 100644 Passepartout/App/macOS/it.lproj/App.strings create mode 100644 Passepartout/App/macOS/swiftgen.yml create mode 100644 Passepartout/Core/Info.plist rename {PassepartoutCore-iOS => Passepartout/Core}/PassepartoutCore.h (100%) create mode 100644 Passepartout/Core/README.md create mode 100644 Passepartout/Core/Resources/Base.lproj/Intents.intentdefinition create mode 100644 Passepartout/Core/Resources/de.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/de.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/el.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/el.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/en.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/en.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/es.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/es.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/fr.lproj/Core.strings create mode 100755 Passepartout/Core/Resources/fr.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/it.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/it.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/nl.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/nl.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/pl.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/pl.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/pt.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/pt.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/ru.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/ru.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/sv.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/sv.lproj/Intents.strings create mode 100644 Passepartout/Core/Resources/zh-Hans.lproj/Core.strings create mode 100644 Passepartout/Core/Resources/zh-Hans.lproj/Intents.strings create mode 100644 Passepartout/Core/Sources/AppConstants.swift create mode 100644 Passepartout/Core/Sources/ApplicationError.swift create mode 100644 Passepartout/Core/Sources/GroupConstants.swift create mode 100644 Passepartout/Core/Sources/Intents/IntentDispatcher.swift create mode 100644 Passepartout/Core/Sources/Issue.swift create mode 100644 Passepartout/Core/Sources/Model/ConnectionProfile.swift create mode 100644 Passepartout/Core/Sources/Model/ConnectionService+Configurations.swift create mode 100644 Passepartout/Core/Sources/Model/ConnectionService+Migration.swift create mode 100644 Passepartout/Core/Sources/Model/ConnectionService.swift create mode 100644 Passepartout/Core/Sources/Model/Credentials.swift create mode 100644 Passepartout/Core/Sources/Model/DataUnit.swift create mode 100644 Passepartout/Core/Sources/Model/DebugLog.swift create mode 100644 Passepartout/Core/Sources/Model/EndpointDataSource.swift create mode 100644 Passepartout/Core/Sources/Model/GracefulVPN.swift create mode 100644 Passepartout/Core/Sources/Model/OpenVPNOptions.swift create mode 100644 Passepartout/Core/Sources/Model/Preferences.swift create mode 100644 Passepartout/Core/Sources/Model/Product.swift create mode 100644 Passepartout/Core/Sources/Model/ProductManager.swift create mode 100644 Passepartout/Core/Sources/Model/ProfileNetworkSettings.swift create mode 100644 Passepartout/Core/Sources/Model/Profiles/HostConnectionProfile.swift create mode 100644 Passepartout/Core/Sources/Model/Profiles/PlaceholderConnectionProfile.swift create mode 100644 Passepartout/Core/Sources/Model/Profiles/PoolCategory.swift create mode 100644 Passepartout/Core/Sources/Model/Profiles/ProfileKey.swift create mode 100644 Passepartout/Core/Sources/Model/Profiles/ProviderConnectionProfile.swift create mode 100644 Passepartout/Core/Sources/Model/SessionProxy+Communication.swift create mode 100644 Passepartout/Core/Sources/Model/TransientStore.swift create mode 100644 Passepartout/Core/Sources/Model/TrustPolicy.swift create mode 100644 Passepartout/Core/Sources/Model/TrustedNetworks.swift create mode 100644 Passepartout/Core/Sources/Services/Infrastructure+Metadata.swift create mode 100644 Passepartout/Core/Sources/Services/Infrastructure+Name.swift create mode 100644 Passepartout/Core/Sources/Services/Infrastructure.swift create mode 100644 Passepartout/Core/Sources/Services/InfrastructureFactory.swift create mode 100644 Passepartout/Core/Sources/Services/InfrastructurePreset.swift create mode 100644 Passepartout/Core/Sources/Services/Pool.swift create mode 100644 Passepartout/Core/Sources/Services/PoolGroup.swift create mode 100644 Passepartout/Core/Sources/Services/WebServices.swift create mode 100644 Passepartout/Core/Sources/UI/TrustedNetworksUI.swift create mode 100644 Passepartout/Core/Sources/Utils.swift create mode 100644 Passepartout/Tests/ConnectionService.json create mode 100644 Passepartout/Tests/ConnectionServiceTests.swift rename {PassepartoutCore-iOS => Passepartout/Tests}/Info.plist (88%) create mode 100644 Passepartout/Tests/InfrastructureTests.swift create mode 100644 Passepartout/Tests/UtilsTests.swift rename {Passepartout-iOS-Tunnel => Passepartout/Tunnel}/Info.plist (77%) rename {Passepartout-iOS-Tunnel => Passepartout/Tunnel}/PacketTunnelProvider.swift (93%) rename Passepartout-iOS-Tunnel/Tunnel.entitlements => Passepartout/Tunnel/Tunnel-iOS.entitlements (100%) create mode 100644 Passepartout/Tunnel/Tunnel-macOS.entitlements delete mode 100644 fastlane/Appfile delete mode 100644 fastlane/Deliverfile delete mode 120000 fastlane/Fastfile delete mode 120000 fastlane/Gymfile delete mode 100644 fastlane/Matchfile delete mode 100644 fastlane/Pluginfile delete mode 100644 fastlane/Precheckfile delete mode 100644 fastlane/metadata/app_icon.jpg delete mode 100644 fastlane/metadata/copyright.txt delete mode 100644 fastlane/metadata/de-DE/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/de-DE/description.txt delete mode 120000 fastlane/metadata/de-DE/keywords.txt delete mode 100644 fastlane/metadata/de-DE/marketing_url.txt delete mode 100644 fastlane/metadata/de-DE/name.txt delete mode 100644 fastlane/metadata/de-DE/privacy_url.txt delete mode 100644 fastlane/metadata/de-DE/promotional_text.txt delete mode 100644 fastlane/metadata/de-DE/release_notes.txt delete mode 100644 fastlane/metadata/de-DE/subtitle.txt delete mode 100644 fastlane/metadata/de-DE/support_url.txt delete mode 100644 fastlane/metadata/el/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/el/description.txt delete mode 120000 fastlane/metadata/el/keywords.txt delete mode 100644 fastlane/metadata/el/marketing_url.txt delete mode 100644 fastlane/metadata/el/name.txt delete mode 100644 fastlane/metadata/el/privacy_url.txt delete mode 100644 fastlane/metadata/el/promotional_text.txt delete mode 100644 fastlane/metadata/el/release_notes.txt delete mode 100644 fastlane/metadata/el/subtitle.txt delete mode 100644 fastlane/metadata/el/support_url.txt delete mode 100644 fastlane/metadata/en-US/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/en-US/description.txt delete mode 120000 fastlane/metadata/en-US/keywords.txt delete mode 100644 fastlane/metadata/en-US/marketing_url.txt delete mode 100644 fastlane/metadata/en-US/name.txt delete mode 100644 fastlane/metadata/en-US/privacy_url.txt delete mode 100644 fastlane/metadata/en-US/promotional_text.txt delete mode 100644 fastlane/metadata/en-US/release_notes.txt delete mode 100644 fastlane/metadata/en-US/subtitle.txt delete mode 100644 fastlane/metadata/en-US/support_url.txt delete mode 100644 fastlane/metadata/es-MX/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/es-MX/description.txt delete mode 120000 fastlane/metadata/es-MX/keywords.txt delete mode 100644 fastlane/metadata/es-MX/marketing_url.txt delete mode 100644 fastlane/metadata/es-MX/name.txt delete mode 100644 fastlane/metadata/es-MX/privacy_url.txt delete mode 100644 fastlane/metadata/es-MX/promotional_text.txt delete mode 100644 fastlane/metadata/es-MX/release_notes.txt delete mode 100644 fastlane/metadata/es-MX/subtitle.txt delete mode 100644 fastlane/metadata/es-MX/support_url.txt delete mode 100755 fastlane/metadata/fr-FR/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/fr-FR/description.txt delete mode 120000 fastlane/metadata/fr-FR/keywords.txt delete mode 100755 fastlane/metadata/fr-FR/marketing_url.txt delete mode 100755 fastlane/metadata/fr-FR/name.txt delete mode 100755 fastlane/metadata/fr-FR/privacy_url.txt delete mode 100755 fastlane/metadata/fr-FR/promotional_text.txt delete mode 100755 fastlane/metadata/fr-FR/release_notes.txt delete mode 100755 fastlane/metadata/fr-FR/subtitle.txt delete mode 100755 fastlane/metadata/fr-FR/support_url.txt delete mode 100644 fastlane/metadata/it/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/it/description.txt delete mode 120000 fastlane/metadata/it/keywords.txt delete mode 100644 fastlane/metadata/it/marketing_url.txt delete mode 100644 fastlane/metadata/it/name.txt delete mode 100644 fastlane/metadata/it/privacy_url.txt delete mode 100644 fastlane/metadata/it/promotional_text.txt delete mode 100644 fastlane/metadata/it/release_notes.txt delete mode 100644 fastlane/metadata/it/subtitle.txt delete mode 100644 fastlane/metadata/it/support_url.txt delete mode 100644 fastlane/metadata/nl-NL/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/nl-NL/description.txt delete mode 120000 fastlane/metadata/nl-NL/keywords.txt delete mode 100644 fastlane/metadata/nl-NL/marketing_url.txt delete mode 100644 fastlane/metadata/nl-NL/name.txt delete mode 100644 fastlane/metadata/nl-NL/privacy_url.txt delete mode 100644 fastlane/metadata/nl-NL/promotional_text.txt delete mode 100644 fastlane/metadata/nl-NL/release_notes.txt delete mode 100644 fastlane/metadata/nl-NL/subtitle.txt delete mode 100644 fastlane/metadata/nl-NL/support_url.txt delete mode 100644 fastlane/metadata/pl/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/pl/description.txt delete mode 120000 fastlane/metadata/pl/keywords.txt delete mode 100644 fastlane/metadata/pl/marketing_url.txt delete mode 100644 fastlane/metadata/pl/name.txt delete mode 100644 fastlane/metadata/pl/privacy_url.txt delete mode 100644 fastlane/metadata/pl/promotional_text.txt delete mode 100644 fastlane/metadata/pl/release_notes.txt delete mode 100644 fastlane/metadata/pl/subtitle.txt delete mode 100644 fastlane/metadata/pl/support_url.txt delete mode 100644 fastlane/metadata/primary_category.txt delete mode 100644 fastlane/metadata/primary_first_sub_category.txt delete mode 100644 fastlane/metadata/primary_second_sub_category.txt delete mode 100644 fastlane/metadata/pt-BR/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/pt-BR/description.txt delete mode 120000 fastlane/metadata/pt-BR/keywords.txt delete mode 100644 fastlane/metadata/pt-BR/marketing_url.txt delete mode 100644 fastlane/metadata/pt-BR/name.txt delete mode 100644 fastlane/metadata/pt-BR/privacy_url.txt delete mode 100644 fastlane/metadata/pt-BR/promotional_text.txt delete mode 100644 fastlane/metadata/pt-BR/release_notes.txt delete mode 100644 fastlane/metadata/pt-BR/subtitle.txt delete mode 100644 fastlane/metadata/pt-BR/support_url.txt delete mode 100644 fastlane/metadata/ru/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/ru/description.txt delete mode 120000 fastlane/metadata/ru/keywords.txt delete mode 100644 fastlane/metadata/ru/marketing_url.txt delete mode 100644 fastlane/metadata/ru/name.txt delete mode 100644 fastlane/metadata/ru/privacy_url.txt delete mode 100644 fastlane/metadata/ru/promotional_text.txt delete mode 100644 fastlane/metadata/ru/release_notes.txt delete mode 100644 fastlane/metadata/ru/subtitle.txt delete mode 100644 fastlane/metadata/ru/support_url.txt delete mode 100644 fastlane/metadata/secondary_category.txt delete mode 100644 fastlane/metadata/secondary_first_sub_category.txt delete mode 100644 fastlane/metadata/secondary_second_sub_category.txt delete mode 100644 fastlane/metadata/sv/apple_tv_privacy_policy.txt delete mode 100644 fastlane/metadata/sv/description.txt delete mode 120000 fastlane/metadata/sv/keywords.txt delete mode 100644 fastlane/metadata/sv/marketing_url.txt delete mode 100644 fastlane/metadata/sv/name.txt delete mode 100644 fastlane/metadata/sv/privacy_url.txt delete mode 100644 fastlane/metadata/sv/promotional_text.txt delete mode 100644 fastlane/metadata/sv/release_notes.txt delete mode 100644 fastlane/metadata/sv/subtitle.txt delete mode 100644 fastlane/metadata/sv/support_url.txt delete mode 100644 fastlane/screenshots/en-US/ipad-01.png delete mode 100644 fastlane/screenshots/en-US/ipad-02.png delete mode 100644 fastlane/screenshots/en-US/ipad-03.png delete mode 100644 fastlane/screenshots/en-US/ipad-04.png delete mode 100644 fastlane/screenshots/en-US/ipad-05.png delete mode 100644 fastlane/screenshots/en-US/iphone55-01.png delete mode 100644 fastlane/screenshots/en-US/iphone55-02.png delete mode 100644 fastlane/screenshots/en-US/iphone55-03.png delete mode 100644 fastlane/screenshots/en-US/iphone55-04.png delete mode 100644 fastlane/screenshots/en-US/iphone55-05.png delete mode 100644 fastlane/screenshots/en-US/iphone65-01.png delete mode 100644 fastlane/screenshots/en-US/iphone65-02.png delete mode 100644 fastlane/screenshots/en-US/iphone65-03.png delete mode 100644 fastlane/screenshots/en-US/iphone65-04.png delete mode 100644 fastlane/screenshots/en-US/iphone65-05.png mode change 120000 => 100755 scripts/export-for-translations.sh mode change 120000 => 100755 scripts/list-untranslated.sh mode change 120000 => 100755 scripts/push-release.sh mode change 120000 => 100755 scripts/reset-archive.sh delete mode 100644 swiftgen.yml diff --git a/.env b/.env deleted file mode 100644 index 81c9e5f2..00000000 --- a/.env +++ /dev/null @@ -1,12 +0,0 @@ -PLATFORM="ios" -APP_NAME="Passepartout" -PROJECT="Passepartout-iOS" - -GYM_SCHEME="Passepartout-iOS" -MATCH_READONLY="true" -BUILD_PATH="build" -DIST_PATH="dist" - -# constant (fastlane) -LC_ALL="en_US.UTF-8" -LANG="en_US.UTF-8" diff --git a/.env.beta-archive b/.env.beta-archive deleted file mode 100644 index 64a23f6a..00000000 --- a/.env.beta-archive +++ /dev/null @@ -1,2 +0,0 @@ -MATCH_TYPE="appstore" -GYM_EXPORT_METHOD="app-store" diff --git a/.env.beta-deploy b/.env.beta-deploy deleted file mode 100644 index 97ab8c80..00000000 --- a/.env.beta-deploy +++ /dev/null @@ -1,3 +0,0 @@ -PILOT_IPA="$DIST_PATH/$TARGET/$APP_NAME.ipa" -PILOT_DISTRIBUTE_EXTERNAL="true" -DEMO_ACCOUNT_REQUIRED="true" diff --git a/.env.dev-archive b/.env.dev-archive deleted file mode 100644 index cc2fad4a..00000000 --- a/.env.dev-archive +++ /dev/null @@ -1,2 +0,0 @@ -MATCH_TYPE="adhoc" -GYM_EXPORT_METHOD="ad-hoc" diff --git a/.env.dev-deploy b/.env.dev-deploy deleted file mode 100644 index deaf7dc9..00000000 --- a/.env.dev-deploy +++ /dev/null @@ -1,3 +0,0 @@ -APPCENTER_APP_NAME=$GYM_SCHEME -APPCENTER_DISTRIBUTE_IPA="$DIST_PATH/$TARGET/$APP_NAME.ipa" -APPCENTER_DISTRIBUTE_DESTINATION_TYPE="group" diff --git a/.env.template.secret-codesign b/.env.template.secret-codesign deleted file mode 100644 index c8924c7d..00000000 --- a/.env.template.secret-codesign +++ /dev/null @@ -1,2 +0,0 @@ -MATCH_GIT_URL= -MATCH_PASSWORD= diff --git a/.env.template.secret-deploy b/.env.template.secret-deploy deleted file mode 100644 index 7544df2e..00000000 --- a/.env.template.secret-deploy +++ /dev/null @@ -1,10 +0,0 @@ -APPLE_ID= -FASTLANE_USERNAME= -FASTLANE_PASSWORD= -APPCENTER_OWNER_NAME= -APPCENTER_API_TOKEN= -APPCENTER_DISTRIBUTE_DESTINATIONS= -PILOT_GROUPS= -PILOT_USERNAME= -DELIVER_USERNAME= -PROJECT_ROOT= diff --git a/.gitignore b/.gitignore index e6ed1d5b..af3553e3 100644 --- a/.gitignore +++ b/.gitignore @@ -5,12 +5,12 @@ **/*.xcodeproj/project.xcworkspace **/*.xcodeproj/xcuserdata Pods -fastlane/**/*.html -fastlane/README.md -fastlane/report.xml -fastlane/test_output -fastlane/metadata/review_information -fastlane/metadata/trade_representative_contact_information +**/fastlane/**/*.html +**/fastlane/README.md +**/fastlane/report.xml +**/fastlane/test_output +**/fastlane/metadata/review_information +**/fastlane/metadata/trade_representative_contact_information build/ dist/ templates/ diff --git a/.gitmodules b/.gitmodules index 7848bb5c..c92abb84 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,6 @@ [submodule "Submodules/API"] path = Submodules/API url = https://github.com/passepartoutvpn/api -[submodule "Submodules/Core"] - path = Submodules/Core - url = https://github.com/passepartoutvpn/passepartout-core-apple [submodule "Submodules/fastlane-ci-templates"] path = Submodules/fastlane-ci-templates url = https://github.com/keeshux/fastlane-ci-templates diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..9dffc5e6 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,16 @@ +language: objective-c +osx_image: xcode12 +xcode_workspace: Passepartout.xcworkspace +xcode_scheme: PassepartoutCore-iOS +xcode_destination: platform=iOS Simulator,OS=12.4,name=iPhone Xʀ +cache: + - bundler + - cocoapods +install: + - bundle install --jobs=3 --deployment --path=${BUNDLE_PATH:-vendor/bundle} + - bundle exec pod repo update + - travis_wait 40 bundle exec pod install + +branches: + only: + - master diff --git a/Passepartout-iOS/Config.xcconfig b/Config.xcconfig similarity index 74% rename from Passepartout-iOS/Config.xcconfig rename to Config.xcconfig index 0da0e235..92c98ff2 100644 --- a/Passepartout-iOS/Config.xcconfig +++ b/Config.xcconfig @@ -27,6 +27,13 @@ // https://help.apple.com/xcode/#/dev745c5c974 CFG_TEAM_ID = DTDYD63ZX9 -CFG_APP_ID = com.algoritmico.ios.Passepartout +CFG_APP_IOS_ID = com.algoritmico.ios.Passepartout +CFG_APP_MACOS_ID = com.algoritmico.macos.Passepartout +CFG_APP_LAUNCHER_ID = com.algoritmico.macos.Passepartout.Launcher CFG_GROUP_ID = com.algoritmico.Passepartout -CFG_APPSTORE_ID = 1433648537 +CFG_APP_VERSION = 1.14.0 +CFG_APPSTORE_IOS_ID = 1433648537 +CFG_APPSTORE_MACOS_ID = 1433645014 +CFG_COPYRIGHT = Copyright © 2021 Davide De Rosa. All rights reserved. + +#include? "Secret.xcconfig" diff --git a/Libraries/API b/Libraries/API deleted file mode 120000 index b4015434..00000000 --- a/Libraries/API +++ /dev/null @@ -1 +0,0 @@ -../Submodules/API/ \ No newline at end of file diff --git a/Libraries/Core b/Libraries/Core deleted file mode 120000 index 01be531a..00000000 --- a/Libraries/Core +++ /dev/null @@ -1 +0,0 @@ -../Submodules/Core/ \ No newline at end of file diff --git a/Passepartout-iOS/Scenes/About/CreditsViewController.swift b/Passepartout-iOS/Scenes/About/CreditsViewController.swift deleted file mode 100644 index 71509aa4..00000000 --- a/Passepartout-iOS/Scenes/About/CreditsViewController.swift +++ /dev/null @@ -1,110 +0,0 @@ -// -// CreditsViewController.swift -// Passepartout-iOS -// -// Created by Davide De Rosa on 11/26/18. -// Copyright (c) 2019 Davide De Rosa. All rights reserved. -// -// https://github.com/passepartoutvpn -// -// This file is part of Passepartout. -// -// Passepartout is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// Passepartout 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 General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with Passepartout. If not, see . -// - -import UIKit -import PassepartoutCore -import Convenience - -//class CreditsViewController: Convenience.CreditsViewController { -// override func viewDidLoad() { -// title = L10n.Core.Credits.title -// licensesHeader = L10n.Core.Credits.Sections.Licenses.header -// noticesHeader = L10n.Core.Credits.Sections.Notices.header -// translationsHeader = L10n.Core.Credits.Sections.Translations.header -// software = AppConstants.Credits.software -// translators = AppConstants.Translations.translators -// accentColor = Theme.current.palette.accent1 -// -// super.viewDidLoad() -// } -//} - -// override func prepare(for segue: UIStoryboardSegue, sender: Any?) { -// guard let vc = segue.destination as? LabelViewController else { -// return -// } -// guard let cell = sender as? SettingTableViewCell, let indexPath = tableView.indexPath(for: cell) else { -// return -// } -// vc.title = cell.leftText -// switch model.row(at: indexPath) { -// case .license: -// vc.license = licenses[indexPath.row] -// -// case .notice: -// vc.text = notices[indexPath.row].statement -// -// default: -// break -// } -// } -//} -// -//extension CreditsViewController { -// enum SectionType: Int { -// case licenses -// -// case notices -// -// case translations -// } -// -// enum RowType: Int { -// case license -// -// case notice -// -// case translation -// } -// -// override func numberOfSections(in tableView: UITableView) -> Int { -// return model.numberOfSections -// } -// -// override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { -// return model.header(forSection: section) -// } -// -// override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { -// return model.numberOfRows(forSection: section) -// } -// -// override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { -// let cell = Cells.setting.dequeue(from: tableView, for: indexPath) -// switch model.row(at: indexPath) { -// case .license: -// let obj = licenses[indexPath.row] -// cell.leftText = obj.name -// cell.rightText = obj.type -// -// case .notice: -// let obj = notices[indexPath.row] -// cell.leftText = obj.name -// cell.rightText = nil -// -// } -// return cell -// } -//} diff --git a/Passepartout.xcodeproj/project.pbxproj b/Passepartout.xcodeproj/project.pbxproj index 592b6a9e..90714d33 100644 --- a/Passepartout.xcodeproj/project.pbxproj +++ b/Passepartout.xcodeproj/project.pbxproj @@ -3,10 +3,12 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 52; objects = { /* Begin PBXBuildFile section */ + 051985241A3ABE44EB09DFF5 /* Pods_ios_PassepartoutTunnel_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FF7D2E624A2979425A6F7B7A /* Pods_ios_PassepartoutTunnel_iOS.framework */; }; + 0774835EE25EEA07495A98AA /* Pods_macos_PassepartoutTunnel_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 35380A14E9FF6F0250C171CD /* Pods_macos_PassepartoutTunnel_macOS.framework */; }; 0E05C5D420D1645F006EE732 /* FieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05C5CE20D139AF006EE732 /* FieldTableViewCell.swift */; }; 0E05C5D520D1645F006EE732 /* SettingTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED824CD20D12DBE00F2FE9E /* SettingTableViewCell.swift */; }; 0E05C5D620D1645F006EE732 /* SwiftGen+Scenes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DE320C89028004C739C /* SwiftGen+Scenes.swift */; }; @@ -15,7 +17,6 @@ 0E0C0729236087A100155AAC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0E0C072B236087A100155AAC /* InfoPlist.strings */; }; 0E1066C920E0F84A004F98B7 /* Cells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E1066C820E0F84A004F98B7 /* Cells.swift */; }; 0E158ADA20E11B0B00C85A82 /* EndpointViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E158AD920E11B0B00C85A82 /* EndpointViewController.swift */; }; - 0E1C0A4F238FC7A5009FC087 /* InfrastructureFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E1C0A4E238FC7A5009FC087 /* InfrastructureFactory.swift */; }; 0E1D72B2213BFFCF00BA1586 /* ProviderPresetViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E1D72B1213BFFCF00BA1586 /* ProviderPresetViewController.swift */; }; 0E1D72B4213C118500BA1586 /* ConfigurationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E1D72B3213C118500BA1586 /* ConfigurationViewController.swift */; }; 0E24273A225950450064A1A3 /* About.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E24273C225950450064A1A3 /* About.storyboard */; }; @@ -59,13 +60,116 @@ 0E3CAFC4229AAF8E0008E5C8 /* API in Resources */ = {isa = PBXBuildFile; fileRef = 0E3CAFC3229AAF8E0008E5C8 /* API */; }; 0E45E6E022BD793800F19312 /* App.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0E45E6E222BD793800F19312 /* App.strings */; }; 0E45E6E422BD799700F19312 /* SwiftGen+Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E45E6E322BD799700F19312 /* SwiftGen+Strings.swift */; }; - 0E45E6FA22BD8FC500F19312 /* Core.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0E3CAF98229AAE760008E5C8 /* Core.strings */; }; 0E45E71022BE108100F19312 /* OpenVPNOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E45E70F22BE108100F19312 /* OpenVPNOptions.swift */; }; 0E4B0D6B2366E3C100C890B4 /* PurchaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E4B0D6A2366E3C000C890B4 /* PurchaseViewController.swift */; }; 0E4B0D742366E6C800C890B4 /* Purchase.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E4B0D762366E6C800C890B4 /* Purchase.storyboard */; }; 0E4C9CBB20DCF0D600A0C59C /* DestructiveTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E4C9CBA20DCF0D600A0C59C /* DestructiveTableViewCell.swift */; }; 0E4FD7F120D58618002221FF /* Macros.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E4FD7F020D58618002221FF /* Macros.swift */; }; + 0E52031D259F58BF00CBAB56 /* Providers.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F7D259F41690022DFB8 /* Providers.xcassets */; }; + 0E52031E259F58BF00CBAB56 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F7F259F41690022DFB8 /* Assets.xcassets */; }; + 0E52031F259F58BF00CBAB56 /* Flags.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E569FA7259F41690022DFB8 /* Flags.xcassets */; }; + 0E520320259F58BF00CBAB56 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F8B259F41690022DFB8 /* AppDelegate.swift */; }; + 0E52032B259F58DD00CBAB56 /* TextTableView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F5A259F41690022DFB8 /* TextTableView.xib */; }; + 0E52032C259F58DD00CBAB56 /* TextTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F5B259F41690022DFB8 /* TextTableView.swift */; }; + 0E520333259F58F500CBAB56 /* OrganizerProfileTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F69259F41690022DFB8 /* OrganizerProfileTableView.swift */; }; + 0E520334259F58F500CBAB56 /* OrganizerProfileTableView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F6B259F41690022DFB8 /* OrganizerProfileTableView.xib */; }; + 0E520335259F58F500CBAB56 /* HostServiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F7A259F41690022DFB8 /* HostServiceView.swift */; }; + 0E520336259F58F500CBAB56 /* HostServiceView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F7B259F41690022DFB8 /* HostServiceView.xib */; }; + 0E520337259F58F500CBAB56 /* ProviderServiceView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F79259F41690022DFB8 /* ProviderServiceView.xib */; }; + 0E520338259F58F500CBAB56 /* ProviderServiceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F6E259F41690022DFB8 /* ProviderServiceView.swift */; }; + 0E520339259F58F500CBAB56 /* ServiceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F6D259F41690022DFB8 /* ServiceViewController.swift */; }; + 0E52033A259F58F500CBAB56 /* AccountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F7C259F41690022DFB8 /* AccountViewController.swift */; }; + 0E52033B259F58F500CBAB56 /* OrganizerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F6A259F41690022DFB8 /* OrganizerViewController.swift */; }; + 0E520342259F58FE00CBAB56 /* EndpointViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F71259F41690022DFB8 /* EndpointViewController.swift */; }; + 0E520343259F58FE00CBAB56 /* ProfileCustomizationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F73259F41690022DFB8 /* ProfileCustomizationViewController.swift */; }; + 0E520344259F58FE00CBAB56 /* TrustedNetworksAddViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F75259F41690022DFB8 /* TrustedNetworksAddViewController.swift */; }; + 0E520345259F58FE00CBAB56 /* DNSViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F76259F41690022DFB8 /* DNSViewController.swift */; }; + 0E520346259F58FE00CBAB56 /* TrustedNetworksViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F78259F41690022DFB8 /* TrustedNetworksViewController.swift */; }; + 0E520347259F58FE00CBAB56 /* ProxyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F74259F41690022DFB8 /* ProxyViewController.swift */; }; + 0E520348259F58FE00CBAB56 /* MTUViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F70259F41690022DFB8 /* MTUViewController.swift */; }; + 0E520349259F58FE00CBAB56 /* ConfigurationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F72259F41690022DFB8 /* ConfigurationViewController.swift */; }; + 0E52034A259F58FE00CBAB56 /* DefaultGatewayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F77259F41690022DFB8 /* DefaultGatewayViewController.swift */; }; + 0E520354259F590600CBAB56 /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F67259F41690022DFB8 /* PreferencesViewController.swift */; }; + 0E520355259F590600CBAB56 /* DebugLogViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F66259F41690022DFB8 /* DebugLogViewController.swift */; }; + 0E520356259F590600CBAB56 /* PreferencesGeneralViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F68259F41690022DFB8 /* PreferencesGeneralViewController.swift */; }; + 0E52035D259F591300CBAB56 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F8A259F41690022DFB8 /* MainMenu.xib */; }; + 0E52035E259F591300CBAB56 /* StatusMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F89259F41690022DFB8 /* StatusMenu.swift */; }; + 0E52035F259F591300CBAB56 /* MainMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F88259F41690022DFB8 /* MainMenu.swift */; }; + 0E520379259F593B00CBAB56 /* Macros.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569FA6259F41690022DFB8 /* Macros.swift */; }; + 0E52037A259F593B00CBAB56 /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F92259F41690022DFB8 /* WindowManager.swift */; }; + 0E52037B259F593B00CBAB56 /* IssueReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F8F259F41690022DFB8 /* IssueReporter.swift */; }; + 0E52037C259F593B00CBAB56 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569FA1259F41690022DFB8 /* Theme.swift */; }; + 0E52037D259F593B00CBAB56 /* SwiftGen+Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F9C259F41690022DFB8 /* SwiftGen+Strings.swift */; }; + 0E52037E259F593B00CBAB56 /* SwiftGen+Segues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569FA5259F41690022DFB8 /* SwiftGen+Segues.swift */; }; + 0E52037F259F593B00CBAB56 /* Theme+Views.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F9A259F41690022DFB8 /* Theme+Views.swift */; }; + 0E520380259F593B00CBAB56 /* AppConstants+App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569FA3259F41690022DFB8 /* AppConstants+App.swift */; }; + 0E520381259F593B00CBAB56 /* NSTextView+Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F94259F41690022DFB8 /* NSTextView+Search.swift */; }; + 0E520382259F593B00CBAB56 /* SwiftGen+Scenes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F9D259F41690022DFB8 /* SwiftGen+Scenes.swift */; }; + 0E520383259F593B00CBAB56 /* SwiftGen+Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F98259F41690022DFB8 /* SwiftGen+Assets.swift */; }; + 0E520384259F593B00CBAB56 /* Donation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F99259F41690022DFB8 /* Donation.swift */; }; + 0E520385259F593B00CBAB56 /* Credits.html in Resources */ = {isa = PBXBuildFile; fileRef = 0E569FA4259F41690022DFB8 /* Credits.html */; }; + 0E520386259F593B00CBAB56 /* ProductManager+App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F9E259F41690022DFB8 /* ProductManager+App.swift */; }; + 0E520387259F593B00CBAB56 /* TextInputViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F97259F41690022DFB8 /* TextInputViewController.swift */; }; + 0E520388259F593B00CBAB56 /* HostImporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F93259F41690022DFB8 /* HostImporter.swift */; }; + 0E52038F259F593F00CBAB56 /* App.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F8D259F41690022DFB8 /* App.strings */; }; + 0E5203B6259F5F3F00CBAB56 /* NetworkExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0ED31C3920CF39510027975F /* NetworkExtension.framework */; }; + 0E5203BE259F5F3F00CBAB56 /* PassepartoutTunnel.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0E5203B5259F5F3F00CBAB56 /* PassepartoutTunnel.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 0E5203F1259F60D600CBAB56 /* PassepartoutCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E5203EA259F60D600CBAB56 /* PassepartoutCore.framework */; }; + 0E5203F2259F60D600CBAB56 /* PassepartoutCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 0E5203EA259F60D600CBAB56 /* PassepartoutCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 0E52041F259F62B200CBAB56 /* GroupConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DED20C93E4C004C739C /* GroupConstants.swift */; }; + 0E52047B259F642600CBAB56 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F85259F41690022DFB8 /* Main.storyboard */; }; + 0E52047C259F642600CBAB56 /* Service.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F83259F41690022DFB8 /* Service.storyboard */; }; + 0E52047D259F642600CBAB56 /* Preferences.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F81259F41690022DFB8 /* Preferences.storyboard */; }; + 0E5204A7259F66F700CBAB56 /* PassepartoutCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E31529D223F9EF500F61841 /* PassepartoutCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0E5204A9259F673000CBAB56 /* Core.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0E3CAF98229AAE760008E5C8 /* Core.strings */; }; + 0E5204AA259F673100CBAB56 /* Core.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0E3CAF98229AAE760008E5C8 /* Core.strings */; }; + 0E5204AF259F673D00CBAB56 /* ApplicationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E6BE13920CFB76800A6DD36 /* ApplicationError.swift */; }; + 0E5204B0259F673D00CBAB56 /* Issue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F14259F2D3E0022DFB8 /* Issue.swift */; }; + 0E5204B1259F673D00CBAB56 /* GroupConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DED20C93E4C004C739C /* GroupConstants.swift */; }; + 0E5204B2259F673D00CBAB56 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E4FD7ED20D539A0002221FF /* Utils.swift */; }; + 0E5204B7259F674000CBAB56 /* AppConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E39BCF2214DA9310035E9DE /* AppConstants.swift */; }; + 0E5204BC259F674400CBAB56 /* TrustedNetworksUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F30259F2DC10022DFB8 /* TrustedNetworksUI.swift */; }; + 0E5204C1259F675400CBAB56 /* Infrastructure+Metadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F29259F2DB10022DFB8 /* Infrastructure+Metadata.swift */; }; + 0E5204C2259F675400CBAB56 /* PoolCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E66A26F225FE25800F9C779 /* PoolCategory.swift */; }; + 0E5204C3259F675400CBAB56 /* InfrastructureFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F2A259F2DB10022DFB8 /* InfrastructureFactory.swift */; }; + 0E5204C4259F675400CBAB56 /* TrustPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EBE3A8F213C6F4000BFA2F5 /* TrustPolicy.swift */; }; + 0E5204C5259F675400CBAB56 /* ProviderConnectionProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EBE3AA4213DC1B000BFA2F5 /* ProviderConnectionProfile.swift */; }; + 0E5204C6259F675400CBAB56 /* Pool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED31C0F20CF09A30027975F /* Pool.swift */; }; + 0E5204C7259F675400CBAB56 /* Product.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F1B259F2D8F0022DFB8 /* Product.swift */; }; + 0E5204C8259F675400CBAB56 /* PoolGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E533B152258E03B00EF94FC /* PoolGroup.swift */; }; + 0E5204C9259F675400CBAB56 /* ConnectionService+Configurations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E2D11B9217DBEDE0096822C /* ConnectionService+Configurations.swift */; }; + 0E5204CA259F675400CBAB56 /* ProfileNetworkSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFB901722764689006405E4 /* ProfileNetworkSettings.swift */; }; + 0E5204CB259F675400CBAB56 /* EndpointDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED38AE621404F100004D387 /* EndpointDataSource.swift */; }; + 0E5204CC259F675400CBAB56 /* HostConnectionProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EBE3AA3213DC1B000BFA2F5 /* HostConnectionProfile.swift */; }; + 0E5204CD259F675400CBAB56 /* Infrastructure+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F28259F2DB10022DFB8 /* Infrastructure+Name.swift */; }; + 0E5204CE259F675400CBAB56 /* Credentials.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DE620C93945004C739C /* Credentials.swift */; }; + 0E5204CF259F675400CBAB56 /* TrustedNetworks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E4C9CB820DB9BC600A0C59C /* TrustedNetworks.swift */; }; + 0E5204D0259F675400CBAB56 /* Infrastructure.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED31C1120CF0ABA0027975F /* Infrastructure.swift */; }; + 0E5204D1259F675400CBAB56 /* PlaceholderConnectionProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E79D13E21919EC900BB5FB2 /* PlaceholderConnectionProfile.swift */; }; + 0E5204D2259F675400CBAB56 /* ConnectionProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EBE3A9E213DC1A100BFA2F5 /* ConnectionProfile.swift */; }; + 0E5204D3259F675400CBAB56 /* ConnectionService+Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EBBE8F42182361700106008 /* ConnectionService+Migration.swift */; }; + 0E5204D4259F675400CBAB56 /* ConnectionService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EBE3A9F213DC1A100BFA2F5 /* ConnectionService.swift */; }; + 0E5204D5259F675400CBAB56 /* ProfileKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E79D14021919F5600BB5FB2 /* ProfileKey.swift */; }; + 0E5204D6259F675400CBAB56 /* DataUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECEB109224FECEA00E9E551 /* DataUnit.swift */; }; + 0E5204D7259F675400CBAB56 /* DebugLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EC7F20420E24308004EA58E /* DebugLog.swift */; }; + 0E5204D9259F675400CBAB56 /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E89DFC4213DF7AE00741BA1 /* Preferences.swift */; }; + 0E5204DA259F675400CBAB56 /* ProductManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F1A259F2D8F0022DFB8 /* ProductManager.swift */; }; + 0E5204DB259F675400CBAB56 /* TransientStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E2B494120FD16540094784C /* TransientStore.swift */; }; + 0E5204DC259F675400CBAB56 /* GracefulVPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F19259F2D8F0022DFB8 /* GracefulVPN.swift */; }; + 0E5204DD259F675400CBAB56 /* InfrastructurePreset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E8D97E121388B52006FB4A0 /* InfrastructurePreset.swift */; }; + 0E5204DE259F675400CBAB56 /* OpenVPNOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E45E70F22BE108100F19312 /* OpenVPNOptions.swift */; }; + 0E5204DF259F675400CBAB56 /* SessionProxy+Communication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E89DFC7213E8FC500741BA1 /* SessionProxy+Communication.swift */; }; + 0E5204E0259F675400CBAB56 /* WebServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E39BCEF214B9EF10035E9DE /* WebServices.swift */; }; + 0E5204E5259F67A000CBAB56 /* API in Resources */ = {isa = PBXBuildFile; fileRef = 0E3CAFC3229AAF8E0008E5C8 /* API */; }; 0E533B162258E03B00EF94FC /* PoolGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E533B152258E03B00EF94FC /* PoolGroup.swift */; }; + 0E569F15259F2D3E0022DFB8 /* Issue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F14259F2D3E0022DFB8 /* Issue.swift */; }; + 0E569F1C259F2D8F0022DFB8 /* GracefulVPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F19259F2D8F0022DFB8 /* GracefulVPN.swift */; }; + 0E569F1E259F2D8F0022DFB8 /* ProductManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F1A259F2D8F0022DFB8 /* ProductManager.swift */; }; + 0E569F20259F2D8F0022DFB8 /* Product.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F1B259F2D8F0022DFB8 /* Product.swift */; }; + 0E569F2B259F2DB10022DFB8 /* Infrastructure+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F28259F2DB10022DFB8 /* Infrastructure+Name.swift */; }; + 0E569F2C259F2DB10022DFB8 /* Infrastructure+Metadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F29259F2DB10022DFB8 /* Infrastructure+Metadata.swift */; }; + 0E569F2D259F2DB10022DFB8 /* InfrastructureFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F2A259F2DB10022DFB8 /* InfrastructureFactory.swift */; }; + 0E569F31259F2DC10022DFB8 /* TrustedNetworksUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F30259F2DC10022DFB8 /* TrustedNetworksUI.swift */; }; 0E57F63C20C83FC5008323CF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E57F63B20C83FC5008323CF /* AppDelegate.swift */; }; 0E57F63E20C83FC5008323CF /* ServiceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E57F63D20C83FC5008323CF /* ServiceViewController.swift */; }; 0E57F64120C83FC5008323CF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E57F63F20C83FC5008323CF /* Main.storyboard */; }; @@ -77,20 +181,32 @@ 0E773BF8224BF37600CDDC8E /* ShortcutsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E773BF7224BF37600CDDC8E /* ShortcutsViewController.swift */; }; 0E776642229D0DAE0023FA76 /* Intents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = 0E3CAFAD229AAE760008E5C8 /* Intents.intentdefinition */; settings = {ATTRIBUTES = (no_codegen, ); }; }; 0E89DFCE213EEDFA00741BA1 /* WizardProviderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E89DFCD213EEDFA00741BA1 /* WizardProviderViewController.swift */; }; + 0E9AA978259F756A003FAFF1 /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E9AA977259F756A003FAFF1 /* PacketTunnelProvider.swift */; }; + 0E9AA979259F756A003FAFF1 /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E9AA977259F756A003FAFF1 /* PacketTunnelProvider.swift */; }; + 0E9AA992259F779F003FAFF1 /* PassepartoutCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E31529B223F9EF400F61841 /* PassepartoutCore.framework */; platformFilter = ios; }; + 0E9AA9BF259F7821003FAFF1 /* PassepartoutCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E5203EA259F60D600CBAB56 /* PassepartoutCore.framework */; }; + 0E9AA9EF259F799B003FAFF1 /* ConnectionServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E9AA987259F777B003FAFF1 /* ConnectionServiceTests.swift */; }; + 0E9AA9F0259F799B003FAFF1 /* ConnectionService.json in Resources */ = {isa = PBXBuildFile; fileRef = 0E9AA988259F777B003FAFF1 /* ConnectionService.json */; }; + 0E9AA9F1259F799B003FAFF1 /* UtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E9AA986259F777B003FAFF1 /* UtilsTests.swift */; }; + 0E9AA9F2259F799B003FAFF1 /* InfrastructureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E9AA985259F777B003FAFF1 /* InfrastructureTests.swift */; }; + 0E9AA9F9259F799C003FAFF1 /* ConnectionServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E9AA987259F777B003FAFF1 /* ConnectionServiceTests.swift */; }; + 0E9AA9FA259F799C003FAFF1 /* ConnectionService.json in Resources */ = {isa = PBXBuildFile; fileRef = 0E9AA988259F777B003FAFF1 /* ConnectionService.json */; }; + 0E9AA9FB259F799C003FAFF1 /* UtilsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E9AA986259F777B003FAFF1 /* UtilsTests.swift */; }; + 0E9AA9FC259F799C003FAFF1 /* InfrastructureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E9AA985259F777B003FAFF1 /* InfrastructureTests.swift */; }; + 0E9AAA7F259F7DB7003FAFF1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F5E259F41690022DFB8 /* Assets.xcassets */; }; + 0E9AAA80259F7DB7003FAFF1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E569F62259F41690022DFB8 /* AppDelegate.swift */; }; + 0E9AAA89259F7DCA003FAFF1 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0E569F5F259F41690022DFB8 /* Main.storyboard */; }; + 0E9AAABE259F7FFF003FAFF1 /* PassepartoutLauncher.app in Resources */ = {isa = PBXBuildFile; fileRef = 0E9AAA61259F7D7E003FAFF1 /* PassepartoutLauncher.app */; }; + 0E9AAACB259F808B003FAFF1 /* PassepartoutLauncher.app in CopyFiles */ = {isa = PBXBuildFile; fileRef = 0E9AAA61259F7D7E003FAFF1 /* PassepartoutLauncher.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 0E9AAAD4259F809F003FAFF1 /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0E9AAAD3259F809F003FAFF1 /* ServiceManagement.framework */; }; 0E9CD7872257462800D033B4 /* Providers.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E9CD7862257462800D033B4 /* Providers.xcassets */; }; 0E9CD789225746B300D033B4 /* Flags.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E9CD788225746B300D033B4 /* Flags.xcassets */; }; 0E9CDB6723604AD5006733B4 /* ServerNetworkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E9CDB6623604AD5006733B4 /* ServerNetworkViewController.swift */; }; - 0EA84515238A9B5200EFC500 /* Infrastructure+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EA84514238A9B5100EFC500 /* Infrastructure+Name.swift */; }; - 0EA8451A238C2AB500EFC500 /* Infrastructure+Metadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EA84519238C2AB500EFC500 /* Infrastructure+Metadata.swift */; }; 0EAAD71920E6669A0088754A /* GroupConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DED20C93E4C004C739C /* GroupConstants.swift */; }; - 0EAC572F249426E200D0FCE0 /* GracefulVPN.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EAC572E249426E200D0FCE0 /* GracefulVPN.swift */; }; 0EB60FDA2111136E00AD27F3 /* UITextView+Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB60FD92111136E00AD27F3 /* UITextView+Search.swift */; }; 0EB67D6B2184581E00BA6200 /* ImportedHostsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB67D6A2184581E00BA6200 /* ImportedHostsViewController.swift */; }; - 0EB9EB7323867E7F009C0A1C /* TrustedNetworksUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB9EB7223867E7F009C0A1C /* TrustedNetworksUI.swift */; }; 0EBE3A79213C4E5500BFA2F5 /* OrganizerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EBE3A78213C4E5400BFA2F5 /* OrganizerViewController.swift */; }; 0ECA7E2225967BB90095F369 /* ProductManager+App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECA7E2125967BB90095F369 /* ProductManager+App.swift */; }; - 0ECA7E2D25967BF40095F369 /* Product.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECA7E2525967BDB0095F369 /* Product.swift */; }; - 0ECA7E3025967BFB0095F369 /* ProductManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECA7E2625967BDB0095F369 /* ProductManager.swift */; }; 0ECC60DE2256B68A0020BEAC /* SwiftGen+Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECC60DD2256B6890020BEAC /* SwiftGen+Assets.swift */; }; 0ECEB10A224FECEA00E9E551 /* DataUnit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECEB109224FECEA00E9E551 /* DataUnit.swift */; }; 0ECEE45020E1182E00A6BB43 /* Theme+Cells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ECEE44F20E1182E00A6BB43 /* Theme+Cells.swift */; }; @@ -102,18 +218,18 @@ 0ED38ADA213F44D00004D387 /* Organizer.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0ED38ADC213F44D00004D387 /* Organizer.storyboard */; }; 0ED38AEC2141260D0004D387 /* ConfigurationModificationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED38AEB2141260D0004D387 /* ConfigurationModificationDelegate.swift */; }; 0ED993B1223FF8C700B0F9C9 /* IntentDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED993B0223FF8C700B0F9C9 /* IntentDispatcher.swift */; }; - 0EDE8DC420C86910004C739C /* PacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DC320C86910004C739C /* PacketTunnelProvider.swift */; }; - 0EDE8DC820C86910004C739C /* Passepartout-Tunnel.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0EDE8DBF20C86910004C739C /* Passepartout-Tunnel.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 0EDE8DC820C86910004C739C /* PassepartoutTunnel.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 0EDE8DBF20C86910004C739C /* PassepartoutTunnel.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 0EE3BBB2215ED3A900F30952 /* AboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE3BBB1215ED3A900F30952 /* AboutViewController.swift */; }; - 0EEF23412321AC55000AEBE3 /* Issue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EEF23402321AC55000AEBE3 /* Issue.swift */; }; + 0EEDC551C74496360E09994F /* Pods_ios_Passepartout_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E070D15674A07F40A22BFA7E /* Pods_ios_Passepartout_iOS.framework */; }; 0EF56BBB2185AC8500B0C8AB /* SwiftGen+Segues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EF56BBA2185AC8500B0C8AB /* SwiftGen+Segues.swift */; }; - 0EF5CF292141F31F004FF1BD /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E4FD7ED20D539A0002221FF /* Utils.swift */; }; 0EFB901822764689006405E4 /* ProfileNetworkSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFB901722764689006405E4 /* ProfileNetworkSettings.swift */; }; 0EFB901A2276D7F1006405E4 /* NetworkSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFB90192276D7F1006405E4 /* NetworkSettingsViewController.swift */; }; 0EFD943E215BE10800529B64 /* IssueReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFD943D215BE10800529B64 /* IssueReporter.swift */; }; - 577B90392A4798F63461B0B5 /* Pods_Passepartout_iOS_Tunnel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA4CE55A94366C45DDB1E624 /* Pods_Passepartout_iOS_Tunnel.framework */; }; - 87121F7216E808EE79925040 /* Pods_Passepartout_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D32B24AA7767AB2E7FB6E0F /* Pods_Passepartout_iOS.framework */; }; - 91AF81613E19B47C06EBD447 /* Pods_PassepartoutCore_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 276375A4CF0313B033CD8B5A /* Pods_PassepartoutCore_iOS.framework */; }; + 23B30D087357F9AC3130E01F /* Pods_macos_Passepartout_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 23D4C05138CFBC311ED76548 /* Pods_macos_Passepartout_macOS.framework */; }; + 254BDBF29F7A1FC54C52B302 /* Pods_ios_PassepartoutCore_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B93E25644660446940471003 /* Pods_ios_PassepartoutCore_iOS.framework */; }; + 339DAF589F7BEBC11A09F350 /* Pods_ios_PassepartoutCoreTests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F661C42E70315D0788B19EDC /* Pods_ios_PassepartoutCoreTests_iOS.framework */; }; + 52F5904C9D386AFF8437468F /* Pods_macos_PassepartoutCoreTests_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9BA8850A89C4680A6A23A65 /* Pods_macos_PassepartoutCoreTests_macOS.framework */; }; + B78AF882395541F93658B1AC /* Pods_macos_PassepartoutCore_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 555477CACFC266802E4C2FF2 /* Pods_macos_PassepartoutCore_macOS.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -124,6 +240,48 @@ remoteGlobalIDString = 0E31529A223F9EF400F61841; remoteInfo = "Passepartout-Core"; }; + 0E5203BC259F5F3F00CBAB56 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0E57F63020C83FC5008323CF /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0E5203B4259F5F3F00CBAB56; + remoteInfo = "Passepartout-macOS-Tunnel"; + }; + 0E5203EF259F60D600CBAB56 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0E57F63020C83FC5008323CF /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0E5203E9259F60D600CBAB56; + remoteInfo = "PassepartoutCore-macOS"; + }; + 0E9AA993259F779F003FAFF1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0E57F63020C83FC5008323CF /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0E31529A223F9EF400F61841; + remoteInfo = "PassepartoutCore-iOS"; + }; + 0E9AA9C0259F7821003FAFF1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0E57F63020C83FC5008323CF /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0E5203E9259F60D600CBAB56; + remoteInfo = "PassepartoutCore-macOS"; + }; + 0E9AAABF259F7FFF003FAFF1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0E57F63020C83FC5008323CF /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0E9AAA60259F7D7E003FAFF1; + remoteInfo = "PassepartoutLauncher-macOS"; + }; + 0E9AAAC1259F800B003FAFF1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0E57F63020C83FC5008323CF /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0E9AAA60259F7D7E003FAFF1; + remoteInfo = "PassepartoutLauncher-macOS"; + }; 0EDE8DC620C86910004C739C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 0E57F63020C83FC5008323CF /* Project object */; @@ -145,13 +303,45 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; + 0E5203C2259F5F3F00CBAB56 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 0E5203BE259F5F3F00CBAB56 /* PassepartoutTunnel.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 0E5203F6259F60D600CBAB56 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 0E5203F2259F60D600CBAB56 /* PassepartoutCore.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + 0E9AAACA259F806B003FAFF1 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = Contents/Library/LoginItems; + dstSubfolderSpec = 1; + files = ( + 0E9AAACB259F808B003FAFF1 /* PassepartoutLauncher.app in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 0EDE8DCC20C86910004C739C /* Embed App Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 13; files = ( - 0EDE8DC820C86910004C739C /* Passepartout-Tunnel.appex in Embed App Extensions */, + 0EDE8DC820C86910004C739C /* PassepartoutTunnel.appex in Embed App Extensions */, ); name = "Embed App Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -159,6 +349,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 0376B8FDB39F81CA072C3F37 /* Pods-ios-PassepartoutCore-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-PassepartoutCore-iOS.debug.xcconfig"; path = "Target Support Files/Pods-ios-PassepartoutCore-iOS/Pods-ios-PassepartoutCore-iOS.debug.xcconfig"; sourceTree = ""; }; + 055AC72673D0F12546CAEEA6 /* Pods-macos-Passepartout-macOS-Tunnel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-Passepartout-macOS-Tunnel.release.xcconfig"; path = "Target Support Files/Pods-macos-Passepartout-macOS-Tunnel/Pods-macos-Passepartout-macOS-Tunnel.release.xcconfig"; sourceTree = ""; }; 09CB728874F1553EF27BAAB9 /* Pods-Passepartout-iOS-Tunnel.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Passepartout-iOS-Tunnel.debug.xcconfig"; path = "Target Support Files/Pods-Passepartout-iOS-Tunnel/Pods-Passepartout-iOS-Tunnel.debug.xcconfig"; sourceTree = ""; }; 0E05C5CE20D139AF006EE732 /* FieldTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FieldTableViewCell.swift; sourceTree = ""; }; 0E05C61C20D27C82006EE732 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; @@ -166,7 +358,6 @@ 0E0C072C236087C800155AAC /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; 0E1066C820E0F84A004F98B7 /* Cells.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Cells.swift; sourceTree = ""; }; 0E158AD920E11B0B00C85A82 /* EndpointViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EndpointViewController.swift; sourceTree = ""; }; - 0E1C0A4E238FC7A5009FC087 /* InfrastructureFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = InfrastructureFactory.swift; path = Submodules/Core/Passepartout/Sources/Services/InfrastructureFactory.swift; sourceTree = SOURCE_ROOT; }; 0E1C0A50238FFF97009FC087 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Intents.strings; sourceTree = ""; }; 0E1C0A51238FFF97009FC087 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/App.strings; sourceTree = ""; }; 0E1C0A52238FFF97009FC087 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -221,7 +412,76 @@ 0E4C9CBA20DCF0D600A0C59C /* DestructiveTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DestructiveTableViewCell.swift; sourceTree = ""; }; 0E4FD7ED20D539A0002221FF /* Utils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; 0E4FD7F020D58618002221FF /* Macros.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Macros.swift; sourceTree = ""; }; + 0E5202F7259F573500CBAB56 /* Passepartout.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Passepartout.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E5203B5259F5F3F00CBAB56 /* PassepartoutTunnel.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = PassepartoutTunnel.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E5203EA259F60D600CBAB56 /* PassepartoutCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PassepartoutCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 0E533B152258E03B00EF94FC /* PoolGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PoolGroup.swift; sourceTree = ""; }; + 0E569F14259F2D3E0022DFB8 /* Issue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Issue.swift; sourceTree = ""; }; + 0E569F19259F2D8F0022DFB8 /* GracefulVPN.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GracefulVPN.swift; sourceTree = ""; }; + 0E569F1A259F2D8F0022DFB8 /* ProductManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProductManager.swift; sourceTree = ""; }; + 0E569F1B259F2D8F0022DFB8 /* Product.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Product.swift; sourceTree = ""; }; + 0E569F28259F2DB10022DFB8 /* Infrastructure+Name.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Infrastructure+Name.swift"; sourceTree = ""; }; + 0E569F29259F2DB10022DFB8 /* Infrastructure+Metadata.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Infrastructure+Metadata.swift"; sourceTree = ""; }; + 0E569F2A259F2DB10022DFB8 /* InfrastructureFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfrastructureFactory.swift; sourceTree = ""; }; + 0E569F30259F2DC10022DFB8 /* TrustedNetworksUI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TrustedNetworksUI.swift; sourceTree = ""; }; + 0E569F5A259F41690022DFB8 /* TextTableView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextTableView.xib; sourceTree = ""; }; + 0E569F5B259F41690022DFB8 /* TextTableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextTableView.swift; sourceTree = ""; }; + 0E569F5E259F41690022DFB8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 0E569F60259F41690022DFB8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 0E569F61259F41690022DFB8 /* Launcher.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Launcher.entitlements; sourceTree = ""; }; + 0E569F62259F41690022DFB8 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 0E569F63259F41690022DFB8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 0E569F66259F41690022DFB8 /* DebugLogViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebugLogViewController.swift; sourceTree = ""; }; + 0E569F67259F41690022DFB8 /* PreferencesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; + 0E569F68259F41690022DFB8 /* PreferencesGeneralViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesGeneralViewController.swift; sourceTree = ""; }; + 0E569F69259F41690022DFB8 /* OrganizerProfileTableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrganizerProfileTableView.swift; sourceTree = ""; }; + 0E569F6A259F41690022DFB8 /* OrganizerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrganizerViewController.swift; sourceTree = ""; }; + 0E569F6B259F41690022DFB8 /* OrganizerProfileTableView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OrganizerProfileTableView.xib; sourceTree = ""; }; + 0E569F6D259F41690022DFB8 /* ServiceViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServiceViewController.swift; sourceTree = ""; }; + 0E569F6E259F41690022DFB8 /* ProviderServiceView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProviderServiceView.swift; sourceTree = ""; }; + 0E569F70259F41690022DFB8 /* MTUViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MTUViewController.swift; sourceTree = ""; }; + 0E569F71259F41690022DFB8 /* EndpointViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EndpointViewController.swift; sourceTree = ""; }; + 0E569F72259F41690022DFB8 /* ConfigurationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfigurationViewController.swift; sourceTree = ""; }; + 0E569F73259F41690022DFB8 /* ProfileCustomizationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProfileCustomizationViewController.swift; sourceTree = ""; }; + 0E569F74259F41690022DFB8 /* ProxyViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProxyViewController.swift; sourceTree = ""; }; + 0E569F75259F41690022DFB8 /* TrustedNetworksAddViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TrustedNetworksAddViewController.swift; sourceTree = ""; }; + 0E569F76259F41690022DFB8 /* DNSViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DNSViewController.swift; sourceTree = ""; }; + 0E569F77259F41690022DFB8 /* DefaultGatewayViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultGatewayViewController.swift; sourceTree = ""; }; + 0E569F78259F41690022DFB8 /* TrustedNetworksViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TrustedNetworksViewController.swift; sourceTree = ""; }; + 0E569F79259F41690022DFB8 /* ProviderServiceView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ProviderServiceView.xib; sourceTree = ""; }; + 0E569F7A259F41690022DFB8 /* HostServiceView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HostServiceView.swift; sourceTree = ""; }; + 0E569F7B259F41690022DFB8 /* HostServiceView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = HostServiceView.xib; sourceTree = ""; }; + 0E569F7C259F41690022DFB8 /* AccountViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountViewController.swift; sourceTree = ""; }; + 0E569F7D259F41690022DFB8 /* Providers.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Providers.xcassets; sourceTree = ""; }; + 0E569F7E259F41690022DFB8 /* App.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = App.entitlements; sourceTree = ""; }; + 0E569F7F259F41690022DFB8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 0E569F82259F41690022DFB8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Preferences.storyboard; sourceTree = ""; }; + 0E569F84259F41690022DFB8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Service.storyboard; sourceTree = ""; }; + 0E569F86259F41690022DFB8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 0E569F88259F41690022DFB8 /* MainMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainMenu.swift; sourceTree = ""; }; + 0E569F89259F41690022DFB8 /* StatusMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusMenu.swift; sourceTree = ""; }; + 0E569F8A259F41690022DFB8 /* MainMenu.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = ""; }; + 0E569F8B259F41690022DFB8 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 0E569F8F259F41690022DFB8 /* IssueReporter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IssueReporter.swift; sourceTree = ""; }; + 0E569F91259F41690022DFB8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/App.strings; sourceTree = ""; }; + 0E569F92259F41690022DFB8 /* WindowManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WindowManager.swift; sourceTree = ""; }; + 0E569F93259F41690022DFB8 /* HostImporter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HostImporter.swift; sourceTree = ""; }; + 0E569F94259F41690022DFB8 /* NSTextView+Search.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSTextView+Search.swift"; sourceTree = ""; }; + 0E569F97259F41690022DFB8 /* TextInputViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextInputViewController.swift; sourceTree = ""; }; + 0E569F98259F41690022DFB8 /* SwiftGen+Assets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Assets.swift"; sourceTree = ""; }; + 0E569F99259F41690022DFB8 /* Donation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Donation.swift; sourceTree = ""; }; + 0E569F9A259F41690022DFB8 /* Theme+Views.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Theme+Views.swift"; sourceTree = ""; }; + 0E569F9C259F41690022DFB8 /* SwiftGen+Strings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Strings.swift"; sourceTree = ""; }; + 0E569F9D259F41690022DFB8 /* SwiftGen+Scenes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Scenes.swift"; sourceTree = ""; }; + 0E569F9E259F41690022DFB8 /* ProductManager+App.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ProductManager+App.swift"; sourceTree = ""; }; + 0E569FA1259F41690022DFB8 /* Theme.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; + 0E569FA3259F41690022DFB8 /* AppConstants+App.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AppConstants+App.swift"; sourceTree = ""; }; + 0E569FA4259F41690022DFB8 /* Credits.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Credits.html; sourceTree = ""; }; + 0E569FA5259F41690022DFB8 /* SwiftGen+Segues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Segues.swift"; sourceTree = ""; }; + 0E569FA6259F41690022DFB8 /* Macros.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Macros.swift; sourceTree = ""; }; + 0E569FA7259F41690022DFB8 /* Flags.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Flags.xcassets; sourceTree = ""; }; + 0E569FA8259F41690022DFB8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 0E569FAA259F41690022DFB8 /* Tunnel-macOS.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Tunnel-macOS.entitlements"; sourceTree = ""; }; 0E57F63820C83FC5008323CF /* Passepartout.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Passepartout.app; sourceTree = BUILT_PRODUCTS_DIR; }; 0E57F63B20C83FC5008323CF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 0E57F63D20C83FC5008323CF /* ServiceViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceViewController.swift; sourceTree = ""; }; @@ -250,15 +510,21 @@ 0E89DFC7213E8FC500741BA1 /* SessionProxy+Communication.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SessionProxy+Communication.swift"; sourceTree = ""; }; 0E89DFCD213EEDFA00741BA1 /* WizardProviderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WizardProviderViewController.swift; sourceTree = ""; }; 0E8D97E121388B52006FB4A0 /* InfrastructurePreset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfrastructurePreset.swift; sourceTree = ""; }; + 0E9AA977259F756A003FAFF1 /* PacketTunnelProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PacketTunnelProvider.swift; sourceTree = ""; }; + 0E9AA985259F777B003FAFF1 /* InfrastructureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfrastructureTests.swift; sourceTree = ""; }; + 0E9AA986259F777B003FAFF1 /* UtilsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UtilsTests.swift; sourceTree = ""; }; + 0E9AA987259F777B003FAFF1 /* ConnectionServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionServiceTests.swift; sourceTree = ""; }; + 0E9AA988259F777B003FAFF1 /* ConnectionService.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = ConnectionService.json; sourceTree = ""; }; + 0E9AA98D259F779F003FAFF1 /* PassepartoutCoreTests-iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "PassepartoutCoreTests-iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E9AA991259F779F003FAFF1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 0E9AA9BA259F7821003FAFF1 /* PassepartoutCoreTests-macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "PassepartoutCoreTests-macOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E9AAA61259F7D7E003FAFF1 /* PassepartoutLauncher.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PassepartoutLauncher.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 0E9AAAD3259F809F003FAFF1 /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/ServiceManagement.framework; sourceTree = DEVELOPER_DIR; }; 0E9CD7862257462800D033B4 /* Providers.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Providers.xcassets; sourceTree = ""; }; 0E9CD788225746B300D033B4 /* Flags.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Flags.xcassets; sourceTree = ""; }; 0E9CDB6623604AD5006733B4 /* ServerNetworkViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerNetworkViewController.swift; sourceTree = ""; }; - 0EA84514238A9B5100EFC500 /* Infrastructure+Name.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Infrastructure+Name.swift"; path = "Submodules/Core/Passepartout/Sources/Services/Infrastructure+Name.swift"; sourceTree = SOURCE_ROOT; }; - 0EA84519238C2AB500EFC500 /* Infrastructure+Metadata.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Infrastructure+Metadata.swift"; path = "Submodules/Core/Passepartout/Sources/Services/Infrastructure+Metadata.swift"; sourceTree = SOURCE_ROOT; }; - 0EAC572E249426E200D0FCE0 /* GracefulVPN.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = GracefulVPN.swift; path = Submodules/Core/Passepartout/Sources/Model/GracefulVPN.swift; sourceTree = SOURCE_ROOT; }; 0EB60FD92111136E00AD27F3 /* UITextView+Search.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITextView+Search.swift"; sourceTree = ""; }; 0EB67D6A2184581E00BA6200 /* ImportedHostsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportedHostsViewController.swift; sourceTree = ""; }; - 0EB9EB7223867E7F009C0A1C /* TrustedNetworksUI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TrustedNetworksUI.swift; sourceTree = ""; }; 0EBBE8F42182361700106008 /* ConnectionService+Migration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ConnectionService+Migration.swift"; sourceTree = ""; }; 0EBE2FD02360F88C00F0D5AB /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; 0EBE2FD12360F88E00F0D5AB /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -277,8 +543,6 @@ 0EBE3AA4213DC1B000BFA2F5 /* ProviderConnectionProfile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProviderConnectionProfile.swift; sourceTree = ""; }; 0EC7F20420E24308004EA58E /* DebugLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugLog.swift; sourceTree = ""; }; 0ECA7E2125967BB90095F369 /* ProductManager+App.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ProductManager+App.swift"; sourceTree = ""; }; - 0ECA7E2525967BDB0095F369 /* Product.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Product.swift; path = Submodules/Core/Passepartout/Sources/Model/Product.swift; sourceTree = SOURCE_ROOT; }; - 0ECA7E2625967BDB0095F369 /* ProductManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ProductManager.swift; path = Submodules/Core/Passepartout/Sources/Model/ProductManager.swift; sourceTree = SOURCE_ROOT; }; 0ECC60DD2256B6890020BEAC /* SwiftGen+Assets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Assets.swift"; sourceTree = ""; }; 0ECEB105224FE51400E9E551 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 0ECEB106224FE51400E9E551 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Organizer.storyboard; sourceTree = ""; }; @@ -291,38 +555,58 @@ 0ED31C2820CF2A340027975F /* AccountViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountViewController.swift; sourceTree = ""; }; 0ED31C2B20CF2D6F0027975F /* ProviderPoolViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProviderPoolViewController.swift; sourceTree = ""; }; 0ED31C3920CF39510027975F /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; }; - 0ED31C3B20CF39510027975F /* Tunnel.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Tunnel.entitlements; sourceTree = ""; }; + 0ED31C3B20CF39510027975F /* Tunnel-iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Tunnel-iOS.entitlements"; sourceTree = ""; }; 0ED38AD8213F33150004D387 /* WizardHostViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WizardHostViewController.swift; sourceTree = ""; }; 0ED38AE621404F100004D387 /* EndpointDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EndpointDataSource.swift; sourceTree = ""; }; 0ED38AEB2141260D0004D387 /* ConfigurationModificationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationModificationDelegate.swift; sourceTree = ""; }; 0ED824C920D12B8700F2FE9E /* ToggleTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToggleTableViewCell.swift; sourceTree = ""; }; 0ED824CD20D12DBE00F2FE9E /* SettingTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingTableViewCell.swift; sourceTree = ""; }; - 0ED993B0223FF8C700B0F9C9 /* IntentDispatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = IntentDispatcher.swift; path = Submodules/Core/Passepartout/Sources/Intents/IntentDispatcher.swift; sourceTree = SOURCE_ROOT; }; - 0EDE8DBF20C86910004C739C /* Passepartout-Tunnel.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Passepartout-Tunnel.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; - 0EDE8DC320C86910004C739C /* PacketTunnelProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PacketTunnelProvider.swift; sourceTree = ""; }; - 0EDE8DC520C86910004C739C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 0ED993B0223FF8C700B0F9C9 /* IntentDispatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IntentDispatcher.swift; sourceTree = ""; }; + 0EDE8DBF20C86910004C739C /* PassepartoutTunnel.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = PassepartoutTunnel.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 0EDE8DC320C86910004C739C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 0EDE8DD220C86978004C739C /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; }; - 0EDE8DE220C86A13004C739C /* Passepartout.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Passepartout.entitlements; sourceTree = ""; }; + 0EDE8DE220C86A13004C739C /* App.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = App.entitlements; sourceTree = ""; }; 0EDE8DE320C89028004C739C /* SwiftGen+Scenes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Scenes.swift"; sourceTree = ""; }; 0EDE8DE620C93945004C739C /* Credentials.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Credentials.swift; sourceTree = ""; }; 0EDE8DED20C93E4C004C739C /* GroupConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupConstants.swift; sourceTree = ""; }; 0EE3BBB1215ED3A900F30952 /* AboutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutViewController.swift; sourceTree = ""; }; - 0EEF23402321AC55000AEBE3 /* Issue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Issue.swift; path = Submodules/Core/Passepartout/Sources/Issue.swift; sourceTree = SOURCE_ROOT; }; 0EF56BBA2185AC8500B0C8AB /* SwiftGen+Segues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Segues.swift"; sourceTree = ""; }; 0EFB901722764689006405E4 /* ProfileNetworkSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileNetworkSettings.swift; sourceTree = ""; }; 0EFB90192276D7F1006405E4 /* NetworkSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkSettingsViewController.swift; sourceTree = ""; }; 0EFD943D215BE10800529B64 /* IssueReporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IssueReporter.swift; sourceTree = ""; }; 0FD7B360EE444EF1CDBFDF1C /* Pods-PassepartoutCoreTests-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PassepartoutCoreTests-iOS.debug.xcconfig"; path = "Target Support Files/Pods-PassepartoutCoreTests-iOS/Pods-PassepartoutCoreTests-iOS.debug.xcconfig"; sourceTree = ""; }; + 0FDF9B1E8EC63CCF4A2C9694 /* Pods-ios-Passepartout-iOS-Tunnel.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-Passepartout-iOS-Tunnel.debug.xcconfig"; path = "Target Support Files/Pods-ios-Passepartout-iOS-Tunnel/Pods-ios-Passepartout-iOS-Tunnel.debug.xcconfig"; sourceTree = ""; }; + 155FC78114E324E01093F98C /* Pods-ios-Passepartout-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-Passepartout-iOS.debug.xcconfig"; path = "Target Support Files/Pods-ios-Passepartout-iOS/Pods-ios-Passepartout-iOS.debug.xcconfig"; sourceTree = ""; }; 234D3C887F46AD64480495BB /* Pods-PassepartoutCoreTests-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PassepartoutCoreTests-iOS.release.xcconfig"; path = "Target Support Files/Pods-PassepartoutCoreTests-iOS/Pods-PassepartoutCoreTests-iOS.release.xcconfig"; sourceTree = ""; }; - 276375A4CF0313B033CD8B5A /* Pods_PassepartoutCore_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PassepartoutCore_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 23D4C05138CFBC311ED76548 /* Pods_macos_Passepartout_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_Passepartout_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 329F34FAC963CE4BEA3013D6 /* Pods-macos-PassepartoutCore-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-PassepartoutCore-macOS.debug.xcconfig"; path = "Target Support Files/Pods-macos-PassepartoutCore-macOS/Pods-macos-PassepartoutCore-macOS.debug.xcconfig"; sourceTree = ""; }; + 35380A14E9FF6F0250C171CD /* Pods_macos_PassepartoutTunnel_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_PassepartoutTunnel_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4BD12523ABCBF7ED941FC270 /* Pods-Passepartout-iOS-Tunnel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Passepartout-iOS-Tunnel.release.xcconfig"; path = "Target Support Files/Pods-Passepartout-iOS-Tunnel/Pods-Passepartout-iOS-Tunnel.release.xcconfig"; sourceTree = ""; }; + 50DD79FBBBBF400F3BFE8912 /* Pods-macos-PassepartoutTunnel-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-PassepartoutTunnel-macOS.debug.xcconfig"; path = "Target Support Files/Pods-macos-PassepartoutTunnel-macOS/Pods-macos-PassepartoutTunnel-macOS.debug.xcconfig"; sourceTree = ""; }; 53B773C4BAE7EDB38C7AFCD1 /* Pods-Passepartout-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Passepartout-iOS.release.xcconfig"; path = "Target Support Files/Pods-Passepartout-iOS/Pods-Passepartout-iOS.release.xcconfig"; sourceTree = ""; }; - 6D32B24AA7767AB2E7FB6E0F /* Pods_Passepartout_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Passepartout_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 992C366F272FAA643335F68C /* Pods_PassepartoutCoreTests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PassepartoutCoreTests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 555477CACFC266802E4C2FF2 /* Pods_macos_PassepartoutCore_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_PassepartoutCore_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5C7F674900185F5DD24DA481 /* Pods-macos-Passepartout-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-Passepartout-macOS.release.xcconfig"; path = "Target Support Files/Pods-macos-Passepartout-macOS/Pods-macos-Passepartout-macOS.release.xcconfig"; sourceTree = ""; }; + 5CC1FDDBA184F8548D814E9D /* Pods-ios-PassepartoutCore-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-PassepartoutCore-iOS.release.xcconfig"; path = "Target Support Files/Pods-ios-PassepartoutCore-iOS/Pods-ios-PassepartoutCore-iOS.release.xcconfig"; sourceTree = ""; }; + 7E007C60601AFBB8A2C34DC4 /* Pods-ios-PassepartoutTunnel-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-PassepartoutTunnel-iOS.debug.xcconfig"; path = "Target Support Files/Pods-ios-PassepartoutTunnel-iOS/Pods-ios-PassepartoutTunnel-iOS.debug.xcconfig"; sourceTree = ""; }; + 80A0C78A127E8CE9CB8E658D /* Pods-macos-PassepartoutCoreTests-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-PassepartoutCoreTests-macOS.release.xcconfig"; path = "Target Support Files/Pods-macos-PassepartoutCoreTests-macOS/Pods-macos-PassepartoutCoreTests-macOS.release.xcconfig"; sourceTree = ""; }; + 9FB2CA39113427B15C824FE0 /* Pods-ios-PassepartoutTunnel-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-PassepartoutTunnel-iOS.release.xcconfig"; path = "Target Support Files/Pods-ios-PassepartoutTunnel-iOS/Pods-ios-PassepartoutTunnel-iOS.release.xcconfig"; sourceTree = ""; }; A1C4E67627603307808F2FFC /* Pods-PassepartoutCore-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PassepartoutCore-iOS.debug.xcconfig"; path = "Target Support Files/Pods-PassepartoutCore-iOS/Pods-PassepartoutCore-iOS.debug.xcconfig"; sourceTree = ""; }; + A8E3B69460648EA46C1BF850 /* Pods-ios-PassepartoutCoreTests-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-PassepartoutCoreTests-iOS.debug.xcconfig"; path = "Target Support Files/Pods-ios-PassepartoutCoreTests-iOS/Pods-ios-PassepartoutCoreTests-iOS.debug.xcconfig"; sourceTree = ""; }; + B7018254471DA72DF7939A01 /* Pods-macos-Passepartout-macOS-Tunnel.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-Passepartout-macOS-Tunnel.debug.xcconfig"; path = "Target Support Files/Pods-macos-Passepartout-macOS-Tunnel/Pods-macos-Passepartout-macOS-Tunnel.debug.xcconfig"; sourceTree = ""; }; + B93E25644660446940471003 /* Pods_ios_PassepartoutCore_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_PassepartoutCore_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C3D09D9270939FC37BE7101E /* Pods-macos-PassepartoutCore-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-PassepartoutCore-macOS.release.xcconfig"; path = "Target Support Files/Pods-macos-PassepartoutCore-macOS/Pods-macos-PassepartoutCore-macOS.release.xcconfig"; sourceTree = ""; }; + C9BA8850A89C4680A6A23A65 /* Pods_macos_PassepartoutCoreTests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macos_PassepartoutCoreTests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CFF79E4C42220C649C2259D2 /* Pods-ios-Passepartout-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-Passepartout-iOS.release.xcconfig"; path = "Target Support Files/Pods-ios-Passepartout-iOS/Pods-ios-Passepartout-iOS.release.xcconfig"; sourceTree = ""; }; + D2AF3AFC3418E6800D8A70E8 /* Pods-macos-PassepartoutTunnel-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-PassepartoutTunnel-macOS.release.xcconfig"; path = "Target Support Files/Pods-macos-PassepartoutTunnel-macOS/Pods-macos-PassepartoutTunnel-macOS.release.xcconfig"; sourceTree = ""; }; + D5D3FFA0392EA5F818646CD9 /* Pods-ios-PassepartoutCoreTests-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-PassepartoutCoreTests-iOS.release.xcconfig"; path = "Target Support Files/Pods-ios-PassepartoutCoreTests-iOS/Pods-ios-PassepartoutCoreTests-iOS.release.xcconfig"; sourceTree = ""; }; + E070D15674A07F40A22BFA7E /* Pods_ios_Passepartout_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_Passepartout_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E08D99B2FCC4478BB24A57B0 /* Pods-macos-Passepartout-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-Passepartout-macOS.debug.xcconfig"; path = "Target Support Files/Pods-macos-Passepartout-macOS/Pods-macos-Passepartout-macOS.debug.xcconfig"; sourceTree = ""; }; + E69B5CF79639B3D24F2AFFC9 /* Pods-macos-PassepartoutCoreTests-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macos-PassepartoutCoreTests-macOS.debug.xcconfig"; path = "Target Support Files/Pods-macos-PassepartoutCoreTests-macOS/Pods-macos-PassepartoutCoreTests-macOS.debug.xcconfig"; sourceTree = ""; }; + E9433B826E8B47C325FD6B8F /* Pods-ios-Passepartout-iOS-Tunnel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ios-Passepartout-iOS-Tunnel.release.xcconfig"; path = "Target Support Files/Pods-ios-Passepartout-iOS-Tunnel/Pods-ios-Passepartout-iOS-Tunnel.release.xcconfig"; sourceTree = ""; }; F1BECEC1D93FEBDB17B714D8 /* Pods-PassepartoutCore-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PassepartoutCore-iOS.release.xcconfig"; path = "Target Support Files/Pods-PassepartoutCore-iOS/Pods-PassepartoutCore-iOS.release.xcconfig"; sourceTree = ""; }; F4959B5F3CB1BBC2C46EA639 /* Pods-Passepartout-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Passepartout-iOS.debug.xcconfig"; path = "Target Support Files/Pods-Passepartout-iOS/Pods-Passepartout-iOS.debug.xcconfig"; sourceTree = ""; }; - FA4CE55A94366C45DDB1E624 /* Pods_Passepartout_iOS_Tunnel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Passepartout_iOS_Tunnel.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + F661C42E70315D0788B19EDC /* Pods_ios_PassepartoutCoreTests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_PassepartoutCoreTests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FF7D2E624A2979425A6F7B7A /* Pods_ios_PassepartoutTunnel_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ios_PassepartoutTunnel_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -330,7 +614,34 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 91AF81613E19B47C06EBD447 /* Pods_PassepartoutCore_iOS.framework in Frameworks */, + 254BDBF29F7A1FC54C52B302 /* Pods_ios_PassepartoutCore_iOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E5202F4259F573500CBAB56 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E9AAAD4259F809F003FAFF1 /* ServiceManagement.framework in Frameworks */, + 0E5203F1259F60D600CBAB56 /* PassepartoutCore.framework in Frameworks */, + 23B30D087357F9AC3130E01F /* Pods_macos_Passepartout_macOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E5203B2259F5F3F00CBAB56 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E5203B6259F5F3F00CBAB56 /* NetworkExtension.framework in Frameworks */, + 0774835EE25EEA07495A98AA /* Pods_macos_PassepartoutTunnel_macOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E5203E7259F60D600CBAB56 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B78AF882395541F93658B1AC /* Pods_macos_PassepartoutCore_macOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -340,7 +651,32 @@ files = ( 0E3152B0223F9EF500F61841 /* PassepartoutCore.framework in Frameworks */, 0ED31C3D20CF396E0027975F /* NetworkExtension.framework in Frameworks */, - 87121F7216E808EE79925040 /* Pods_Passepartout_iOS.framework in Frameworks */, + 0EEDC551C74496360E09994F /* Pods_ios_Passepartout_iOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E9AA98A259F779F003FAFF1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E9AA992259F779F003FAFF1 /* PassepartoutCore.framework in Frameworks */, + 339DAF589F7BEBC11A09F350 /* Pods_ios_PassepartoutCoreTests_iOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E9AA9B7259F7821003FAFF1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E9AA9BF259F7821003FAFF1 /* PassepartoutCore.framework in Frameworks */, + 52F5904C9D386AFF8437468F /* Pods_macos_PassepartoutCoreTests_macOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E9AAA5E259F7D7E003FAFF1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( ); runOnlyForDeploymentPostprocessing = 0; }; @@ -349,7 +685,7 @@ buildActionMask = 2147483647; files = ( 0ED31C3A20CF39510027975F /* NetworkExtension.framework in Frameworks */, - 577B90392A4798F63461B0B5 /* Pods_Passepartout_iOS_Tunnel.framework in Frameworks */, + 051985241A3ABE44EB09DFF5 /* Pods_ios_PassepartoutTunnel_iOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -387,13 +723,15 @@ path = Shortcuts; sourceTree = ""; }; - 0E31529C223F9EF500F61841 /* PassepartoutCore-iOS */ = { + 0E31529C223F9EF500F61841 /* Core */ = { isa = PBXGroup; children = ( + 0E3CAF97229AAE760008E5C8 /* Resources */, + 0EDE8DF020C93EBB004C739C /* Sources */, 0E31529D223F9EF500F61841 /* PassepartoutCore.h */, 0E31529E223F9EF500F61841 /* Info.plist */, ); - path = "PassepartoutCore-iOS"; + path = Core; sourceTree = ""; }; 0E3CAF97229AAE760008E5C8 /* Resources */ = { @@ -422,13 +760,140 @@ path = Intents; sourceTree = ""; }; + 0E569F58259F41690022DFB8 /* macOS */ = { + isa = PBXGroup; + children = ( + 0E569F8C259F41690022DFB8 /* Global */, + 0E569F5C259F41690022DFB8 /* Launcher */, + 0E569F87259F41690022DFB8 /* Menu */, + 0E569F64259F41690022DFB8 /* Scenes */, + 0E569F59259F41690022DFB8 /* Tables */, + 0E569F7E259F41690022DFB8 /* App.entitlements */, + 0E569FA8259F41690022DFB8 /* Info.plist */, + 0E569F8D259F41690022DFB8 /* App.strings */, + 0E569F8B259F41690022DFB8 /* AppDelegate.swift */, + 0E569F7F259F41690022DFB8 /* Assets.xcassets */, + 0E569FA7259F41690022DFB8 /* Flags.xcassets */, + 0E569F7D259F41690022DFB8 /* Providers.xcassets */, + 0E569F85259F41690022DFB8 /* Main.storyboard */, + 0E569F81259F41690022DFB8 /* Preferences.storyboard */, + 0E569F83259F41690022DFB8 /* Service.storyboard */, + ); + path = macOS; + sourceTree = ""; + }; + 0E569F59259F41690022DFB8 /* Tables */ = { + isa = PBXGroup; + children = ( + 0E569F5B259F41690022DFB8 /* TextTableView.swift */, + 0E569F5A259F41690022DFB8 /* TextTableView.xib */, + ); + path = Tables; + sourceTree = ""; + }; + 0E569F5C259F41690022DFB8 /* Launcher */ = { + isa = PBXGroup; + children = ( + 0E569F61259F41690022DFB8 /* Launcher.entitlements */, + 0E569F63259F41690022DFB8 /* Info.plist */, + 0E569F62259F41690022DFB8 /* AppDelegate.swift */, + 0E569F5E259F41690022DFB8 /* Assets.xcassets */, + 0E569F5F259F41690022DFB8 /* Main.storyboard */, + ); + path = Launcher; + sourceTree = ""; + }; + 0E569F64259F41690022DFB8 /* Scenes */ = { + isa = PBXGroup; + children = ( + 0E569F65259F41690022DFB8 /* Preferences */, + 0E569F6C259F41690022DFB8 /* Service */, + 0E569F69259F41690022DFB8 /* OrganizerProfileTableView.swift */, + 0E569F6A259F41690022DFB8 /* OrganizerViewController.swift */, + 0E569F6B259F41690022DFB8 /* OrganizerProfileTableView.xib */, + ); + path = Scenes; + sourceTree = ""; + }; + 0E569F65259F41690022DFB8 /* Preferences */ = { + isa = PBXGroup; + children = ( + 0E569F66259F41690022DFB8 /* DebugLogViewController.swift */, + 0E569F68259F41690022DFB8 /* PreferencesGeneralViewController.swift */, + 0E569F67259F41690022DFB8 /* PreferencesViewController.swift */, + ); + path = Preferences; + sourceTree = ""; + }; + 0E569F6C259F41690022DFB8 /* Service */ = { + isa = PBXGroup; + children = ( + 0E569F6F259F41690022DFB8 /* Customization */, + 0E569F7C259F41690022DFB8 /* AccountViewController.swift */, + 0E569F7A259F41690022DFB8 /* HostServiceView.swift */, + 0E569F6E259F41690022DFB8 /* ProviderServiceView.swift */, + 0E569F6D259F41690022DFB8 /* ServiceViewController.swift */, + 0E569F7B259F41690022DFB8 /* HostServiceView.xib */, + 0E569F79259F41690022DFB8 /* ProviderServiceView.xib */, + ); + path = Service; + sourceTree = ""; + }; + 0E569F6F259F41690022DFB8 /* Customization */ = { + isa = PBXGroup; + children = ( + 0E569F72259F41690022DFB8 /* ConfigurationViewController.swift */, + 0E569F77259F41690022DFB8 /* DefaultGatewayViewController.swift */, + 0E569F76259F41690022DFB8 /* DNSViewController.swift */, + 0E569F71259F41690022DFB8 /* EndpointViewController.swift */, + 0E569F70259F41690022DFB8 /* MTUViewController.swift */, + 0E569F73259F41690022DFB8 /* ProfileCustomizationViewController.swift */, + 0E569F74259F41690022DFB8 /* ProxyViewController.swift */, + 0E569F75259F41690022DFB8 /* TrustedNetworksAddViewController.swift */, + 0E569F78259F41690022DFB8 /* TrustedNetworksViewController.swift */, + ); + path = Customization; + sourceTree = ""; + }; + 0E569F87259F41690022DFB8 /* Menu */ = { + isa = PBXGroup; + children = ( + 0E569F88259F41690022DFB8 /* MainMenu.swift */, + 0E569F8A259F41690022DFB8 /* MainMenu.xib */, + 0E569F89259F41690022DFB8 /* StatusMenu.swift */, + ); + path = Menu; + sourceTree = ""; + }; + 0E569F8C259F41690022DFB8 /* Global */ = { + isa = PBXGroup; + children = ( + 0E569FA4259F41690022DFB8 /* Credits.html */, + 0E569FA3259F41690022DFB8 /* AppConstants+App.swift */, + 0E569F99259F41690022DFB8 /* Donation.swift */, + 0E569F93259F41690022DFB8 /* HostImporter.swift */, + 0E569F8F259F41690022DFB8 /* IssueReporter.swift */, + 0E569FA6259F41690022DFB8 /* Macros.swift */, + 0E569F94259F41690022DFB8 /* NSTextView+Search.swift */, + 0E569F9E259F41690022DFB8 /* ProductManager+App.swift */, + 0E569F98259F41690022DFB8 /* SwiftGen+Assets.swift */, + 0E569F9D259F41690022DFB8 /* SwiftGen+Scenes.swift */, + 0E569FA5259F41690022DFB8 /* SwiftGen+Segues.swift */, + 0E569F9C259F41690022DFB8 /* SwiftGen+Strings.swift */, + 0E569F97259F41690022DFB8 /* TextInputViewController.swift */, + 0E569FA1259F41690022DFB8 /* Theme.swift */, + 0E569F9A259F41690022DFB8 /* Theme+Views.swift */, + 0E569F92259F41690022DFB8 /* WindowManager.swift */, + ); + path = Global; + sourceTree = ""; + }; 0E57F62F20C83FC5008323CF = { isa = PBXGroup; children = ( - 0E31529C223F9EF500F61841 /* PassepartoutCore-iOS */, - 0E57F63A20C83FC5008323CF /* Passepartout-iOS */, - 0EDE8DC020C86910004C739C /* Passepartout-iOS-Tunnel */, - 0EE4EB2C229A71BB000E4BA1 /* Libraries */, + 0E23B4A12298559800304C30 /* Config.xcconfig */, + 0E9AA982259F7674003FAFF1 /* Passepartout */, + 0EE4EB2C229A71BB000E4BA1 /* Submodules */, 0E57F63920C83FC5008323CF /* Products */, 374B9F085E1148C37CF9117A /* Frameworks */, ECB6C4CA315B2CB2AFE7ACBB /* Pods */, @@ -439,35 +904,41 @@ isa = PBXGroup; children = ( 0E57F63820C83FC5008323CF /* Passepartout.app */, - 0EDE8DBF20C86910004C739C /* Passepartout-Tunnel.appex */, + 0EDE8DBF20C86910004C739C /* PassepartoutTunnel.appex */, 0E31529B223F9EF400F61841 /* PassepartoutCore.framework */, + 0E5202F7259F573500CBAB56 /* Passepartout.app */, + 0E5203B5259F5F3F00CBAB56 /* PassepartoutTunnel.appex */, + 0E5203EA259F60D600CBAB56 /* PassepartoutCore.framework */, + 0E9AA98D259F779F003FAFF1 /* PassepartoutCoreTests-iOS.xctest */, + 0E9AA9BA259F7821003FAFF1 /* PassepartoutCoreTests-macOS.xctest */, + 0E9AAA61259F7D7E003FAFF1 /* PassepartoutLauncher.app */, ); name = Products; sourceTree = ""; }; - 0E57F63A20C83FC5008323CF /* Passepartout-iOS */ = { + 0E57F63A20C83FC5008323CF /* iOS */ = { isa = PBXGroup; children = ( - 0EDE8DEC20C93E3B004C739C /* Global */, 0E1066CA20E0F85C004F98B7 /* Cells */, + 0EDE8DEC20C93E3B004C739C /* Global */, 0EDE8DF120C93ED8004C739C /* Scenes */, - 0E23B4A12298559800304C30 /* Config.xcconfig */, - 0EDE8DE220C86A13004C739C /* Passepartout.entitlements */, + 0E2AC24422EC3AC10037B4B0 /* Settings.bundle */, + 0EDE8DE220C86A13004C739C /* App.entitlements */, + 0E57F64720C83FC7008323CF /* Info.plist */, + 0E45E6E222BD793800F19312 /* App.strings */, + 0E0C072B236087A100155AAC /* InfoPlist.strings */, 0E57F63B20C83FC5008323CF /* AppDelegate.swift */, + 0E57F64220C83FC7008323CF /* Assets.xcassets */, + 0E9CD788225746B300D033B4 /* Flags.xcassets */, + 0E9CD7862257462800D033B4 /* Providers.xcassets */, 0E24273C225950450064A1A3 /* About.storyboard */, + 0E57F64420C83FC7008323CF /* LaunchScreen.storyboard */, 0E57F63F20C83FC5008323CF /* Main.storyboard */, 0ED38ADC213F44D00004D387 /* Organizer.storyboard */, 0E4B0D762366E6C800C890B4 /* Purchase.storyboard */, 0E36D25A22403469006AF062 /* Shortcuts.storyboard */, - 0E57F64220C83FC7008323CF /* Assets.xcassets */, - 0E9CD788225746B300D033B4 /* Flags.xcassets */, - 0E9CD7862257462800D033B4 /* Providers.xcassets */, - 0E57F64420C83FC7008323CF /* LaunchScreen.storyboard */, - 0E2AC24422EC3AC10037B4B0 /* Settings.bundle */, - 0E57F64720C83FC7008323CF /* Info.plist */, - 0E0C072B236087A100155AAC /* InfoPlist.strings */, ); - path = "Passepartout-iOS"; + path = iOS; sourceTree = ""; }; 0E89DFCC213EEDE700741BA1 /* Organizer */ = { @@ -482,14 +953,45 @@ path = Organizer; sourceTree = ""; }; + 0E9AA982259F7674003FAFF1 /* Passepartout */ = { + isa = PBXGroup; + children = ( + 0E9AA983259F76C5003FAFF1 /* App */, + 0E31529C223F9EF500F61841 /* Core */, + 0E9AA984259F777B003FAFF1 /* Tests */, + 0EDE8DC020C86910004C739C /* Tunnel */, + ); + path = Passepartout; + sourceTree = ""; + }; + 0E9AA983259F76C5003FAFF1 /* App */ = { + isa = PBXGroup; + children = ( + 0E57F63A20C83FC5008323CF /* iOS */, + 0E569F58259F41690022DFB8 /* macOS */, + ); + path = App; + sourceTree = ""; + }; + 0E9AA984259F777B003FAFF1 /* Tests */ = { + isa = PBXGroup; + children = ( + 0E9AA991259F779F003FAFF1 /* Info.plist */, + 0E9AA988259F777B003FAFF1 /* ConnectionService.json */, + 0E9AA987259F777B003FAFF1 /* ConnectionServiceTests.swift */, + 0E9AA985259F777B003FAFF1 /* InfrastructureTests.swift */, + 0E9AA986259F777B003FAFF1 /* UtilsTests.swift */, + ); + path = Tests; + sourceTree = ""; + }; 0EB9EB7123867E7F009C0A1C /* UI */ = { isa = PBXGroup; children = ( - 0EB9EB7223867E7F009C0A1C /* TrustedNetworksUI.swift */, + 0E569F30259F2DC10022DFB8 /* TrustedNetworksUI.swift */, ); - name = UI; - path = Submodules/Core/Passepartout/Sources/UI; - sourceTree = SOURCE_ROOT; + path = UI; + sourceTree = ""; }; 0EBE3AA2213DC1B000BFA2F5 /* Profiles */ = { isa = PBXGroup; @@ -514,11 +1016,11 @@ 0ECEB109224FECEA00E9E551 /* DataUnit.swift */, 0EC7F20420E24308004EA58E /* DebugLog.swift */, 0ED38AE621404F100004D387 /* EndpointDataSource.swift */, - 0EAC572E249426E200D0FCE0 /* GracefulVPN.swift */, + 0E569F19259F2D8F0022DFB8 /* GracefulVPN.swift */, 0E45E70F22BE108100F19312 /* OpenVPNOptions.swift */, 0E89DFC4213DF7AE00741BA1 /* Preferences.swift */, - 0ECA7E2525967BDB0095F369 /* Product.swift */, - 0ECA7E2625967BDB0095F369 /* ProductManager.swift */, + 0E569F1B259F2D8F0022DFB8 /* Product.swift */, + 0E569F1A259F2D8F0022DFB8 /* ProductManager.swift */, 0EFB901722764689006405E4 /* ProfileNetworkSettings.swift */, 0E89DFC7213E8FC500741BA1 /* SessionProxy+Communication.swift */, 0E2B494120FD16540094784C /* TransientStore.swift */, @@ -532,9 +1034,9 @@ isa = PBXGroup; children = ( 0ED31C1120CF0ABA0027975F /* Infrastructure.swift */, - 0EA84519238C2AB500EFC500 /* Infrastructure+Metadata.swift */, - 0EA84514238A9B5100EFC500 /* Infrastructure+Name.swift */, - 0E1C0A4E238FC7A5009FC087 /* InfrastructureFactory.swift */, + 0E569F29259F2DB10022DFB8 /* Infrastructure+Metadata.swift */, + 0E569F28259F2DB10022DFB8 /* Infrastructure+Name.swift */, + 0E569F2A259F2DB10022DFB8 /* InfrastructureFactory.swift */, 0E8D97E121388B52006FB4A0 /* InfrastructurePreset.swift */, 0ED31C0F20CF09A30027975F /* Pool.swift */, 0E66A26F225FE25800F9C779 /* PoolCategory.swift */, @@ -544,20 +1046,20 @@ path = Services; sourceTree = ""; }; - 0EDE8DC020C86910004C739C /* Passepartout-iOS-Tunnel */ = { + 0EDE8DC020C86910004C739C /* Tunnel */ = { isa = PBXGroup; children = ( - 0ED31C3B20CF39510027975F /* Tunnel.entitlements */, - 0EDE8DC320C86910004C739C /* PacketTunnelProvider.swift */, - 0EDE8DC520C86910004C739C /* Info.plist */, + 0ED31C3B20CF39510027975F /* Tunnel-iOS.entitlements */, + 0E569FAA259F41690022DFB8 /* Tunnel-macOS.entitlements */, + 0EDE8DC320C86910004C739C /* Info.plist */, + 0E9AA977259F756A003FAFF1 /* PacketTunnelProvider.swift */, ); - path = "Passepartout-iOS-Tunnel"; + path = Tunnel; sourceTree = ""; }; 0EDE8DEC20C93E3B004C739C /* Global */ = { isa = PBXGroup; children = ( - 0E45E6E222BD793800F19312 /* App.strings */, 0E2EB062236D8E1E0079DB53 /* AppConstants+App.swift */, 0E3262D8235EE8DA00B5E470 /* HostImporter.swift */, 0EFD943D215BE10800529B64 /* IssueReporter.swift */, @@ -575,15 +1077,6 @@ path = Global; sourceTree = ""; }; - 0EDE8DEF20C93EBB004C739C /* Passepartout */ = { - isa = PBXGroup; - children = ( - 0E3CAF97229AAE760008E5C8 /* Resources */, - 0EDE8DF020C93EBB004C739C /* Sources */, - ); - path = Passepartout; - sourceTree = ""; - }; 0EDE8DF020C93EBB004C739C /* Sources */ = { isa = PBXGroup; children = ( @@ -594,7 +1087,7 @@ 0E39BCF2214DA9310035E9DE /* AppConstants.swift */, 0E6BE13920CFB76800A6DD36 /* ApplicationError.swift */, 0EDE8DED20C93E4C004C739C /* GroupConstants.swift */, - 0EEF23402321AC55000AEBE3 /* Issue.swift */, + 0E569F14259F2D3E0022DFB8 /* Issue.swift */, 0E4FD7ED20D539A0002221FF /* Utils.swift */, ); path = Sources; @@ -621,32 +1114,28 @@ path = Scenes; sourceTree = ""; }; - 0EE4EB2C229A71BB000E4BA1 /* Libraries */ = { + 0EE4EB2C229A71BB000E4BA1 /* Submodules */ = { isa = PBXGroup; children = ( 0E3CAFC3229AAF8E0008E5C8 /* API */, - 0EE4EB2E229A71DA000E4BA1 /* Core */, ); - path = Libraries; - sourceTree = ""; - }; - 0EE4EB2E229A71DA000E4BA1 /* Core */ = { - isa = PBXGroup; - children = ( - 0EDE8DEF20C93EBB004C739C /* Passepartout */, - ); - path = Core; + path = Submodules; sourceTree = ""; }; 374B9F085E1148C37CF9117A /* Frameworks */ = { isa = PBXGroup; children = ( + 0E9AAAD3259F809F003FAFF1 /* ServiceManagement.framework */, 0ED31C3920CF39510027975F /* NetworkExtension.framework */, 0EDE8DD220C86978004C739C /* NotificationCenter.framework */, - 6D32B24AA7767AB2E7FB6E0F /* Pods_Passepartout_iOS.framework */, - FA4CE55A94366C45DDB1E624 /* Pods_Passepartout_iOS_Tunnel.framework */, - 276375A4CF0313B033CD8B5A /* Pods_PassepartoutCore_iOS.framework */, - 992C366F272FAA643335F68C /* Pods_PassepartoutCoreTests_iOS.framework */, + E070D15674A07F40A22BFA7E /* Pods_ios_Passepartout_iOS.framework */, + B93E25644660446940471003 /* Pods_ios_PassepartoutCore_iOS.framework */, + F661C42E70315D0788B19EDC /* Pods_ios_PassepartoutCoreTests_iOS.framework */, + FF7D2E624A2979425A6F7B7A /* Pods_ios_PassepartoutTunnel_iOS.framework */, + 23D4C05138CFBC311ED76548 /* Pods_macos_Passepartout_macOS.framework */, + 555477CACFC266802E4C2FF2 /* Pods_macos_PassepartoutCore_macOS.framework */, + C9BA8850A89C4680A6A23A65 /* Pods_macos_PassepartoutCoreTests_macOS.framework */, + 35380A14E9FF6F0250C171CD /* Pods_macos_PassepartoutTunnel_macOS.framework */, ); name = Frameworks; sourceTree = ""; @@ -662,6 +1151,26 @@ F1BECEC1D93FEBDB17B714D8 /* Pods-PassepartoutCore-iOS.release.xcconfig */, 0FD7B360EE444EF1CDBFDF1C /* Pods-PassepartoutCoreTests-iOS.debug.xcconfig */, 234D3C887F46AD64480495BB /* Pods-PassepartoutCoreTests-iOS.release.xcconfig */, + 155FC78114E324E01093F98C /* Pods-ios-Passepartout-iOS.debug.xcconfig */, + CFF79E4C42220C649C2259D2 /* Pods-ios-Passepartout-iOS.release.xcconfig */, + 0FDF9B1E8EC63CCF4A2C9694 /* Pods-ios-Passepartout-iOS-Tunnel.debug.xcconfig */, + E9433B826E8B47C325FD6B8F /* Pods-ios-Passepartout-iOS-Tunnel.release.xcconfig */, + 0376B8FDB39F81CA072C3F37 /* Pods-ios-PassepartoutCore-iOS.debug.xcconfig */, + 5CC1FDDBA184F8548D814E9D /* Pods-ios-PassepartoutCore-iOS.release.xcconfig */, + E08D99B2FCC4478BB24A57B0 /* Pods-macos-Passepartout-macOS.debug.xcconfig */, + 5C7F674900185F5DD24DA481 /* Pods-macos-Passepartout-macOS.release.xcconfig */, + B7018254471DA72DF7939A01 /* Pods-macos-Passepartout-macOS-Tunnel.debug.xcconfig */, + 055AC72673D0F12546CAEEA6 /* Pods-macos-Passepartout-macOS-Tunnel.release.xcconfig */, + 329F34FAC963CE4BEA3013D6 /* Pods-macos-PassepartoutCore-macOS.debug.xcconfig */, + C3D09D9270939FC37BE7101E /* Pods-macos-PassepartoutCore-macOS.release.xcconfig */, + A8E3B69460648EA46C1BF850 /* Pods-ios-PassepartoutCoreTests-iOS.debug.xcconfig */, + D5D3FFA0392EA5F818646CD9 /* Pods-ios-PassepartoutCoreTests-iOS.release.xcconfig */, + 7E007C60601AFBB8A2C34DC4 /* Pods-ios-PassepartoutTunnel-iOS.debug.xcconfig */, + 9FB2CA39113427B15C824FE0 /* Pods-ios-PassepartoutTunnel-iOS.release.xcconfig */, + E69B5CF79639B3D24F2AFFC9 /* Pods-macos-PassepartoutCoreTests-macOS.debug.xcconfig */, + 80A0C78A127E8CE9CB8E658D /* Pods-macos-PassepartoutCoreTests-macOS.release.xcconfig */, + 50DD79FBBBBF400F3BFE8912 /* Pods-macos-PassepartoutTunnel-macOS.debug.xcconfig */, + D2AF3AFC3418E6800D8A70E8 /* Pods-macos-PassepartoutTunnel-macOS.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -677,6 +1186,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 0E5203E5259F60D600CBAB56 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E5204A7259F66F700CBAB56 /* PassepartoutCore.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -699,6 +1216,69 @@ productReference = 0E31529B223F9EF400F61841 /* PassepartoutCore.framework */; productType = "com.apple.product-type.framework"; }; + 0E5202F6259F573500CBAB56 /* Passepartout-macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E520304259F573800CBAB56 /* Build configuration list for PBXNativeTarget "Passepartout-macOS" */; + buildPhases = ( + 6D65C9B23CEAFE3755C8BC2B /* [CP] Check Pods Manifest.lock */, + 0E5202F3259F573500CBAB56 /* Sources */, + 0E5202F4259F573500CBAB56 /* Frameworks */, + 0E5202F5259F573500CBAB56 /* Resources */, + 0E9AAACA259F806B003FAFF1 /* CopyFiles */, + 0E5203C2259F5F3F00CBAB56 /* Embed App Extensions */, + 0E5203F6259F60D600CBAB56 /* Embed Frameworks */, + 5F0C817F8E72ADCEDA44DBC5 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0E5203BD259F5F3F00CBAB56 /* PBXTargetDependency */, + 0E5203F0259F60D600CBAB56 /* PBXTargetDependency */, + 0E9AAAC0259F7FFF003FAFF1 /* PBXTargetDependency */, + 0E9AAAC2259F800B003FAFF1 /* PBXTargetDependency */, + ); + name = "Passepartout-macOS"; + productName = "Passepartout-macOS"; + productReference = 0E5202F7259F573500CBAB56 /* Passepartout.app */; + productType = "com.apple.product-type.application"; + }; + 0E5203B4259F5F3F00CBAB56 /* PassepartoutTunnel-macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E5203BF259F5F3F00CBAB56 /* Build configuration list for PBXNativeTarget "PassepartoutTunnel-macOS" */; + buildPhases = ( + A6026405EC7F053B50C8BFF4 /* [CP] Check Pods Manifest.lock */, + 0E5203B1259F5F3F00CBAB56 /* Sources */, + 0E5203B2259F5F3F00CBAB56 /* Frameworks */, + 0E5203B3259F5F3F00CBAB56 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "PassepartoutTunnel-macOS"; + productName = "Passepartout-macOS-Tunnel"; + productReference = 0E5203B5259F5F3F00CBAB56 /* PassepartoutTunnel.appex */; + productType = "com.apple.product-type.app-extension"; + }; + 0E5203E9259F60D600CBAB56 /* PassepartoutCore-macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E5203F3259F60D600CBAB56 /* Build configuration list for PBXNativeTarget "PassepartoutCore-macOS" */; + buildPhases = ( + 6D3E350F59230E4C94ED9FDA /* [CP] Check Pods Manifest.lock */, + 0E5203E5259F60D600CBAB56 /* Headers */, + 0E5203E6259F60D600CBAB56 /* Sources */, + 0E5203E7259F60D600CBAB56 /* Frameworks */, + 0E5203E8259F60D600CBAB56 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "PassepartoutCore-macOS"; + productName = "PassepartoutCore-macOS"; + productReference = 0E5203EA259F60D600CBAB56 /* PassepartoutCore.framework */; + productType = "com.apple.product-type.framework"; + }; 0E57F63720C83FC5008323CF /* Passepartout-iOS */ = { isa = PBXNativeTarget; buildConfigurationList = 0E57F65520C83FC7008323CF /* Build configuration list for PBXNativeTarget "Passepartout-iOS" */; @@ -722,9 +1302,66 @@ productReference = 0E57F63820C83FC5008323CF /* Passepartout.app */; productType = "com.apple.product-type.application"; }; - 0EDE8DBE20C86910004C739C /* Passepartout-iOS-Tunnel */ = { + 0E9AA98C259F779F003FAFF1 /* PassepartoutCoreTests-iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 0EDE8DC920C86910004C739C /* Build configuration list for PBXNativeTarget "Passepartout-iOS-Tunnel" */; + buildConfigurationList = 0E9AA995259F779F003FAFF1 /* Build configuration list for PBXNativeTarget "PassepartoutCoreTests-iOS" */; + buildPhases = ( + 5CCA3608E9249955B3DEA5BF /* [CP] Check Pods Manifest.lock */, + 0E9AA989259F779F003FAFF1 /* Sources */, + 0E9AA98A259F779F003FAFF1 /* Frameworks */, + 0E9AA98B259F779F003FAFF1 /* Resources */, + F4BF37883BF513DD4EF79789 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0E9AA994259F779F003FAFF1 /* PBXTargetDependency */, + ); + name = "PassepartoutCoreTests-iOS"; + productName = "PassepartoutCoreTests-iOS"; + productReference = 0E9AA98D259F779F003FAFF1 /* PassepartoutCoreTests-iOS.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 0E9AA9B9259F7821003FAFF1 /* PassepartoutCoreTests-macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E9AA9C2259F7821003FAFF1 /* Build configuration list for PBXNativeTarget "PassepartoutCoreTests-macOS" */; + buildPhases = ( + 1BFBF587EFF0D8EFB44539C5 /* [CP] Check Pods Manifest.lock */, + 0E9AA9B6259F7821003FAFF1 /* Sources */, + 0E9AA9B7259F7821003FAFF1 /* Frameworks */, + 0E9AA9B8259F7821003FAFF1 /* Resources */, + 07E82DB4E76B85853FE611FC /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 0E9AA9C1259F7821003FAFF1 /* PBXTargetDependency */, + ); + name = "PassepartoutCoreTests-macOS"; + productName = "PassepartoutCoreTests-macOS"; + productReference = 0E9AA9BA259F7821003FAFF1 /* PassepartoutCoreTests-macOS.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 0E9AAA60259F7D7E003FAFF1 /* PassepartoutLauncher-macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0E9AAA70259F7D81003FAFF1 /* Build configuration list for PBXNativeTarget "PassepartoutLauncher-macOS" */; + buildPhases = ( + 0E9AAA5D259F7D7E003FAFF1 /* Sources */, + 0E9AAA5E259F7D7E003FAFF1 /* Frameworks */, + 0E9AAA5F259F7D7E003FAFF1 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "PassepartoutLauncher-macOS"; + productName = "PassepartoutLauncher-macOS"; + productReference = 0E9AAA61259F7D7E003FAFF1 /* PassepartoutLauncher.app */; + productType = "com.apple.product-type.application"; + }; + 0EDE8DBE20C86910004C739C /* PassepartoutTunnel-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 0EDE8DC920C86910004C739C /* Build configuration list for PBXNativeTarget "PassepartoutTunnel-iOS" */; buildPhases = ( 4316D2F30EA7143E6BB85EDE /* [CP] Check Pods Manifest.lock */, 0EDE8DBB20C86910004C739C /* Sources */, @@ -735,9 +1372,9 @@ ); dependencies = ( ); - name = "Passepartout-iOS-Tunnel"; + name = "PassepartoutTunnel-iOS"; productName = "Passepartout-iOS-Tunnel"; - productReference = 0EDE8DBF20C86910004C739C /* Passepartout-Tunnel.appex */; + productReference = 0EDE8DBF20C86910004C739C /* PassepartoutTunnel.appex */; productType = "com.apple.product-type.app-extension"; }; /* End PBXNativeTarget section */ @@ -746,7 +1383,7 @@ 0E57F63020C83FC5008323CF /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1010; + LastSwiftUpdateCheck = 1230; LastUpgradeCheck = 1220; ORGANIZATIONNAME = "Davide De Rosa"; TargetAttributes = { @@ -754,6 +1391,15 @@ CreatedOnToolsVersion = 10.1; LastSwiftMigration = 1020; }; + 0E5202F6259F573500CBAB56 = { + CreatedOnToolsVersion = 12.3; + }; + 0E5203B4259F5F3F00CBAB56 = { + CreatedOnToolsVersion = 12.3; + }; + 0E5203E9259F60D600CBAB56 = { + CreatedOnToolsVersion = 12.3; + }; 0E57F63720C83FC5008323CF = { CreatedOnToolsVersion = 9.4; LastSwiftMigration = 1020; @@ -772,6 +1418,15 @@ }; }; }; + 0E9AA98C259F779F003FAFF1 = { + CreatedOnToolsVersion = 12.3; + }; + 0E9AA9B9259F7821003FAFF1 = { + CreatedOnToolsVersion = 12.3; + }; + 0E9AAA60259F7D7E003FAFF1 = { + CreatedOnToolsVersion = 12.3; + }; 0EDE8DBE20C86910004C739C = { CreatedOnToolsVersion = 10.0; LastSwiftMigration = 1020; @@ -811,8 +1466,14 @@ projectRoot = ""; targets = ( 0E31529A223F9EF400F61841 /* PassepartoutCore-iOS */, + 0E9AA98C259F779F003FAFF1 /* PassepartoutCoreTests-iOS */, + 0EDE8DBE20C86910004C739C /* PassepartoutTunnel-iOS */, 0E57F63720C83FC5008323CF /* Passepartout-iOS */, - 0EDE8DBE20C86910004C739C /* Passepartout-iOS-Tunnel */, + 0E5203E9259F60D600CBAB56 /* PassepartoutCore-macOS */, + 0E9AA9B9259F7821003FAFF1 /* PassepartoutCoreTests-macOS */, + 0E9AAA60259F7D7E003FAFF1 /* PassepartoutLauncher-macOS */, + 0E5203B4259F5F3F00CBAB56 /* PassepartoutTunnel-macOS */, + 0E5202F6259F573500CBAB56 /* Passepartout-macOS */, ); }; /* End PBXProject section */ @@ -826,17 +1487,54 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 0E5202F5259F573500CBAB56 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E520337259F58F500CBAB56 /* ProviderServiceView.xib in Resources */, + 0E520336259F58F500CBAB56 /* HostServiceView.xib in Resources */, + 0E52031D259F58BF00CBAB56 /* Providers.xcassets in Resources */, + 0E52047D259F642600CBAB56 /* Preferences.storyboard in Resources */, + 0E52038F259F593F00CBAB56 /* App.strings in Resources */, + 0E520385259F593B00CBAB56 /* Credits.html in Resources */, + 0E52047C259F642600CBAB56 /* Service.storyboard in Resources */, + 0E52032B259F58DD00CBAB56 /* TextTableView.xib in Resources */, + 0E52047B259F642600CBAB56 /* Main.storyboard in Resources */, + 0E5204AA259F673100CBAB56 /* Core.strings in Resources */, + 0E520334259F58F500CBAB56 /* OrganizerProfileTableView.xib in Resources */, + 0E9AAABE259F7FFF003FAFF1 /* PassepartoutLauncher.app in Resources */, + 0E52031E259F58BF00CBAB56 /* Assets.xcassets in Resources */, + 0E52031F259F58BF00CBAB56 /* Flags.xcassets in Resources */, + 0E52035D259F591300CBAB56 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E5203B3259F5F3F00CBAB56 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E5203E8259F60D600CBAB56 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E5204E5259F67A000CBAB56 /* API in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 0E57F63620C83FC5008323CF /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 0E5204A9259F673000CBAB56 /* Core.strings in Resources */, 0E36D25822403469006AF062 /* Shortcuts.storyboard in Resources */, 0E0C0729236087A100155AAC /* InfoPlist.strings in Resources */, 0ED38ADA213F44D00004D387 /* Organizer.storyboard in Resources */, 0E24273A225950450064A1A3 /* About.storyboard in Resources */, 0E57F64620C83FC7008323CF /* LaunchScreen.storyboard in Resources */, 0E57F64320C83FC7008323CF /* Assets.xcassets in Resources */, - 0E45E6FA22BD8FC500F19312 /* Core.strings in Resources */, 0E9CD7872257462800D033B4 /* Providers.xcassets in Resources */, 0E9CD789225746B300D033B4 /* Flags.xcassets in Resources */, 0E57F64120C83FC5008323CF /* Main.storyboard in Resources */, @@ -846,6 +1544,31 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 0E9AA98B259F779F003FAFF1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E9AA9FA259F799C003FAFF1 /* ConnectionService.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E9AA9B8259F7821003FAFF1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E9AA9F0259F799B003FAFF1 /* ConnectionService.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E9AAA5F259F7D7E003FAFF1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E9AAA7F259F7DB7003FAFF1 /* Assets.xcassets in Resources */, + 0E9AAA89259F7DCA003FAFF1 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 0EDE8DBD20C86910004C739C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -856,6 +1579,23 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 07E82DB4E76B85853FE611FC /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-macos-PassepartoutCoreTests-macOS/Pods-macos-PassepartoutCoreTests-macOS-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-macos-PassepartoutCoreTests-macOS/Pods-macos-PassepartoutCoreTests-macOS-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-macos-PassepartoutCoreTests-macOS/Pods-macos-PassepartoutCoreTests-macOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 0A0A35FE311454E07CF67743 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -871,7 +1611,29 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-PassepartoutCore-iOS-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-ios-PassepartoutCore-iOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 1BFBF587EFF0D8EFB44539C5 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-macos-PassepartoutCoreTests-macOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -893,7 +1655,90 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Passepartout-iOS-Tunnel-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-ios-PassepartoutTunnel-iOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 5CCA3608E9249955B3DEA5BF /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-ios-PassepartoutCoreTests-iOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 5F0C817F8E72ADCEDA44DBC5 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-macos-Passepartout-macOS/Pods-macos-Passepartout-macOS-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-macos-Passepartout-macOS/Pods-macos-Passepartout-macOS-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-macos-Passepartout-macOS/Pods-macos-Passepartout-macOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 6D3E350F59230E4C94ED9FDA /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-macos-PassepartoutCore-macOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 6D65C9B23CEAFE3755C8BC2B /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-macos-Passepartout-macOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -906,15 +1751,15 @@ files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Passepartout-iOS/Pods-Passepartout-iOS-frameworks-${CONFIGURATION}-input-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ios-Passepartout-iOS/Pods-ios-Passepartout-iOS-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Passepartout-iOS/Pods-Passepartout-iOS-frameworks-${CONFIGURATION}-output-files.xcfilelist", + "${PODS_ROOT}/Target Support Files/Pods-ios-Passepartout-iOS/Pods-ios-Passepartout-iOS-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Passepartout-iOS/Pods-Passepartout-iOS-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ios-Passepartout-iOS/Pods-ios-Passepartout-iOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 8598326924C7B7B17B82A427 /* [CP] Check Pods Manifest.lock */ = { @@ -932,13 +1777,52 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Passepartout-iOS-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-ios-Passepartout-iOS-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; + A6026405EC7F053B50C8BFF4 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-macos-PassepartoutTunnel-macOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + F4BF37883BF513DD4EF79789 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ios-PassepartoutCoreTests-iOS/Pods-ios-PassepartoutCoreTests-iOS-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ios-PassepartoutCoreTests-iOS/Pods-ios-PassepartoutCoreTests-iOS-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ios-PassepartoutCoreTests-iOS/Pods-ios-PassepartoutCoreTests-iOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -953,8 +1837,8 @@ 0E3152D2223FA05400F61841 /* DebugLog.swift in Sources */, 0E45E71022BE108100F19312 /* OpenVPNOptions.swift in Sources */, 0E3152DA223FA05800F61841 /* PlaceholderConnectionProfile.swift in Sources */, + 0E569F1E259F2D8F0022DFB8 /* ProductManager.swift in Sources */, 0E3152D0223FA05400F61841 /* ConnectionService+Migration.swift in Sources */, - 0E1C0A4F238FC7A5009FC087 /* InfrastructureFactory.swift in Sources */, 0E3152D5223FA05400F61841 /* SessionProxy+Communication.swift in Sources */, 0E3152D7223FA05400F61841 /* TrustedNetworks.swift in Sources */, 0E3152DB223FA05800F61841 /* ProfileKey.swift in Sources */, @@ -962,29 +1846,126 @@ 0E3152C8223FA04D00F61841 /* Infrastructure.swift in Sources */, 0E3152D8223FA05400F61841 /* TrustPolicy.swift in Sources */, 0E3152DC223FA05800F61841 /* ProviderConnectionProfile.swift in Sources */, + 0E569F2B259F2DB10022DFB8 /* Infrastructure+Name.swift in Sources */, 0E3152D9223FA05800F61841 /* HostConnectionProfile.swift in Sources */, 0E3152D6223FA05400F61841 /* TransientStore.swift in Sources */, 0E3152CC223FA04D00F61841 /* WebServices.swift in Sources */, - 0ECA7E2D25967BF40095F369 /* Product.swift in Sources */, 0E3152BB223FA03D00F61841 /* AppConstants.swift in Sources */, 0E3152CA223FA04D00F61841 /* InfrastructurePreset.swift in Sources */, 0E3152CE223FA05400F61841 /* ConnectionService.swift in Sources */, 0ED993B1223FF8C700B0F9C9 /* IntentDispatcher.swift in Sources */, - 0EA84515238A9B5200EFC500 /* Infrastructure+Name.swift in Sources */, - 0EAC572F249426E200D0FCE0 /* GracefulVPN.swift in Sources */, - 0EEF23412321AC55000AEBE3 /* Issue.swift in Sources */, + 0E569F31259F2DC10022DFB8 /* TrustedNetworksUI.swift in Sources */, + 0E569F1C259F2D8F0022DFB8 /* GracefulVPN.swift in Sources */, + 0E569F2C259F2DB10022DFB8 /* Infrastructure+Metadata.swift in Sources */, 0E3152D1223FA05400F61841 /* Credentials.swift in Sources */, 0E3152CD223FA05400F61841 /* ConnectionProfile.swift in Sources */, 0E3152BC223FA03D00F61841 /* ApplicationError.swift in Sources */, + 0E569F15259F2D3E0022DFB8 /* Issue.swift in Sources */, 0E3152D3223FA05400F61841 /* EndpointDataSource.swift in Sources */, + 0E569F2D259F2DB10022DFB8 /* InfrastructureFactory.swift in Sources */, 0E3152D4223FA05400F61841 /* Preferences.swift in Sources */, 0EFB901822764689006405E4 /* ProfileNetworkSettings.swift in Sources */, 0E3152C0223FA03D00F61841 /* Utils.swift in Sources */, 0E3152CB223FA04D00F61841 /* Pool.swift in Sources */, - 0EA8451A238C2AB500EFC500 /* Infrastructure+Metadata.swift in Sources */, - 0EB9EB7323867E7F009C0A1C /* TrustedNetworksUI.swift in Sources */, - 0ECA7E3025967BFB0095F369 /* ProductManager.swift in Sources */, 0E3CAFC0229AAE770008E5C8 /* Intents.intentdefinition in Sources */, + 0E569F20259F2D8F0022DFB8 /* Product.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E5202F3259F573500CBAB56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E520388259F593B00CBAB56 /* HostImporter.swift in Sources */, + 0E520379259F593B00CBAB56 /* Macros.swift in Sources */, + 0E520387259F593B00CBAB56 /* TextInputViewController.swift in Sources */, + 0E52033B259F58F500CBAB56 /* OrganizerViewController.swift in Sources */, + 0E520382259F593B00CBAB56 /* SwiftGen+Scenes.swift in Sources */, + 0E52032C259F58DD00CBAB56 /* TextTableView.swift in Sources */, + 0E520355259F590600CBAB56 /* DebugLogViewController.swift in Sources */, + 0E52034A259F58FE00CBAB56 /* DefaultGatewayViewController.swift in Sources */, + 0E520345259F58FE00CBAB56 /* DNSViewController.swift in Sources */, + 0E52037D259F593B00CBAB56 /* SwiftGen+Strings.swift in Sources */, + 0E520320259F58BF00CBAB56 /* AppDelegate.swift in Sources */, + 0E520344259F58FE00CBAB56 /* TrustedNetworksAddViewController.swift in Sources */, + 0E52033A259F58F500CBAB56 /* AccountViewController.swift in Sources */, + 0E520356259F590600CBAB56 /* PreferencesGeneralViewController.swift in Sources */, + 0E520348259F58FE00CBAB56 /* MTUViewController.swift in Sources */, + 0E52037E259F593B00CBAB56 /* SwiftGen+Segues.swift in Sources */, + 0E52037C259F593B00CBAB56 /* Theme.swift in Sources */, + 0E52035E259F591300CBAB56 /* StatusMenu.swift in Sources */, + 0E52035F259F591300CBAB56 /* MainMenu.swift in Sources */, + 0E520342259F58FE00CBAB56 /* EndpointViewController.swift in Sources */, + 0E520339259F58F500CBAB56 /* ServiceViewController.swift in Sources */, + 0E520383259F593B00CBAB56 /* SwiftGen+Assets.swift in Sources */, + 0E52037A259F593B00CBAB56 /* WindowManager.swift in Sources */, + 0E520381259F593B00CBAB56 /* NSTextView+Search.swift in Sources */, + 0E520349259F58FE00CBAB56 /* ConfigurationViewController.swift in Sources */, + 0E520354259F590600CBAB56 /* PreferencesViewController.swift in Sources */, + 0E520343259F58FE00CBAB56 /* ProfileCustomizationViewController.swift in Sources */, + 0E520346259F58FE00CBAB56 /* TrustedNetworksViewController.swift in Sources */, + 0E520338259F58F500CBAB56 /* ProviderServiceView.swift in Sources */, + 0E520347259F58FE00CBAB56 /* ProxyViewController.swift in Sources */, + 0E520380259F593B00CBAB56 /* AppConstants+App.swift in Sources */, + 0E52037B259F593B00CBAB56 /* IssueReporter.swift in Sources */, + 0E520335259F58F500CBAB56 /* HostServiceView.swift in Sources */, + 0E520384259F593B00CBAB56 /* Donation.swift in Sources */, + 0E520333259F58F500CBAB56 /* OrganizerProfileTableView.swift in Sources */, + 0E52037F259F593B00CBAB56 /* Theme+Views.swift in Sources */, + 0E520386259F593B00CBAB56 /* ProductManager+App.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E5203B1259F5F3F00CBAB56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E9AA979259F756A003FAFF1 /* PacketTunnelProvider.swift in Sources */, + 0E52041F259F62B200CBAB56 /* GroupConstants.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E5203E6259F60D600CBAB56 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E5204D3259F675400CBAB56 /* ConnectionService+Migration.swift in Sources */, + 0E5204C1259F675400CBAB56 /* Infrastructure+Metadata.swift in Sources */, + 0E5204BC259F674400CBAB56 /* TrustedNetworksUI.swift in Sources */, + 0E5204D9259F675400CBAB56 /* Preferences.swift in Sources */, + 0E5204DD259F675400CBAB56 /* InfrastructurePreset.swift in Sources */, + 0E5204CE259F675400CBAB56 /* Credentials.swift in Sources */, + 0E5204E0259F675400CBAB56 /* WebServices.swift in Sources */, + 0E5204DF259F675400CBAB56 /* SessionProxy+Communication.swift in Sources */, + 0E5204D7259F675400CBAB56 /* DebugLog.swift in Sources */, + 0E5204C4259F675400CBAB56 /* TrustPolicy.swift in Sources */, + 0E5204CA259F675400CBAB56 /* ProfileNetworkSettings.swift in Sources */, + 0E5204C8259F675400CBAB56 /* PoolGroup.swift in Sources */, + 0E5204DB259F675400CBAB56 /* TransientStore.swift in Sources */, + 0E5204D6259F675400CBAB56 /* DataUnit.swift in Sources */, + 0E5204DA259F675400CBAB56 /* ProductManager.swift in Sources */, + 0E5204C6259F675400CBAB56 /* Pool.swift in Sources */, + 0E5204B1259F673D00CBAB56 /* GroupConstants.swift in Sources */, + 0E5204D5259F675400CBAB56 /* ProfileKey.swift in Sources */, + 0E5204D1259F675400CBAB56 /* PlaceholderConnectionProfile.swift in Sources */, + 0E5204AF259F673D00CBAB56 /* ApplicationError.swift in Sources */, + 0E5204B0259F673D00CBAB56 /* Issue.swift in Sources */, + 0E5204CB259F675400CBAB56 /* EndpointDataSource.swift in Sources */, + 0E5204DE259F675400CBAB56 /* OpenVPNOptions.swift in Sources */, + 0E5204C5259F675400CBAB56 /* ProviderConnectionProfile.swift in Sources */, + 0E5204D0259F675400CBAB56 /* Infrastructure.swift in Sources */, + 0E5204D4259F675400CBAB56 /* ConnectionService.swift in Sources */, + 0E5204DC259F675400CBAB56 /* GracefulVPN.swift in Sources */, + 0E5204C2259F675400CBAB56 /* PoolCategory.swift in Sources */, + 0E5204C3259F675400CBAB56 /* InfrastructureFactory.swift in Sources */, + 0E5204C9259F675400CBAB56 /* ConnectionService+Configurations.swift in Sources */, + 0E5204B2259F673D00CBAB56 /* Utils.swift in Sources */, + 0E5204CF259F675400CBAB56 /* TrustedNetworks.swift in Sources */, + 0E5204D2259F675400CBAB56 /* ConnectionProfile.swift in Sources */, + 0E5204CD259F675400CBAB56 /* Infrastructure+Name.swift in Sources */, + 0E5204CC259F675400CBAB56 /* HostConnectionProfile.swift in Sources */, + 0E5204B7259F674000CBAB56 /* AppConstants.swift in Sources */, + 0E5204C7259F675400CBAB56 /* Product.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1037,13 +2018,40 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 0E9AA989259F779F003FAFF1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E9AA9FC259F799C003FAFF1 /* InfrastructureTests.swift in Sources */, + 0E9AA9F9259F799C003FAFF1 /* ConnectionServiceTests.swift in Sources */, + 0E9AA9FB259F799C003FAFF1 /* UtilsTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E9AA9B6259F7821003FAFF1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E9AA9F2259F799B003FAFF1 /* InfrastructureTests.swift in Sources */, + 0E9AA9EF259F799B003FAFF1 /* ConnectionServiceTests.swift in Sources */, + 0E9AA9F1259F799B003FAFF1 /* UtilsTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0E9AAA5D259F7D7E003FAFF1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0E9AAA80259F7DB7003FAFF1 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 0EDE8DBB20C86910004C739C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 0EDE8DC420C86910004C739C /* PacketTunnelProvider.swift in Sources */, 0EAAD71920E6669A0088754A /* GroupConstants.swift in Sources */, - 0EF5CF292141F31F004FF1BD /* Utils.swift in Sources */, + 0E9AA978259F756A003FAFF1 /* PacketTunnelProvider.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1055,9 +2063,40 @@ target = 0E31529A223F9EF400F61841 /* PassepartoutCore-iOS */; targetProxy = 0E3152AE223F9EF500F61841 /* PBXContainerItemProxy */; }; + 0E5203BD259F5F3F00CBAB56 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0E5203B4259F5F3F00CBAB56 /* PassepartoutTunnel-macOS */; + targetProxy = 0E5203BC259F5F3F00CBAB56 /* PBXContainerItemProxy */; + }; + 0E5203F0259F60D600CBAB56 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0E5203E9259F60D600CBAB56 /* PassepartoutCore-macOS */; + targetProxy = 0E5203EF259F60D600CBAB56 /* PBXContainerItemProxy */; + }; + 0E9AA994259F779F003FAFF1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + platformFilter = ios; + target = 0E31529A223F9EF400F61841 /* PassepartoutCore-iOS */; + targetProxy = 0E9AA993259F779F003FAFF1 /* PBXContainerItemProxy */; + }; + 0E9AA9C1259F7821003FAFF1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0E5203E9259F60D600CBAB56 /* PassepartoutCore-macOS */; + targetProxy = 0E9AA9C0259F7821003FAFF1 /* PBXContainerItemProxy */; + }; + 0E9AAAC0259F7FFF003FAFF1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0E9AAA60259F7D7E003FAFF1 /* PassepartoutLauncher-macOS */; + targetProxy = 0E9AAABF259F7FFF003FAFF1 /* PBXContainerItemProxy */; + }; + 0E9AAAC2259F800B003FAFF1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 0E9AAA60259F7D7E003FAFF1 /* PassepartoutLauncher-macOS */; + targetProxy = 0E9AAAC1259F800B003FAFF1 /* PBXContainerItemProxy */; + }; 0EDE8DC720C86910004C739C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 0EDE8DBE20C86910004C739C /* Passepartout-iOS-Tunnel */; + target = 0EDE8DBE20C86910004C739C /* PassepartoutTunnel-iOS */; targetProxy = 0EDE8DC620C86910004C739C /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -1164,6 +2203,46 @@ name = Purchase.storyboard; sourceTree = ""; }; + 0E569F5F259F41690022DFB8 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 0E569F60259F41690022DFB8 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 0E569F81259F41690022DFB8 /* Preferences.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 0E569F82259F41690022DFB8 /* Base */, + ); + name = Preferences.storyboard; + sourceTree = ""; + }; + 0E569F83259F41690022DFB8 /* Service.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 0E569F84259F41690022DFB8 /* Base */, + ); + name = Service.storyboard; + sourceTree = ""; + }; + 0E569F85259F41690022DFB8 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 0E569F86259F41690022DFB8 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 0E569F8D259F41690022DFB8 /* App.strings */ = { + isa = PBXVariantGroup; + children = ( + 0E569F91259F41690022DFB8 /* en */, + ); + name = App.strings; + sourceTree = ""; + }; 0E57F63F20C83FC5008323CF /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( @@ -1193,7 +2272,7 @@ /* Begin XCBuildConfiguration section */ 0E3152B2223F9EF500F61841 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A1C4E67627603307808F2FFC /* Pods-PassepartoutCore-iOS.debug.xcconfig */; + baseConfigurationReference = 0376B8FDB39F81CA072C3F37 /* Pods-ios-PassepartoutCore-iOS.debug.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = NO; CODE_SIGN_IDENTITY = ""; @@ -1204,7 +2283,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "PassepartoutCore-iOS/Info.plist"; + INFOPLIST_FILE = Passepartout/Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -1217,6 +2296,7 @@ PRODUCT_NAME = PassepartoutCore; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -1225,7 +2305,7 @@ }; 0E3152B3223F9EF500F61841 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F1BECEC1D93FEBDB17B714D8 /* Pods-PassepartoutCore-iOS.release.xcconfig */; + baseConfigurationReference = 5CC1FDDBA184F8548D814E9D /* Pods-ios-PassepartoutCore-iOS.release.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = NO; CODE_SIGN_IDENTITY = ""; @@ -1236,7 +2316,7 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "PassepartoutCore-iOS/Info.plist"; + INFOPLIST_FILE = Passepartout/Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -1248,12 +2328,186 @@ PRODUCT_NAME = PassepartoutCore; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; + 0E520305259F573800CBAB56 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E08D99B2FCC4478BB24A57B0 /* Pods-macos-Passepartout-macOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Passepartout/App/macOS/App.entitlements; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = DTDYD63ZX9; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = Passepartout/App/macOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_MACOS_ID)"; + PRODUCT_NAME = Passepartout; + PROVISIONING_PROFILE_SPECIFIER = "match Development com.algoritmico.macos.Passepartout macos"; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 0E520306259F573800CBAB56 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5C7F674900185F5DD24DA481 /* Pods-macos-Passepartout-macOS.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Passepartout/App/macOS/App.entitlements; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = DTDYD63ZX9; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = Passepartout/App/macOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_MACOS_ID)"; + PRODUCT_NAME = Passepartout; + PROVISIONING_PROFILE_SPECIFIER = "match Development com.algoritmico.macos.Passepartout macos"; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 0E5203C0259F5F3F00CBAB56 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 50DD79FBBBBF400F3BFE8912 /* Pods-macos-PassepartoutTunnel-macOS.debug.xcconfig */; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = "Passepartout/Tunnel/Tunnel-macOS.entitlements"; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Manual; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = DTDYD63ZX9; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = Passepartout/Tunnel/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_MACOS_ID).Tunnel"; + PRODUCT_NAME = PassepartoutTunnel; + PROVISIONING_PROFILE_SPECIFIER = "match Development com.algoritmico.macos.Passepartout.Tunnel macos"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 0E5203C1259F5F3F00CBAB56 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D2AF3AFC3418E6800D8A70E8 /* Pods-macos-PassepartoutTunnel-macOS.release.xcconfig */; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = "Passepartout/Tunnel/Tunnel-macOS.entitlements"; + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Manual; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = DTDYD63ZX9; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = Passepartout/Tunnel/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_MACOS_ID).Tunnel"; + PRODUCT_NAME = PassepartoutTunnel; + PROVISIONING_PROFILE_SPECIFIER = "match Development com.algoritmico.macos.Passepartout.Tunnel macos"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 0E5203F4259F60D600CBAB56 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 329F34FAC963CE4BEA3013D6 /* Pods-macos-PassepartoutCore-macOS.debug.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 974; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = DTDYD63ZX9; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Passepartout/Core/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.PassepartoutCore; + PRODUCT_NAME = PassepartoutCore; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 0E5203F5259F60D600CBAB56 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C3D09D9270939FC37BE7101E /* Pods-macos-PassepartoutCore-macOS.release.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 974; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = DTDYD63ZX9; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Passepartout/Core/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.PassepartoutCore; + PRODUCT_NAME = PassepartoutCore; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 0E57F65320C83FC7008323CF /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 0E23B4A12298559800304C30 /* Config.xcconfig */; @@ -1310,12 +2564,14 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2,6"; }; name = Debug; }; @@ -1369,31 +2625,33 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2,6"; VALIDATE_PRODUCT = YES; }; name = Release; }; 0E57F65620C83FC7008323CF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F4959B5F3CB1BBC2C46EA639 /* Pods-Passepartout-iOS.debug.xcconfig */; + baseConfigurationReference = 155FC78114E324E01093F98C /* Pods-ios-Passepartout-iOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = "Passepartout-iOS/Passepartout.entitlements"; + CODE_SIGN_ENTITLEMENTS = Passepartout/App/iOS/App.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = "Passepartout-iOS/Info.plist"; + INFOPLIST_FILE = Passepartout/App/iOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_ID)"; + PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_IOS_ID)"; PRODUCT_NAME = Passepartout; PROVISIONING_PROFILE_SPECIFIER = "match Development com.algoritmico.ios.Passepartout"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -1403,43 +2661,182 @@ }; 0E57F65720C83FC7008323CF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 53B773C4BAE7EDB38C7AFCD1 /* Pods-Passepartout-iOS.release.xcconfig */; + baseConfigurationReference = CFF79E4C42220C649C2259D2 /* Pods-ios-Passepartout-iOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = "Passepartout-iOS/Passepartout.entitlements"; + CODE_SIGN_ENTITLEMENTS = Passepartout/App/iOS/App.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = "Passepartout-iOS/Info.plist"; + INFOPLIST_FILE = Passepartout/App/iOS/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_ID)"; + PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_IOS_ID)"; PRODUCT_NAME = Passepartout; PROVISIONING_PROFILE_SPECIFIER = "match Development com.algoritmico.ios.Passepartout"; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; + 0E9AA996259F779F003FAFF1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A8E3B69460648EA46C1BF850 /* Pods-ios-PassepartoutCoreTests-iOS.debug.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = Passepartout/Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.Passepartout.Tests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 0E9AA997259F779F003FAFF1 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D5D3FFA0392EA5F818646CD9 /* Pods-ios-PassepartoutCoreTests-iOS.release.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = Passepartout/Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.Passepartout.Tests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 0E9AA9C3259F7821003FAFF1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E69B5CF79639B3D24F2AFFC9 /* Pods-macos-PassepartoutCoreTests-macOS.debug.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = Passepartout/Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.Passepartout.Tests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 0E9AA9C4259F7821003FAFF1 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 80A0C78A127E8CE9CB8E658D /* Pods-macos-PassepartoutCoreTests-macOS.release.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + INFOPLIST_FILE = Passepartout/Tests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.Passepartout.Tests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 0E9AAA6E259F7D81003FAFF1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Passepartout/App/macOS/Launcher/Launcher.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = DTDYD63ZX9; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = Passepartout/App/macOS/Launcher/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.Passepartout.Launcher; + PRODUCT_NAME = PassepartoutLauncher; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 0E9AAA6F259F7D81003FAFF1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Passepartout/App/macOS/Launcher/Launcher.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = DTDYD63ZX9; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = Passepartout/App/macOS/Launcher/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.macos.Passepartout.Launcher; + PRODUCT_NAME = PassepartoutLauncher; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; 0EDE8DCA20C86910004C739C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 09CB728874F1553EF27BAAB9 /* Pods-Passepartout-iOS-Tunnel.debug.xcconfig */; + baseConfigurationReference = 7E007C60601AFBB8A2C34DC4 /* Pods-ios-PassepartoutTunnel-iOS.debug.xcconfig */; buildSettings = { - CODE_SIGN_ENTITLEMENTS = "Passepartout-iOS-Tunnel/Tunnel.entitlements"; + CODE_SIGN_ENTITLEMENTS = "Passepartout/Tunnel/Tunnel-iOS.entitlements"; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = "Passepartout-iOS-Tunnel/Info.plist"; + INFOPLIST_FILE = Passepartout/Tunnel/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_ID).Tunnel"; - PRODUCT_NAME = "Passepartout-Tunnel"; + PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_IOS_ID).Tunnel"; + PRODUCT_NAME = PassepartoutTunnel; PROVISIONING_PROFILE_SPECIFIER = "match Development com.algoritmico.ios.Passepartout.Tunnel"; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1448,20 +2845,20 @@ }; 0EDE8DCB20C86910004C739C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4BD12523ABCBF7ED941FC270 /* Pods-Passepartout-iOS-Tunnel.release.xcconfig */; + baseConfigurationReference = 9FB2CA39113427B15C824FE0 /* Pods-ios-PassepartoutTunnel-iOS.release.xcconfig */; buildSettings = { - CODE_SIGN_ENTITLEMENTS = "Passepartout-iOS-Tunnel/Tunnel.entitlements"; + CODE_SIGN_ENTITLEMENTS = "Passepartout/Tunnel/Tunnel-iOS.entitlements"; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Manual; DEVELOPMENT_TEAM = DTDYD63ZX9; - INFOPLIST_FILE = "Passepartout-iOS-Tunnel/Info.plist"; + INFOPLIST_FILE = Passepartout/Tunnel/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_ID).Tunnel"; - PRODUCT_NAME = "Passepartout-Tunnel"; + PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_IOS_ID).Tunnel"; + PRODUCT_NAME = PassepartoutTunnel; PROVISIONING_PROFILE_SPECIFIER = "match Development com.algoritmico.ios.Passepartout.Tunnel"; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1480,6 +2877,33 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 0E520304259F573800CBAB56 /* Build configuration list for PBXNativeTarget "Passepartout-macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E520305259F573800CBAB56 /* Debug */, + 0E520306259F573800CBAB56 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0E5203BF259F5F3F00CBAB56 /* Build configuration list for PBXNativeTarget "PassepartoutTunnel-macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E5203C0259F5F3F00CBAB56 /* Debug */, + 0E5203C1259F5F3F00CBAB56 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0E5203F3259F60D600CBAB56 /* Build configuration list for PBXNativeTarget "PassepartoutCore-macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E5203F4259F60D600CBAB56 /* Debug */, + 0E5203F5259F60D600CBAB56 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 0E57F63320C83FC5008323CF /* Build configuration list for PBXProject "Passepartout" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1498,7 +2922,34 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 0EDE8DC920C86910004C739C /* Build configuration list for PBXNativeTarget "Passepartout-iOS-Tunnel" */ = { + 0E9AA995259F779F003FAFF1 /* Build configuration list for PBXNativeTarget "PassepartoutCoreTests-iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E9AA996259F779F003FAFF1 /* Debug */, + 0E9AA997259F779F003FAFF1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0E9AA9C2259F7821003FAFF1 /* Build configuration list for PBXNativeTarget "PassepartoutCoreTests-macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E9AA9C3259F7821003FAFF1 /* Debug */, + 0E9AA9C4259F7821003FAFF1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0E9AAA70259F7D81003FAFF1 /* Build configuration list for PBXNativeTarget "PassepartoutLauncher-macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0E9AAA6E259F7D81003FAFF1 /* Debug */, + 0E9AAA6F259F7D81003FAFF1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 0EDE8DC920C86910004C739C /* Build configuration list for PBXNativeTarget "PassepartoutTunnel-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 0EDE8DCA20C86910004C739C /* Debug */, diff --git a/Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-iOS.xcscheme b/Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-iOS.xcscheme index 92a99058..d4340d16 100644 --- a/Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-iOS.xcscheme +++ b/Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-iOS.xcscheme @@ -29,8 +29,8 @@ diff --git a/Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-macOS.xcscheme b/Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-macOS.xcscheme new file mode 100644 index 00000000..dc026fed --- /dev/null +++ b/Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-macOS.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-Core.xcscheme b/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCore-iOS.xcscheme similarity index 98% rename from Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-Core.xcscheme rename to Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCore-iOS.xcscheme index 144c7c64..5ec35ab6 100644 --- a/Passepartout.xcodeproj/xcshareddata/xcschemes/Passepartout-Core.xcscheme +++ b/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCore-iOS.xcscheme @@ -41,7 +41,7 @@ skipped = "NO"> diff --git a/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCore-macOS.xcscheme b/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCore-macOS.xcscheme new file mode 100644 index 00000000..8440fccb --- /dev/null +++ b/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCore-macOS.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCoreTests-iOS.xcscheme b/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCoreTests-iOS.xcscheme new file mode 100644 index 00000000..a7685ae4 --- /dev/null +++ b/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCoreTests-iOS.xcscheme @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCoreTests-macOS.xcscheme b/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCoreTests-macOS.xcscheme new file mode 100644 index 00000000..4b4d29e2 --- /dev/null +++ b/Passepartout.xcodeproj/xcshareddata/xcschemes/PassepartoutCoreTests-macOS.xcscheme @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout-iOS/Passepartout.entitlements b/Passepartout/App/iOS/App.entitlements similarity index 100% rename from Passepartout-iOS/Passepartout.entitlements rename to Passepartout/App/iOS/App.entitlements diff --git a/Passepartout-iOS/AppDelegate.swift b/Passepartout/App/iOS/AppDelegate.swift similarity index 100% rename from Passepartout-iOS/AppDelegate.swift rename to Passepartout/App/iOS/AppDelegate.swift diff --git a/Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png b/Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png similarity index 100% rename from Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png rename to Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png diff --git a/Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-120.png b/Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-120.png similarity index 100% rename from Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-120.png rename to Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-120.png diff --git a/Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-152.png b/Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-152.png similarity index 100% rename from Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-152.png rename to Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-152.png diff --git a/Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-167.png b/Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-167.png similarity index 100% rename from Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-167.png rename to Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-167.png diff --git a/Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-180.png b/Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-180.png similarity index 100% rename from Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-180.png rename to Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-180.png diff --git a/Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-76.png b/Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-76.png similarity index 100% rename from Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-76.png rename to Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/AppIcon-76.png diff --git a/Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Passepartout-iOS/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Passepartout/App/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Passepartout-iOS/Assets.xcassets/Contents.json b/Passepartout/App/iOS/Assets.xcassets/Contents.json similarity index 100% rename from Passepartout-iOS/Assets.xcassets/Contents.json rename to Passepartout/App/iOS/Assets.xcassets/Contents.json diff --git a/Passepartout-iOS/Assets.xcassets/logo.imageset/Contents.json b/Passepartout/App/iOS/Assets.xcassets/logo.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Assets.xcassets/logo.imageset/Contents.json rename to Passepartout/App/iOS/Assets.xcassets/logo.imageset/Contents.json diff --git a/Passepartout-iOS/Assets.xcassets/logo.imageset/logo@2x.png b/Passepartout/App/iOS/Assets.xcassets/logo.imageset/logo@2x.png similarity index 100% rename from Passepartout-iOS/Assets.xcassets/logo.imageset/logo@2x.png rename to Passepartout/App/iOS/Assets.xcassets/logo.imageset/logo@2x.png diff --git a/Passepartout-iOS/Assets.xcassets/logo.imageset/logo@3x.png b/Passepartout/App/iOS/Assets.xcassets/logo.imageset/logo@3x.png similarity index 100% rename from Passepartout-iOS/Assets.xcassets/logo.imageset/logo@3x.png rename to Passepartout/App/iOS/Assets.xcassets/logo.imageset/logo@3x.png diff --git a/Passepartout-iOS/Base.lproj/About.storyboard b/Passepartout/App/iOS/Base.lproj/About.storyboard similarity index 100% rename from Passepartout-iOS/Base.lproj/About.storyboard rename to Passepartout/App/iOS/Base.lproj/About.storyboard diff --git a/Passepartout-iOS/Base.lproj/LaunchScreen.storyboard b/Passepartout/App/iOS/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from Passepartout-iOS/Base.lproj/LaunchScreen.storyboard rename to Passepartout/App/iOS/Base.lproj/LaunchScreen.storyboard diff --git a/Passepartout-iOS/Base.lproj/Main.storyboard b/Passepartout/App/iOS/Base.lproj/Main.storyboard similarity index 100% rename from Passepartout-iOS/Base.lproj/Main.storyboard rename to Passepartout/App/iOS/Base.lproj/Main.storyboard diff --git a/Passepartout-iOS/Base.lproj/Organizer.storyboard b/Passepartout/App/iOS/Base.lproj/Organizer.storyboard similarity index 100% rename from Passepartout-iOS/Base.lproj/Organizer.storyboard rename to Passepartout/App/iOS/Base.lproj/Organizer.storyboard diff --git a/Passepartout-iOS/Base.lproj/Purchase.storyboard b/Passepartout/App/iOS/Base.lproj/Purchase.storyboard similarity index 100% rename from Passepartout-iOS/Base.lproj/Purchase.storyboard rename to Passepartout/App/iOS/Base.lproj/Purchase.storyboard diff --git a/Passepartout-iOS/Base.lproj/Shortcuts.storyboard b/Passepartout/App/iOS/Base.lproj/Shortcuts.storyboard similarity index 100% rename from Passepartout-iOS/Base.lproj/Shortcuts.storyboard rename to Passepartout/App/iOS/Base.lproj/Shortcuts.storyboard diff --git a/CHANGELOG.md b/Passepartout/App/iOS/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to Passepartout/App/iOS/CHANGELOG.md diff --git a/Passepartout-iOS/Cells/ActivityTableViewCell.swift b/Passepartout/App/iOS/Cells/ActivityTableViewCell.swift similarity index 100% rename from Passepartout-iOS/Cells/ActivityTableViewCell.swift rename to Passepartout/App/iOS/Cells/ActivityTableViewCell.swift diff --git a/Passepartout-iOS/Cells/Cells.swift b/Passepartout/App/iOS/Cells/Cells.swift similarity index 100% rename from Passepartout-iOS/Cells/Cells.swift rename to Passepartout/App/iOS/Cells/Cells.swift diff --git a/Passepartout-iOS/Cells/DestructiveTableViewCell.swift b/Passepartout/App/iOS/Cells/DestructiveTableViewCell.swift similarity index 100% rename from Passepartout-iOS/Cells/DestructiveTableViewCell.swift rename to Passepartout/App/iOS/Cells/DestructiveTableViewCell.swift diff --git a/Passepartout-iOS/Cells/FieldTableViewCell.swift b/Passepartout/App/iOS/Cells/FieldTableViewCell.swift similarity index 100% rename from Passepartout-iOS/Cells/FieldTableViewCell.swift rename to Passepartout/App/iOS/Cells/FieldTableViewCell.swift diff --git a/Passepartout-iOS/Cells/SettingTableViewCell.swift b/Passepartout/App/iOS/Cells/SettingTableViewCell.swift similarity index 100% rename from Passepartout-iOS/Cells/SettingTableViewCell.swift rename to Passepartout/App/iOS/Cells/SettingTableViewCell.swift diff --git a/Passepartout-iOS/Cells/ToggleTableViewCell.swift b/Passepartout/App/iOS/Cells/ToggleTableViewCell.swift similarity index 100% rename from Passepartout-iOS/Cells/ToggleTableViewCell.swift rename to Passepartout/App/iOS/Cells/ToggleTableViewCell.swift diff --git a/Passepartout-iOS/Flags.xcassets/Contents.json b/Passepartout/App/iOS/Flags.xcassets/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ad.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ad.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ad.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ad.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ad.imageset/ad@2x.png b/Passepartout/App/iOS/Flags.xcassets/ad.imageset/ad@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ad.imageset/ad@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ad.imageset/ad@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ad.imageset/ad@3x.png b/Passepartout/App/iOS/Flags.xcassets/ad.imageset/ad@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ad.imageset/ad@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ad.imageset/ad@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ae.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ae.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ae.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ae.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ae.imageset/ae@2x.png b/Passepartout/App/iOS/Flags.xcassets/ae.imageset/ae@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ae.imageset/ae@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ae.imageset/ae@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ae.imageset/ae@3x.png b/Passepartout/App/iOS/Flags.xcassets/ae.imageset/ae@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ae.imageset/ae@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ae.imageset/ae@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/af.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/af.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/af.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/af.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/af.imageset/af@2x.png b/Passepartout/App/iOS/Flags.xcassets/af.imageset/af@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/af.imageset/af@2x.png rename to Passepartout/App/iOS/Flags.xcassets/af.imageset/af@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/af.imageset/af@3x.png b/Passepartout/App/iOS/Flags.xcassets/af.imageset/af@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/af.imageset/af@3x.png rename to Passepartout/App/iOS/Flags.xcassets/af.imageset/af@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ag.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ag.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ag.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ag.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ag.imageset/ag@2x.png b/Passepartout/App/iOS/Flags.xcassets/ag.imageset/ag@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ag.imageset/ag@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ag.imageset/ag@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ag.imageset/ag@3x.png b/Passepartout/App/iOS/Flags.xcassets/ag.imageset/ag@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ag.imageset/ag@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ag.imageset/ag@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ai.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ai.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ai.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ai.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ai.imageset/ai@2x.png b/Passepartout/App/iOS/Flags.xcassets/ai.imageset/ai@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ai.imageset/ai@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ai.imageset/ai@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ai.imageset/ai@3x.png b/Passepartout/App/iOS/Flags.xcassets/ai.imageset/ai@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ai.imageset/ai@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ai.imageset/ai@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/al.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/al.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/al.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/al.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/al.imageset/al@2x.png b/Passepartout/App/iOS/Flags.xcassets/al.imageset/al@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/al.imageset/al@2x.png rename to Passepartout/App/iOS/Flags.xcassets/al.imageset/al@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/al.imageset/al@3x.png b/Passepartout/App/iOS/Flags.xcassets/al.imageset/al@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/al.imageset/al@3x.png rename to Passepartout/App/iOS/Flags.xcassets/al.imageset/al@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/am.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/am.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/am.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/am.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/am.imageset/am@2x.png b/Passepartout/App/iOS/Flags.xcassets/am.imageset/am@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/am.imageset/am@2x.png rename to Passepartout/App/iOS/Flags.xcassets/am.imageset/am@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/am.imageset/am@3x.png b/Passepartout/App/iOS/Flags.xcassets/am.imageset/am@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/am.imageset/am@3x.png rename to Passepartout/App/iOS/Flags.xcassets/am.imageset/am@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ao.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ao.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ao.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ao.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ao.imageset/ao@2x.png b/Passepartout/App/iOS/Flags.xcassets/ao.imageset/ao@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ao.imageset/ao@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ao.imageset/ao@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ao.imageset/ao@3x.png b/Passepartout/App/iOS/Flags.xcassets/ao.imageset/ao@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ao.imageset/ao@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ao.imageset/ao@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/aq.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/aq.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/aq.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/aq.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/aq.imageset/aq@2x.png b/Passepartout/App/iOS/Flags.xcassets/aq.imageset/aq@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/aq.imageset/aq@2x.png rename to Passepartout/App/iOS/Flags.xcassets/aq.imageset/aq@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/aq.imageset/aq@3x.png b/Passepartout/App/iOS/Flags.xcassets/aq.imageset/aq@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/aq.imageset/aq@3x.png rename to Passepartout/App/iOS/Flags.xcassets/aq.imageset/aq@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ar.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ar.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ar.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ar.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ar.imageset/ar@2x.png b/Passepartout/App/iOS/Flags.xcassets/ar.imageset/ar@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ar.imageset/ar@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ar.imageset/ar@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ar.imageset/ar@3x.png b/Passepartout/App/iOS/Flags.xcassets/ar.imageset/ar@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ar.imageset/ar@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ar.imageset/ar@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/as.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/as.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/as.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/as.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/as.imageset/as@2x.png b/Passepartout/App/iOS/Flags.xcassets/as.imageset/as@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/as.imageset/as@2x.png rename to Passepartout/App/iOS/Flags.xcassets/as.imageset/as@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/as.imageset/as@3x.png b/Passepartout/App/iOS/Flags.xcassets/as.imageset/as@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/as.imageset/as@3x.png rename to Passepartout/App/iOS/Flags.xcassets/as.imageset/as@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/at.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/at.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/at.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/at.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/at.imageset/at@2x.png b/Passepartout/App/iOS/Flags.xcassets/at.imageset/at@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/at.imageset/at@2x.png rename to Passepartout/App/iOS/Flags.xcassets/at.imageset/at@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/at.imageset/at@3x.png b/Passepartout/App/iOS/Flags.xcassets/at.imageset/at@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/at.imageset/at@3x.png rename to Passepartout/App/iOS/Flags.xcassets/at.imageset/at@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/au.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/au.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/au.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/au.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/au.imageset/au@2x.png b/Passepartout/App/iOS/Flags.xcassets/au.imageset/au@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/au.imageset/au@2x.png rename to Passepartout/App/iOS/Flags.xcassets/au.imageset/au@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/au.imageset/au@3x.png b/Passepartout/App/iOS/Flags.xcassets/au.imageset/au@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/au.imageset/au@3x.png rename to Passepartout/App/iOS/Flags.xcassets/au.imageset/au@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/aw.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/aw.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/aw.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/aw.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/aw.imageset/aw@2x.png b/Passepartout/App/iOS/Flags.xcassets/aw.imageset/aw@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/aw.imageset/aw@2x.png rename to Passepartout/App/iOS/Flags.xcassets/aw.imageset/aw@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/aw.imageset/aw@3x.png b/Passepartout/App/iOS/Flags.xcassets/aw.imageset/aw@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/aw.imageset/aw@3x.png rename to Passepartout/App/iOS/Flags.xcassets/aw.imageset/aw@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ax.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ax.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ax.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ax.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ax.imageset/ax@2x.png b/Passepartout/App/iOS/Flags.xcassets/ax.imageset/ax@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ax.imageset/ax@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ax.imageset/ax@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ax.imageset/ax@3x.png b/Passepartout/App/iOS/Flags.xcassets/ax.imageset/ax@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ax.imageset/ax@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ax.imageset/ax@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/az.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/az.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/az.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/az.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/az.imageset/az@2x.png b/Passepartout/App/iOS/Flags.xcassets/az.imageset/az@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/az.imageset/az@2x.png rename to Passepartout/App/iOS/Flags.xcassets/az.imageset/az@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/az.imageset/az@3x.png b/Passepartout/App/iOS/Flags.xcassets/az.imageset/az@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/az.imageset/az@3x.png rename to Passepartout/App/iOS/Flags.xcassets/az.imageset/az@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ba.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ba.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ba.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ba.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ba.imageset/ba@2x.png b/Passepartout/App/iOS/Flags.xcassets/ba.imageset/ba@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ba.imageset/ba@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ba.imageset/ba@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ba.imageset/ba@3x.png b/Passepartout/App/iOS/Flags.xcassets/ba.imageset/ba@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ba.imageset/ba@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ba.imageset/ba@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bb.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bb.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bb.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bb.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bb.imageset/bb@2x.png b/Passepartout/App/iOS/Flags.xcassets/bb.imageset/bb@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bb.imageset/bb@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bb.imageset/bb@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bb.imageset/bb@3x.png b/Passepartout/App/iOS/Flags.xcassets/bb.imageset/bb@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bb.imageset/bb@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bb.imageset/bb@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bd.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bd.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bd.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bd.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bd.imageset/bd@2x.png b/Passepartout/App/iOS/Flags.xcassets/bd.imageset/bd@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bd.imageset/bd@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bd.imageset/bd@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bd.imageset/bd@3x.png b/Passepartout/App/iOS/Flags.xcassets/bd.imageset/bd@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bd.imageset/bd@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bd.imageset/bd@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/be.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/be.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/be.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/be.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/be.imageset/be@2x.png b/Passepartout/App/iOS/Flags.xcassets/be.imageset/be@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/be.imageset/be@2x.png rename to Passepartout/App/iOS/Flags.xcassets/be.imageset/be@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/be.imageset/be@3x.png b/Passepartout/App/iOS/Flags.xcassets/be.imageset/be@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/be.imageset/be@3x.png rename to Passepartout/App/iOS/Flags.xcassets/be.imageset/be@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bf.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bf.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bf.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bf.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bf.imageset/bf@2x.png b/Passepartout/App/iOS/Flags.xcassets/bf.imageset/bf@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bf.imageset/bf@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bf.imageset/bf@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bf.imageset/bf@3x.png b/Passepartout/App/iOS/Flags.xcassets/bf.imageset/bf@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bf.imageset/bf@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bf.imageset/bf@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bg.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bg.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bg.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bg.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bg.imageset/bg@2x.png b/Passepartout/App/iOS/Flags.xcassets/bg.imageset/bg@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bg.imageset/bg@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bg.imageset/bg@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bg.imageset/bg@3x.png b/Passepartout/App/iOS/Flags.xcassets/bg.imageset/bg@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bg.imageset/bg@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bg.imageset/bg@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bh.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bh.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bh.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bh.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bh.imageset/bh@2x.png b/Passepartout/App/iOS/Flags.xcassets/bh.imageset/bh@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bh.imageset/bh@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bh.imageset/bh@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bh.imageset/bh@3x.png b/Passepartout/App/iOS/Flags.xcassets/bh.imageset/bh@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bh.imageset/bh@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bh.imageset/bh@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bi.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bi.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bi.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bi.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bi.imageset/bi@2x.png b/Passepartout/App/iOS/Flags.xcassets/bi.imageset/bi@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bi.imageset/bi@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bi.imageset/bi@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bi.imageset/bi@3x.png b/Passepartout/App/iOS/Flags.xcassets/bi.imageset/bi@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bi.imageset/bi@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bi.imageset/bi@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bj.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bj.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bj.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bj.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bj.imageset/bj@2x.png b/Passepartout/App/iOS/Flags.xcassets/bj.imageset/bj@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bj.imageset/bj@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bj.imageset/bj@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bj.imageset/bj@3x.png b/Passepartout/App/iOS/Flags.xcassets/bj.imageset/bj@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bj.imageset/bj@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bj.imageset/bj@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bl.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bl.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bl.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bl.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bl.imageset/bl@2x.png b/Passepartout/App/iOS/Flags.xcassets/bl.imageset/bl@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bl.imageset/bl@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bl.imageset/bl@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bl.imageset/bl@3x.png b/Passepartout/App/iOS/Flags.xcassets/bl.imageset/bl@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bl.imageset/bl@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bl.imageset/bl@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bm.imageset/bm@2x.png b/Passepartout/App/iOS/Flags.xcassets/bm.imageset/bm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bm.imageset/bm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bm.imageset/bm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bm.imageset/bm@3x.png b/Passepartout/App/iOS/Flags.xcassets/bm.imageset/bm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bm.imageset/bm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bm.imageset/bm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bn.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bn.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bn.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bn.imageset/bn@2x.png b/Passepartout/App/iOS/Flags.xcassets/bn.imageset/bn@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bn.imageset/bn@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bn.imageset/bn@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bn.imageset/bn@3x.png b/Passepartout/App/iOS/Flags.xcassets/bn.imageset/bn@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bn.imageset/bn@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bn.imageset/bn@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bo.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bo.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bo.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bo.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bo.imageset/bo@2x.png b/Passepartout/App/iOS/Flags.xcassets/bo.imageset/bo@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bo.imageset/bo@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bo.imageset/bo@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bo.imageset/bo@3x.png b/Passepartout/App/iOS/Flags.xcassets/bo.imageset/bo@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bo.imageset/bo@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bo.imageset/bo@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bq.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bq.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bq.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bq.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bq.imageset/bq@2x.png b/Passepartout/App/iOS/Flags.xcassets/bq.imageset/bq@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bq.imageset/bq@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bq.imageset/bq@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bq.imageset/bq@3x.png b/Passepartout/App/iOS/Flags.xcassets/bq.imageset/bq@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bq.imageset/bq@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bq.imageset/bq@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/br.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/br.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/br.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/br.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/br.imageset/br@2x.png b/Passepartout/App/iOS/Flags.xcassets/br.imageset/br@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/br.imageset/br@2x.png rename to Passepartout/App/iOS/Flags.xcassets/br.imageset/br@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/br.imageset/br@3x.png b/Passepartout/App/iOS/Flags.xcassets/br.imageset/br@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/br.imageset/br@3x.png rename to Passepartout/App/iOS/Flags.xcassets/br.imageset/br@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bs.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bs.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bs.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bs.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bs.imageset/bs@2x.png b/Passepartout/App/iOS/Flags.xcassets/bs.imageset/bs@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bs.imageset/bs@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bs.imageset/bs@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bs.imageset/bs@3x.png b/Passepartout/App/iOS/Flags.xcassets/bs.imageset/bs@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bs.imageset/bs@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bs.imageset/bs@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bt.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bt.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bt.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bt.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bt.imageset/bt@2x.png b/Passepartout/App/iOS/Flags.xcassets/bt.imageset/bt@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bt.imageset/bt@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bt.imageset/bt@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bt.imageset/bt@3x.png b/Passepartout/App/iOS/Flags.xcassets/bt.imageset/bt@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bt.imageset/bt@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bt.imageset/bt@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bv.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bv.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bv.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bv.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bv.imageset/bv@2x.png b/Passepartout/App/iOS/Flags.xcassets/bv.imageset/bv@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bv.imageset/bv@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bv.imageset/bv@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bv.imageset/bv@3x.png b/Passepartout/App/iOS/Flags.xcassets/bv.imageset/bv@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bv.imageset/bv@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bv.imageset/bv@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bw.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bw.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bw.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bw.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bw.imageset/bw@2x.png b/Passepartout/App/iOS/Flags.xcassets/bw.imageset/bw@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bw.imageset/bw@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bw.imageset/bw@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bw.imageset/bw@3x.png b/Passepartout/App/iOS/Flags.xcassets/bw.imageset/bw@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bw.imageset/bw@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bw.imageset/bw@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/by.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/by.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/by.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/by.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/by.imageset/by@2x.png b/Passepartout/App/iOS/Flags.xcassets/by.imageset/by@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/by.imageset/by@2x.png rename to Passepartout/App/iOS/Flags.xcassets/by.imageset/by@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/by.imageset/by@3x.png b/Passepartout/App/iOS/Flags.xcassets/by.imageset/by@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/by.imageset/by@3x.png rename to Passepartout/App/iOS/Flags.xcassets/by.imageset/by@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/bz.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/bz.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bz.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/bz.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/bz.imageset/bz@2x.png b/Passepartout/App/iOS/Flags.xcassets/bz.imageset/bz@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bz.imageset/bz@2x.png rename to Passepartout/App/iOS/Flags.xcassets/bz.imageset/bz@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/bz.imageset/bz@3x.png b/Passepartout/App/iOS/Flags.xcassets/bz.imageset/bz@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/bz.imageset/bz@3x.png rename to Passepartout/App/iOS/Flags.xcassets/bz.imageset/bz@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ca.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ca.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ca.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ca.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ca.imageset/ca@2x.png b/Passepartout/App/iOS/Flags.xcassets/ca.imageset/ca@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ca.imageset/ca@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ca.imageset/ca@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ca.imageset/ca@3x.png b/Passepartout/App/iOS/Flags.xcassets/ca.imageset/ca@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ca.imageset/ca@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ca.imageset/ca@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cc.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cc.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cc.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cc.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cc.imageset/cc@2x.png b/Passepartout/App/iOS/Flags.xcassets/cc.imageset/cc@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cc.imageset/cc@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cc.imageset/cc@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cc.imageset/cc@3x.png b/Passepartout/App/iOS/Flags.xcassets/cc.imageset/cc@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cc.imageset/cc@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cc.imageset/cc@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cd.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cd.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cd.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cd.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cd.imageset/cd@2x.png b/Passepartout/App/iOS/Flags.xcassets/cd.imageset/cd@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cd.imageset/cd@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cd.imageset/cd@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cd.imageset/cd@3x.png b/Passepartout/App/iOS/Flags.xcassets/cd.imageset/cd@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cd.imageset/cd@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cd.imageset/cd@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cf.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cf.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cf.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cf.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cf.imageset/cf@2x.png b/Passepartout/App/iOS/Flags.xcassets/cf.imageset/cf@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cf.imageset/cf@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cf.imageset/cf@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cf.imageset/cf@3x.png b/Passepartout/App/iOS/Flags.xcassets/cf.imageset/cf@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cf.imageset/cf@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cf.imageset/cf@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cg.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cg.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cg.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cg.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cg.imageset/cg@2x.png b/Passepartout/App/iOS/Flags.xcassets/cg.imageset/cg@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cg.imageset/cg@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cg.imageset/cg@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cg.imageset/cg@3x.png b/Passepartout/App/iOS/Flags.xcassets/cg.imageset/cg@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cg.imageset/cg@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cg.imageset/cg@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ch.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ch.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ch.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ch.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ch.imageset/ch@2x.png b/Passepartout/App/iOS/Flags.xcassets/ch.imageset/ch@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ch.imageset/ch@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ch.imageset/ch@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ch.imageset/ch@3x.png b/Passepartout/App/iOS/Flags.xcassets/ch.imageset/ch@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ch.imageset/ch@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ch.imageset/ch@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ci.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ci.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ci.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ci.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ci.imageset/ci@2x.png b/Passepartout/App/iOS/Flags.xcassets/ci.imageset/ci@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ci.imageset/ci@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ci.imageset/ci@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ci.imageset/ci@3x.png b/Passepartout/App/iOS/Flags.xcassets/ci.imageset/ci@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ci.imageset/ci@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ci.imageset/ci@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ck.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ck.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ck.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ck.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ck.imageset/ck@2x.png b/Passepartout/App/iOS/Flags.xcassets/ck.imageset/ck@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ck.imageset/ck@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ck.imageset/ck@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ck.imageset/ck@3x.png b/Passepartout/App/iOS/Flags.xcassets/ck.imageset/ck@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ck.imageset/ck@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ck.imageset/ck@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cl.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cl.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cl.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cl.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cl.imageset/cl@2x.png b/Passepartout/App/iOS/Flags.xcassets/cl.imageset/cl@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cl.imageset/cl@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cl.imageset/cl@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cl.imageset/cl@3x.png b/Passepartout/App/iOS/Flags.xcassets/cl.imageset/cl@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cl.imageset/cl@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cl.imageset/cl@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cm.imageset/cm@2x.png b/Passepartout/App/iOS/Flags.xcassets/cm.imageset/cm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cm.imageset/cm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cm.imageset/cm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cm.imageset/cm@3x.png b/Passepartout/App/iOS/Flags.xcassets/cm.imageset/cm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cm.imageset/cm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cm.imageset/cm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cn.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cn.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cn.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cn.imageset/cn@2x.png b/Passepartout/App/iOS/Flags.xcassets/cn.imageset/cn@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cn.imageset/cn@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cn.imageset/cn@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cn.imageset/cn@3x.png b/Passepartout/App/iOS/Flags.xcassets/cn.imageset/cn@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cn.imageset/cn@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cn.imageset/cn@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/co.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/co.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/co.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/co.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/co.imageset/co@2x.png b/Passepartout/App/iOS/Flags.xcassets/co.imageset/co@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/co.imageset/co@2x.png rename to Passepartout/App/iOS/Flags.xcassets/co.imageset/co@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/co.imageset/co@3x.png b/Passepartout/App/iOS/Flags.xcassets/co.imageset/co@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/co.imageset/co@3x.png rename to Passepartout/App/iOS/Flags.xcassets/co.imageset/co@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cr.imageset/cr@2x.png b/Passepartout/App/iOS/Flags.xcassets/cr.imageset/cr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cr.imageset/cr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cr.imageset/cr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cr.imageset/cr@3x.png b/Passepartout/App/iOS/Flags.xcassets/cr.imageset/cr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cr.imageset/cr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cr.imageset/cr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cu.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cu.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cu.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cu.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cu.imageset/cu@2x.png b/Passepartout/App/iOS/Flags.xcassets/cu.imageset/cu@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cu.imageset/cu@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cu.imageset/cu@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cu.imageset/cu@3x.png b/Passepartout/App/iOS/Flags.xcassets/cu.imageset/cu@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cu.imageset/cu@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cu.imageset/cu@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cv.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cv.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cv.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cv.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cv.imageset/cv@2x.png b/Passepartout/App/iOS/Flags.xcassets/cv.imageset/cv@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cv.imageset/cv@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cv.imageset/cv@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cv.imageset/cv@3x.png b/Passepartout/App/iOS/Flags.xcassets/cv.imageset/cv@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cv.imageset/cv@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cv.imageset/cv@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cw.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cw.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cw.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cw.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cw.imageset/cw@2x.png b/Passepartout/App/iOS/Flags.xcassets/cw.imageset/cw@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cw.imageset/cw@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cw.imageset/cw@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cw.imageset/cw@3x.png b/Passepartout/App/iOS/Flags.xcassets/cw.imageset/cw@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cw.imageset/cw@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cw.imageset/cw@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cx.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cx.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cx.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cx.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cx.imageset/cx@2x.png b/Passepartout/App/iOS/Flags.xcassets/cx.imageset/cx@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cx.imageset/cx@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cx.imageset/cx@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cx.imageset/cx@3x.png b/Passepartout/App/iOS/Flags.xcassets/cx.imageset/cx@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cx.imageset/cx@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cx.imageset/cx@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cy.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cy.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cy.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cy.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cy.imageset/cy@2x.png b/Passepartout/App/iOS/Flags.xcassets/cy.imageset/cy@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cy.imageset/cy@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cy.imageset/cy@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cy.imageset/cy@3x.png b/Passepartout/App/iOS/Flags.xcassets/cy.imageset/cy@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cy.imageset/cy@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cy.imageset/cy@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/cz.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/cz.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cz.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/cz.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/cz.imageset/cz@2x.png b/Passepartout/App/iOS/Flags.xcassets/cz.imageset/cz@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cz.imageset/cz@2x.png rename to Passepartout/App/iOS/Flags.xcassets/cz.imageset/cz@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/cz.imageset/cz@3x.png b/Passepartout/App/iOS/Flags.xcassets/cz.imageset/cz@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/cz.imageset/cz@3x.png rename to Passepartout/App/iOS/Flags.xcassets/cz.imageset/cz@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/de.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/de.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/de.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/de.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/de.imageset/de@2x.png b/Passepartout/App/iOS/Flags.xcassets/de.imageset/de@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/de.imageset/de@2x.png rename to Passepartout/App/iOS/Flags.xcassets/de.imageset/de@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/de.imageset/de@3x.png b/Passepartout/App/iOS/Flags.xcassets/de.imageset/de@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/de.imageset/de@3x.png rename to Passepartout/App/iOS/Flags.xcassets/de.imageset/de@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/dj.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/dj.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dj.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/dj.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/dj.imageset/dj@2x.png b/Passepartout/App/iOS/Flags.xcassets/dj.imageset/dj@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dj.imageset/dj@2x.png rename to Passepartout/App/iOS/Flags.xcassets/dj.imageset/dj@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/dj.imageset/dj@3x.png b/Passepartout/App/iOS/Flags.xcassets/dj.imageset/dj@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dj.imageset/dj@3x.png rename to Passepartout/App/iOS/Flags.xcassets/dj.imageset/dj@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/dk.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/dk.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dk.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/dk.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/dk.imageset/dk@2x.png b/Passepartout/App/iOS/Flags.xcassets/dk.imageset/dk@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dk.imageset/dk@2x.png rename to Passepartout/App/iOS/Flags.xcassets/dk.imageset/dk@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/dk.imageset/dk@3x.png b/Passepartout/App/iOS/Flags.xcassets/dk.imageset/dk@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dk.imageset/dk@3x.png rename to Passepartout/App/iOS/Flags.xcassets/dk.imageset/dk@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/dm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/dm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/dm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/dm.imageset/dm@2x.png b/Passepartout/App/iOS/Flags.xcassets/dm.imageset/dm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dm.imageset/dm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/dm.imageset/dm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/dm.imageset/dm@3x.png b/Passepartout/App/iOS/Flags.xcassets/dm.imageset/dm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dm.imageset/dm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/dm.imageset/dm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/do.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/do.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/do.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/do.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/do.imageset/do@2x.png b/Passepartout/App/iOS/Flags.xcassets/do.imageset/do@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/do.imageset/do@2x.png rename to Passepartout/App/iOS/Flags.xcassets/do.imageset/do@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/do.imageset/do@3x.png b/Passepartout/App/iOS/Flags.xcassets/do.imageset/do@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/do.imageset/do@3x.png rename to Passepartout/App/iOS/Flags.xcassets/do.imageset/do@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/dz.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/dz.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dz.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/dz.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/dz.imageset/dz@2x.png b/Passepartout/App/iOS/Flags.xcassets/dz.imageset/dz@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dz.imageset/dz@2x.png rename to Passepartout/App/iOS/Flags.xcassets/dz.imageset/dz@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/dz.imageset/dz@3x.png b/Passepartout/App/iOS/Flags.xcassets/dz.imageset/dz@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/dz.imageset/dz@3x.png rename to Passepartout/App/iOS/Flags.xcassets/dz.imageset/dz@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ec.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ec.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ec.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ec.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ec.imageset/ec@2x.png b/Passepartout/App/iOS/Flags.xcassets/ec.imageset/ec@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ec.imageset/ec@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ec.imageset/ec@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ec.imageset/ec@3x.png b/Passepartout/App/iOS/Flags.xcassets/ec.imageset/ec@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ec.imageset/ec@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ec.imageset/ec@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ee.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ee.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ee.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ee.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ee.imageset/ee@2x.png b/Passepartout/App/iOS/Flags.xcassets/ee.imageset/ee@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ee.imageset/ee@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ee.imageset/ee@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ee.imageset/ee@3x.png b/Passepartout/App/iOS/Flags.xcassets/ee.imageset/ee@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ee.imageset/ee@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ee.imageset/ee@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/eg.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/eg.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/eg.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/eg.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/eg.imageset/eg@2x.png b/Passepartout/App/iOS/Flags.xcassets/eg.imageset/eg@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/eg.imageset/eg@2x.png rename to Passepartout/App/iOS/Flags.xcassets/eg.imageset/eg@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/eg.imageset/eg@3x.png b/Passepartout/App/iOS/Flags.xcassets/eg.imageset/eg@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/eg.imageset/eg@3x.png rename to Passepartout/App/iOS/Flags.xcassets/eg.imageset/eg@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/eh.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/eh.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/eh.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/eh.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/eh.imageset/eh@2x.png b/Passepartout/App/iOS/Flags.xcassets/eh.imageset/eh@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/eh.imageset/eh@2x.png rename to Passepartout/App/iOS/Flags.xcassets/eh.imageset/eh@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/eh.imageset/eh@3x.png b/Passepartout/App/iOS/Flags.xcassets/eh.imageset/eh@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/eh.imageset/eh@3x.png rename to Passepartout/App/iOS/Flags.xcassets/eh.imageset/eh@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/er.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/er.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/er.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/er.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/er.imageset/er@2x.png b/Passepartout/App/iOS/Flags.xcassets/er.imageset/er@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/er.imageset/er@2x.png rename to Passepartout/App/iOS/Flags.xcassets/er.imageset/er@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/er.imageset/er@3x.png b/Passepartout/App/iOS/Flags.xcassets/er.imageset/er@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/er.imageset/er@3x.png rename to Passepartout/App/iOS/Flags.xcassets/er.imageset/er@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/es-ct.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/es-ct.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/es-ct.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/es-ct.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/es-ct.imageset/es-ct@2x.png b/Passepartout/App/iOS/Flags.xcassets/es-ct.imageset/es-ct@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/es-ct.imageset/es-ct@2x.png rename to Passepartout/App/iOS/Flags.xcassets/es-ct.imageset/es-ct@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/es-ct.imageset/es-ct@3x.png b/Passepartout/App/iOS/Flags.xcassets/es-ct.imageset/es-ct@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/es-ct.imageset/es-ct@3x.png rename to Passepartout/App/iOS/Flags.xcassets/es-ct.imageset/es-ct@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/es.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/es.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/es.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/es.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/es.imageset/es@2x.png b/Passepartout/App/iOS/Flags.xcassets/es.imageset/es@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/es.imageset/es@2x.png rename to Passepartout/App/iOS/Flags.xcassets/es.imageset/es@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/es.imageset/es@3x.png b/Passepartout/App/iOS/Flags.xcassets/es.imageset/es@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/es.imageset/es@3x.png rename to Passepartout/App/iOS/Flags.xcassets/es.imageset/es@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/et.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/et.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/et.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/et.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/et.imageset/et@2x.png b/Passepartout/App/iOS/Flags.xcassets/et.imageset/et@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/et.imageset/et@2x.png rename to Passepartout/App/iOS/Flags.xcassets/et.imageset/et@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/et.imageset/et@3x.png b/Passepartout/App/iOS/Flags.xcassets/et.imageset/et@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/et.imageset/et@3x.png rename to Passepartout/App/iOS/Flags.xcassets/et.imageset/et@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/eu.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/eu.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/eu.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/eu.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/eu.imageset/eu@2x.png b/Passepartout/App/iOS/Flags.xcassets/eu.imageset/eu@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/eu.imageset/eu@2x.png rename to Passepartout/App/iOS/Flags.xcassets/eu.imageset/eu@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/eu.imageset/eu@3x.png b/Passepartout/App/iOS/Flags.xcassets/eu.imageset/eu@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/eu.imageset/eu@3x.png rename to Passepartout/App/iOS/Flags.xcassets/eu.imageset/eu@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/fi.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/fi.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fi.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/fi.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/fi.imageset/fi@2x.png b/Passepartout/App/iOS/Flags.xcassets/fi.imageset/fi@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fi.imageset/fi@2x.png rename to Passepartout/App/iOS/Flags.xcassets/fi.imageset/fi@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/fi.imageset/fi@3x.png b/Passepartout/App/iOS/Flags.xcassets/fi.imageset/fi@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fi.imageset/fi@3x.png rename to Passepartout/App/iOS/Flags.xcassets/fi.imageset/fi@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/fj.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/fj.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fj.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/fj.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/fj.imageset/fj@2x.png b/Passepartout/App/iOS/Flags.xcassets/fj.imageset/fj@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fj.imageset/fj@2x.png rename to Passepartout/App/iOS/Flags.xcassets/fj.imageset/fj@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/fj.imageset/fj@3x.png b/Passepartout/App/iOS/Flags.xcassets/fj.imageset/fj@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fj.imageset/fj@3x.png rename to Passepartout/App/iOS/Flags.xcassets/fj.imageset/fj@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/fk.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/fk.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fk.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/fk.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/fk.imageset/fk@2x.png b/Passepartout/App/iOS/Flags.xcassets/fk.imageset/fk@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fk.imageset/fk@2x.png rename to Passepartout/App/iOS/Flags.xcassets/fk.imageset/fk@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/fk.imageset/fk@3x.png b/Passepartout/App/iOS/Flags.xcassets/fk.imageset/fk@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fk.imageset/fk@3x.png rename to Passepartout/App/iOS/Flags.xcassets/fk.imageset/fk@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/fm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/fm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/fm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/fm.imageset/fm@2x.png b/Passepartout/App/iOS/Flags.xcassets/fm.imageset/fm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fm.imageset/fm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/fm.imageset/fm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/fm.imageset/fm@3x.png b/Passepartout/App/iOS/Flags.xcassets/fm.imageset/fm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fm.imageset/fm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/fm.imageset/fm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/fo.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/fo.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fo.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/fo.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/fo.imageset/fo@2x.png b/Passepartout/App/iOS/Flags.xcassets/fo.imageset/fo@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fo.imageset/fo@2x.png rename to Passepartout/App/iOS/Flags.xcassets/fo.imageset/fo@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/fo.imageset/fo@3x.png b/Passepartout/App/iOS/Flags.xcassets/fo.imageset/fo@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fo.imageset/fo@3x.png rename to Passepartout/App/iOS/Flags.xcassets/fo.imageset/fo@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/fr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/fr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/fr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/fr.imageset/fr@2x.png b/Passepartout/App/iOS/Flags.xcassets/fr.imageset/fr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fr.imageset/fr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/fr.imageset/fr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/fr.imageset/fr@3x.png b/Passepartout/App/iOS/Flags.xcassets/fr.imageset/fr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/fr.imageset/fr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/fr.imageset/fr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ga.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ga.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ga.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ga.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ga.imageset/ga@2x.png b/Passepartout/App/iOS/Flags.xcassets/ga.imageset/ga@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ga.imageset/ga@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ga.imageset/ga@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ga.imageset/ga@3x.png b/Passepartout/App/iOS/Flags.xcassets/ga.imageset/ga@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ga.imageset/ga@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ga.imageset/ga@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gb-eng.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gb-eng.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-eng.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gb-eng.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gb-eng.imageset/gb-eng@2x.png b/Passepartout/App/iOS/Flags.xcassets/gb-eng.imageset/gb-eng@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-eng.imageset/gb-eng@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gb-eng.imageset/gb-eng@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gb-eng.imageset/gb-eng@3x.png b/Passepartout/App/iOS/Flags.xcassets/gb-eng.imageset/gb-eng@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-eng.imageset/gb-eng@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gb-eng.imageset/gb-eng@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gb-nir.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gb-nir.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-nir.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gb-nir.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gb-nir.imageset/gb-nir@2x.png b/Passepartout/App/iOS/Flags.xcassets/gb-nir.imageset/gb-nir@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-nir.imageset/gb-nir@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gb-nir.imageset/gb-nir@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gb-nir.imageset/gb-nir@3x.png b/Passepartout/App/iOS/Flags.xcassets/gb-nir.imageset/gb-nir@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-nir.imageset/gb-nir@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gb-nir.imageset/gb-nir@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gb-sct.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gb-sct.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-sct.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gb-sct.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gb-sct.imageset/gb-sct@2x.png b/Passepartout/App/iOS/Flags.xcassets/gb-sct.imageset/gb-sct@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-sct.imageset/gb-sct@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gb-sct.imageset/gb-sct@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gb-sct.imageset/gb-sct@3x.png b/Passepartout/App/iOS/Flags.xcassets/gb-sct.imageset/gb-sct@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-sct.imageset/gb-sct@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gb-sct.imageset/gb-sct@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gb-wls.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gb-wls.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-wls.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gb-wls.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gb-wls.imageset/gb-wls@2x.png b/Passepartout/App/iOS/Flags.xcassets/gb-wls.imageset/gb-wls@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-wls.imageset/gb-wls@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gb-wls.imageset/gb-wls@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gb-wls.imageset/gb-wls@3x.png b/Passepartout/App/iOS/Flags.xcassets/gb-wls.imageset/gb-wls@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb-wls.imageset/gb-wls@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gb-wls.imageset/gb-wls@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gb.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gb.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gb.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gb.imageset/gb@2x.png b/Passepartout/App/iOS/Flags.xcassets/gb.imageset/gb@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb.imageset/gb@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gb.imageset/gb@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gb.imageset/gb@3x.png b/Passepartout/App/iOS/Flags.xcassets/gb.imageset/gb@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gb.imageset/gb@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gb.imageset/gb@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gd.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gd.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gd.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gd.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gd.imageset/gd@2x.png b/Passepartout/App/iOS/Flags.xcassets/gd.imageset/gd@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gd.imageset/gd@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gd.imageset/gd@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gd.imageset/gd@3x.png b/Passepartout/App/iOS/Flags.xcassets/gd.imageset/gd@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gd.imageset/gd@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gd.imageset/gd@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ge.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ge.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ge.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ge.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ge.imageset/ge@2x.png b/Passepartout/App/iOS/Flags.xcassets/ge.imageset/ge@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ge.imageset/ge@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ge.imageset/ge@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ge.imageset/ge@3x.png b/Passepartout/App/iOS/Flags.xcassets/ge.imageset/ge@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ge.imageset/ge@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ge.imageset/ge@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gf.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gf.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gf.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gf.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gf.imageset/gf@2x.png b/Passepartout/App/iOS/Flags.xcassets/gf.imageset/gf@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gf.imageset/gf@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gf.imageset/gf@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gf.imageset/gf@3x.png b/Passepartout/App/iOS/Flags.xcassets/gf.imageset/gf@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gf.imageset/gf@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gf.imageset/gf@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gg.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gg.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gg.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gg.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gg.imageset/gg@2x.png b/Passepartout/App/iOS/Flags.xcassets/gg.imageset/gg@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gg.imageset/gg@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gg.imageset/gg@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gg.imageset/gg@3x.png b/Passepartout/App/iOS/Flags.xcassets/gg.imageset/gg@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gg.imageset/gg@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gg.imageset/gg@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gh.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gh.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gh.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gh.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gh.imageset/gh@2x.png b/Passepartout/App/iOS/Flags.xcassets/gh.imageset/gh@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gh.imageset/gh@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gh.imageset/gh@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gh.imageset/gh@3x.png b/Passepartout/App/iOS/Flags.xcassets/gh.imageset/gh@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gh.imageset/gh@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gh.imageset/gh@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gi.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gi.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gi.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gi.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gi.imageset/gi@2x.png b/Passepartout/App/iOS/Flags.xcassets/gi.imageset/gi@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gi.imageset/gi@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gi.imageset/gi@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gi.imageset/gi@3x.png b/Passepartout/App/iOS/Flags.xcassets/gi.imageset/gi@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gi.imageset/gi@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gi.imageset/gi@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gl.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gl.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gl.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gl.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gl.imageset/gl@2x.png b/Passepartout/App/iOS/Flags.xcassets/gl.imageset/gl@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gl.imageset/gl@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gl.imageset/gl@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gl.imageset/gl@3x.png b/Passepartout/App/iOS/Flags.xcassets/gl.imageset/gl@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gl.imageset/gl@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gl.imageset/gl@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gm.imageset/gm@2x.png b/Passepartout/App/iOS/Flags.xcassets/gm.imageset/gm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gm.imageset/gm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gm.imageset/gm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gm.imageset/gm@3x.png b/Passepartout/App/iOS/Flags.xcassets/gm.imageset/gm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gm.imageset/gm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gm.imageset/gm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gn.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gn.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gn.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gn.imageset/gn@2x.png b/Passepartout/App/iOS/Flags.xcassets/gn.imageset/gn@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gn.imageset/gn@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gn.imageset/gn@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gn.imageset/gn@3x.png b/Passepartout/App/iOS/Flags.xcassets/gn.imageset/gn@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gn.imageset/gn@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gn.imageset/gn@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gp.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gp.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gp.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gp.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gp.imageset/gp@2x.png b/Passepartout/App/iOS/Flags.xcassets/gp.imageset/gp@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gp.imageset/gp@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gp.imageset/gp@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gp.imageset/gp@3x.png b/Passepartout/App/iOS/Flags.xcassets/gp.imageset/gp@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gp.imageset/gp@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gp.imageset/gp@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gq.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gq.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gq.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gq.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gq.imageset/gq@2x.png b/Passepartout/App/iOS/Flags.xcassets/gq.imageset/gq@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gq.imageset/gq@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gq.imageset/gq@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gq.imageset/gq@3x.png b/Passepartout/App/iOS/Flags.xcassets/gq.imageset/gq@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gq.imageset/gq@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gq.imageset/gq@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gr.imageset/gr@2x.png b/Passepartout/App/iOS/Flags.xcassets/gr.imageset/gr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gr.imageset/gr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gr.imageset/gr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gr.imageset/gr@3x.png b/Passepartout/App/iOS/Flags.xcassets/gr.imageset/gr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gr.imageset/gr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gr.imageset/gr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gs.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gs.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gs.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gs.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gs.imageset/gs@2x.png b/Passepartout/App/iOS/Flags.xcassets/gs.imageset/gs@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gs.imageset/gs@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gs.imageset/gs@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gs.imageset/gs@3x.png b/Passepartout/App/iOS/Flags.xcassets/gs.imageset/gs@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gs.imageset/gs@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gs.imageset/gs@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gt.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gt.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gt.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gt.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gt.imageset/gt@2x.png b/Passepartout/App/iOS/Flags.xcassets/gt.imageset/gt@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gt.imageset/gt@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gt.imageset/gt@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gt.imageset/gt@3x.png b/Passepartout/App/iOS/Flags.xcassets/gt.imageset/gt@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gt.imageset/gt@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gt.imageset/gt@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gu.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gu.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gu.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gu.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gu.imageset/gu@2x.png b/Passepartout/App/iOS/Flags.xcassets/gu.imageset/gu@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gu.imageset/gu@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gu.imageset/gu@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gu.imageset/gu@3x.png b/Passepartout/App/iOS/Flags.xcassets/gu.imageset/gu@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gu.imageset/gu@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gu.imageset/gu@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gw.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gw.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gw.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gw.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gw.imageset/gw@2x.png b/Passepartout/App/iOS/Flags.xcassets/gw.imageset/gw@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gw.imageset/gw@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gw.imageset/gw@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gw.imageset/gw@3x.png b/Passepartout/App/iOS/Flags.xcassets/gw.imageset/gw@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gw.imageset/gw@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gw.imageset/gw@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/gy.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/gy.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gy.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/gy.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/gy.imageset/gy@2x.png b/Passepartout/App/iOS/Flags.xcassets/gy.imageset/gy@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gy.imageset/gy@2x.png rename to Passepartout/App/iOS/Flags.xcassets/gy.imageset/gy@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/gy.imageset/gy@3x.png b/Passepartout/App/iOS/Flags.xcassets/gy.imageset/gy@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/gy.imageset/gy@3x.png rename to Passepartout/App/iOS/Flags.xcassets/gy.imageset/gy@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/hk.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/hk.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hk.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/hk.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/hk.imageset/hk@2x.png b/Passepartout/App/iOS/Flags.xcassets/hk.imageset/hk@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hk.imageset/hk@2x.png rename to Passepartout/App/iOS/Flags.xcassets/hk.imageset/hk@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/hk.imageset/hk@3x.png b/Passepartout/App/iOS/Flags.xcassets/hk.imageset/hk@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hk.imageset/hk@3x.png rename to Passepartout/App/iOS/Flags.xcassets/hk.imageset/hk@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/hm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/hm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/hm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/hm.imageset/hm@2x.png b/Passepartout/App/iOS/Flags.xcassets/hm.imageset/hm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hm.imageset/hm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/hm.imageset/hm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/hm.imageset/hm@3x.png b/Passepartout/App/iOS/Flags.xcassets/hm.imageset/hm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hm.imageset/hm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/hm.imageset/hm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/hn.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/hn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hn.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/hn.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/hn.imageset/hn@2x.png b/Passepartout/App/iOS/Flags.xcassets/hn.imageset/hn@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hn.imageset/hn@2x.png rename to Passepartout/App/iOS/Flags.xcassets/hn.imageset/hn@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/hn.imageset/hn@3x.png b/Passepartout/App/iOS/Flags.xcassets/hn.imageset/hn@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hn.imageset/hn@3x.png rename to Passepartout/App/iOS/Flags.xcassets/hn.imageset/hn@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/hr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/hr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/hr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/hr.imageset/hr@2x.png b/Passepartout/App/iOS/Flags.xcassets/hr.imageset/hr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hr.imageset/hr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/hr.imageset/hr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/hr.imageset/hr@3x.png b/Passepartout/App/iOS/Flags.xcassets/hr.imageset/hr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hr.imageset/hr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/hr.imageset/hr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ht.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ht.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ht.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ht.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ht.imageset/ht@2x.png b/Passepartout/App/iOS/Flags.xcassets/ht.imageset/ht@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ht.imageset/ht@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ht.imageset/ht@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ht.imageset/ht@3x.png b/Passepartout/App/iOS/Flags.xcassets/ht.imageset/ht@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ht.imageset/ht@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ht.imageset/ht@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/hu.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/hu.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hu.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/hu.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/hu.imageset/hu@2x.png b/Passepartout/App/iOS/Flags.xcassets/hu.imageset/hu@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hu.imageset/hu@2x.png rename to Passepartout/App/iOS/Flags.xcassets/hu.imageset/hu@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/hu.imageset/hu@3x.png b/Passepartout/App/iOS/Flags.xcassets/hu.imageset/hu@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/hu.imageset/hu@3x.png rename to Passepartout/App/iOS/Flags.xcassets/hu.imageset/hu@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/id.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/id.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/id.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/id.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/id.imageset/id@2x.png b/Passepartout/App/iOS/Flags.xcassets/id.imageset/id@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/id.imageset/id@2x.png rename to Passepartout/App/iOS/Flags.xcassets/id.imageset/id@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/id.imageset/id@3x.png b/Passepartout/App/iOS/Flags.xcassets/id.imageset/id@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/id.imageset/id@3x.png rename to Passepartout/App/iOS/Flags.xcassets/id.imageset/id@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ie.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ie.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ie.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ie.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ie.imageset/ie@2x.png b/Passepartout/App/iOS/Flags.xcassets/ie.imageset/ie@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ie.imageset/ie@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ie.imageset/ie@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ie.imageset/ie@3x.png b/Passepartout/App/iOS/Flags.xcassets/ie.imageset/ie@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ie.imageset/ie@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ie.imageset/ie@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/il.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/il.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/il.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/il.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/il.imageset/il@2x.png b/Passepartout/App/iOS/Flags.xcassets/il.imageset/il@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/il.imageset/il@2x.png rename to Passepartout/App/iOS/Flags.xcassets/il.imageset/il@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/il.imageset/il@3x.png b/Passepartout/App/iOS/Flags.xcassets/il.imageset/il@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/il.imageset/il@3x.png rename to Passepartout/App/iOS/Flags.xcassets/il.imageset/il@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/im.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/im.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/im.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/im.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/im.imageset/im@2x.png b/Passepartout/App/iOS/Flags.xcassets/im.imageset/im@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/im.imageset/im@2x.png rename to Passepartout/App/iOS/Flags.xcassets/im.imageset/im@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/im.imageset/im@3x.png b/Passepartout/App/iOS/Flags.xcassets/im.imageset/im@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/im.imageset/im@3x.png rename to Passepartout/App/iOS/Flags.xcassets/im.imageset/im@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/in.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/in.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/in.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/in.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/in.imageset/in@2x.png b/Passepartout/App/iOS/Flags.xcassets/in.imageset/in@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/in.imageset/in@2x.png rename to Passepartout/App/iOS/Flags.xcassets/in.imageset/in@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/in.imageset/in@3x.png b/Passepartout/App/iOS/Flags.xcassets/in.imageset/in@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/in.imageset/in@3x.png rename to Passepartout/App/iOS/Flags.xcassets/in.imageset/in@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/io.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/io.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/io.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/io.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/io.imageset/io@2x.png b/Passepartout/App/iOS/Flags.xcassets/io.imageset/io@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/io.imageset/io@2x.png rename to Passepartout/App/iOS/Flags.xcassets/io.imageset/io@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/io.imageset/io@3x.png b/Passepartout/App/iOS/Flags.xcassets/io.imageset/io@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/io.imageset/io@3x.png rename to Passepartout/App/iOS/Flags.xcassets/io.imageset/io@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/iq.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/iq.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/iq.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/iq.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/iq.imageset/iq@2x.png b/Passepartout/App/iOS/Flags.xcassets/iq.imageset/iq@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/iq.imageset/iq@2x.png rename to Passepartout/App/iOS/Flags.xcassets/iq.imageset/iq@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/iq.imageset/iq@3x.png b/Passepartout/App/iOS/Flags.xcassets/iq.imageset/iq@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/iq.imageset/iq@3x.png rename to Passepartout/App/iOS/Flags.xcassets/iq.imageset/iq@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ir.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ir.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ir.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ir.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ir.imageset/ir@2x.png b/Passepartout/App/iOS/Flags.xcassets/ir.imageset/ir@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ir.imageset/ir@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ir.imageset/ir@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ir.imageset/ir@3x.png b/Passepartout/App/iOS/Flags.xcassets/ir.imageset/ir@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ir.imageset/ir@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ir.imageset/ir@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/is.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/is.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/is.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/is.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/is.imageset/is@2x.png b/Passepartout/App/iOS/Flags.xcassets/is.imageset/is@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/is.imageset/is@2x.png rename to Passepartout/App/iOS/Flags.xcassets/is.imageset/is@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/is.imageset/is@3x.png b/Passepartout/App/iOS/Flags.xcassets/is.imageset/is@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/is.imageset/is@3x.png rename to Passepartout/App/iOS/Flags.xcassets/is.imageset/is@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/it.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/it.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/it.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/it.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/it.imageset/it@2x.png b/Passepartout/App/iOS/Flags.xcassets/it.imageset/it@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/it.imageset/it@2x.png rename to Passepartout/App/iOS/Flags.xcassets/it.imageset/it@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/it.imageset/it@3x.png b/Passepartout/App/iOS/Flags.xcassets/it.imageset/it@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/it.imageset/it@3x.png rename to Passepartout/App/iOS/Flags.xcassets/it.imageset/it@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/je.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/je.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/je.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/je.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/je.imageset/je@2x.png b/Passepartout/App/iOS/Flags.xcassets/je.imageset/je@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/je.imageset/je@2x.png rename to Passepartout/App/iOS/Flags.xcassets/je.imageset/je@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/je.imageset/je@3x.png b/Passepartout/App/iOS/Flags.xcassets/je.imageset/je@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/je.imageset/je@3x.png rename to Passepartout/App/iOS/Flags.xcassets/je.imageset/je@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/jm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/jm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/jm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/jm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/jm.imageset/jm@2x.png b/Passepartout/App/iOS/Flags.xcassets/jm.imageset/jm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/jm.imageset/jm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/jm.imageset/jm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/jm.imageset/jm@3x.png b/Passepartout/App/iOS/Flags.xcassets/jm.imageset/jm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/jm.imageset/jm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/jm.imageset/jm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/jo.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/jo.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/jo.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/jo.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/jo.imageset/jo@2x.png b/Passepartout/App/iOS/Flags.xcassets/jo.imageset/jo@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/jo.imageset/jo@2x.png rename to Passepartout/App/iOS/Flags.xcassets/jo.imageset/jo@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/jo.imageset/jo@3x.png b/Passepartout/App/iOS/Flags.xcassets/jo.imageset/jo@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/jo.imageset/jo@3x.png rename to Passepartout/App/iOS/Flags.xcassets/jo.imageset/jo@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/jp.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/jp.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/jp.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/jp.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/jp.imageset/jp@2x.png b/Passepartout/App/iOS/Flags.xcassets/jp.imageset/jp@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/jp.imageset/jp@2x.png rename to Passepartout/App/iOS/Flags.xcassets/jp.imageset/jp@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/jp.imageset/jp@3x.png b/Passepartout/App/iOS/Flags.xcassets/jp.imageset/jp@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/jp.imageset/jp@3x.png rename to Passepartout/App/iOS/Flags.xcassets/jp.imageset/jp@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ke.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ke.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ke.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ke.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ke.imageset/ke@2x.png b/Passepartout/App/iOS/Flags.xcassets/ke.imageset/ke@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ke.imageset/ke@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ke.imageset/ke@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ke.imageset/ke@3x.png b/Passepartout/App/iOS/Flags.xcassets/ke.imageset/ke@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ke.imageset/ke@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ke.imageset/ke@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/kg.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/kg.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kg.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/kg.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/kg.imageset/kg@2x.png b/Passepartout/App/iOS/Flags.xcassets/kg.imageset/kg@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kg.imageset/kg@2x.png rename to Passepartout/App/iOS/Flags.xcassets/kg.imageset/kg@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/kg.imageset/kg@3x.png b/Passepartout/App/iOS/Flags.xcassets/kg.imageset/kg@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kg.imageset/kg@3x.png rename to Passepartout/App/iOS/Flags.xcassets/kg.imageset/kg@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/kh.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/kh.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kh.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/kh.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/kh.imageset/kh@2x.png b/Passepartout/App/iOS/Flags.xcassets/kh.imageset/kh@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kh.imageset/kh@2x.png rename to Passepartout/App/iOS/Flags.xcassets/kh.imageset/kh@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/kh.imageset/kh@3x.png b/Passepartout/App/iOS/Flags.xcassets/kh.imageset/kh@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kh.imageset/kh@3x.png rename to Passepartout/App/iOS/Flags.xcassets/kh.imageset/kh@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ki.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ki.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ki.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ki.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ki.imageset/ki@2x.png b/Passepartout/App/iOS/Flags.xcassets/ki.imageset/ki@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ki.imageset/ki@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ki.imageset/ki@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ki.imageset/ki@3x.png b/Passepartout/App/iOS/Flags.xcassets/ki.imageset/ki@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ki.imageset/ki@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ki.imageset/ki@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/km.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/km.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/km.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/km.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/km.imageset/km@2x.png b/Passepartout/App/iOS/Flags.xcassets/km.imageset/km@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/km.imageset/km@2x.png rename to Passepartout/App/iOS/Flags.xcassets/km.imageset/km@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/km.imageset/km@3x.png b/Passepartout/App/iOS/Flags.xcassets/km.imageset/km@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/km.imageset/km@3x.png rename to Passepartout/App/iOS/Flags.xcassets/km.imageset/km@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/kn.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/kn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kn.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/kn.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/kn.imageset/kn@2x.png b/Passepartout/App/iOS/Flags.xcassets/kn.imageset/kn@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kn.imageset/kn@2x.png rename to Passepartout/App/iOS/Flags.xcassets/kn.imageset/kn@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/kn.imageset/kn@3x.png b/Passepartout/App/iOS/Flags.xcassets/kn.imageset/kn@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kn.imageset/kn@3x.png rename to Passepartout/App/iOS/Flags.xcassets/kn.imageset/kn@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/kp.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/kp.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kp.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/kp.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/kp.imageset/kp@2x.png b/Passepartout/App/iOS/Flags.xcassets/kp.imageset/kp@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kp.imageset/kp@2x.png rename to Passepartout/App/iOS/Flags.xcassets/kp.imageset/kp@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/kp.imageset/kp@3x.png b/Passepartout/App/iOS/Flags.xcassets/kp.imageset/kp@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kp.imageset/kp@3x.png rename to Passepartout/App/iOS/Flags.xcassets/kp.imageset/kp@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/kr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/kr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/kr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/kr.imageset/kr@2x.png b/Passepartout/App/iOS/Flags.xcassets/kr.imageset/kr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kr.imageset/kr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/kr.imageset/kr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/kr.imageset/kr@3x.png b/Passepartout/App/iOS/Flags.xcassets/kr.imageset/kr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kr.imageset/kr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/kr.imageset/kr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/kw.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/kw.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kw.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/kw.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/kw.imageset/kw@2x.png b/Passepartout/App/iOS/Flags.xcassets/kw.imageset/kw@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kw.imageset/kw@2x.png rename to Passepartout/App/iOS/Flags.xcassets/kw.imageset/kw@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/kw.imageset/kw@3x.png b/Passepartout/App/iOS/Flags.xcassets/kw.imageset/kw@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kw.imageset/kw@3x.png rename to Passepartout/App/iOS/Flags.xcassets/kw.imageset/kw@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ky.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ky.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ky.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ky.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ky.imageset/ky@2x.png b/Passepartout/App/iOS/Flags.xcassets/ky.imageset/ky@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ky.imageset/ky@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ky.imageset/ky@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ky.imageset/ky@3x.png b/Passepartout/App/iOS/Flags.xcassets/ky.imageset/ky@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ky.imageset/ky@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ky.imageset/ky@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/kz.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/kz.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kz.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/kz.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/kz.imageset/kz@2x.png b/Passepartout/App/iOS/Flags.xcassets/kz.imageset/kz@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kz.imageset/kz@2x.png rename to Passepartout/App/iOS/Flags.xcassets/kz.imageset/kz@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/kz.imageset/kz@3x.png b/Passepartout/App/iOS/Flags.xcassets/kz.imageset/kz@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/kz.imageset/kz@3x.png rename to Passepartout/App/iOS/Flags.xcassets/kz.imageset/kz@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/la.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/la.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/la.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/la.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/la.imageset/la@2x.png b/Passepartout/App/iOS/Flags.xcassets/la.imageset/la@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/la.imageset/la@2x.png rename to Passepartout/App/iOS/Flags.xcassets/la.imageset/la@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/la.imageset/la@3x.png b/Passepartout/App/iOS/Flags.xcassets/la.imageset/la@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/la.imageset/la@3x.png rename to Passepartout/App/iOS/Flags.xcassets/la.imageset/la@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/lb.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/lb.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lb.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/lb.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/lb.imageset/lb@2x.png b/Passepartout/App/iOS/Flags.xcassets/lb.imageset/lb@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lb.imageset/lb@2x.png rename to Passepartout/App/iOS/Flags.xcassets/lb.imageset/lb@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/lb.imageset/lb@3x.png b/Passepartout/App/iOS/Flags.xcassets/lb.imageset/lb@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lb.imageset/lb@3x.png rename to Passepartout/App/iOS/Flags.xcassets/lb.imageset/lb@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/lc.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/lc.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lc.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/lc.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/lc.imageset/lc@2x.png b/Passepartout/App/iOS/Flags.xcassets/lc.imageset/lc@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lc.imageset/lc@2x.png rename to Passepartout/App/iOS/Flags.xcassets/lc.imageset/lc@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/lc.imageset/lc@3x.png b/Passepartout/App/iOS/Flags.xcassets/lc.imageset/lc@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lc.imageset/lc@3x.png rename to Passepartout/App/iOS/Flags.xcassets/lc.imageset/lc@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/li.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/li.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/li.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/li.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/li.imageset/li@2x.png b/Passepartout/App/iOS/Flags.xcassets/li.imageset/li@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/li.imageset/li@2x.png rename to Passepartout/App/iOS/Flags.xcassets/li.imageset/li@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/li.imageset/li@3x.png b/Passepartout/App/iOS/Flags.xcassets/li.imageset/li@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/li.imageset/li@3x.png rename to Passepartout/App/iOS/Flags.xcassets/li.imageset/li@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/lk.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/lk.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lk.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/lk.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/lk.imageset/lk@2x.png b/Passepartout/App/iOS/Flags.xcassets/lk.imageset/lk@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lk.imageset/lk@2x.png rename to Passepartout/App/iOS/Flags.xcassets/lk.imageset/lk@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/lk.imageset/lk@3x.png b/Passepartout/App/iOS/Flags.xcassets/lk.imageset/lk@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lk.imageset/lk@3x.png rename to Passepartout/App/iOS/Flags.xcassets/lk.imageset/lk@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/lr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/lr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/lr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/lr.imageset/lr@2x.png b/Passepartout/App/iOS/Flags.xcassets/lr.imageset/lr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lr.imageset/lr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/lr.imageset/lr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/lr.imageset/lr@3x.png b/Passepartout/App/iOS/Flags.xcassets/lr.imageset/lr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lr.imageset/lr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/lr.imageset/lr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ls.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ls.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ls.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ls.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ls.imageset/ls@2x.png b/Passepartout/App/iOS/Flags.xcassets/ls.imageset/ls@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ls.imageset/ls@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ls.imageset/ls@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ls.imageset/ls@3x.png b/Passepartout/App/iOS/Flags.xcassets/ls.imageset/ls@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ls.imageset/ls@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ls.imageset/ls@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/lt.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/lt.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lt.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/lt.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/lt.imageset/lt@2x.png b/Passepartout/App/iOS/Flags.xcassets/lt.imageset/lt@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lt.imageset/lt@2x.png rename to Passepartout/App/iOS/Flags.xcassets/lt.imageset/lt@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/lt.imageset/lt@3x.png b/Passepartout/App/iOS/Flags.xcassets/lt.imageset/lt@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lt.imageset/lt@3x.png rename to Passepartout/App/iOS/Flags.xcassets/lt.imageset/lt@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/lu.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/lu.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lu.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/lu.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/lu.imageset/lu@2x.png b/Passepartout/App/iOS/Flags.xcassets/lu.imageset/lu@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lu.imageset/lu@2x.png rename to Passepartout/App/iOS/Flags.xcassets/lu.imageset/lu@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/lu.imageset/lu@3x.png b/Passepartout/App/iOS/Flags.xcassets/lu.imageset/lu@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lu.imageset/lu@3x.png rename to Passepartout/App/iOS/Flags.xcassets/lu.imageset/lu@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/lv.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/lv.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lv.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/lv.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/lv.imageset/lv@2x.png b/Passepartout/App/iOS/Flags.xcassets/lv.imageset/lv@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lv.imageset/lv@2x.png rename to Passepartout/App/iOS/Flags.xcassets/lv.imageset/lv@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/lv.imageset/lv@3x.png b/Passepartout/App/iOS/Flags.xcassets/lv.imageset/lv@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/lv.imageset/lv@3x.png rename to Passepartout/App/iOS/Flags.xcassets/lv.imageset/lv@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ly.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ly.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ly.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ly.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ly.imageset/ly@2x.png b/Passepartout/App/iOS/Flags.xcassets/ly.imageset/ly@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ly.imageset/ly@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ly.imageset/ly@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ly.imageset/ly@3x.png b/Passepartout/App/iOS/Flags.xcassets/ly.imageset/ly@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ly.imageset/ly@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ly.imageset/ly@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ma.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ma.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ma.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ma.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ma.imageset/ma@2x.png b/Passepartout/App/iOS/Flags.xcassets/ma.imageset/ma@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ma.imageset/ma@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ma.imageset/ma@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ma.imageset/ma@3x.png b/Passepartout/App/iOS/Flags.xcassets/ma.imageset/ma@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ma.imageset/ma@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ma.imageset/ma@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mc.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mc.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mc.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mc.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mc.imageset/mc@2x.png b/Passepartout/App/iOS/Flags.xcassets/mc.imageset/mc@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mc.imageset/mc@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mc.imageset/mc@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mc.imageset/mc@3x.png b/Passepartout/App/iOS/Flags.xcassets/mc.imageset/mc@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mc.imageset/mc@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mc.imageset/mc@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/md.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/md.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/md.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/md.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/md.imageset/md@2x.png b/Passepartout/App/iOS/Flags.xcassets/md.imageset/md@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/md.imageset/md@2x.png rename to Passepartout/App/iOS/Flags.xcassets/md.imageset/md@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/md.imageset/md@3x.png b/Passepartout/App/iOS/Flags.xcassets/md.imageset/md@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/md.imageset/md@3x.png rename to Passepartout/App/iOS/Flags.xcassets/md.imageset/md@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/me.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/me.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/me.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/me.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/me.imageset/me@2x.png b/Passepartout/App/iOS/Flags.xcassets/me.imageset/me@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/me.imageset/me@2x.png rename to Passepartout/App/iOS/Flags.xcassets/me.imageset/me@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/me.imageset/me@3x.png b/Passepartout/App/iOS/Flags.xcassets/me.imageset/me@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/me.imageset/me@3x.png rename to Passepartout/App/iOS/Flags.xcassets/me.imageset/me@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mf.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mf.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mf.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mf.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mf.imageset/mf@2x.png b/Passepartout/App/iOS/Flags.xcassets/mf.imageset/mf@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mf.imageset/mf@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mf.imageset/mf@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mf.imageset/mf@3x.png b/Passepartout/App/iOS/Flags.xcassets/mf.imageset/mf@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mf.imageset/mf@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mf.imageset/mf@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mg.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mg.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mg.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mg.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mg.imageset/mg@2x.png b/Passepartout/App/iOS/Flags.xcassets/mg.imageset/mg@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mg.imageset/mg@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mg.imageset/mg@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mg.imageset/mg@3x.png b/Passepartout/App/iOS/Flags.xcassets/mg.imageset/mg@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mg.imageset/mg@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mg.imageset/mg@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mh.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mh.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mh.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mh.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mh.imageset/mh@2x.png b/Passepartout/App/iOS/Flags.xcassets/mh.imageset/mh@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mh.imageset/mh@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mh.imageset/mh@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mh.imageset/mh@3x.png b/Passepartout/App/iOS/Flags.xcassets/mh.imageset/mh@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mh.imageset/mh@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mh.imageset/mh@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mk.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mk.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mk.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mk.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mk.imageset/mk@2x.png b/Passepartout/App/iOS/Flags.xcassets/mk.imageset/mk@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mk.imageset/mk@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mk.imageset/mk@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mk.imageset/mk@3x.png b/Passepartout/App/iOS/Flags.xcassets/mk.imageset/mk@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mk.imageset/mk@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mk.imageset/mk@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ml.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ml.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ml.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ml.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ml.imageset/ml@2x.png b/Passepartout/App/iOS/Flags.xcassets/ml.imageset/ml@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ml.imageset/ml@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ml.imageset/ml@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ml.imageset/ml@3x.png b/Passepartout/App/iOS/Flags.xcassets/ml.imageset/ml@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ml.imageset/ml@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ml.imageset/ml@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mm.imageset/mm@2x.png b/Passepartout/App/iOS/Flags.xcassets/mm.imageset/mm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mm.imageset/mm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mm.imageset/mm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mm.imageset/mm@3x.png b/Passepartout/App/iOS/Flags.xcassets/mm.imageset/mm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mm.imageset/mm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mm.imageset/mm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mn.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mn.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mn.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mn.imageset/mn@2x.png b/Passepartout/App/iOS/Flags.xcassets/mn.imageset/mn@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mn.imageset/mn@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mn.imageset/mn@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mn.imageset/mn@3x.png b/Passepartout/App/iOS/Flags.xcassets/mn.imageset/mn@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mn.imageset/mn@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mn.imageset/mn@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mo.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mo.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mo.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mo.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mo.imageset/mo@2x.png b/Passepartout/App/iOS/Flags.xcassets/mo.imageset/mo@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mo.imageset/mo@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mo.imageset/mo@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mo.imageset/mo@3x.png b/Passepartout/App/iOS/Flags.xcassets/mo.imageset/mo@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mo.imageset/mo@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mo.imageset/mo@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mp.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mp.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mp.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mp.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mp.imageset/mp@2x.png b/Passepartout/App/iOS/Flags.xcassets/mp.imageset/mp@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mp.imageset/mp@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mp.imageset/mp@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mp.imageset/mp@3x.png b/Passepartout/App/iOS/Flags.xcassets/mp.imageset/mp@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mp.imageset/mp@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mp.imageset/mp@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mq.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mq.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mq.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mq.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mq.imageset/mq@2x.png b/Passepartout/App/iOS/Flags.xcassets/mq.imageset/mq@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mq.imageset/mq@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mq.imageset/mq@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mq.imageset/mq@3x.png b/Passepartout/App/iOS/Flags.xcassets/mq.imageset/mq@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mq.imageset/mq@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mq.imageset/mq@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mr.imageset/mr@2x.png b/Passepartout/App/iOS/Flags.xcassets/mr.imageset/mr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mr.imageset/mr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mr.imageset/mr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mr.imageset/mr@3x.png b/Passepartout/App/iOS/Flags.xcassets/mr.imageset/mr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mr.imageset/mr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mr.imageset/mr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ms.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ms.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ms.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ms.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ms.imageset/ms@2x.png b/Passepartout/App/iOS/Flags.xcassets/ms.imageset/ms@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ms.imageset/ms@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ms.imageset/ms@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ms.imageset/ms@3x.png b/Passepartout/App/iOS/Flags.xcassets/ms.imageset/ms@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ms.imageset/ms@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ms.imageset/ms@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mt.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mt.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mt.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mt.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mt.imageset/mt@2x.png b/Passepartout/App/iOS/Flags.xcassets/mt.imageset/mt@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mt.imageset/mt@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mt.imageset/mt@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mt.imageset/mt@3x.png b/Passepartout/App/iOS/Flags.xcassets/mt.imageset/mt@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mt.imageset/mt@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mt.imageset/mt@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mu.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mu.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mu.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mu.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mu.imageset/mu@2x.png b/Passepartout/App/iOS/Flags.xcassets/mu.imageset/mu@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mu.imageset/mu@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mu.imageset/mu@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mu.imageset/mu@3x.png b/Passepartout/App/iOS/Flags.xcassets/mu.imageset/mu@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mu.imageset/mu@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mu.imageset/mu@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mv.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mv.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mv.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mv.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mv.imageset/mv@2x.png b/Passepartout/App/iOS/Flags.xcassets/mv.imageset/mv@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mv.imageset/mv@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mv.imageset/mv@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mv.imageset/mv@3x.png b/Passepartout/App/iOS/Flags.xcassets/mv.imageset/mv@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mv.imageset/mv@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mv.imageset/mv@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mw.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mw.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mw.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mw.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mw.imageset/mw@2x.png b/Passepartout/App/iOS/Flags.xcassets/mw.imageset/mw@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mw.imageset/mw@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mw.imageset/mw@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mw.imageset/mw@3x.png b/Passepartout/App/iOS/Flags.xcassets/mw.imageset/mw@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mw.imageset/mw@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mw.imageset/mw@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mx.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mx.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mx.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mx.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mx.imageset/mx@2x.png b/Passepartout/App/iOS/Flags.xcassets/mx.imageset/mx@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mx.imageset/mx@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mx.imageset/mx@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mx.imageset/mx@3x.png b/Passepartout/App/iOS/Flags.xcassets/mx.imageset/mx@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mx.imageset/mx@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mx.imageset/mx@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/my.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/my.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/my.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/my.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/my.imageset/my@2x.png b/Passepartout/App/iOS/Flags.xcassets/my.imageset/my@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/my.imageset/my@2x.png rename to Passepartout/App/iOS/Flags.xcassets/my.imageset/my@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/my.imageset/my@3x.png b/Passepartout/App/iOS/Flags.xcassets/my.imageset/my@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/my.imageset/my@3x.png rename to Passepartout/App/iOS/Flags.xcassets/my.imageset/my@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/mz.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/mz.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mz.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/mz.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/mz.imageset/mz@2x.png b/Passepartout/App/iOS/Flags.xcassets/mz.imageset/mz@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mz.imageset/mz@2x.png rename to Passepartout/App/iOS/Flags.xcassets/mz.imageset/mz@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/mz.imageset/mz@3x.png b/Passepartout/App/iOS/Flags.xcassets/mz.imageset/mz@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/mz.imageset/mz@3x.png rename to Passepartout/App/iOS/Flags.xcassets/mz.imageset/mz@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/na.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/na.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/na.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/na.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/na.imageset/na@2x.png b/Passepartout/App/iOS/Flags.xcassets/na.imageset/na@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/na.imageset/na@2x.png rename to Passepartout/App/iOS/Flags.xcassets/na.imageset/na@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/na.imageset/na@3x.png b/Passepartout/App/iOS/Flags.xcassets/na.imageset/na@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/na.imageset/na@3x.png rename to Passepartout/App/iOS/Flags.xcassets/na.imageset/na@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/nc.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/nc.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nc.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/nc.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/nc.imageset/nc@2x.png b/Passepartout/App/iOS/Flags.xcassets/nc.imageset/nc@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nc.imageset/nc@2x.png rename to Passepartout/App/iOS/Flags.xcassets/nc.imageset/nc@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/nc.imageset/nc@3x.png b/Passepartout/App/iOS/Flags.xcassets/nc.imageset/nc@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nc.imageset/nc@3x.png rename to Passepartout/App/iOS/Flags.xcassets/nc.imageset/nc@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ne.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ne.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ne.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ne.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ne.imageset/ne@2x.png b/Passepartout/App/iOS/Flags.xcassets/ne.imageset/ne@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ne.imageset/ne@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ne.imageset/ne@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ne.imageset/ne@3x.png b/Passepartout/App/iOS/Flags.xcassets/ne.imageset/ne@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ne.imageset/ne@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ne.imageset/ne@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/nf.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/nf.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nf.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/nf.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/nf.imageset/nf@2x.png b/Passepartout/App/iOS/Flags.xcassets/nf.imageset/nf@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nf.imageset/nf@2x.png rename to Passepartout/App/iOS/Flags.xcassets/nf.imageset/nf@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/nf.imageset/nf@3x.png b/Passepartout/App/iOS/Flags.xcassets/nf.imageset/nf@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nf.imageset/nf@3x.png rename to Passepartout/App/iOS/Flags.xcassets/nf.imageset/nf@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ng.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ng.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ng.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ng.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ng.imageset/ng@2x.png b/Passepartout/App/iOS/Flags.xcassets/ng.imageset/ng@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ng.imageset/ng@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ng.imageset/ng@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ng.imageset/ng@3x.png b/Passepartout/App/iOS/Flags.xcassets/ng.imageset/ng@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ng.imageset/ng@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ng.imageset/ng@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ni.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ni.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ni.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ni.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ni.imageset/ni@2x.png b/Passepartout/App/iOS/Flags.xcassets/ni.imageset/ni@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ni.imageset/ni@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ni.imageset/ni@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ni.imageset/ni@3x.png b/Passepartout/App/iOS/Flags.xcassets/ni.imageset/ni@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ni.imageset/ni@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ni.imageset/ni@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/nl.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/nl.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nl.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/nl.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/nl.imageset/nl@2x.png b/Passepartout/App/iOS/Flags.xcassets/nl.imageset/nl@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nl.imageset/nl@2x.png rename to Passepartout/App/iOS/Flags.xcassets/nl.imageset/nl@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/nl.imageset/nl@3x.png b/Passepartout/App/iOS/Flags.xcassets/nl.imageset/nl@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nl.imageset/nl@3x.png rename to Passepartout/App/iOS/Flags.xcassets/nl.imageset/nl@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/no.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/no.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/no.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/no.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/no.imageset/no@2x.png b/Passepartout/App/iOS/Flags.xcassets/no.imageset/no@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/no.imageset/no@2x.png rename to Passepartout/App/iOS/Flags.xcassets/no.imageset/no@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/no.imageset/no@3x.png b/Passepartout/App/iOS/Flags.xcassets/no.imageset/no@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/no.imageset/no@3x.png rename to Passepartout/App/iOS/Flags.xcassets/no.imageset/no@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/np.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/np.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/np.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/np.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/np.imageset/np@2x.png b/Passepartout/App/iOS/Flags.xcassets/np.imageset/np@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/np.imageset/np@2x.png rename to Passepartout/App/iOS/Flags.xcassets/np.imageset/np@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/np.imageset/np@3x.png b/Passepartout/App/iOS/Flags.xcassets/np.imageset/np@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/np.imageset/np@3x.png rename to Passepartout/App/iOS/Flags.xcassets/np.imageset/np@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/nr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/nr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/nr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/nr.imageset/nr@2x.png b/Passepartout/App/iOS/Flags.xcassets/nr.imageset/nr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nr.imageset/nr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/nr.imageset/nr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/nr.imageset/nr@3x.png b/Passepartout/App/iOS/Flags.xcassets/nr.imageset/nr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nr.imageset/nr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/nr.imageset/nr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/nu.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/nu.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nu.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/nu.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/nu.imageset/nu@2x.png b/Passepartout/App/iOS/Flags.xcassets/nu.imageset/nu@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nu.imageset/nu@2x.png rename to Passepartout/App/iOS/Flags.xcassets/nu.imageset/nu@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/nu.imageset/nu@3x.png b/Passepartout/App/iOS/Flags.xcassets/nu.imageset/nu@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nu.imageset/nu@3x.png rename to Passepartout/App/iOS/Flags.xcassets/nu.imageset/nu@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/nz.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/nz.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nz.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/nz.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/nz.imageset/nz@2x.png b/Passepartout/App/iOS/Flags.xcassets/nz.imageset/nz@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nz.imageset/nz@2x.png rename to Passepartout/App/iOS/Flags.xcassets/nz.imageset/nz@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/nz.imageset/nz@3x.png b/Passepartout/App/iOS/Flags.xcassets/nz.imageset/nz@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/nz.imageset/nz@3x.png rename to Passepartout/App/iOS/Flags.xcassets/nz.imageset/nz@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/om.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/om.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/om.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/om.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/om.imageset/om@2x.png b/Passepartout/App/iOS/Flags.xcassets/om.imageset/om@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/om.imageset/om@2x.png rename to Passepartout/App/iOS/Flags.xcassets/om.imageset/om@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/om.imageset/om@3x.png b/Passepartout/App/iOS/Flags.xcassets/om.imageset/om@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/om.imageset/om@3x.png rename to Passepartout/App/iOS/Flags.xcassets/om.imageset/om@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pa.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pa.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pa.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pa.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pa.imageset/pa@2x.png b/Passepartout/App/iOS/Flags.xcassets/pa.imageset/pa@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pa.imageset/pa@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pa.imageset/pa@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pa.imageset/pa@3x.png b/Passepartout/App/iOS/Flags.xcassets/pa.imageset/pa@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pa.imageset/pa@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pa.imageset/pa@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pe.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pe.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pe.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pe.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pe.imageset/pe@2x.png b/Passepartout/App/iOS/Flags.xcassets/pe.imageset/pe@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pe.imageset/pe@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pe.imageset/pe@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pe.imageset/pe@3x.png b/Passepartout/App/iOS/Flags.xcassets/pe.imageset/pe@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pe.imageset/pe@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pe.imageset/pe@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pf.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pf.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pf.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pf.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pf.imageset/pf@2x.png b/Passepartout/App/iOS/Flags.xcassets/pf.imageset/pf@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pf.imageset/pf@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pf.imageset/pf@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pf.imageset/pf@3x.png b/Passepartout/App/iOS/Flags.xcassets/pf.imageset/pf@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pf.imageset/pf@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pf.imageset/pf@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pg.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pg.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pg.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pg.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pg.imageset/pg@2x.png b/Passepartout/App/iOS/Flags.xcassets/pg.imageset/pg@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pg.imageset/pg@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pg.imageset/pg@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pg.imageset/pg@3x.png b/Passepartout/App/iOS/Flags.xcassets/pg.imageset/pg@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pg.imageset/pg@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pg.imageset/pg@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ph.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ph.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ph.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ph.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ph.imageset/ph@2x.png b/Passepartout/App/iOS/Flags.xcassets/ph.imageset/ph@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ph.imageset/ph@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ph.imageset/ph@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ph.imageset/ph@3x.png b/Passepartout/App/iOS/Flags.xcassets/ph.imageset/ph@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ph.imageset/ph@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ph.imageset/ph@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pk.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pk.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pk.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pk.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pk.imageset/pk@2x.png b/Passepartout/App/iOS/Flags.xcassets/pk.imageset/pk@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pk.imageset/pk@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pk.imageset/pk@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pk.imageset/pk@3x.png b/Passepartout/App/iOS/Flags.xcassets/pk.imageset/pk@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pk.imageset/pk@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pk.imageset/pk@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pl.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pl.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pl.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pl.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pl.imageset/pl@2x.png b/Passepartout/App/iOS/Flags.xcassets/pl.imageset/pl@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pl.imageset/pl@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pl.imageset/pl@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pl.imageset/pl@3x.png b/Passepartout/App/iOS/Flags.xcassets/pl.imageset/pl@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pl.imageset/pl@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pl.imageset/pl@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pm.imageset/pm@2x.png b/Passepartout/App/iOS/Flags.xcassets/pm.imageset/pm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pm.imageset/pm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pm.imageset/pm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pm.imageset/pm@3x.png b/Passepartout/App/iOS/Flags.xcassets/pm.imageset/pm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pm.imageset/pm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pm.imageset/pm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pn.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pn.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pn.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pn.imageset/pn@2x.png b/Passepartout/App/iOS/Flags.xcassets/pn.imageset/pn@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pn.imageset/pn@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pn.imageset/pn@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pn.imageset/pn@3x.png b/Passepartout/App/iOS/Flags.xcassets/pn.imageset/pn@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pn.imageset/pn@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pn.imageset/pn@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pr.imageset/pr@2x.png b/Passepartout/App/iOS/Flags.xcassets/pr.imageset/pr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pr.imageset/pr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pr.imageset/pr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pr.imageset/pr@3x.png b/Passepartout/App/iOS/Flags.xcassets/pr.imageset/pr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pr.imageset/pr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pr.imageset/pr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ps.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ps.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ps.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ps.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ps.imageset/ps@2x.png b/Passepartout/App/iOS/Flags.xcassets/ps.imageset/ps@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ps.imageset/ps@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ps.imageset/ps@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ps.imageset/ps@3x.png b/Passepartout/App/iOS/Flags.xcassets/ps.imageset/ps@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ps.imageset/ps@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ps.imageset/ps@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pt.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pt.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pt.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pt.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pt.imageset/pt@2x.png b/Passepartout/App/iOS/Flags.xcassets/pt.imageset/pt@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pt.imageset/pt@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pt.imageset/pt@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pt.imageset/pt@3x.png b/Passepartout/App/iOS/Flags.xcassets/pt.imageset/pt@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pt.imageset/pt@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pt.imageset/pt@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/pw.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/pw.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pw.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/pw.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/pw.imageset/pw@2x.png b/Passepartout/App/iOS/Flags.xcassets/pw.imageset/pw@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pw.imageset/pw@2x.png rename to Passepartout/App/iOS/Flags.xcassets/pw.imageset/pw@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/pw.imageset/pw@3x.png b/Passepartout/App/iOS/Flags.xcassets/pw.imageset/pw@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/pw.imageset/pw@3x.png rename to Passepartout/App/iOS/Flags.xcassets/pw.imageset/pw@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/py.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/py.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/py.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/py.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/py.imageset/py@2x.png b/Passepartout/App/iOS/Flags.xcassets/py.imageset/py@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/py.imageset/py@2x.png rename to Passepartout/App/iOS/Flags.xcassets/py.imageset/py@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/py.imageset/py@3x.png b/Passepartout/App/iOS/Flags.xcassets/py.imageset/py@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/py.imageset/py@3x.png rename to Passepartout/App/iOS/Flags.xcassets/py.imageset/py@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/qa.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/qa.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/qa.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/qa.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/qa.imageset/qa@2x.png b/Passepartout/App/iOS/Flags.xcassets/qa.imageset/qa@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/qa.imageset/qa@2x.png rename to Passepartout/App/iOS/Flags.xcassets/qa.imageset/qa@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/qa.imageset/qa@3x.png b/Passepartout/App/iOS/Flags.xcassets/qa.imageset/qa@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/qa.imageset/qa@3x.png rename to Passepartout/App/iOS/Flags.xcassets/qa.imageset/qa@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/re.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/re.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/re.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/re.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/re.imageset/re@2x.png b/Passepartout/App/iOS/Flags.xcassets/re.imageset/re@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/re.imageset/re@2x.png rename to Passepartout/App/iOS/Flags.xcassets/re.imageset/re@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/re.imageset/re@3x.png b/Passepartout/App/iOS/Flags.xcassets/re.imageset/re@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/re.imageset/re@3x.png rename to Passepartout/App/iOS/Flags.xcassets/re.imageset/re@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ro.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ro.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ro.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ro.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ro.imageset/ro@2x.png b/Passepartout/App/iOS/Flags.xcassets/ro.imageset/ro@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ro.imageset/ro@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ro.imageset/ro@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ro.imageset/ro@3x.png b/Passepartout/App/iOS/Flags.xcassets/ro.imageset/ro@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ro.imageset/ro@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ro.imageset/ro@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/rs.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/rs.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/rs.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/rs.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/rs.imageset/rs@2x.png b/Passepartout/App/iOS/Flags.xcassets/rs.imageset/rs@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/rs.imageset/rs@2x.png rename to Passepartout/App/iOS/Flags.xcassets/rs.imageset/rs@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/rs.imageset/rs@3x.png b/Passepartout/App/iOS/Flags.xcassets/rs.imageset/rs@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/rs.imageset/rs@3x.png rename to Passepartout/App/iOS/Flags.xcassets/rs.imageset/rs@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ru.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ru.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ru.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ru.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ru.imageset/ru@2x.png b/Passepartout/App/iOS/Flags.xcassets/ru.imageset/ru@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ru.imageset/ru@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ru.imageset/ru@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ru.imageset/ru@3x.png b/Passepartout/App/iOS/Flags.xcassets/ru.imageset/ru@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ru.imageset/ru@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ru.imageset/ru@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/rw.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/rw.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/rw.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/rw.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/rw.imageset/rw@2x.png b/Passepartout/App/iOS/Flags.xcassets/rw.imageset/rw@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/rw.imageset/rw@2x.png rename to Passepartout/App/iOS/Flags.xcassets/rw.imageset/rw@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/rw.imageset/rw@3x.png b/Passepartout/App/iOS/Flags.xcassets/rw.imageset/rw@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/rw.imageset/rw@3x.png rename to Passepartout/App/iOS/Flags.xcassets/rw.imageset/rw@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sa.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sa.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sa.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sa.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sa.imageset/sa@2x.png b/Passepartout/App/iOS/Flags.xcassets/sa.imageset/sa@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sa.imageset/sa@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sa.imageset/sa@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sa.imageset/sa@3x.png b/Passepartout/App/iOS/Flags.xcassets/sa.imageset/sa@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sa.imageset/sa@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sa.imageset/sa@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sb.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sb.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sb.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sb.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sb.imageset/sb@2x.png b/Passepartout/App/iOS/Flags.xcassets/sb.imageset/sb@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sb.imageset/sb@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sb.imageset/sb@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sb.imageset/sb@3x.png b/Passepartout/App/iOS/Flags.xcassets/sb.imageset/sb@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sb.imageset/sb@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sb.imageset/sb@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sc.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sc.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sc.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sc.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sc.imageset/sc@2x.png b/Passepartout/App/iOS/Flags.xcassets/sc.imageset/sc@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sc.imageset/sc@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sc.imageset/sc@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sc.imageset/sc@3x.png b/Passepartout/App/iOS/Flags.xcassets/sc.imageset/sc@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sc.imageset/sc@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sc.imageset/sc@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sd.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sd.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sd.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sd.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sd.imageset/sd@2x.png b/Passepartout/App/iOS/Flags.xcassets/sd.imageset/sd@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sd.imageset/sd@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sd.imageset/sd@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sd.imageset/sd@3x.png b/Passepartout/App/iOS/Flags.xcassets/sd.imageset/sd@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sd.imageset/sd@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sd.imageset/sd@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/se.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/se.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/se.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/se.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/se.imageset/se@2x.png b/Passepartout/App/iOS/Flags.xcassets/se.imageset/se@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/se.imageset/se@2x.png rename to Passepartout/App/iOS/Flags.xcassets/se.imageset/se@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/se.imageset/se@3x.png b/Passepartout/App/iOS/Flags.xcassets/se.imageset/se@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/se.imageset/se@3x.png rename to Passepartout/App/iOS/Flags.xcassets/se.imageset/se@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sg.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sg.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sg.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sg.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sg.imageset/sg@2x.png b/Passepartout/App/iOS/Flags.xcassets/sg.imageset/sg@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sg.imageset/sg@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sg.imageset/sg@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sg.imageset/sg@3x.png b/Passepartout/App/iOS/Flags.xcassets/sg.imageset/sg@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sg.imageset/sg@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sg.imageset/sg@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sh.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sh.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sh.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sh.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sh.imageset/sh@2x.png b/Passepartout/App/iOS/Flags.xcassets/sh.imageset/sh@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sh.imageset/sh@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sh.imageset/sh@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sh.imageset/sh@3x.png b/Passepartout/App/iOS/Flags.xcassets/sh.imageset/sh@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sh.imageset/sh@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sh.imageset/sh@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/si.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/si.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/si.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/si.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/si.imageset/si@2x.png b/Passepartout/App/iOS/Flags.xcassets/si.imageset/si@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/si.imageset/si@2x.png rename to Passepartout/App/iOS/Flags.xcassets/si.imageset/si@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/si.imageset/si@3x.png b/Passepartout/App/iOS/Flags.xcassets/si.imageset/si@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/si.imageset/si@3x.png rename to Passepartout/App/iOS/Flags.xcassets/si.imageset/si@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sj.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sj.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sj.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sj.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sj.imageset/sj@2x.png b/Passepartout/App/iOS/Flags.xcassets/sj.imageset/sj@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sj.imageset/sj@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sj.imageset/sj@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sj.imageset/sj@3x.png b/Passepartout/App/iOS/Flags.xcassets/sj.imageset/sj@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sj.imageset/sj@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sj.imageset/sj@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sk.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sk.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sk.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sk.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sk.imageset/sk@2x.png b/Passepartout/App/iOS/Flags.xcassets/sk.imageset/sk@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sk.imageset/sk@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sk.imageset/sk@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sk.imageset/sk@3x.png b/Passepartout/App/iOS/Flags.xcassets/sk.imageset/sk@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sk.imageset/sk@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sk.imageset/sk@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sl.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sl.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sl.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sl.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sl.imageset/sl@2x.png b/Passepartout/App/iOS/Flags.xcassets/sl.imageset/sl@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sl.imageset/sl@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sl.imageset/sl@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sl.imageset/sl@3x.png b/Passepartout/App/iOS/Flags.xcassets/sl.imageset/sl@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sl.imageset/sl@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sl.imageset/sl@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sm.imageset/sm@2x.png b/Passepartout/App/iOS/Flags.xcassets/sm.imageset/sm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sm.imageset/sm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sm.imageset/sm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sm.imageset/sm@3x.png b/Passepartout/App/iOS/Flags.xcassets/sm.imageset/sm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sm.imageset/sm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sm.imageset/sm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sn.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sn.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sn.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sn.imageset/sn@2x.png b/Passepartout/App/iOS/Flags.xcassets/sn.imageset/sn@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sn.imageset/sn@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sn.imageset/sn@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sn.imageset/sn@3x.png b/Passepartout/App/iOS/Flags.xcassets/sn.imageset/sn@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sn.imageset/sn@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sn.imageset/sn@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/so.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/so.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/so.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/so.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/so.imageset/so@2x.png b/Passepartout/App/iOS/Flags.xcassets/so.imageset/so@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/so.imageset/so@2x.png rename to Passepartout/App/iOS/Flags.xcassets/so.imageset/so@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/so.imageset/so@3x.png b/Passepartout/App/iOS/Flags.xcassets/so.imageset/so@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/so.imageset/so@3x.png rename to Passepartout/App/iOS/Flags.xcassets/so.imageset/so@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sr.imageset/sr@2x.png b/Passepartout/App/iOS/Flags.xcassets/sr.imageset/sr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sr.imageset/sr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sr.imageset/sr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sr.imageset/sr@3x.png b/Passepartout/App/iOS/Flags.xcassets/sr.imageset/sr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sr.imageset/sr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sr.imageset/sr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ss.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ss.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ss.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ss.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ss.imageset/ss@2x.png b/Passepartout/App/iOS/Flags.xcassets/ss.imageset/ss@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ss.imageset/ss@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ss.imageset/ss@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ss.imageset/ss@3x.png b/Passepartout/App/iOS/Flags.xcassets/ss.imageset/ss@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ss.imageset/ss@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ss.imageset/ss@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/st.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/st.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/st.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/st.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/st.imageset/st@2x.png b/Passepartout/App/iOS/Flags.xcassets/st.imageset/st@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/st.imageset/st@2x.png rename to Passepartout/App/iOS/Flags.xcassets/st.imageset/st@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/st.imageset/st@3x.png b/Passepartout/App/iOS/Flags.xcassets/st.imageset/st@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/st.imageset/st@3x.png rename to Passepartout/App/iOS/Flags.xcassets/st.imageset/st@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sv.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sv.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sv.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sv.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sv.imageset/sv@2x.png b/Passepartout/App/iOS/Flags.xcassets/sv.imageset/sv@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sv.imageset/sv@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sv.imageset/sv@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sv.imageset/sv@3x.png b/Passepartout/App/iOS/Flags.xcassets/sv.imageset/sv@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sv.imageset/sv@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sv.imageset/sv@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sx.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sx.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sx.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sx.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sx.imageset/sx@2x.png b/Passepartout/App/iOS/Flags.xcassets/sx.imageset/sx@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sx.imageset/sx@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sx.imageset/sx@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sx.imageset/sx@3x.png b/Passepartout/App/iOS/Flags.xcassets/sx.imageset/sx@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sx.imageset/sx@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sx.imageset/sx@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sy.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sy.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sy.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sy.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sy.imageset/sy@2x.png b/Passepartout/App/iOS/Flags.xcassets/sy.imageset/sy@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sy.imageset/sy@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sy.imageset/sy@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sy.imageset/sy@3x.png b/Passepartout/App/iOS/Flags.xcassets/sy.imageset/sy@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sy.imageset/sy@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sy.imageset/sy@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/sz.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/sz.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sz.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/sz.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/sz.imageset/sz@2x.png b/Passepartout/App/iOS/Flags.xcassets/sz.imageset/sz@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sz.imageset/sz@2x.png rename to Passepartout/App/iOS/Flags.xcassets/sz.imageset/sz@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/sz.imageset/sz@3x.png b/Passepartout/App/iOS/Flags.xcassets/sz.imageset/sz@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/sz.imageset/sz@3x.png rename to Passepartout/App/iOS/Flags.xcassets/sz.imageset/sz@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tc.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tc.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tc.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tc.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tc.imageset/tc@2x.png b/Passepartout/App/iOS/Flags.xcassets/tc.imageset/tc@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tc.imageset/tc@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tc.imageset/tc@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tc.imageset/tc@3x.png b/Passepartout/App/iOS/Flags.xcassets/tc.imageset/tc@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tc.imageset/tc@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tc.imageset/tc@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/td.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/td.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/td.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/td.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/td.imageset/td@2x.png b/Passepartout/App/iOS/Flags.xcassets/td.imageset/td@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/td.imageset/td@2x.png rename to Passepartout/App/iOS/Flags.xcassets/td.imageset/td@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/td.imageset/td@3x.png b/Passepartout/App/iOS/Flags.xcassets/td.imageset/td@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/td.imageset/td@3x.png rename to Passepartout/App/iOS/Flags.xcassets/td.imageset/td@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tf.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tf.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tf.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tf.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tf.imageset/tf@2x.png b/Passepartout/App/iOS/Flags.xcassets/tf.imageset/tf@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tf.imageset/tf@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tf.imageset/tf@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tf.imageset/tf@3x.png b/Passepartout/App/iOS/Flags.xcassets/tf.imageset/tf@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tf.imageset/tf@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tf.imageset/tf@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tg.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tg.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tg.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tg.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tg.imageset/tg@2x.png b/Passepartout/App/iOS/Flags.xcassets/tg.imageset/tg@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tg.imageset/tg@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tg.imageset/tg@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tg.imageset/tg@3x.png b/Passepartout/App/iOS/Flags.xcassets/tg.imageset/tg@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tg.imageset/tg@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tg.imageset/tg@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/th.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/th.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/th.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/th.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/th.imageset/th@2x.png b/Passepartout/App/iOS/Flags.xcassets/th.imageset/th@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/th.imageset/th@2x.png rename to Passepartout/App/iOS/Flags.xcassets/th.imageset/th@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/th.imageset/th@3x.png b/Passepartout/App/iOS/Flags.xcassets/th.imageset/th@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/th.imageset/th@3x.png rename to Passepartout/App/iOS/Flags.xcassets/th.imageset/th@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tj.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tj.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tj.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tj.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tj.imageset/tj@2x.png b/Passepartout/App/iOS/Flags.xcassets/tj.imageset/tj@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tj.imageset/tj@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tj.imageset/tj@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tj.imageset/tj@3x.png b/Passepartout/App/iOS/Flags.xcassets/tj.imageset/tj@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tj.imageset/tj@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tj.imageset/tj@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tk.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tk.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tk.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tk.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tk.imageset/tk@2x.png b/Passepartout/App/iOS/Flags.xcassets/tk.imageset/tk@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tk.imageset/tk@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tk.imageset/tk@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tk.imageset/tk@3x.png b/Passepartout/App/iOS/Flags.xcassets/tk.imageset/tk@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tk.imageset/tk@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tk.imageset/tk@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tl.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tl.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tl.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tl.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tl.imageset/tl@2x.png b/Passepartout/App/iOS/Flags.xcassets/tl.imageset/tl@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tl.imageset/tl@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tl.imageset/tl@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tl.imageset/tl@3x.png b/Passepartout/App/iOS/Flags.xcassets/tl.imageset/tl@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tl.imageset/tl@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tl.imageset/tl@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tm.imageset/tm@2x.png b/Passepartout/App/iOS/Flags.xcassets/tm.imageset/tm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tm.imageset/tm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tm.imageset/tm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tm.imageset/tm@3x.png b/Passepartout/App/iOS/Flags.xcassets/tm.imageset/tm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tm.imageset/tm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tm.imageset/tm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tn.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tn.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tn.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tn.imageset/tn@2x.png b/Passepartout/App/iOS/Flags.xcassets/tn.imageset/tn@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tn.imageset/tn@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tn.imageset/tn@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tn.imageset/tn@3x.png b/Passepartout/App/iOS/Flags.xcassets/tn.imageset/tn@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tn.imageset/tn@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tn.imageset/tn@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/to.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/to.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/to.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/to.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/to.imageset/to@2x.png b/Passepartout/App/iOS/Flags.xcassets/to.imageset/to@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/to.imageset/to@2x.png rename to Passepartout/App/iOS/Flags.xcassets/to.imageset/to@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/to.imageset/to@3x.png b/Passepartout/App/iOS/Flags.xcassets/to.imageset/to@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/to.imageset/to@3x.png rename to Passepartout/App/iOS/Flags.xcassets/to.imageset/to@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tr.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tr.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tr.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tr.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tr.imageset/tr@2x.png b/Passepartout/App/iOS/Flags.xcassets/tr.imageset/tr@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tr.imageset/tr@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tr.imageset/tr@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tr.imageset/tr@3x.png b/Passepartout/App/iOS/Flags.xcassets/tr.imageset/tr@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tr.imageset/tr@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tr.imageset/tr@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tt.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tt.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tt.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tt.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tt.imageset/tt@2x.png b/Passepartout/App/iOS/Flags.xcassets/tt.imageset/tt@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tt.imageset/tt@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tt.imageset/tt@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tt.imageset/tt@3x.png b/Passepartout/App/iOS/Flags.xcassets/tt.imageset/tt@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tt.imageset/tt@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tt.imageset/tt@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tv.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tv.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tv.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tv.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tv.imageset/tv@2x.png b/Passepartout/App/iOS/Flags.xcassets/tv.imageset/tv@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tv.imageset/tv@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tv.imageset/tv@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tv.imageset/tv@3x.png b/Passepartout/App/iOS/Flags.xcassets/tv.imageset/tv@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tv.imageset/tv@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tv.imageset/tv@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tw.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tw.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tw.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tw.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tw.imageset/tw@2x.png b/Passepartout/App/iOS/Flags.xcassets/tw.imageset/tw@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tw.imageset/tw@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tw.imageset/tw@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tw.imageset/tw@3x.png b/Passepartout/App/iOS/Flags.xcassets/tw.imageset/tw@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tw.imageset/tw@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tw.imageset/tw@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/tz.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/tz.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tz.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/tz.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/tz.imageset/tz@2x.png b/Passepartout/App/iOS/Flags.xcassets/tz.imageset/tz@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tz.imageset/tz@2x.png rename to Passepartout/App/iOS/Flags.xcassets/tz.imageset/tz@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/tz.imageset/tz@3x.png b/Passepartout/App/iOS/Flags.xcassets/tz.imageset/tz@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/tz.imageset/tz@3x.png rename to Passepartout/App/iOS/Flags.xcassets/tz.imageset/tz@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ua.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ua.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ua.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ua.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ua.imageset/ua@2x.png b/Passepartout/App/iOS/Flags.xcassets/ua.imageset/ua@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ua.imageset/ua@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ua.imageset/ua@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ua.imageset/ua@3x.png b/Passepartout/App/iOS/Flags.xcassets/ua.imageset/ua@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ua.imageset/ua@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ua.imageset/ua@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ug.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ug.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ug.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ug.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ug.imageset/ug@2x.png b/Passepartout/App/iOS/Flags.xcassets/ug.imageset/ug@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ug.imageset/ug@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ug.imageset/ug@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ug.imageset/ug@3x.png b/Passepartout/App/iOS/Flags.xcassets/ug.imageset/ug@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ug.imageset/ug@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ug.imageset/ug@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/um.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/um.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/um.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/um.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/um.imageset/um@2x.png b/Passepartout/App/iOS/Flags.xcassets/um.imageset/um@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/um.imageset/um@2x.png rename to Passepartout/App/iOS/Flags.xcassets/um.imageset/um@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/um.imageset/um@3x.png b/Passepartout/App/iOS/Flags.xcassets/um.imageset/um@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/um.imageset/um@3x.png rename to Passepartout/App/iOS/Flags.xcassets/um.imageset/um@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/un.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/un.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/un.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/un.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/un.imageset/un@2x.png b/Passepartout/App/iOS/Flags.xcassets/un.imageset/un@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/un.imageset/un@2x.png rename to Passepartout/App/iOS/Flags.xcassets/un.imageset/un@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/un.imageset/un@3x.png b/Passepartout/App/iOS/Flags.xcassets/un.imageset/un@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/un.imageset/un@3x.png rename to Passepartout/App/iOS/Flags.xcassets/un.imageset/un@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/us.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/us.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/us.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/us.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/us.imageset/us@2x.png b/Passepartout/App/iOS/Flags.xcassets/us.imageset/us@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/us.imageset/us@2x.png rename to Passepartout/App/iOS/Flags.xcassets/us.imageset/us@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/us.imageset/us@3x.png b/Passepartout/App/iOS/Flags.xcassets/us.imageset/us@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/us.imageset/us@3x.png rename to Passepartout/App/iOS/Flags.xcassets/us.imageset/us@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/uy.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/uy.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/uy.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/uy.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/uy.imageset/uy@2x.png b/Passepartout/App/iOS/Flags.xcassets/uy.imageset/uy@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/uy.imageset/uy@2x.png rename to Passepartout/App/iOS/Flags.xcassets/uy.imageset/uy@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/uy.imageset/uy@3x.png b/Passepartout/App/iOS/Flags.xcassets/uy.imageset/uy@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/uy.imageset/uy@3x.png rename to Passepartout/App/iOS/Flags.xcassets/uy.imageset/uy@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/uz.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/uz.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/uz.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/uz.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/uz.imageset/uz@2x.png b/Passepartout/App/iOS/Flags.xcassets/uz.imageset/uz@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/uz.imageset/uz@2x.png rename to Passepartout/App/iOS/Flags.xcassets/uz.imageset/uz@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/uz.imageset/uz@3x.png b/Passepartout/App/iOS/Flags.xcassets/uz.imageset/uz@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/uz.imageset/uz@3x.png rename to Passepartout/App/iOS/Flags.xcassets/uz.imageset/uz@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/va.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/va.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/va.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/va.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/va.imageset/va@2x.png b/Passepartout/App/iOS/Flags.xcassets/va.imageset/va@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/va.imageset/va@2x.png rename to Passepartout/App/iOS/Flags.xcassets/va.imageset/va@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/va.imageset/va@3x.png b/Passepartout/App/iOS/Flags.xcassets/va.imageset/va@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/va.imageset/va@3x.png rename to Passepartout/App/iOS/Flags.xcassets/va.imageset/va@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/vc.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/vc.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vc.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/vc.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/vc.imageset/vc@2x.png b/Passepartout/App/iOS/Flags.xcassets/vc.imageset/vc@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vc.imageset/vc@2x.png rename to Passepartout/App/iOS/Flags.xcassets/vc.imageset/vc@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/vc.imageset/vc@3x.png b/Passepartout/App/iOS/Flags.xcassets/vc.imageset/vc@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vc.imageset/vc@3x.png rename to Passepartout/App/iOS/Flags.xcassets/vc.imageset/vc@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ve.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ve.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ve.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ve.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ve.imageset/ve@2x.png b/Passepartout/App/iOS/Flags.xcassets/ve.imageset/ve@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ve.imageset/ve@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ve.imageset/ve@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ve.imageset/ve@3x.png b/Passepartout/App/iOS/Flags.xcassets/ve.imageset/ve@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ve.imageset/ve@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ve.imageset/ve@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/vg.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/vg.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vg.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/vg.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/vg.imageset/vg@2x.png b/Passepartout/App/iOS/Flags.xcassets/vg.imageset/vg@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vg.imageset/vg@2x.png rename to Passepartout/App/iOS/Flags.xcassets/vg.imageset/vg@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/vg.imageset/vg@3x.png b/Passepartout/App/iOS/Flags.xcassets/vg.imageset/vg@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vg.imageset/vg@3x.png rename to Passepartout/App/iOS/Flags.xcassets/vg.imageset/vg@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/vi.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/vi.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vi.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/vi.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/vi.imageset/vi@2x.png b/Passepartout/App/iOS/Flags.xcassets/vi.imageset/vi@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vi.imageset/vi@2x.png rename to Passepartout/App/iOS/Flags.xcassets/vi.imageset/vi@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/vi.imageset/vi@3x.png b/Passepartout/App/iOS/Flags.xcassets/vi.imageset/vi@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vi.imageset/vi@3x.png rename to Passepartout/App/iOS/Flags.xcassets/vi.imageset/vi@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/vn.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/vn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vn.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/vn.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/vn.imageset/vn@2x.png b/Passepartout/App/iOS/Flags.xcassets/vn.imageset/vn@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vn.imageset/vn@2x.png rename to Passepartout/App/iOS/Flags.xcassets/vn.imageset/vn@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/vn.imageset/vn@3x.png b/Passepartout/App/iOS/Flags.xcassets/vn.imageset/vn@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vn.imageset/vn@3x.png rename to Passepartout/App/iOS/Flags.xcassets/vn.imageset/vn@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/vu.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/vu.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vu.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/vu.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/vu.imageset/vu@2x.png b/Passepartout/App/iOS/Flags.xcassets/vu.imageset/vu@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vu.imageset/vu@2x.png rename to Passepartout/App/iOS/Flags.xcassets/vu.imageset/vu@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/vu.imageset/vu@3x.png b/Passepartout/App/iOS/Flags.xcassets/vu.imageset/vu@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/vu.imageset/vu@3x.png rename to Passepartout/App/iOS/Flags.xcassets/vu.imageset/vu@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/wf.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/wf.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/wf.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/wf.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/wf.imageset/wf@2x.png b/Passepartout/App/iOS/Flags.xcassets/wf.imageset/wf@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/wf.imageset/wf@2x.png rename to Passepartout/App/iOS/Flags.xcassets/wf.imageset/wf@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/wf.imageset/wf@3x.png b/Passepartout/App/iOS/Flags.xcassets/wf.imageset/wf@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/wf.imageset/wf@3x.png rename to Passepartout/App/iOS/Flags.xcassets/wf.imageset/wf@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ws.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ws.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ws.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ws.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ws.imageset/ws@2x.png b/Passepartout/App/iOS/Flags.xcassets/ws.imageset/ws@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ws.imageset/ws@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ws.imageset/ws@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ws.imageset/ws@3x.png b/Passepartout/App/iOS/Flags.xcassets/ws.imageset/ws@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ws.imageset/ws@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ws.imageset/ws@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/xk.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/xk.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/xk.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/xk.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/xk.imageset/xk@2x.png b/Passepartout/App/iOS/Flags.xcassets/xk.imageset/xk@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/xk.imageset/xk@2x.png rename to Passepartout/App/iOS/Flags.xcassets/xk.imageset/xk@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/xk.imageset/xk@3x.png b/Passepartout/App/iOS/Flags.xcassets/xk.imageset/xk@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/xk.imageset/xk@3x.png rename to Passepartout/App/iOS/Flags.xcassets/xk.imageset/xk@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/ye.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/ye.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ye.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/ye.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/ye.imageset/ye@2x.png b/Passepartout/App/iOS/Flags.xcassets/ye.imageset/ye@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ye.imageset/ye@2x.png rename to Passepartout/App/iOS/Flags.xcassets/ye.imageset/ye@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/ye.imageset/ye@3x.png b/Passepartout/App/iOS/Flags.xcassets/ye.imageset/ye@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/ye.imageset/ye@3x.png rename to Passepartout/App/iOS/Flags.xcassets/ye.imageset/ye@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/yt.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/yt.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/yt.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/yt.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/yt.imageset/yt@2x.png b/Passepartout/App/iOS/Flags.xcassets/yt.imageset/yt@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/yt.imageset/yt@2x.png rename to Passepartout/App/iOS/Flags.xcassets/yt.imageset/yt@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/yt.imageset/yt@3x.png b/Passepartout/App/iOS/Flags.xcassets/yt.imageset/yt@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/yt.imageset/yt@3x.png rename to Passepartout/App/iOS/Flags.xcassets/yt.imageset/yt@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/za.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/za.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/za.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/za.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/za.imageset/za@2x.png b/Passepartout/App/iOS/Flags.xcassets/za.imageset/za@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/za.imageset/za@2x.png rename to Passepartout/App/iOS/Flags.xcassets/za.imageset/za@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/za.imageset/za@3x.png b/Passepartout/App/iOS/Flags.xcassets/za.imageset/za@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/za.imageset/za@3x.png rename to Passepartout/App/iOS/Flags.xcassets/za.imageset/za@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/zm.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/zm.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/zm.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/zm.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/zm.imageset/zm@2x.png b/Passepartout/App/iOS/Flags.xcassets/zm.imageset/zm@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/zm.imageset/zm@2x.png rename to Passepartout/App/iOS/Flags.xcassets/zm.imageset/zm@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/zm.imageset/zm@3x.png b/Passepartout/App/iOS/Flags.xcassets/zm.imageset/zm@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/zm.imageset/zm@3x.png rename to Passepartout/App/iOS/Flags.xcassets/zm.imageset/zm@3x.png diff --git a/Passepartout-iOS/Flags.xcassets/zw.imageset/Contents.json b/Passepartout/App/iOS/Flags.xcassets/zw.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Flags.xcassets/zw.imageset/Contents.json rename to Passepartout/App/iOS/Flags.xcassets/zw.imageset/Contents.json diff --git a/Passepartout-iOS/Flags.xcassets/zw.imageset/zw@2x.png b/Passepartout/App/iOS/Flags.xcassets/zw.imageset/zw@2x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/zw.imageset/zw@2x.png rename to Passepartout/App/iOS/Flags.xcassets/zw.imageset/zw@2x.png diff --git a/Passepartout-iOS/Flags.xcassets/zw.imageset/zw@3x.png b/Passepartout/App/iOS/Flags.xcassets/zw.imageset/zw@3x.png similarity index 100% rename from Passepartout-iOS/Flags.xcassets/zw.imageset/zw@3x.png rename to Passepartout/App/iOS/Flags.xcassets/zw.imageset/zw@3x.png diff --git a/Passepartout-iOS/Global/AppConstants+App.swift b/Passepartout/App/iOS/Global/AppConstants+App.swift similarity index 100% rename from Passepartout-iOS/Global/AppConstants+App.swift rename to Passepartout/App/iOS/Global/AppConstants+App.swift diff --git a/Passepartout-iOS/Global/HostImporter.swift b/Passepartout/App/iOS/Global/HostImporter.swift similarity index 100% rename from Passepartout-iOS/Global/HostImporter.swift rename to Passepartout/App/iOS/Global/HostImporter.swift diff --git a/Passepartout-iOS/Global/IssueReporter.swift b/Passepartout/App/iOS/Global/IssueReporter.swift similarity index 100% rename from Passepartout-iOS/Global/IssueReporter.swift rename to Passepartout/App/iOS/Global/IssueReporter.swift diff --git a/Passepartout-iOS/Global/Macros.swift b/Passepartout/App/iOS/Global/Macros.swift similarity index 100% rename from Passepartout-iOS/Global/Macros.swift rename to Passepartout/App/iOS/Global/Macros.swift diff --git a/Passepartout-iOS/Global/ProductManager+App.swift b/Passepartout/App/iOS/Global/ProductManager+App.swift similarity index 100% rename from Passepartout-iOS/Global/ProductManager+App.swift rename to Passepartout/App/iOS/Global/ProductManager+App.swift diff --git a/Passepartout-iOS/Global/SwiftGen+Assets.swift b/Passepartout/App/iOS/Global/SwiftGen+Assets.swift similarity index 100% rename from Passepartout-iOS/Global/SwiftGen+Assets.swift rename to Passepartout/App/iOS/Global/SwiftGen+Assets.swift diff --git a/Passepartout-iOS/Global/SwiftGen+Scenes.swift b/Passepartout/App/iOS/Global/SwiftGen+Scenes.swift similarity index 100% rename from Passepartout-iOS/Global/SwiftGen+Scenes.swift rename to Passepartout/App/iOS/Global/SwiftGen+Scenes.swift diff --git a/Passepartout-iOS/Global/SwiftGen+Segues.swift b/Passepartout/App/iOS/Global/SwiftGen+Segues.swift similarity index 100% rename from Passepartout-iOS/Global/SwiftGen+Segues.swift rename to Passepartout/App/iOS/Global/SwiftGen+Segues.swift diff --git a/Passepartout-iOS/Global/SwiftGen+Strings.swift b/Passepartout/App/iOS/Global/SwiftGen+Strings.swift similarity index 100% rename from Passepartout-iOS/Global/SwiftGen+Strings.swift rename to Passepartout/App/iOS/Global/SwiftGen+Strings.swift diff --git a/Passepartout-iOS/Global/Theme+Cells.swift b/Passepartout/App/iOS/Global/Theme+Cells.swift similarity index 100% rename from Passepartout-iOS/Global/Theme+Cells.swift rename to Passepartout/App/iOS/Global/Theme+Cells.swift diff --git a/Passepartout-iOS/Global/Theme+Titles.swift b/Passepartout/App/iOS/Global/Theme+Titles.swift similarity index 100% rename from Passepartout-iOS/Global/Theme+Titles.swift rename to Passepartout/App/iOS/Global/Theme+Titles.swift diff --git a/Passepartout-iOS/Global/Theme.swift b/Passepartout/App/iOS/Global/Theme.swift similarity index 100% rename from Passepartout-iOS/Global/Theme.swift rename to Passepartout/App/iOS/Global/Theme.swift diff --git a/Passepartout-iOS/Global/UITextView+Search.swift b/Passepartout/App/iOS/Global/UITextView+Search.swift similarity index 100% rename from Passepartout-iOS/Global/UITextView+Search.swift rename to Passepartout/App/iOS/Global/UITextView+Search.swift diff --git a/Passepartout-iOS/Info.plist b/Passepartout/App/iOS/Info.plist similarity index 93% rename from Passepartout-iOS/Info.plist rename to Passepartout/App/iOS/Info.plist index 2133a4b7..77331810 100644 --- a/Passepartout-iOS/Info.plist +++ b/Passepartout/App/iOS/Info.plist @@ -33,15 +33,17 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.13.1 + $(CFG_APP_VERSION) CFBundleVersion - 1 + $(CURRENT_PROJECT_VERSION) ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS LSSupportsOpeningDocumentsInPlace + NSHumanReadableCopyright + $(CFG_COPYRIGHT) NSLocationWhenInUseUsageDescription dummy NSUserActivityTypes @@ -90,7 +92,7 @@ com.algoritmico.Passepartout.config appstore_id - $(CFG_APPSTORE_ID) + $(CFG_APPSTORE_IOS_ID) group_id group.$(CFG_GROUP_ID) diff --git a/Passepartout-iOS/Providers.xcassets/Contents.json b/Passepartout/App/iOS/Providers.xcassets/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/csv.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/csv.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/csv.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/csv.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/csv.imageset/csv@2x.png b/Passepartout/App/iOS/Providers.xcassets/csv.imageset/csv@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/csv.imageset/csv@2x.png rename to Passepartout/App/iOS/Providers.xcassets/csv.imageset/csv@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/csv.imageset/csv@3x.png b/Passepartout/App/iOS/Providers.xcassets/csv.imageset/csv@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/csv.imageset/csv@3x.png rename to Passepartout/App/iOS/Providers.xcassets/csv.imageset/csv@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/hideme.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/hideme.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/hideme.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/hideme.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/hideme.imageset/hideme@2x.png b/Passepartout/App/iOS/Providers.xcassets/hideme.imageset/hideme@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/hideme.imageset/hideme@2x.png rename to Passepartout/App/iOS/Providers.xcassets/hideme.imageset/hideme@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/hideme.imageset/hideme@3x.png b/Passepartout/App/iOS/Providers.xcassets/hideme.imageset/hideme@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/hideme.imageset/hideme@3x.png rename to Passepartout/App/iOS/Providers.xcassets/hideme.imageset/hideme@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/mullvad.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/mullvad.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/mullvad.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/mullvad.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/mullvad.imageset/mullvad@2x.png b/Passepartout/App/iOS/Providers.xcassets/mullvad.imageset/mullvad@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/mullvad.imageset/mullvad@2x.png rename to Passepartout/App/iOS/Providers.xcassets/mullvad.imageset/mullvad@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/mullvad.imageset/mullvad@3x.png b/Passepartout/App/iOS/Providers.xcassets/mullvad.imageset/mullvad@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/mullvad.imageset/mullvad@3x.png rename to Passepartout/App/iOS/Providers.xcassets/mullvad.imageset/mullvad@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/nordvpn.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/nordvpn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/nordvpn.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/nordvpn.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/nordvpn.imageset/nordvpn-dark@2x.png b/Passepartout/App/iOS/Providers.xcassets/nordvpn.imageset/nordvpn-dark@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/nordvpn.imageset/nordvpn-dark@2x.png rename to Passepartout/App/iOS/Providers.xcassets/nordvpn.imageset/nordvpn-dark@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/nordvpn.imageset/nordvpn-dark@3x.png b/Passepartout/App/iOS/Providers.xcassets/nordvpn.imageset/nordvpn-dark@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/nordvpn.imageset/nordvpn-dark@3x.png rename to Passepartout/App/iOS/Providers.xcassets/nordvpn.imageset/nordvpn-dark@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/nordvpn.imageset/nordvpn@2x.png b/Passepartout/App/iOS/Providers.xcassets/nordvpn.imageset/nordvpn@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/nordvpn.imageset/nordvpn@2x.png rename to Passepartout/App/iOS/Providers.xcassets/nordvpn.imageset/nordvpn@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/nordvpn.imageset/nordvpn@3x.png b/Passepartout/App/iOS/Providers.xcassets/nordvpn.imageset/nordvpn@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/nordvpn.imageset/nordvpn@3x.png rename to Passepartout/App/iOS/Providers.xcassets/nordvpn.imageset/nordvpn@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/pia.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/pia.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/pia.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/pia.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/pia.imageset/pia@2x.png b/Passepartout/App/iOS/Providers.xcassets/pia.imageset/pia@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/pia.imageset/pia@2x.png rename to Passepartout/App/iOS/Providers.xcassets/pia.imageset/pia@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/pia.imageset/pia@3x.png b/Passepartout/App/iOS/Providers.xcassets/pia.imageset/pia@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/pia.imageset/pia@3x.png rename to Passepartout/App/iOS/Providers.xcassets/pia.imageset/pia@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/placeholder.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/placeholder.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/placeholder.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/placeholder.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/placeholder.imageset/placeholder@2x.png b/Passepartout/App/iOS/Providers.xcassets/placeholder.imageset/placeholder@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/placeholder.imageset/placeholder@2x.png rename to Passepartout/App/iOS/Providers.xcassets/placeholder.imageset/placeholder@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/placeholder.imageset/placeholder@3x.png b/Passepartout/App/iOS/Providers.xcassets/placeholder.imageset/placeholder@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/placeholder.imageset/placeholder@3x.png rename to Passepartout/App/iOS/Providers.xcassets/placeholder.imageset/placeholder@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/protonvpn.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/protonvpn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/protonvpn.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/protonvpn.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/protonvpn.imageset/protonvpn@2x.png b/Passepartout/App/iOS/Providers.xcassets/protonvpn.imageset/protonvpn@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/protonvpn.imageset/protonvpn@2x.png rename to Passepartout/App/iOS/Providers.xcassets/protonvpn.imageset/protonvpn@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/protonvpn.imageset/protonvpn@3x.png b/Passepartout/App/iOS/Providers.xcassets/protonvpn.imageset/protonvpn@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/protonvpn.imageset/protonvpn@3x.png rename to Passepartout/App/iOS/Providers.xcassets/protonvpn.imageset/protonvpn@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/torguard.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/torguard.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/torguard.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/torguard.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/torguard.imageset/torguard@2x.png b/Passepartout/App/iOS/Providers.xcassets/torguard.imageset/torguard@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/torguard.imageset/torguard@2x.png rename to Passepartout/App/iOS/Providers.xcassets/torguard.imageset/torguard@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/torguard.imageset/torguard@3x.png b/Passepartout/App/iOS/Providers.xcassets/torguard.imageset/torguard@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/torguard.imageset/torguard@3x.png rename to Passepartout/App/iOS/Providers.xcassets/torguard.imageset/torguard@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/tunnelbear.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/tunnelbear.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/tunnelbear.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/tunnelbear.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@2x.png b/Passepartout/App/iOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@2x.png rename to Passepartout/App/iOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@3x.png b/Passepartout/App/iOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@3x.png rename to Passepartout/App/iOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/vyprvpn.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/vyprvpn.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/vyprvpn.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/vyprvpn.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@2x.png b/Passepartout/App/iOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@2x.png rename to Passepartout/App/iOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@3x.png b/Passepartout/App/iOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@3x.png rename to Passepartout/App/iOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@3x.png diff --git a/Passepartout-iOS/Providers.xcassets/windscribe.imageset/Contents.json b/Passepartout/App/iOS/Providers.xcassets/windscribe.imageset/Contents.json similarity index 100% rename from Passepartout-iOS/Providers.xcassets/windscribe.imageset/Contents.json rename to Passepartout/App/iOS/Providers.xcassets/windscribe.imageset/Contents.json diff --git a/Passepartout-iOS/Providers.xcassets/windscribe.imageset/windscribe@2x.png b/Passepartout/App/iOS/Providers.xcassets/windscribe.imageset/windscribe@2x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/windscribe.imageset/windscribe@2x.png rename to Passepartout/App/iOS/Providers.xcassets/windscribe.imageset/windscribe@2x.png diff --git a/Passepartout-iOS/Providers.xcassets/windscribe.imageset/windscribe@3x.png b/Passepartout/App/iOS/Providers.xcassets/windscribe.imageset/windscribe@3x.png similarity index 100% rename from Passepartout-iOS/Providers.xcassets/windscribe.imageset/windscribe@3x.png rename to Passepartout/App/iOS/Providers.xcassets/windscribe.imageset/windscribe@3x.png diff --git a/Passepartout-iOS/Scenes/About/AboutViewController.swift b/Passepartout/App/iOS/Scenes/About/AboutViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/About/AboutViewController.swift rename to Passepartout/App/iOS/Scenes/About/AboutViewController.swift diff --git a/Passepartout-iOS/Scenes/AccountViewController.swift b/Passepartout/App/iOS/Scenes/AccountViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/AccountViewController.swift rename to Passepartout/App/iOS/Scenes/AccountViewController.swift diff --git a/Passepartout-iOS/Scenes/ConfigurationModificationDelegate.swift b/Passepartout/App/iOS/Scenes/ConfigurationModificationDelegate.swift similarity index 100% rename from Passepartout-iOS/Scenes/ConfigurationModificationDelegate.swift rename to Passepartout/App/iOS/Scenes/ConfigurationModificationDelegate.swift diff --git a/Passepartout-iOS/Scenes/ConfigurationViewController.swift b/Passepartout/App/iOS/Scenes/ConfigurationViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/ConfigurationViewController.swift rename to Passepartout/App/iOS/Scenes/ConfigurationViewController.swift diff --git a/Passepartout-iOS/Scenes/DebugLogViewController.swift b/Passepartout/App/iOS/Scenes/DebugLogViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/DebugLogViewController.swift rename to Passepartout/App/iOS/Scenes/DebugLogViewController.swift diff --git a/Passepartout-iOS/Scenes/EndpointViewController.swift b/Passepartout/App/iOS/Scenes/EndpointViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/EndpointViewController.swift rename to Passepartout/App/iOS/Scenes/EndpointViewController.swift diff --git a/Passepartout-iOS/Scenes/NetworkSettingsViewController.swift b/Passepartout/App/iOS/Scenes/NetworkSettingsViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/NetworkSettingsViewController.swift rename to Passepartout/App/iOS/Scenes/NetworkSettingsViewController.swift diff --git a/Passepartout-iOS/Scenes/Organizer/DonationViewController.swift b/Passepartout/App/iOS/Scenes/Organizer/DonationViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/Organizer/DonationViewController.swift rename to Passepartout/App/iOS/Scenes/Organizer/DonationViewController.swift diff --git a/Passepartout-iOS/Scenes/Organizer/ImportedHostsViewController.swift b/Passepartout/App/iOS/Scenes/Organizer/ImportedHostsViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/Organizer/ImportedHostsViewController.swift rename to Passepartout/App/iOS/Scenes/Organizer/ImportedHostsViewController.swift diff --git a/Passepartout-iOS/Scenes/Organizer/OrganizerViewController.swift b/Passepartout/App/iOS/Scenes/Organizer/OrganizerViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/Organizer/OrganizerViewController.swift rename to Passepartout/App/iOS/Scenes/Organizer/OrganizerViewController.swift diff --git a/Passepartout-iOS/Scenes/Organizer/WizardHostViewController.swift b/Passepartout/App/iOS/Scenes/Organizer/WizardHostViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/Organizer/WizardHostViewController.swift rename to Passepartout/App/iOS/Scenes/Organizer/WizardHostViewController.swift diff --git a/Passepartout-iOS/Scenes/Organizer/WizardProviderViewController.swift b/Passepartout/App/iOS/Scenes/Organizer/WizardProviderViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/Organizer/WizardProviderViewController.swift rename to Passepartout/App/iOS/Scenes/Organizer/WizardProviderViewController.swift diff --git a/Passepartout-iOS/Scenes/ProviderPoolViewController.swift b/Passepartout/App/iOS/Scenes/ProviderPoolViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/ProviderPoolViewController.swift rename to Passepartout/App/iOS/Scenes/ProviderPoolViewController.swift diff --git a/Passepartout-iOS/Scenes/ProviderPresetViewController.swift b/Passepartout/App/iOS/Scenes/ProviderPresetViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/ProviderPresetViewController.swift rename to Passepartout/App/iOS/Scenes/ProviderPresetViewController.swift diff --git a/Passepartout-iOS/Scenes/Purchase/PurchaseTableViewCell.swift b/Passepartout/App/iOS/Scenes/Purchase/PurchaseTableViewCell.swift similarity index 100% rename from Passepartout-iOS/Scenes/Purchase/PurchaseTableViewCell.swift rename to Passepartout/App/iOS/Scenes/Purchase/PurchaseTableViewCell.swift diff --git a/Passepartout-iOS/Scenes/Purchase/PurchaseViewController.swift b/Passepartout/App/iOS/Scenes/Purchase/PurchaseViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/Purchase/PurchaseViewController.swift rename to Passepartout/App/iOS/Scenes/Purchase/PurchaseViewController.swift diff --git a/Passepartout-iOS/Scenes/ServerNetworkViewController.swift b/Passepartout/App/iOS/Scenes/ServerNetworkViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/ServerNetworkViewController.swift rename to Passepartout/App/iOS/Scenes/ServerNetworkViewController.swift diff --git a/Passepartout-iOS/Scenes/ServiceViewController.swift b/Passepartout/App/iOS/Scenes/ServiceViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/ServiceViewController.swift rename to Passepartout/App/iOS/Scenes/ServiceViewController.swift diff --git a/Passepartout-iOS/Scenes/Shortcuts/ShortcutsAddViewController.swift b/Passepartout/App/iOS/Scenes/Shortcuts/ShortcutsAddViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/Shortcuts/ShortcutsAddViewController.swift rename to Passepartout/App/iOS/Scenes/Shortcuts/ShortcutsAddViewController.swift diff --git a/Passepartout-iOS/Scenes/Shortcuts/ShortcutsConnectToViewController.swift b/Passepartout/App/iOS/Scenes/Shortcuts/ShortcutsConnectToViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/Shortcuts/ShortcutsConnectToViewController.swift rename to Passepartout/App/iOS/Scenes/Shortcuts/ShortcutsConnectToViewController.swift diff --git a/Passepartout-iOS/Scenes/Shortcuts/ShortcutsViewController.swift b/Passepartout/App/iOS/Scenes/Shortcuts/ShortcutsViewController.swift similarity index 100% rename from Passepartout-iOS/Scenes/Shortcuts/ShortcutsViewController.swift rename to Passepartout/App/iOS/Scenes/Shortcuts/ShortcutsViewController.swift diff --git a/Passepartout-iOS/Settings.bundle/Root.plist b/Passepartout/App/iOS/Settings.bundle/Root.plist similarity index 100% rename from Passepartout-iOS/Settings.bundle/Root.plist rename to Passepartout/App/iOS/Settings.bundle/Root.plist diff --git a/Passepartout-iOS/Settings.bundle/en.lproj/Root.strings b/Passepartout/App/iOS/Settings.bundle/en.lproj/Root.strings similarity index 100% rename from Passepartout-iOS/Settings.bundle/en.lproj/Root.strings rename to Passepartout/App/iOS/Settings.bundle/en.lproj/Root.strings diff --git a/Passepartout-iOS/Global/de.lproj/App.strings b/Passepartout/App/iOS/de.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/de.lproj/App.strings rename to Passepartout/App/iOS/de.lproj/App.strings diff --git a/Passepartout-iOS/de.lproj/InfoPlist.strings b/Passepartout/App/iOS/de.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/de.lproj/InfoPlist.strings rename to Passepartout/App/iOS/de.lproj/InfoPlist.strings diff --git a/Passepartout-iOS/Global/el.lproj/App.strings b/Passepartout/App/iOS/el.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/el.lproj/App.strings rename to Passepartout/App/iOS/el.lproj/App.strings diff --git a/Passepartout-iOS/el.lproj/InfoPlist.strings b/Passepartout/App/iOS/el.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/el.lproj/InfoPlist.strings rename to Passepartout/App/iOS/el.lproj/InfoPlist.strings diff --git a/Passepartout-iOS/Global/en.lproj/App.strings b/Passepartout/App/iOS/en.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/en.lproj/App.strings rename to Passepartout/App/iOS/en.lproj/App.strings diff --git a/Passepartout-iOS/en.lproj/InfoPlist.strings b/Passepartout/App/iOS/en.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/en.lproj/InfoPlist.strings rename to Passepartout/App/iOS/en.lproj/InfoPlist.strings diff --git a/Passepartout-iOS/Global/es.lproj/App.strings b/Passepartout/App/iOS/es.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/es.lproj/App.strings rename to Passepartout/App/iOS/es.lproj/App.strings diff --git a/Passepartout-iOS/es.lproj/InfoPlist.strings b/Passepartout/App/iOS/es.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/es.lproj/InfoPlist.strings rename to Passepartout/App/iOS/es.lproj/InfoPlist.strings diff --git a/Passepartout-iOS/Global/fr.lproj/App.strings b/Passepartout/App/iOS/fr.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/fr.lproj/App.strings rename to Passepartout/App/iOS/fr.lproj/App.strings diff --git a/Passepartout-iOS/fr.lproj/InfoPlist.strings b/Passepartout/App/iOS/fr.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/fr.lproj/InfoPlist.strings rename to Passepartout/App/iOS/fr.lproj/InfoPlist.strings diff --git a/Passepartout-iOS/Global/it.lproj/App.strings b/Passepartout/App/iOS/it.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/it.lproj/App.strings rename to Passepartout/App/iOS/it.lproj/App.strings diff --git a/Passepartout-iOS/it.lproj/InfoPlist.strings b/Passepartout/App/iOS/it.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/it.lproj/InfoPlist.strings rename to Passepartout/App/iOS/it.lproj/InfoPlist.strings diff --git a/Passepartout-iOS/Global/nl.lproj/App.strings b/Passepartout/App/iOS/nl.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/nl.lproj/App.strings rename to Passepartout/App/iOS/nl.lproj/App.strings diff --git a/Passepartout-iOS/nl.lproj/InfoPlist.strings b/Passepartout/App/iOS/nl.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/nl.lproj/InfoPlist.strings rename to Passepartout/App/iOS/nl.lproj/InfoPlist.strings diff --git a/Passepartout-iOS/Global/pl.lproj/App.strings b/Passepartout/App/iOS/pl.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/pl.lproj/App.strings rename to Passepartout/App/iOS/pl.lproj/App.strings diff --git a/Passepartout-iOS/pl.lproj/InfoPlist.strings b/Passepartout/App/iOS/pl.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/pl.lproj/InfoPlist.strings rename to Passepartout/App/iOS/pl.lproj/InfoPlist.strings diff --git a/Passepartout-iOS/Global/pt.lproj/App.strings b/Passepartout/App/iOS/pt.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/pt.lproj/App.strings rename to Passepartout/App/iOS/pt.lproj/App.strings diff --git a/Passepartout-iOS/pt.lproj/InfoPlist.strings b/Passepartout/App/iOS/pt.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/pt.lproj/InfoPlist.strings rename to Passepartout/App/iOS/pt.lproj/InfoPlist.strings diff --git a/Passepartout-iOS/Global/ru.lproj/App.strings b/Passepartout/App/iOS/ru.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/ru.lproj/App.strings rename to Passepartout/App/iOS/ru.lproj/App.strings diff --git a/Passepartout-iOS/ru.lproj/InfoPlist.strings b/Passepartout/App/iOS/ru.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/ru.lproj/InfoPlist.strings rename to Passepartout/App/iOS/ru.lproj/InfoPlist.strings diff --git a/Passepartout-iOS/Global/sv.lproj/App.strings b/Passepartout/App/iOS/sv.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/sv.lproj/App.strings rename to Passepartout/App/iOS/sv.lproj/App.strings diff --git a/Passepartout-iOS/sv.lproj/InfoPlist.strings b/Passepartout/App/iOS/sv.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/sv.lproj/InfoPlist.strings rename to Passepartout/App/iOS/sv.lproj/InfoPlist.strings diff --git a/Passepartout/App/iOS/swiftgen.yml b/Passepartout/App/iOS/swiftgen.yml new file mode 100644 index 00000000..bdbfc73f --- /dev/null +++ b/Passepartout/App/iOS/swiftgen.yml @@ -0,0 +1,29 @@ +strings: + inputs: + - ../../Core/Resources/en.lproj/Core.strings + - en.lproj/App.strings + outputs: + - templateName: structured-swift4 + output: Global/SwiftGen+Strings.swift + +ib: + inputs: + - Base.lproj/About.storyboard + - Base.lproj/Main.storyboard + - Base.lproj/Organizer.storyboard + - Base.lproj/Purchase.storyboard + - Base.lproj/Shortcuts.storyboard + outputs: + - templateName: scenes-swift4 + output: Global/SwiftGen+Scenes.swift + - templateName: segues-swift4 + output: Global/SwiftGen+Segues.swift + +xcassets: + inputs: + - Assets.xcassets + - Flags.xcassets + - Providers.xcassets + outputs: + - templateName: swift4 + output: Global/SwiftGen+Assets.swift diff --git a/Passepartout-iOS/Global/zh-Hans.lproj/App.strings b/Passepartout/App/iOS/zh-Hans.lproj/App.strings similarity index 100% rename from Passepartout-iOS/Global/zh-Hans.lproj/App.strings rename to Passepartout/App/iOS/zh-Hans.lproj/App.strings diff --git a/Passepartout-iOS/zh-Hans.lproj/InfoPlist.strings b/Passepartout/App/iOS/zh-Hans.lproj/InfoPlist.strings similarity index 100% rename from Passepartout-iOS/zh-Hans.lproj/InfoPlist.strings rename to Passepartout/App/iOS/zh-Hans.lproj/InfoPlist.strings diff --git a/Passepartout/App/macOS/App.entitlements b/Passepartout/App/macOS/App.entitlements new file mode 100644 index 00000000..61ce30e2 --- /dev/null +++ b/Passepartout/App/macOS/App.entitlements @@ -0,0 +1,20 @@ + + + + + com.apple.developer.networking.networkextension + + packet-tunnel-provider + + com.apple.security.app-sandbox + + com.apple.security.application-groups + + $(TeamIdentifierPrefix)group.$(CFG_GROUP_ID) + + com.apple.security.files.user-selected.read-only + + com.apple.security.network.client + + + diff --git a/Passepartout/App/macOS/AppDelegate.swift b/Passepartout/App/macOS/AppDelegate.swift new file mode 100644 index 00000000..6106aec0 --- /dev/null +++ b/Passepartout/App/macOS/AppDelegate.swift @@ -0,0 +1,133 @@ +// +// AppDelegate.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/6/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import Convenience +import TunnelKit +import ServiceManagement + +// comment on release +//import AppCenter +//import AppCenterAnalytics +//import AppCenterCrashes + +extension Notification.Name { + static let killLauncher = Notification.Name("killLauncher") +} + +@NSApplicationMain +class AppDelegate: NSObject, NSApplicationDelegate { + private let appCenterSecret = GroupConstants.App.config?["appcenter_secret"] as? String + + private var importer: HostImporter? + + override init() { + AppConstants.Log.configure() + InfrastructureFactory.shared.preload() + VPN.shared = OpenVPNProvider(bundleIdentifier: AppConstants.App.tunnelBundleId) + super.init() + } + + func applicationDidFinishLaunching(_ aNotification: Notification) { + Reviewer.shared.eventCountBeforeRating = AppConstants.Rating.eventCount + ProductManager.shared.listProducts(completionHandler: nil) + + NSApp.mainMenu = loadMainMenu() + StatusMenu.shared.install() + +// if let appCenterSecret = appCenterSecret, !appCenterSecret.isEmpty { +// AppCenter.start(withAppSecret: appCenterSecret, services: [Analytics.self, Crashes.self]) +// } + + // launcher configuration + + let launcherAppId = AppConstants.App.appLauncherId + let runningApps = NSWorkspace.shared.runningApplications + let isRunning = !runningApps.filter { $0.bundleIdentifier == launcherAppId }.isEmpty + + if isRunning { + DistributedNotificationCenter.default().post(name: .killLauncher, object: Bundle.main.bundleIdentifier!) + } + + if !TransientStore.didHandleSubreddit { + let alert = Macros.warning(L10n.Core.Reddit.title, L10n.Core.Reddit.message) + alert.present(in: nil, withOK: L10n.Core.Reddit.Buttons.subscribe, cancel: L10n.Core.Reddit.Buttons.never, dummy: L10n.Core.Reddit.Buttons.remind, handler: { + TransientStore.didHandleSubreddit = true + self.subscribeSubreddit() + }, cancelHandler: { + TransientStore.didHandleSubreddit = true + }) + } + } + + func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply { + let alert = Macros.warning( + L10n.App.Menu.Quit.title(GroupConstants.App.name), + L10n.App.Menu.Quit.Messages.confirm + ) + guard alert.presentModally(withOK: L10n.Core.Global.ok, cancel: L10n.Core.Global.cancel) else { + return .terminateCancel + } + return .terminateNow + } + + func applicationWillTerminate(_ aNotification: Notification) { + TransientStore.shared.serialize(withProfiles: true) // exit + } + + func application(_ sender: NSApplication, openFile filename: String) -> Bool { + let url = URL(fileURLWithPath: filename) + importer = HostImporter(withConfigurationURL: url) + importer?.importHost(withPassphrase: nil) + return true + } + + // MARK: Helpers + + private func loadMainMenu() -> NSMenu? { + let nibName = "MainMenu" + guard let nib = NSNib(nibNamed: nibName, bundle: nil) else { + fatalError(nibName) + } + var objects: NSArray? + guard nib.instantiate(withOwner: nil, topLevelObjects: &objects) else { + fatalError(nibName) + } + guard let nonOptionalObjects = objects else { + fatalError(nibName) + } + for o in nonOptionalObjects { + if let menu = o as? NSMenu { + return menu + } + } + return nil + } + + private func subscribeSubreddit() { + NSWorkspace.shared.open(AppConstants.URLs.subreddit) + } +} diff --git a/Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png b/Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-1024.png new file mode 100644 index 0000000000000000000000000000000000000000..71b80831dd06b1cbc3054196ed0af6ea25ee87ae GIT binary patch literal 36716 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 F`agQU{QLj_ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png b/Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..58f60c3bcbd3018f01b420cd247478cdac4b2b7a GIT binary patch literal 1344 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 TRb4@_5MXX%`FD*G>fwI?C+@4u literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-64.png b/Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/AppIcon-64.png new file mode 100644 index 0000000000000000000000000000000000000000..6ea913063b25ea69e5062a3d592745d1fb2b8b0b GIT binary patch literal 2432 zcmZ`*dpy$%8~<%KvzD5BB+X@#&{#um&3(h%ZyUKZx4BMfbBhhhoJ6^t6*;P@gH}o| z<+f82TCQEDTz-nY)j21TBI4Db?;r2y`Fx-6bNhatf1W=co~OIB>^8M+00796NeYlx-I~4@&Mq+R*CZ;062*QfRAAS zV8I6f6=u}~FRQJF^f6aw2VnD;)pXt{-Krp&B`iwywCxR4!eeN$i0RVKu%JF7m)#<#Nv$Js69OA<+PdA-)1KV6RL)KG#5zQj6x z!hY}W;WiScgot_mxw&5nCW5=PH(Sbqjf9J}yV0Iw?3O?)S@ zSqolEOp0E?wSSwMy8LeP%@TDWl*VAQSl`k%@Rmd3rXg(-ur_6uUH2EsLy0NBJQh1RW|NimM@%VZo~hV(kM>4QvVCHQIp5?l9*my()r&Ve<=N;!7VS7k-<=D`k+p9#%n-2C07o1~(Ya&aUa8m!g zv<)N^*(9MQ!@UX6f4h>(M59r_iUu=Iot#p2CKl6MQp!itpdOG|=6s_2ks#}B^)iw# z*LVLMO9aEg!M?({M(pfp;Z0$m#Ny>hV%(^5Sviq`9^o&L`J)BhGBwIbC5m)c28!-) zvxk}%7Bm>{F%6X(H(@=8Gi4&-2bJQpvTYu%1nUpR@L~Df(8@tMb?bZas_~l<(+fYt z{8_*nr`XXyDg4h^<@hUN8tc%wgDl<(3>Ly}8rYSTS9?SNjf)MazgwXB&jSqo<$~((B>?b&wY8h9(o& z##X(#0m@AwP!ioLfK|eI!)d5oe6Y+5!tJ&aJn8#KSP@e+GJl@aW009oGxS0+4}_7y zXS+71%JYvBZ^Ndf?={mdDc9_k7+LGya){u5(&>fW3OdxUm_t>RbqRCDE1{te8>(r) zRo16-(9nytk)$_zE#tfJ62%x{vTNk$OsZF_uM^^dX|PA2JR_*D%yGW?r(*Q`zz!y| zlfS~095b78I;Hm{^4sH0O*`v`W~al6lj(bc%*I%LDwswS#%p|K2}dv3h1N58U7qt& z?{;*6pGRE8KyTtSx(y*iVn@r>T@+yBJIE_Rr=i_d(g zx^skQc2~Y*bA*}U3r&O%dh4~9bZ@S z{+2H-sN+$0EAU3tUD1!UBN!6Tl(d-%#eLqE};oo+GYC8Skou40oR=2-3#`c;FMdoH!@1X5MawYl9=Dl}m{ zYGFH0le?L&6U*bTi5^4`uLm7i@H~s0Y3i*1NT>%3EGPa?UHqS>~EU# zPe!`$oxGqF=5OZ?-+m|eAh?tExuD<%*EttHGYJ}l7+sQq_T?=k3+s&&Vw6T>mFWAwyC9 zYVW=-oraQ!p-IJ3p*2nwy>p)a3++wH3QJ+gl85Zro+AQW0!94jU9{nVe!VZJ-)42& zlz8uULCE6a;>%XO;NaxOoNA3!+eMi?lqSE5y*gB;m5_^tJvQlh-(#t)-lqb;p$k8< zr^!5sRO;fq!6Wc^Nj5VoFgm=U307#^C>+;z$?&V?aR40{RF7U{aJi|R3kl`U?FIq&nC{a7B+_UYXi z*H%ZrDYyo#%f}<_k6HbR=4_pq+*W%0{4+1dS2V1=-u|l@_Q7s3o6+1?ANTJ(+40bM zr=PElRL9=ZW+e(sQ||6x+7A}7V4Uq7b~*Rv$Bk6WpMQS=1?H#6am&zGcd|}MU*`@% zLgC5~fudD7%5qQ*%f{pX4(pd*cS2^0 zp)Ze)J`Z=xaabh#lsnvPzjt3jWVSH+-hkTc$692ZI8XxUKAg=JWdyeO^k+klV9Lzv zxYy+HBswMPvzi9hhcW%IuE~0&F(hh>;j~f*#I{G)g)iUHPw-+SU+2c64{RWfzw7U)j$yNdN!< literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..3618dab4 --- /dev/null +++ b/Passepartout/App/macOS/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,63 @@ +{ + "images" : [ + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "AppIcon-32.png", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "AppIcon-64.png", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "128x128", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "AppIcon-256.png", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "AppIcon-512.png", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "AppIcon-1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Assets.xcassets/Contents.json b/Passepartout/App/macOS/Assets.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/Passepartout/App/macOS/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/Contents.json b/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/Contents.json new file mode 100644 index 00000000..6b337b65 --- /dev/null +++ b/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/Contents.json @@ -0,0 +1,54 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "1x", + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ] + }, + { + "idiom" : "universal", + "filename" : "StatusBarButtonImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "StatusBarButtonImage-dark@2x.png", + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "StatusBarButtonImage@3x.png", + "scale" : "3x" + }, + { + "idiom" : "universal", + "filename" : "StatusBarButtonImage-dark@3x.png", + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage-dark@2x.png b/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage-dark@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6832c10b165dee569c39ccfe606c955cc713528e GIT binary patch literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lj!2%?U&7EfeDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OU8dc+In>N8g+aXh(F7sAD8f9(5`^HXQl^m~*(=y#mFXvfX( z?$+|xpV(Qm+1{P`SNp{dLk6>5d#>EC?foXWfB6*W;85KgvEBv&hq^o;7qMEOe!%Fo z{C0)?4q+3ZYgJ2JBT7;dOH!?pi&B9UgOP!urLLiouAyOwk%5(gv6Ydzwt=CQfx*p; qXiz{SH00)|WTsUjYcRC5GPMNifoN#Hci94{fx*+&&t;ucLK6TvHH^yu literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage-dark@3x.png b/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage-dark@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b80ff5b70437e22b8bbf8c31e44d46ad72b2126b GIT binary patch literal 498 zcmeAS@N?(olHy`uVBq!ia0vp^vOsLe!2%?EzGR&QQY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI@Udzy|3P)Hy-(XR|h`#`Y-kmmc{&$k*#-}7{F4DmSrcG}*qLk=RX z`wN+Gb?9iBO%rR1II*wAKOz0K^bemyW~-NOZPlD)wUj$)`P2;MClMM4Pw06r<36K# ze((J|^B)OT@~4Gb!Fi-qe-fg)AFuOzwI)mt0wiwggaLi{-$k< z-(_lfWnrqj?IZPj*WR4(`TyrehX3_dFE$-IwduaT3DPm2lRD#@9 z(RdP`(kYX@0FtpS)G}1LR3^6jW zGBCC>GS@aRv@$TbnGp?&B!q_C{FKbJN@NX&mR6>gRt8284XP_|^Z+$5c)I$ztaD0e F0stoAvxWcw literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage@2x.png b/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2a0337ac272394e7d167435bdcbee3610015a89b GIT binary patch literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^B0#Lj!2%?U&7EfeDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OU8dc+In>CCsby~u0&mcLGtrz`5thtG=_ z8=YH{x^3l^f9c;=Cp=lxy7O=B-@y41SAW>D3o`$dev{!C8<`)MX5lF!N|bSQrFN(*U&J;$iT|L*viOU+rZGuz~E*^G$@b} n8glbfGSe!NH5gi2nOa&I7(q0suDsC$)WG2B>gTe~DWM4fsS1yY literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage@3x.png b/Passepartout/App/macOS/Assets.xcassets/StatusBarButtonImage.imageset/StatusBarButtonImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd90cd93a057f32a786bfec60dcf14ac201333ad GIT binary patch literal 493 zcmeAS@N?(olHy`uVBq!ia0vp^vOsLe!2%?EzGR&QQY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI@Udzy|3P)Hy-(XR|h`#`Y-kmmc{&$k*#-}H2G4DmSrcG^a+Lk0qE z`)@SqEn4)5+kzv=rG|678QS)C+W=?m-SU=?yO0Xy;&iPPbp65S`xl<_rG&$_7i75eIdY~`h9)Iy11R` zmsYr~?wi#jcrSfwm6A9A!$lv$Cwsh+vUc4cEm08qqVfQPM3GKwYfeUE$1VSj86rl% zjyz=fz$mM-ZfBNrNEOhNswJ)wB`Jv|saDBFsX&Us$iUE2*U(7U&@jZvz{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSAllRomanInputSourcesLocaleIdentifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + diff --git a/Passepartout/App/macOS/Base.lproj/Preferences.storyboard b/Passepartout/App/macOS/Base.lproj/Preferences.storyboard new file mode 100644 index 00000000..06b58cb4 --- /dev/null +++ b/Passepartout/App/macOS/Base.lproj/Preferences.storyboard @@ -0,0 +1,362 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout/App/macOS/Base.lproj/Service.storyboard b/Passepartout/App/macOS/Base.lproj/Service.storyboard new file mode 100644 index 00000000..aeff6219 --- /dev/null +++ b/Passepartout/App/macOS/Base.lproj/Service.storyboard @@ -0,0 +1,1693 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSAllRomanInputSourcesLocaleIdentifier + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout/App/macOS/CHANGELOG.md b/Passepartout/App/macOS/CHANGELOG.md new file mode 100644 index 00000000..37e7609f --- /dev/null +++ b/Passepartout/App/macOS/CHANGELOG.md @@ -0,0 +1,30 @@ +# 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.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## 1.0.0 (2021-01-01) + +### Added + +- Launch on boot/login. +- Change active profile from menu. +- Edit credentials/profile from menu. +- Links in About dialog. + +### Changed + +- Mimic iOS app when activating a profile (Use then Enable). +- Do not autoconnect to selected location. + +### Fixed + +- Unsaved settings. +- Incorrect keychain management. +- Menu inconsistencies. + +## 1.0.0 beta 345 (2018-10-01) + +First private beta release. diff --git a/Passepartout/App/macOS/Flags.xcassets/Contents.json b/Passepartout/App/macOS/Flags.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ad.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ad.imageset/Contents.json new file mode 100644 index 00000000..a471458c --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ad.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ad@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ad@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ad.imageset/ad@2x.png b/Passepartout/App/macOS/Flags.xcassets/ad.imageset/ad@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8e579814b92360607bd7c5d7522e03507c3e8f84 GIT binary patch literal 560 zcmV-00?+-4P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0p&?VK~zYI?bSVNQ&AYe@&7sZ-I%u~7){!QrcgJFAV|9@D59f_AP#;E zKZ#qvfSW^bu;3sT9fVYZ5pf7K(xkCzn&jr@=DxTU$&?!jWXOMh&clzxfg>J2cx6|< z?O4oEaQJMNvCEEb@69wPgm@z(ZC+q2$aE{nbV~zK=Q-p!Ff}x=r9gK3^ko zwS^Q8)|JuXA>&DsFV&X>{+JuN2Axh3MU$kQAwPcIhfrbn&OU}QTr9-UdL-jbPNG~Q`|v$sr-bT`P$o9&#HQUTQ>{N= zJS0S-N{L7ZoK~I?rZV`NNuXPJnuQtD2}5J?kaFn*iVR@uD}&>Gw4KlNa|ya97C}L0 zJnWNCzl#is{6_3y0--3x!XA?W2;mV+1_a3on&}{gpg%}*jo*>>M!u1Y;W~~RGE&y? zbroM45I68W1ACmsbp?OU3sKibzY$&YF-@JL!6W3RK)4cW0?(WvTM{d2Vd{|`(IGdt z4~QMN@cb0rL6%;3169|ETMg2wGc>J7aig|)h_3mRH>&`go#&{J?xGr!t>Py#*>+^W y+>n1;OSRbBefvKvE?b&UZv~ld1(|MXAb$a1N}E7ZB{ymS0000c4srQyJ6Q!nFOR*m|A}S(? zh~ka(#!GJmFMI8ke}k6_f_R})u_y=zYiUI#txeiS2u)3zZj;^YM|Qr?cok4vP}mdL zi+!#J=Dg?k{y6VBb6!TAIQ2nH7kqc-!*)0EJN)tXq4{p&&7YPInB7d^Jl-yM6Td?S z&vg@T=t!a$=o{%Z`bK(>P6!#wnF*46iJpLO~V^q6Y>U81z~ByZ|c!UW;UZF|gw1OleC%6VrRf&X)z8qs0DlKfj$saX Q|gW!U_%O?Xx)_J-( zhIn))+bA6VeB<9qaY;6%1DTw9Y@0Jelcr2!laLHE4!j@o>A(u-3kRW?v3ui+PyB7_ z;+;Wj^c6loEql7`^p&zBx7W{~xADUV&H{nejlI+7ySql5n{}SO$L)`Fg#7vT@v;7CHUDK*mWPfW{W|9%1M}g>|9N=+cOG0WA@R@n0^52i jlR)EF0wo4e%)n43z#|e-Ywp9?ys3$*yr`7eXaI3_TH~2-0V=Ebb90YFS1?x=1p|Eq0!O{B7991?T$|f z7EjuKTV(In7^X>;rwkYrQzFuLW$l{=R|Qm>vUBUNZN1Z%{rtbUkpIEFM9FSs1wdo| lvF%yw?54n^QI-9dLCZxpda?ETeLznzc)I$ztaD0e0svk_X}16X literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/af.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/af.imageset/Contents.json new file mode 100644 index 00000000..69e26fc4 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/af.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "af@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "af@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/af.imageset/af@2x.png b/Passepartout/App/macOS/Flags.xcassets/af.imageset/af@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4c978a46bd283273fe92403abdcdaa7f46b2ab67 GIT binary patch literal 587 zcmV-R0<`^!P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0su)wK~zYI?Ug}m6HydK&&-?5WRjGaSQ0d`(O8u%#JCVwf)qDW3l+48 z;Kr>#z=9w`D~LZp+zBoe47d;!t8`I>NTCJ=DM1BmDQMHC#!NcxB$f(F6dY#DF7%fdmi%3r-aB>tPCfgsr5k7yG;fYCFo=5rR3#@lb80XFq$R38$7pYw7 zi3HQfG4{vsg@zC!1a^W+2>S5w}uhb>=Sd>sL8AJIn6(6!%K0bfQYRaqNdm>g}N}h zG}fezgoS%!Vq#J?zM>0PO;{Mx#7#F{6O%?nT#%U35P@b|N=;!hFc4^mGVeRwxo(U* zSND)i%>1jf`v3pSIXRCU0nFnwxv?_MgsP&2!-Otez)B`5BobJ=yQsk+rDPH- zl|qk32@VY*G)-o-#2FES#_@5~P>B5UGWq-WQFI+)7$~|hkvm3pojmrK$#q9@__cqbmPRfdx z0}?oM27jcVhLN*aJNp>D&mj~AqbG)wvv3MWoOt~;P(AogbyG?2(J(TC+4=(J>C-YQ z$N^E?A~;2hhT-!FkHM*HQwSlj9`A7P$`ulqE|GtjK-g7!u1z641`We;?87`-YqN|B zazGSQ#W6jkr>6#zo9CsXpLcp78WoE2dSjeIEur@cVA-;zC`-^bwq=XC+L+? zK@Nzuu|s(DA}y2eBQ%x#ofQ};0mVV;evpL1e(gxvBf zoO9nn&h~3rWS5pOx;juagUG~Xypc94J9~Hn0RR-uhtVA)GI1G2_u}=L+{u%4-?KEB-!wEsK_Z3PTNs4z9I5-$R&*Sg!!Zk|I+{Fg;)ovHPu0CO?8l3 wQyrw%qyoRYF{nUj-Q{O!zCwwlyU)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x158OoK~zYI#g=VoQ&$+re>X2Rv$oQb4y)P5W<-i273tP);-U`3e%Khp zposHjbZ(VtH>Y1FjD6`8Utlj4+D*}Qt}t70;D#UkP~Dg>)fR_VT2hh5FLP^R)7+T! zCVBSZO4lS!@4eBn2M+h#=lst++h>qUP4A}whk%Mi!oeB0J2ni`XktYw%8}4z& zkoE&e>L&7Pjj`W0kYSKBZg*?~Hl7g_a^ zzD?PlOF#mXKqhv?0elUVPqBnULD=*O5dZi9YivZEPzHY?}I7Oesr>@M1zvjCVi zQ&?WDv9d;Q$#jbFm@!OkwVnNYoOEAva^bp@P(**c&8awVXwe+K^1Ig?@&p29laooC zopoz3a{cL-jepTXRE7TFr?a)VQV%oo_q^V)&Fk@~*%KV;6fNEBDNBqzF^FO<%F%9r z4g`SL<5BaLkGX1)BfoAzL7oUm^QHHgKRS?ieA+s;I(U|?{a-#d#KwVE-W)nLt;VpR z?(5mZvip|`hFBQB$){I7G}Pt1H93N`#`jm(^Ya&dBub{LGSkeBtJHrq^|`PN0#N+d zFq^yH#ogIy2_*FP`>4U&rnIKNM;>-{5p8KP4WS-8hT7h4T5svY=)vyYjQ92$>a<(8 z2=Cl!#o8K(Bod7H{iH`n^J`R<5x*aa#r``GfaK5+;f991goyAv526+Gg002ovPDHLkV1kuEyNUn+ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ag.imageset/ag@3x.png b/Passepartout/App/macOS/Flags.xcassets/ag.imageset/ag@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a810f5fbf3d4b234a7abe8143ddcc76e1675d4c0 GIT binary patch literal 1253 zcmVkP);yKLvTZWgssTU+AxOc`UMo( zGM3nAl1AlRT5j4HHFf2#{-{i1xr+4%BK3z$TOuGNbAlow1gOKs@#BzR_k(YLJOy`h z+}-osbG7x}p6&U5pU>y}{=Dz`e!idQzF$pRTAG>v0W^U4uY*tn+JA#2AvW+FstbAI zVb}JeC@6fPh* z_uq>Um!zxW(DZ%Nj|lrk>Hh6k5qIejZ{#7&wTO4}m2v0&9eX#3DIpyoQWc8X|E3gR z+fRsf>4<^)X#wu81Mec5E2aA@)rcUye9i|!v^fdUbUW3Nn?NQoAoKMa=fLF?QXT*} z9H7(r=9{?%em*0QF9fIpoL6-hAppMsoAF#FmoAcW!#oHr?Qo?N664^=et7|%tcBuI zh>d||F%TOqEf$}YgVi>>-yz_cJNjk_0oV(C=_QDTk?`$DQcVDuoK(K@0N5R{>mYo5 z1cZlQF&8Lx)9+S@9e5u2-3z%+2fMez?$`YjalIE_D26lVJ=-k@jstVtJaa1q;098@ zc&l4MdP&H8TfGPD4xQIw?JLlA)3aR&l89xqJfBqvz)2teVjGCZ0L8IQo- zb7jRo19k^oXq9rNrU`y+0LyJxn*+de9>(w}1Ypmq5BNIv<*D}kkOAfy+>~Y&F<}ql zh9zpMy|L#wpVk+7^zkahste}ntQsyxq^J|6Of0dqQB|2rsLk__=QTxx921yMstaagRxK?NNs5B=6%Saha-uSoP@BbPA6aEA$T7iZr?X`d$VISY z9MkC>*&MR#@nTDRK=Wm9eGv)fCfRYdmbyvQRJ&wh{j+b zvaSw&Vxl7AJ7I5c=T=GzlNM#uR`I8v7$2uEI~y_Vf0Y*#6PR;y6pH{qw}b3$ZS)ru z_%j3mgFAL$J@4hy*9-jK*BU)`jFF>9mHSszaNA_^Hw@)D;xdTQNaVS5=;PyM`PsX= zxRspDWPiWEA*i#{C`LvwXJ;cuM}7CP*)Zqksv-hZ+%mPbv@o!3o6q(`#l=|b>eQlF zXKFbkysQl4rcEAg#;U65+pxj&pL3Z|U5LhLB(k9a{fZTCpF4Vb=uJvu(yZ>WjOx4b zQ~5GBHuKp(d7-ih2+;Y6t+|=O?b~Pc5AEE^#M!ffpj3ZqIU}OHoRGXc0LH7U`E&hx zRrA6b0TrSN4JE3v5slF(kzjEcU#$a$*8yi(VqjJSx5rFw<;(`&g P00000NkvXXu0mjfQ3hR) literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ai.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ai.imageset/Contents.json new file mode 100644 index 00000000..c16ebd2b --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ai.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ai@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ai@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ai.imageset/ai@2x.png b/Passepartout/App/macOS/Flags.xcassets/ai.imageset/ai@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0730496fed6ac51919668f03824af6aa030f2c38 GIT binary patch literal 1160 zcmV;31b6$1P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1U*SaK~zYI&6a;mlyw}(U-xkGqc{XnK*EdAOBv&j^U_&38lZ-@SfGShQzos)Dpp_Z;W=d>Y8wJEu2P~<7nibetoS^e0;bgBAWE{LUM8{ktB&>ZQU9}s;QXnD;@ccb z)o|g$Hs;RtAD7)`8zSv}HQ&yu$LDkofjP%GAyd zOe7>KitCqlbKr|g_U-%WnZ~!?4Cg?EouLzZ@y^JgHfSLUYfn;N-wEL6EQlbA63xv9 zR;8D-BWMF%f)_1|USUhfeX6QHLZeYWPVORbK6?rK4SBe?HlXPh@gA9Xob#zn}mB)wy%Hg@lX*mYZ38c8VKB%J&ta1zq$8ntnaYxGgfIVD{|k?J)tiUcqq36Tlp{ zpfm5x?~9%cQYxq2)@YQiGi*kAVM*gl_l8`3pR5@JLo0)nTwsl}Uoc)}WVm54h`77E z5ErLHukYsS)w`%vp6GPF6cvepOe>!#fMF#kFDE#7IdonGV*@ej1U9Yr0}p@F($Xm^ z>H#L9p-IximU8nO=x+y;9_;-93=WQth6x9;Sgg>L3m$$jF9{6QQ1vlLA_jwX@<5En zUJzViW+ZgiLf{fG-Gt6k^!onE1F5R&gn$URunt-Zz+r{(RII*X)YXm7#tHvf^YYq= zPnv=?p%GCULT>&GyN`y>>YuUOWs?V@(@AVE_?lB;X%A0)nMoH@x0C~;FES}>K=Ech zk)~n*+!!S6lmuLIiL6R{F)RHfL@aeKWuAz=KcR> aL;D-wH=-C*U>VW?0000~RWdfk3M#~^NkePX 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/am.imageset/am@3x.png b/Passepartout/App/macOS/Flags.xcassets/am.imageset/am@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c33d1b5fd82af0908c8679bf14f75e2578450c13 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDva!(h> zkcif|Hv)MZ9C%nR>RNKXaFS;;XkaQ}uo4LLF?so9lmEeU@s~YbUSd&N`bI7=@ughA zQAHEJg@qiw&Kb)%C6{m8UhUF4;nH@oPUj36r^figP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0l!H^K~zYI?bbg?)L|UQ@z)(n!sVd_R+gtr;1DI$5Y$k#Ib=gfLw^LL znyiLGY^bIPa&d49GHS^%Y6uMJ&(I%iD2$>%LXnt5*pjp;`ZTBscXW5&rDxy=KEv<% zKF`CO@8|dZ@e{Zm2nBX`)DqD$NV1kek~M#jV(h@yLW5jE7tWy?D+&eDh6YUH5zZ_& z$ZG5|-HCBDq7Um(x0oPfIEo`Prvh5A2bc2)Dav~1IBwz^Mw8YC{{hHhO1?3YZd0sO zq^4HUyIvE?wf#TDn%l)selYrJAhn*2)>8uArW^fNH`EKSo(LN%Q)}nX3LTe(cxn1O zGWb?j@5t*n)FilbgJVrZXHG>TG#y|~1wY4f>BXF~0vQ@+^G-ev(sr8boz!lm`5@m% z>3x_V#H`Xrv#(xQTQT>%eVg#0N9gYpdb)&DC-REqPc#{)rYz3;7d(H-mm#L6NL2Fq zD~T%Vez9c}18?)|M#g9!KjUdX?VTKIBpRXn9(V7vdoRNyv>fMRE33-$gUL8Gv#zcZ zR>o4-%gcldt-{rg+@qNnNG2B-FYx$gtBIUGXVdzRe~cDLO9dqI8&5_bO099QyZ`_I M07*qoM6N<$f_6>qPXGV_ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ao.imageset/ao@3x.png b/Passepartout/App/macOS/Flags.xcassets/ao.imageset/ao@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b3370cb525d23d107574e5a0acd6e7ba98c4d184 GIT binary patch literal 804 zcmV+<1Ka$GP)#5o z6q%AWBAljV83kPEl`S*)IRWsPQXw<~nbO80ZAGd_@*&kCy++D5DSwD&j>rNeNANfa zX*ZG==>t;Ez=)W$N45ibKyvW=VW0$X0CR!)rc~*ln0|?Dq`Kfz@*y2Z8rp082vRGO z2WgVkm)2UOw@A%M_C8~&NNq@Wk!HqMB=)=32w)+Q3%G!ny~g~&L!hxwe;lw?5#5WG zGa0%&LdVTH3295={bhKyKblJ6qiEW-b0~ds=(y9zjs5fJPIPr5Xpx^}v!S1D=N0fm5}Gx`f+B$4)FZW{+8b!ohJVMTB%{t2bm}NdO0uX(!D8fVMjh|a?W^d_ zNtBWPXG}>k3V4mBm7i--5kO zbpG9!Kmc66JERyw?g#T2ws+O7@7pTis8Us2n3+I2A;oyPoKdx4OTCM@86;3 zzH$7e11j&pxhv4n6h{k;$GXyRgL`^lLKJ)V06e_=nvS(Z1t`$ognS%23;*&e7rDa7D|7%%|goxGn iZ$zAcd$1>A2EPE@Bgy!6pT>Ux0000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0wqaAK~zYI?Uu`HQ$ZAmzxzmfFOMOQq^RlfB*@jh(7Y z(C-ok*)}!tZ+T*0GTgm#l*m+ycrwpWsDo2|J|XkLpobS9R+|R_m|H54&F=-wqR5hP8ihbYd&O^mt$c13`FADO zD9E+@^CWb`7D%R0qEfNy;!bt*)JM3`*+h;-y(r`_{KT*3O5A$9z@3*#d~O9TW8!tIg!_FQ+1JkKiSAAFEer0wT4p6{ z3i&tOebf083o8bNVuj^&k!Vaq&(`;php`lsAJ>F^ZFk?Fawrl(zY8s6;&#f+EfshZ zUne@9YRIQ)5VLG?{lPp?eK*QmREUUL`a`n|0sqQZv6cF3Kz;xLWT$x7O5m>m0000< KMNUMnLSTX)*(E^$ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/aq.imageset/aq@3x.png b/Passepartout/App/macOS/Flags.xcassets/aq.imageset/aq@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..0b15fda0e613c1ca3e353c3b591ef630740a8907 GIT binary patch literal 908 zcmV;719SX|P)(Wnp*tn#p8uAlB` zoSuFI(}IqWUI;m$Kt{GMuV(Y&04`PhR^D2nIY^wO3ZGQsh!tHoKhDJ7%(MR(ZCmWF%`N$yA!%Yp2ps zQ}VM+bN$})^Mj?*iFiG#bS&h!{l0v!b86d6_N=R=(x>5b{}L}QQdrsOmri8i^fKvK z$Z?GvxzdB4Fxj*yz?!BC4qxn{D{8Q4dKq)3dH*`~>{w7=iXy<0TqijhNv6`2dWJ(3 zMX+x}t((6Cm+tKXJX6V^=?5=A)W{0X;>fPm_+%*+}0&f(wtLJnfE2i)Nys zri7NA4QyOkB^57q)~cUeOk=HAO3;pSuZ!jxa*JNdNNuJ2kK>0^bVuS+aZ*NBH&sfB zWkXZY_s9P!8>EaJz50PmkNagp|B4X9yJN0M8R-b=oWCC-I+&CRx25gbC)@A7QBDBT z7pphnA;<3*9U+~wcfz)Hz8Yr6^1N<{H(q=mwP6`dOa9NUPFuR|psetlk3+ORi~xcu zemANj&=VG&;UQAy@H7wtEGvx=_6zvgyBND#I!T&xPV&Bw=y8kV*Fv1W(M!@yqbLIF zd$$Gy9v0M>5{sMc-%w}U&hwravAF!`I(D)8(UaDQx$(Bo;BB8lwcl+Ud%3-z<87h5 z^#92#%Bp!4qkc1z7OfAWQd{mw3i9|c60cjODd@vUT4<_3RRqz&B$_H{d;Xb|*LxYz zQ+ew+{`imyMS!XZYAW1Rm1#Wb`U)VuurpEc5rN??)iTp`MGU$kMnN?Go0rB3Bjb$; iBjXJhaBHlSaDs0h76XKA1%k8y0000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0X#`WK~zYI?bJO_!ax9r@#pH5HZpiEIuIBLD$zkl5@#75{V0AbR!0X{ z7fl>Vh$uu!)KX$v-rAlk>3A{V(B}jE^SjIC#7%e5Md)j`nGjuTtAMo%NWKD+uYlx} zSLdqb?aHkpf;ef(y65dTICvmiOv%y&>3XQ+ l_iw)V0+O$QxGMkbOrGLf{gF(UGK*IsuGS`bPpmDuV^5d{kn28Of{hM8EDOlsk!+hfxH zKom>}7cPbRGq!6j@|A-`@)8jlUYrt)E+JN|=3N5M!^~~5nzr#u$5dPT2X5^m{-{gf zUg5hxS&grl-S$Amc>S+9htDC32&Rv*igm5IT18YGF~7Ya4r8Y6kEr=4jvlxGv^yo1 z+dJ4!gVEJ{>Mve_5Zbb}w%>TQ#Ot54=zk#$7wp$v1~(ytn~=tyi|_XFXB~*{2>qGP zXx%3gBJC2=&SMG#nS=7ZKYJx5L{UuWdxYK;Vdiv3>pc-^JBXZv?L4GVt@Hgy8S(e) zbV^8>r%-!Jq4oqrS~{aO|Lj6gX`V3r{El4Z5yG9&8O{+HIEQ=W%1sPuP}ps0zf-h# zEvtB+t!fKQiRCm{jxRB#jkR+Crh!#D!mjM=j!o`n_s3oCex0-EpCj`{Oshhrd4g4} zB@vhGh@#?%I1E6=m{vh+yZsmO=B$_8to0v}-v<7=YtX{Ryhk#Tw2_IVjZ7qMWFl!} hV?-o^vvn7tgWuiFvhmfLlG*?O002ovPDHLkV1iv77xMrB literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/as.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/as.imageset/Contents.json new file mode 100644 index 00000000..ce2c26cc --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/as.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "as@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "as@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/as.imageset/as@2x.png b/Passepartout/App/macOS/Flags.xcassets/as.imageset/as@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1691f39b1eb6bf291798887d0d01bd91a0e8e1c4 GIT binary patch literal 1097 zcmV-P1h)H$P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1O7=wK~zYIz1MF{8+9DV@%Qzvccm?~l>eo`hU^bx8LWttO$a2;80Wvl zkv&-A6O*~k`E2@d)0k+CK3I&2niyyHzz2JPCZv-%!{(BSb0X?sW+2X{tc|r@fsSjh zT`9k*)mh-4c=R zcd;OeIJY+A>3Ig%!w=%#`4Dv%MqCAj+-tE^>|8dR7bMr>>8S~3LX%uM^BLRw4q{y^ zB-i3d=ntZkzi_$#Bw8#?=;{wBf`KVo=|22A>FABsA^B|e^u!p~FPap2usH#etY|j=1Vwxt? z6GK#2SEH&b;c%EO+uAtNKaT%}O z34eha>c{J?!Rz(na5%8aGEW?N4ZYNd(|UVHW-?IXurFI9Z%A-rnE20cQ(2;;IK51M zdt&)Rij}A)AeH;*e(^Z<&8^EGkxbLf3(~N$li=u8>_z|~eu`iyg3~TCH#p^jFpd=j(VQ3n1RRtDBUK7S$SgrBPm1hO=r1)7QQt8jeupaA8YCNSr-Nd{(Ebx|ZhdS8$cp-I)()zHmVE z0ZZ&!VYN@i)i1%7VWw$v`;2U*SNWQT7 zTeFy^$@Q@>QDiF{+xM=x?wTR_!u~6HLka~eI3!nC@WROd3%M8A;(yKGS|#0Q>Is3W P00000NkvXXu0mjfw^160 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/as.imageset/as@3x.png b/Passepartout/App/macOS/Flags.xcassets/as.imageset/as@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5cd681454ddc2a2047f9c84e68006f792c199b20 GIT binary patch literal 1730 zcmV;z20i(SP)74QRu5E4>;fDlDODpf&9BuGI`QmJa{#8i%D1rpo1P26~Ed*eFs zdN1~__cD7KeoQd+Hi--IZh%)>&5X|3@4U}B=R4=@jsVY};eS8^;E`4=ol?-*Duo>u zAuD~nTmtsp9c!DbT8#4) z`vDwX58&L>iKv$W?k>ok7|&NxLAKI(z6uIb2;-`%GXCyquDo-MOOxY#|JXTTi$Mxu zd}it*6C*?D<3W69kMqIY0_E8VN)BwEuJw9%1X8FT|I@F2Mybuj{KzR*#)p_&Nl|Km z6$SJvWF<)Dprh-N{|uy1b3C-X#MGG+EKiNG^!^yvFI_+qwX$FeO7x(rAP5juKn1KO z13M2s^XWhenVbL%GnX0u^$!V+oy4fDq5}Syw)u&Ib~WiBkOG|mb{WEGP|aU_iRK+0 zHwP)S@qE2=ta5Yg@{jBqUhc0E{R$N{r4?b%q<$QOR_3k*i%Mvy_% z<)Rt?r!tugr(Zq7_0bckK$S`B`D7OKf|d(r304)5^xCuCW}$oF>pb*9G^uxuIIDuJ3oBNUoHD(Pakp+VYa~bf(z-832 z>$6YOuyZ%FAI_i(Is`#L6h%~3rKP0>K~+_?pw9CY4h4Dr=@xWKjPl;Ye6W&(cV7db z%)t6;mCk8PY%HxMK4@3t!9gB>_61Z`B@&6SxVT7bYise(TCS2(p84H4iDZK4S_1p* z48!37RdYiG*Ai6TnEJA)L0NA&yq*OA8tk@N$>nnBbUI{N#^do2jYf+P5{*U)t*l}& z7-(y2!)mdxcA%f>qjTuuQ%r`zb|WoCLCYV#sI68tW|&`1vv~YCX0sWu*NZI6h@x0r z5TDP-!omWnREoa7J^-q!tFf0=Ba_8t(CX<$Z4ZfO|Fr}s9QUyMb6+BEDy6OW2>?tc z6F#4hJ$v>PFGq5@924W?%=`Uxb#-C2TJih+2!cR-HH?%=G5Y2)LSv_pmwhC2P-)bX zUlu`;tu%e(2#+29+Iq~Tr6tnoG;X)Mcq4LYV%DUD=I41@5Q1}068Uu61{?58KJJek^1`jo7QW4 z=pg1=ueO7W+SIbiP$et0c)hobUz8DvgoDT>ofzUO_wIWc-^3fJxeO&0bvLb_QZiU1 zh^DoV)7wS;zJ8iJx^LM=K|xei<>ViJM5FjeyzT@z;QX6GO47reo9N_;XJ5JL_jIxj zbEBDsnIuMwgXV`0(f;_rZQCkJviq-$!t{4>N{h^dx8oA0xfUzI)i?mQRu(Zn)rxb0+AHy#ka`GmF)lKc@pt8ELPj5@rBdQ`t=bh#-Z`=e;XpY zvP|=i9%A9En5^XlFaMS}+nF5t310Ua21#T!q2j1LfVpfJf~}1@PY<$uYcIl+hR4)m z9pl5H0I}gmI5!cbVVfCmt-$0;AFk3$rZ2pKnME%9)1Wir+}4Y={635XDKiBKT%W^T zQ-fI2!+kx2p9F#D*GHrnKddIs{G1QZ{gn1530ZIA?S-dkY-}PCTOt!aPbhGed)$>c zoGwgKic})PawtYDp%MtL(z5s4>^<<@?LqQYD6scNf6t2lG;;JT;Ygfa_Zm2RF+o+i z1)F<6$wZuMp$ywS594t6P}kJHY0TS#6dLU6?E6FmQ{+O!G)SiypEZ$IQrL}goHjk9 za}6|g4RZh9egr|-I*>wwjgK59o=j8Q*umI|?@?+8#okBv{;y!QS~vA_MKhGaprT_o{07*qoM6N<$f?tS9*Z=?k literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/at.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/at.imageset/Contents.json new file mode 100644 index 00000000..05bdb0a5 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/at.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "at@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "at@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/at.imageset/at@2x.png b/Passepartout/App/macOS/Flags.xcassets/at.imageset/at@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4a37c7e45d1088a3b8e3b56edc72429a67ecb9b2 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx@;qG} zLp(a)UR%g}KtZJCp_9OZY-^sC>5&&y-ZZT^w9S9wtgdHb6&=6Te@rq?UnjA9OIc3W zPl?@ES^g-qfS_^txzesVvp8PYmMSh?*!e^1w2w1~8^<=DBeqN51iOePI^W>!7jyv% cxpAb#z1NYx|0-Mm9?)h6Pgg&ebxsLQ0OevtCIA2c literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/at.imageset/at@3x.png b/Passepartout/App/macOS/Flags.xcassets/at.imageset/at@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d5fe09eedbaff2a18fff95097928c9185d65d2ba GIT binary patch literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvQcoAh zkcif|Hx6<(IPkb!?A1xK-E=+m_xeMVE3WV*2{-aQ+|TvwzSA4I$GNOGuFgvD@7R#a z-{I6D<#a`0QJa8is?#sS^lxnf&)(gM^5O_|hD&@~6Z+`dBgf@HH7zR?U3e9bP0l+XkK8PiGC literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/au.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/au.imageset/Contents.json new file mode 100644 index 00000000..069342c5 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/au.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "au@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "au@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/au.imageset/au@2x.png b/Passepartout/App/macOS/Flags.xcassets/au.imageset/au@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f573888404d91100965d4b22b6fb113d7466bee5 GIT binary patch literal 1250 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 M07*qoM6N<$f;f`W!2kdN literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/aw.imageset/aw@3x.png b/Passepartout/App/macOS/Flags.xcassets/aw.imageset/aw@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7d6e1a6d887fc3a215f4f2a028e7a352ea7afa89 GIT binary patch literal 643 zcmV-}0(||6P)@_w(5onjqmS_f2_d)?qhwkMqN4MD-58Up|8tKvyx)Qzr?4k_qaUcmk81!vu=(N1-tDnLoK7>8OBn4`7rH`D z|5&Ax%K;Ghx@4$Oy(rZVb}5pv&OH6;IDzCRyfYEDZz%uMCp^CXjYMCNWbY|v9f!$m zRa&TA9WgR7uK`FQxYer=ipS`F6TvYZK`j(&pDiUae1ZJc8+-|kF`0rw$(%j(H)NaR zE;wJzaN_$4M^nqVUOuOs+`TWP+fC`>6_UYWl7T@MkM#3CFHm<~skQtQvJ)u;A&<(n zr8#^L#{t;9d!MOGcX;=+lV4@)Ot6}pUDY(^Hv}J!4T1c#bailqnavJMMS#w!H7mV{ z@F>FRBLNH0rRKSUUY>3tn~#cI=k2?S}y|j5fbki z0FTE=mxj-&vc7 z&@^ljqCAK`GTWgkDA5&L{4qs5TfAwDTgyIsWHNToY=@>$^PByD!Zr`Yc8JxmO^Bi) dqGn4pgWp1dqPG(lbW8vM002ovPDHLkV1nWzBpUz# literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ax.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ax.imageset/Contents.json new file mode 100644 index 00000000..b5ba2c77 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ax.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ax@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ax@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ax.imageset/ax@2x.png b/Passepartout/App/macOS/Flags.xcassets/ax.imageset/ax@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f02843435cc6fddefc36facf6b9783e439f797db GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O^81Fmidi zIEHw1CZ}-3?doc5RGh-do{;|Y?1#lRjUe!_Y?ImH{@-(WKtSrWzTt+h|4AH?v(In% z)+VX<_6VcfF;kx@GaYOVUI~=I@PQ5KST#_{jJX~??<^%29kz(r_OOEIt-hZFnw}VHj zeM8N;zhAF8zGDguY+n0qDVxQIfY)yya85iFYdC$T4vk`5f6{nBk(2 W%j>7p=cfU~iNVv=&t;ucLK6Uc2a@mr literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ax.imageset/ax@3x.png b/Passepartout/App/macOS/Flags.xcassets/ax.imageset/ax@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..af32efc2b3bd91a060144d42ae4bda5efc9ae476 GIT binary patch literal 480 zcmV<60U!Q}P)EC`pwOWrNI?V#ZBwXe&Z&_)NUmwZQSRAZ2zS3Hc@vJjgtfvY z1PDGcjV8O@*qdqBM!~Y!3y-yHcgk_T*X;%X2rw+3?B4rbI|v*CS-`&t0hmu#y!!b) zjoRa&R}YPT8I#G12>`Aj0Lb<#?0>K*Hi-f)q8eI6HMEFoXc5)WBC5gnmx@HbPg;P% zTE4F(5;#~cb`eV+p3j_vNQAOD0mx_0LRtGS{nJ{FvK8owxb@C^(W=GJC|f~uNkb3A za{}RXR;2VzYiSYHp!#WC1bNx3#}lxh5?&pj{lxg@YcH}%!OgTC=&QxzZbuzUv|y&~ zptph#+iV=eo@%Mc=fR z7Eui?q8eI6HMEFoXc5)mAY91|Lj}O@s;S>$=-7b8rX6n>`Y~cUZ`G7H3 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/az.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/az.imageset/Contents.json new file mode 100644 index 00000000..467ecc6d --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/az.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "az@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "az@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/az.imageset/az@2x.png b/Passepartout/App/macOS/Flags.xcassets/az.imageset/az@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..95ef09b34c5ee558542f2bc5838c2fb51c90cfef GIT binary patch literal 490 zcmVX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0iQ`kK~zYI?bJU=8&Mp<@$Wk>HRg|vrA-L9i4ah$4yA=uoa!J5PL2)^ zf{S3cY^_7VN!pV7>$rLNyV4+J%=FbZ7&dXxbJkl z<9B?9-#hX0<6?QE{h5zDEWZ2u+`3D^&0L5x7vju?I1?Yn$BzT&p@{LI5Cp=H@OZrx zjT`J>yJqhB*k}JiqcZBvT1+mS33xE2q<8`_Sjvw0RRn|d-IET gAC@L;mP*Kp*7;|c|lYxZ^Z_YNZ5!(!bT(#HX@O*(J>~#t zEraV4pBTqJI3yZwGq&VnUAJa%$42qrE>fDhfm#3c&wJIKCf2`);QNop10$CTVj|AS zaon*{g4H!j*RErVr7d$zxdK6eojnAA&U+BE!1uQuUrfZkcmaUg!^ce}00`=&?%YPD zyFk}5@68dcuCadpa`QTI9F*%~4IKbv zi(PC-{5S8YKA0!AtC!T=EUKq_%N&(VpwcOHu7J)JpdN@wfb^f;vPe!(62Ec@Q!G(^ z^aSmF0U*}58-L-|-xQQ)XIhkf12|_-V-5B<>R|B$wT0I^+M=k*np3BL?U4$5(yiTNZ5!(!bZo4*kE25quO5RH;k>jfDkF+Pyhe`07*qoM6N<$g0!k4 ACjbBd literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ba.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ba.imageset/Contents.json new file mode 100644 index 00000000..20c2a32b --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ba.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ba@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ba@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ba.imageset/ba@2x.png b/Passepartout/App/macOS/Flags.xcassets/ba.imageset/ba@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3cff7d5ad1e2d8650f6b68881b02b899fec686a4 GIT binary patch literal 951 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 IM6N<$g6}RN0ssI2 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bb.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/bb.imageset/Contents.json new file mode 100644 index 00000000..674dc77e --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/bb.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "bb@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "bb@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/bb.imageset/bb@2x.png b/Passepartout/App/macOS/Flags.xcassets/bb.imageset/bb@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e4a4afc2e4f3d19558886e6808b411b42b9cee0f GIT binary patch literal 460 zcmV;-0WX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0f9+GK~zYI?bXdIL{S*W@$b3!GS^*=ye5ex3Y$SwRy4&HVPnC{#!IqN z7S>7)OaH*sG&@#gp(uvJV!W-cw=5=QV%)jLxYt4~W;NY0v(Wr@&*?d*Pn~mm1WijJ z1jA$y|JVt0eb5RDqr1H%_Yi>D(NZ?|;{eDKNaA~aV=vC^h}+4L&LI6> zjmw)PA1NClK#~M+35)w^iXM;V2%%PO_f-lDkpAO`G=IdW#IdvN&?hkfm$r* zAM%sBYK0P4_LCxO$l^p<)(H4dL+`IrfTX7YNzWItFKYz@yOU1<0000iIGKo$l+G=WwKWl%vJMMH4*B>Wg-hm$#JK*KHmSOYROIx4a+)XCxNb+9Iu|YlLB2c z!&sKB9Ez>CT_g|0ZSp|eCJ)4I@<4W~eBNn?H8~FQ@XighE>{}*eD4aeT zaMVXiMN%1yD;?83>RTq8+nAZYj;!$JbCRC72}XY93h_+V;z7?6S37@idESnsfE4S3 zShSe-?io(CPcSx>BfVnL^<)865vU5>eLPP#XYqYJOSCP{jr+4SHyQYSLdFv0?UA+% zr5vg8Gdh{0ETj@B5s&b8|9eeTn1f?Y^Kc`I^>U3ITL0R_lKvV^8UW>5! zca_(lk{dS!Z2so`g9(!9Jh!e#5ORtENd9ZJ#)9k#t6M+>Y+3NDk4g4dXf!vK$h4LV z;`a$IpDkfvD76vX1Yue5emG5QEQlic$1lB)oNF|gm@%1MTm{xEvPLsHm1E)0D(4#w z*|zdQPSolE{FulVV(Ud&k40;XWZTMbi2KSl{60Z@_Y8?to~bz#0UW$EMxaO#38|C? zRoS-kD`uw?F+Tp{kkb}`w@2J355#TqK-?w|#BKU-Ks1DSXD30%)WSpY lUA7KGGo}_t2wR7t{{VWOqM9RCmB;`9002ovPDHLkV1gd`JT3qL literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bd.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/bd.imageset/Contents.json new file mode 100644 index 00000000..d756d84f --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/bd.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "bd@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "bd@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/bd.imageset/bd@2x.png b/Passepartout/App/macOS/Flags.xcassets/bd.imageset/bd@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..be8ec43820718d168abb8a3773d5eb8572f2b363 GIT binary patch literal 531 zcmV+u0_^>XP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0mw;2K~zYI?bbg?n?V@I@$V&X-ZyHc#3%%tAfdFRP6`eVy0(K*6brg` zkQNtdJGZohlSOd~Zf*_=>ZXHTU4?=URTQI$S_4Vin7n^G6++;B^PVxagTM8C?zzu< z9Cs&}e7Ov~;w~dt4%{iABKMH$C^E&JWrvXqlYyK`On0z=({O;TNRYJ-g}fpf3(;)& zcvR-?iB8zA`k1#Ey)c+Q5KJdE79NFg8UblFVfA~F{+#7m7cm{a{wUFxw|J8ZV@WQK z=N<_-u()?!6H%G*bAvC3WjRGH$k@5biz`#Q>C~}KZ^1vlCgj7h{GR~`;9W+)9mtcS zO{!SEGyUiJm4zlT+!fOO`{oFM2bM#kT&emHW*B_UgcFMiq34L(OxhnJ$U7t%xmPE+IG86SC3~Vk0VbF9I;1P}ymf zTTRbuTfpmQO>935`fj)sQ}~?Jq!2YB00jkxdYYL{sFXaavmwFzry3KfCg}?gd_Dto z0iPagq~j{Xmj;75i&)vg7Ld^d-`W(`+yB9PleK~z|U?U>6;6>${DKQnWkxpP&nam}Q>X1hR=lmaQ}fw<^_+ZI8a zR!WrrLhBZ0ix$zQbz74Nq+BGnNizt7ihN~8J~QXe+U|v`FYHEC_ zRtaP|Dj{Kz^UEIHvqd@=T`Ilp!<{n}25M9EH|TsflW78lo~~HQYO;JDe6hK*;D$cq zDDdQ%&ixZQmZrpUTT-#o)4t;I`u%z&2mn2RJ2MVLV-}4Cxy=?Cg^I}}LA zl8ct$)!ee?2~V(4AWfFMF6H%x!Hp#p$WJ}_ZGTP| zBMB8@QXA`LO{K+rggQNRNW+!8tp2C*YL)rjsK{c4!e~|#aOEFv{zbbu=I==+l3LR$YfgORa1Cj!U_c{m}`Uga{ VyNLh|IJy7;002ovPDHLkV1k8aRVx4h literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/be.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/be.imageset/Contents.json new file mode 100644 index 00000000..1f7f4e05 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/be.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "be@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "be@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/be.imageset/be@2x.png b/Passepartout/App/macOS/Flags.xcassets/be.imageset/be@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a427e6cc29d4fd9666b3ce62d63b36dcc28d8398 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx;yhg( zLp(a)o?FP<;2^?skyV7tRe!m{LbhLv*i1O2EEr=a8b5chb#A(`+}%g{<%BI-3h)1J zUXs_f<-OUxr&7;6v|r{lKYVWEB&XOv!Tp5t6Twd$l`UZIg?u-y?^8G>c1eYQ0@}pj M>FVdQ&MBb@0HjMiUjP6A literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/be.imageset/be@3x.png b/Passepartout/App/macOS/Flags.xcassets/be.imageset/be@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9e02609760ab73e0559d5b0f4b73d17d54e22958 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvK2I0N zkcif|=Qr{m3J`I=C@oUqo92+jZFMZ6<;+1bNp(r(tMN>Vf7KE>%=K#6Hq@{uxEkzV zpZoKQ^UWV;zn8r+&rD{CJLMpH^g!^<2i}d_3McYOcy`Qg*+Cp3cwX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0mey0K~zYI?Uqk#6G0q?pNSEZ%|Bzold)6<_mW)quavppFf0cH9h0CC?phOF!|hix8kP5}aJ zKB(m-vSdJ%84wN-CqTI?lOze^o^6^-mdCU-&KqE#XkQn{z;V6t?6?WuDCkJL&msH5>@6UkPLWVuTr)F{Ux82*JY(je0BR0it--gX zx!1SD2N7A~$CrzowG!?=4v!|`UWZaOE1rSnB;?ChQsL?bKYME5LIoZtp{m1!bDcf0 z@34~UCDl-0T{G!Fc<=JbeiHit3Ao@=6G)+Aj5^3E!!vY{+kwVBm4(O~2*=^m@5XvC z(0*>5Dr^^F;l1(ylr#tp8{~oyiW>bYM}1{-&Jek TAMKDy00000NkvXXu0mjfd%N!p literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bf.imageset/bf@3x.png b/Passepartout/App/macOS/Flags.xcassets/bf.imageset/bf@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..48383357d4bcd5690e3006fb93b06ad5d770f9d7 GIT binary patch literal 700 zcmV;t0z>_YP)XR|w|H$K#ac*GAE-#_R9~$QB1+?^5UI4q z)yLxEEa4 z<9zr3{W$Nd#oz&8@SjVIK?X1zU5HzG8eM=awLqFpEs$oDauDBEFnU$HtN_UBVXz{q zT~+|Zihwn&+C?#lxea`qz_$_1ew9v&L6%M_)zeEIhz8c-a?^^4m?|j)Y1<9nb>+4< z1Z@MV+!TUXN0x~xoL*``bg&LphOG!_UL}q=`mDAJI?sbS_>X=j=xZzEdKUzy!Om6B z&pv~Naj?@4YIFP^@j%B(=)5QjmMJ?A->*RGGEj7uTld4t=!G@c<(&_?Irw%QaowOsFuDa!^ntg|)%M$l+wb7U9ONC2LP;UjPifGCmcDXuL9R=&&~+%iZD0UQGx8m{vdXaP1A; zdoS7tf^fDUI+py?3BsQ(S7pCs2F^TzOEZuzik$sH85KwZ3HQM31sIFM#5`3`SQ{}?qYq&w z0bxnIm+Lj+H^pL}m>1WLTJ|gW!U_%O?Xxnmk<` zLp(Z@|NQ^|KZ}j6O`xrjb@fcP8;k`8uLMe9_(0OeZSQa1o*&=OzeKs^X63w%b85Z@ zOloXASfn6Z^!)$qpz7C)YZh7W|iQKi@bmTr}$M{K5oj ox1Pnk$~p;G6kmYx1q&92m@~46gTl8Y16{-5>FVdQ&MBb@0KLdiTL1t6 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bg.imageset/bg@3x.png b/Passepartout/App/macOS/Flags.xcassets/bg.imageset/bg@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5d511c1124145c036a98befffceb573e1d44f2fd GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvI!_nJ zkcif|*Bp5p9C%zV>PE75Jm}&-vY<_Yh4n#$FGuO1X=}5TUIE#@G55Q;#_(B`<6F?f@|Jr$9r=sW^n{McSt#15mX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0uD(;K~zYI&6iJW6G0fpf4kX|lq3WbqO4IAqgLt%P_T#;LHq*hK|S~f zQNen%>P1oX;6XtIPaZ02C5R?zYhq|rN^KCY8{2|XwAA9CrY%i&+hjK$N~9DvIp}nK zuJbbUoA;gPof%1gJ@D1Dr)?d}Wc`{#@5@k%#WB)ZstXItL;j^=vfYRr3gSI-kZ|HL zk#8UIpFIJxZTMeHu^ll@=5rq?#p0BnB{0V)gh2qRVrSDnd#TP97u)>Aq)-t1T)SMjckN)+og1k6oO7@E n+P_9mrqKH`REs5H5CFdc5+laNWzjjq00000NkvXXu0mjfi}4M^ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bh.imageset/bh@3x.png b/Passepartout/App/macOS/Flags.xcassets/bh.imageset/bh@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..8ee86495e1c05ce764c6fe089fda0ba69dcea0b9 GIT binary patch literal 677 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bl.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/bl.imageset/Contents.json new file mode 100644 index 00000000..59cca760 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/bl.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "bl@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "bl@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/bl.imageset/bl@2x.png b/Passepartout/App/macOS/Flags.xcassets/bl.imageset/bl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..62d74b4234bbd0e63fcc2d2c282acfe986a5e93d GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx5M eG`?WL!Z1mKXa7E*nWjL?7(8A5T-G@yGywpH!bC~{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bl.imageset/bl@3x.png b/Passepartout/App/macOS/Flags.xcassets/bl.imageset/bl@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b94a2263d0ae4c51f921f00255def0ba318d445 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv6`n4R zArY-_Z|ZU}C5p5@v_9-|n8Rp+K~I9v#-6LZ60!a34y2WMvk9^pM)N5B2yM3Sws^|> z{N?upv-7X5<6keJBVKwdKg>M!@!q?p^B?aFG3&bgRFBu^Rh^_@a_Zyn700&k))JoR zeO-ZXVIfDabB2u5V*#o53l=TM6iu)SY2Lc2p~-xB)pRANsX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1BgjPK~zYI?Ua8^lyw}(U(dsxaCC5Rz#({airA5ep)*4yr!F>}61pPW z++4b;%O(trwZ+zQwVJI~{nJ*Ope|D{1>8!g1#?Ou$>=;mt{Vgl26w0&cffNyxV!#P zS^PL#JI?io@4uey^ZI;0uV>#M!fz#?xR<3R$%nEw@WIy&ocrk(Uat>;Uyp1=T~x@z z(u1U)wKL*$0kBFR&(RE#)X@Q=3i9aOzK6gf7{vGLhlWmfO|szFw|tT8#8kDP-8(V} z2@z-EE0@Jl{koRQqOG$mc40oTE7F8wk@c zB}|{P6c~+EN<&NZI)0Wl5*8NOkuZ23Rmk-OE*)O#Rs3Ek= z3g6ukxqW#g_6z4}R3`9_MMJCE`T)>Rq0TWkN58qsv2!;l-kZf+uO(CZy@9=XVR$O0 zFFP5hMod}kcdWn&r~fe zDgs@01~QjK;^nGoePVtNE02E;fVIA!o}wc3)zzq$ECJwp)>c9-|C}WlWQo`6%m}1w z=2CC$oBB+cSsMZ>Z~Oi0hq-&^3{I1Y;mS%>B_)2j*{{|-W!y1J^QrG}=-dd!nfx`{ z&9xI1etB82L?#4@j)VbRaceQU_Yfk=St|WO_G1@mYGwJo>%?e7(F{ICqu-&B&OZ){~#%8?m8$aWmGMn#U*Nz(qvaVFtW9w5wj>K=~C`WIls6 zR!Pe`6_V(k)f1GhahN+OJ6*u8vkqF{T+8|mJ87)=5|^=`E4gvJ-y_ZH5n5x?3<$hB z-!gsa8ZN%9!su(mBX|f!LAEE2Z56#l4?1Vif+1*!Rco?QXtFV^iNgA947wWwD8}0S z@<9`Mm}uKL(YEn_<$`u={%f9y%*+#!nfc#{{0)AcL8E^bfFu9_002ovPDHLkV1kHD B-dq3x literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bm.imageset/bm@3x.png b/Passepartout/App/macOS/Flags.xcassets/bm.imageset/bm@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..32ced602f6d69b3496db79f82b3f19c3ce6a42dc GIT binary patch literal 1525 zcmV*sFa~0qoz($s7f~X>${d6DmrKoc>E7 zYM{Prz$kal>Yv;<$0>?T%G09^k7*Z7V%c#)ooe?P7Qel(jo~epY>VtI>Py}eL#IsQ ztpzX0Gv_5*-e0wsFE%^yc(v<+*8Y946;;u6xD=b!AXwukn~zDM=4b`C2Sj-!0nn`F$2!(@~@ zG*D!Tw8^m?p4*={_T&)M+Qgvm*W*b|Wntz%22Whk-3$Q8UR5J!>k-z=63-{kWRb0z zhU8R&lM+}ye>Mx!ALgU%LL^DNAyE`W(k92Us9!U}H){z_N+2SC163_L3qRRUR_-BM z-EFsMcS%^ep-8{Ez(IX&M4vr@)oLOn`B4Oef>+h3d}D>=e_WAS9?(lhf-#yy@ymKw>*O^)kb%hBx^ zAS$xN%xS|p_QQN~-kV79mOM@-K7+HNmCq)=#IW4Ue6-Zbcl&DQ&9dYAp#5A;6!6^L3qj~wu~N+y z6t}nCIidKoJYCwFk2Yj5yY+Ck7(Li%nSQtrlf7jG~dc&PjUMx*iinCrp?PAywTgxyZB#Karo4?K~Ixu~># z5P!Dc_CSuLrQzJT5!2A24BxvK$zRZJtgF5vH2oO{AMaH&nCNc!> zmyWYtPNz>q2z9M0VP&i6?MeX#cjyriXQVn~36|nw3gq5~6c&IEf1WI(&%#VvhJ|op&z=r_{JyoUVLgdn zvx$?w(}bIo7@9ntn&vFxQ|1w56sR~`NaT`FF!#H!Lm$6hh%E+*qMRA@x+{YEGi5~i z>X~R?h9HLlQ1bJ9_EtCZo9@J-SeTSkM^sT|yIy{MBNmUw?~Ve>z2#)As>f+?^Pzr) zl(?5DIFXC{oh=MM>f)FA_fj2hCA`%2uU>xtL#*#%W^HwdEe6u^RQeyU{Z}8qgIv?mF?aK8oQ+?VN*a`UjH;1gz9>c<7Z|y{0)y6ZnE?ZG zO&U6t144+XYQ*a8dTD;|S~p8VAgZF_Kj-=V9=TPz0}^Pu0}^Pu0}^Pu0}^PGfdYRQ baVzvUX1^@s6RQmj^00006VoOIv0RI60 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 JPDHLkV1jik&S?Mu literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bo.imageset/bo@3x.png b/Passepartout/App/macOS/Flags.xcassets/bo.imageset/bo@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..22bb99dce35173d10cd16795254f82eb0cbf9221 GIT binary patch literal 679 zcmV;Y0$BZtP)kff)X=J+#f2bhqp09Uu&%pt z=fYNSC{_^B_$oleyy}OSd;<2=i@cxaWM# zIp>}c^LLKev;l^m2^g(TLIql@6HtXO;x&8`ui=Y$4PV4-w2g=nK4Y~y2PFu11-Ds; z?;Hf^4mWnv>_LEJxOw|&(@HB>?%>Z-8q1DTvEqDO7-p?xHY*&;H(%Eklq&|$UR+=~ zvr7HuUH%q!`1XCC#ewrY7@OsA!a@kOg`l*wq|~W8L)40Svd@!z8a7#($&%=)Q%?19 z@5)6wORq6wopk7nXquxcw7M_ix*B_h)8v2eBi{zyXFU*m~PD+fDj#E-QXVi++CBg+lE>5k$ z1;tN5HzlePf#L?(5u0UE%~ef{8Ta`ZRLW zfVybBs}Q9kX1|ThOR94rhBvcJti9rAF~~;OZ6;P|gW!U_%O?Xxx;$MR zLp(Z@?}*L$@%H%1$8&g?Id16c>^J6J!aU*N3g-(j%=mcW(%bP`9}PQrmngrh`}M!8 z)z|&`^eywwIP7YE_;Km+{cOHhdaPJvL6}FXeM8KyuW#<|?!V7w^53rR<40ZZ-*23^ qOGrq3VY{Tr)6=sZNjXRh1H;zo3TH#>k~RTd#o+1c=d#Wzp$P!RMpfzn literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bq.imageset/bq@3x.png b/Passepartout/App/macOS/Flags.xcassets/bq.imageset/bq@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..333a132024ce04a789f2a3adfb6fd13dc4025d8c GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvc25__ zkcif|*9>_Z0(e>;P77fQ^Vrb9z*eKc#eOE|%zIA<7G`I|i%X_Ivt#|PF1zaarn;bp zy?dj-b#OR;YtZ0vJS<=WCQ_Yp<}821t9a$EZM92_(ek5Eaj@jBx9*+sr{8@`$>#`s qwnd_;O)&#ZoNAfT5pz>n>Cb@-{-X5A%UVDuF?hQAxvXo! literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/br.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/br.imageset/Contents.json new file mode 100644 index 00000000..3eb3ddb8 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/br.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "br@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "br@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/br.imageset/br@2x.png b/Passepartout/App/macOS/Flags.xcassets/br.imageset/br@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..02e55517d532592d89a38962e20ce2d36d61e366 GIT binary patch literal 1312 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 IM6N<$f)BK}UH||9 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bs.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/bs.imageset/Contents.json new file mode 100644 index 00000000..c28f5fec --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/bs.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "bs@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "bs@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/bs.imageset/bs@2x.png b/Passepartout/App/macOS/Flags.xcassets/bs.imageset/bs@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5ce924776105c3b09f35d37a75d04849df6791b7 GIT binary patch literal 647 zcmV;20(kw2P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0z64XK~zYI#g$t~R6!hvzd2{lYMU-*v62y%6<%H{gCM9dhz!dtvNGDR z3vCynB0@Cmf)5r5L4^-K20`=?-F%Bcw3jG)lZZevwOA0Po4aQ(XL?9&!*VZYcm3W5 z<~Q@r{D=RD(uSkMUrWjgUA21@bHwU-S?}eK(NX7@yG_FP=%Fy0FC&&0XI!Mn;mFaZ z2G;9WmS%|FiHyr=3dHm%942!A9_HR1M7p13Rs=QkX(*qM(3KW~=gy!;hB72F z3szqbW?e1eu1*M=X%_j%jr@ffAl%i7S+@)8WpDaKq~IAY}FRpx*RRIA0b9rUFaX=@p~eHBY*tHC%Cfft(ES|BH^Q|J2!@grv28KQ&k4A38y-APR>X?x ztTx!Z0p7lV!~2rU%UEqB7WsK_y%kP)K-f5vOg1P4c!f@d|U? ha|CVex;YV;;uom~q7b;g_hSG6002ovPDHLkV1kfpB+CE* literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bs.imageset/bs@3x.png b/Passepartout/App/macOS/Flags.xcassets/bs.imageset/bs@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..090f7264612bb3ba08ea0028e20050004a4e50f0 GIT binary patch literal 801 zcmV++1K#|JP)%z(1e@GDZ`m%LAE^KtQ^wnt|sy)BV;{^L^7@ zRigU-gRkWsoqxPo%&>|PUU7*Dd>`FAgseNBZ=c8rueiiakBl@I0Lx{~=@~jme zArr+Wm>8e^Bo;$m>p->Lgo1+nnT2HjM6zFOFGu$cA#3XLpcNh=6A2ScOe}bTtZzUM z3?nvf%ArlCqvyN z>l@I6j}Xa?jB2kfrA#cB6vvO zH$f(|%oKrl<}B)dFQT;6j#*d*yp;oA=vBg{t{M~io3;O#r8tbrGAAPC%ylSTOJgvtDJ zzZFUEpJ}(lDL47fDl(UkpP}Z=OuKy_v!9>SM@taQv|H72c>lp}cFro2r7#A!TA}WU z-CUK+iJUwJubx5W9{btKe&l>MCE>|KXuare45t;55^h|D=Oa)QcQ+0=tVpUFUO#vD zxSfmjiX@6)v=_SDbGy11QhO$tnzjf#JNK zxG0v>TS}ptucL0?fr2&mtfHtyy-}tQp$A70J9pXiiA?BQ%_VgnX#ZIN7u%y-!6_x105#+uDu6-h-V3Crz&U~}X z`?HH=64f(+cj|PWl%gTX_Lfq37cQgk+=I1i^J^6W1t3%DnRmi&2OEVPq4thG{#JUi fNv@=KLKOZ1mXoMyLkj`?00000NkvXXu0mjf`>%Wf literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bt.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/bt.imageset/Contents.json new file mode 100644 index 00000000..59623c89 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/bt.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "bt@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "bt@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/bt.imageset/bt@2x.png b/Passepartout/App/macOS/Flags.xcassets/bt.imageset/bt@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b24dd866da0d5120220e95cbfecb2f81a2b38d5d GIT binary patch literal 1139 zcmV-(1dRKMP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1Sm;FK~zYI#nww~R8<(j@&A3zojVU^hPIZDCbm+LDj0bPMdcw6BO9Y8 zvJqVv;|3SRjSJKbE4GpV3r)}k1~G_=NfRUi5el}BjX_!jd8f!sA5%JWA9LFKE+YnHLju>G9Q+6=y zzY5VdgzuxsJf7Bs@B3uWcH$rY40Zl$IIt66IOxSfRh>ygR8>+|pFxkcA{7lOCFT4v zjQ-2S1`MLJ79iqj!qYkY`KwWe3y9O*SVR4{*O@E?z>2D<<%0;}p=lZ^WhU~RhrVYE z%8n0-*jCgHmG2}TC05b$3+qC_CE6zm-6^{Dn?;(8yx-ALH52&;JxBMq$#FIer#~=p-SEPH4_SOnC!o%s^OzigT5O)=A`8FVXrToCfewu`ZuP zxE__(xkS6ZBaBZW*)$zv-?lMJ-y1}$qZC_DvVJ8}O6=i0!kC7gSV(!n6)K~{;JPS^ zg7x!$D3>rV^$|bQeb>_W1QEs}obX|kfgGySMY`zWRUSiFDLk)&UY7-3r{X%qbKjHf zKQrOl6NZ%iCWN*OS46NXotS&K6CSs*%0(>GLe6TZ_~c5i&09md^Goy_2tSrWiI`}` zF@E{~hzZ{sOB+TICl-t0bvfAcH#4$)9YMMgJO_EI3z2L<2?Ta3%jlA|xKAv{-SiE1 zcII8{Pq-sN-3DaPN;r50F?}iVM`shZ%;s7uLuThDbhkvq)_3ryHd1PTnSmMYJn-C0 zD7`9}!sFd2~5}&&Sr{W`9X2a?65A8S*6;Ei0_}d7wsM05MzLWTljpWyF!woge zecP~t%2?^wQAncO-^H7^ifAH*diK|G-vvt=$&#@%GRBI=J{VIKP8Uq3LRXwmwsI%0=2h^C%K{rojD-}Y4HIInCVBOOXc9CI*_ zIe7+f$E^`EMq)6B`N3NlV;}(3KYCEw7NK}H$rA@_#JJ;(7(FA`huKOvZbB@#pK#Y^ z(mjVzYR0$;8Dp3oFI3-yJs;JOa1(MVNV3PR8fO3R_zS%DxLj`w#bp2h002ovPDHLk FV1hD#7uNs) literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bt.imageset/bt@3x.png b/Passepartout/App/macOS/Flags.xcassets/bt.imageset/bt@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6f6b430c548bba76a82ccd85e0bb713cefa286 GIT binary patch literal 2040 zcmVAA7#p!d zVpE&`Af>HMZ8gTUnzS*|{xE8bwn?q28WJ0oR$F^XjJEX>ib`!NU}*q@NC6pUhBLQw z-S@ToV_GOWgTpXjcz>PC+TZs+S>LzU+Ixv~*UVP|$+@gI!VVp{3J@Q&m5C_={^Y~f z5dGu!GGUb!Z1SKt0XRoNc7*VU0K)XxPv;PbfG9myN*~n6*W^YQNN0Rw?S)Y5ghv{q zLcrOc5$O<#>C}9ejHVOkZ$%_!vh|-qI=Vps2A9BwUz|`%AJkbcErD+4Xzjd-M(r?l zPtcaL3EF=`&^Uml-X*DT#}NG(vN>{B>RtIyS&Q6c0Ce&Yos23I0 z@#@{g`US+XB8sBp!<1snmMwIhcNtu?5$mB{1Q;;X2dRQjeIDj49yNtXcg<9sp#@PX z!ChH)Cx33k2Rt zbDh!Bk}{=ay#)$_z$0+3!*Fbb5F|;0V|aL>MAHfk4-b>EO!)cj=i2Y&v%Miw5s_h!^ubF{!p_%7hx(CgzfEP?8n}4_O6nAP_Kulj@=HrA zKpGtXE;LAL(0GlkRiT;8K$=sKQj%?Hr#ba}j7wMI=SrlZN2BKuiBk9rmy_rgX2*2= z-fp5y9%tXSG1E?RX=zaWBG`+dz8Rt(a92Rzk4Bi3pheFyICK=NZ7M+!;AjFbQE=rA zRFP1@B*5@ejU3cE%hu!+^iPi1o|^H1bo(baWwKdJ5+^KSn0; zm=;cdMzj_v-GV2VU>7e&h>^BaN@2U_(+mRa{9-B{D@m`|j%e?qp#-ku5JeG5lHfk~ z5Te+LT(pe%o-fhf_bveWJ+F`3#_5A3LquLL4YL&^QD|C9b7(gzuA$OANn9jNEz*`w z`1ESxB*7MfG)+-T5l0cS?;tG)cH%uegy~f#WaG3!l#(=zRR}GI?^TE@uanXHvAh8o zT8Q6uDgIC&R0oK%t;k{tP1F8+ts>m9nL_m_0J&YSP1whTLDCfJ$!wC+ozy)GbPpri zOH1?wZ2kxQ(T6a_)^zL(m&4p8F!xdhD@Uoi?dZ7zh7{PF?wzptNdXZ8Y`q5Z01bH_ zhH2tA8swjSle&E)@q!+T|9lye7&M41fIAIt;IMb~wrBa-0#IjGg&z{t3Gmt1|~c+0_Gd=*J`7){e? zT=Y4rSAUJ>g`Xv`T^j4}!@u?>MEM|N@2W=E#CN~KL`}V)0dEd9KZj*m#Bq${57Rzx zG1cAMP;p4+k=w9(_X7}H8Im+5ZJS2(^6RNAy_V3-;AAqi5|0aEz5^bGb=zn|ur19NDyHQBI#xQAh0NpK8E|caF8OJzX_WWScw;k0PY+ht9J0^c zhaMh({8UJ~Z+(>P#h=00^Cn5p0rJ1P7nvp#f;v@=T3T@;sj&d7Z7F8{GSt>PaUXx4 ze7#9xSQwH2p=-QvJw$Qo3Jlw!R+x&_f0$s#e4InO&o~5(0TM6+Va-FYz5vhOh4u1* zWBOCMdp`x6HJ+PMof>U4}qkqz|tyYdmcaGZTCmX+5HCYvQ-QZ z4(n&@vOPMs?LJqf^Jch*?O`V!f^+pK5#T>s WU@h*#rL_3~0000|gW!U_%O^81FdBNg zIEHw1Cf7)afB$iNWv~&C1%om>d-JcKpLr&S$0we6ZGGqf5Gb5EfAB+^JJaFrV{UEy z+F=had6_&gGOs`5vQaaHX)&K8I}E#6Kl%Uv|CW;D4>$$I79KfryJ_M?3-2(tw6r-v zObZwC+rJ%w3vtl>3Z#-}lXX9i+}gSw8Ou6xq^FUVc7#w~8Vy#E?2S6|_#Coc*%QUbl7 z`5BqbE`x{$iLK3Yi;LwJYAySQUz(qQHtFmUJxCPG;y;Y&WdYe ztc=dmDkl<50zajgNhbfT`>0f4rc%7Vm?3Y40;7UBD(g3!Xy$SpmiQQ%r6q#^^5cUi z$RMI2gNTL%MIvngj{q|gW!U_%O?Xx=6bp~ zhIn+oy`;!@$U(&QVzkkc2_gQo9GX@)vz`%BSec}~hUv84E@m4Em34hf7OmCyY0}{P zX#PR_pYJ^TN2)f*xGWY$n+CJ}G442{VAOo#PNnZg&r-ql9uKFTueOt~3O%9p*)lPH zUt?hL!vMa?KRX;#CO4`~f4w%Eckgu;*q=($mPQpJKqE?3Z#TH5?)@-QV$!SM`}q;JfwJPQ0}j nHbV6QHA@OVVz~ECP_&MFo`mHGb$t(@V;DSL{an^LB{Ts593D!> literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/by.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/by.imageset/Contents.json new file mode 100644 index 00000000..f7b13fc6 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/by.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "by@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "by@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/by.imageset/by@2x.png b/Passepartout/App/macOS/Flags.xcassets/by.imageset/by@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3b09bc47daeaf4279a6f7112689e1c4a8153bbfc GIT binary patch literal 717 zcmV;;0y6!HP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0)k0IK~zYI#nwMh8gT%|@#l`?4miN;i56O}(xPdNNYffa+C*ZA>7on5 z;Ns%kkZ96D-+&V_(cOup+BkGDoi(;4O(0RgKZA-Q3f6k%4)jj`guaVkpI7k7GkvLx zM53e>3Qkuz4BBMEX*>>BG>V_2qae61OsiI-%#wu5wKbUCZakitfSSvZL;wJ2HJjyZ z0|Vea9%#iPY(5|Kiwp7)M=+?BHa1XK6xjOvkzZbhFg#2g!sx}K!Q%Cz-DsepD6so{ z&46K8LP%;_v5a;;#U8`1uD-wZYYz*~M z3DWd5d5DrubFWudal5qz{pt$7l@)0DJaGs^^L+bsX$dyJAFL?iBpwID^TZ*v$?0r1 zDis(zI`D9F16B}V9~vSL(aUAVCTNZm$1bO_D-z z8q!Q_xw*V4EAvE*sNlQCB zLrd3T6a-ZF_rdi@L=gZ$*S>u>yP{E06a_V##q(GU)ntl1#Qe_xaCdTox-7%m*N18@ z2hQ^!9-(Y}`~LVCPp76J27|cX+ywu|M;!7G*X-}nUU)A700000NkvXXu0mjf-eW%5 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/by.imageset/by@3x.png b/Passepartout/App/macOS/Flags.xcassets/by.imageset/by@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..ac56a118df382db0780f20a598180a96e22d74f8 GIT binary patch literal 1456 zcmV;h1yA~kP)t*Z3*`bUMwv;i3x(zo80wMaqd{ETH z@Ze^=AP|D0Bw~DkNTLvp3K0#GXoi49vXDSEDWa1ZqrvJ1(-1bcZj_eYy3w_3*Y$dQ z!1&tpcG&0Xf8M?i|NqJV{EjgB^Ut@{Y?g@6reVD~+@R>b`^ZG2NEVCUjhYB^BO~hNmtMlLdNtOD2CNMY z^lsfsNnIVzmKKH%9%TIc@Ad91NSyBOrgGahvhg^^%1UCry;QWdp{CO)rKRNJalIQg zk)z$+AW7V_ZXN&Z*nw^3N(@dXjdxA#ci&Ne>=>r1DsCJ(Lg_;f zA(_oow6-!kJWTk)1-%^1sk&X`XsT9VF3Pw9R5Q~c$_j<9^)DZjoZ+tIUroB%wqjzW_!kEXS z4jnv*WHMn{whUWyGsA}uBN`0YA9;jt9>2=(!Mp#hC7RuCiptBG?(SyE&YgFz@OC@# z>(^PleLF?tNxd625yrhNIsWi?Ce<{`0O+0LLoA-7`K1(}r<3PBva<7;yx7|(g{!4(#-AQk1@8Kvq5lGrKpXdzN=In`0000< KMNUMnLSTaax7p+X literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bz.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/bz.imageset/Contents.json new file mode 100644 index 00000000..35c628e4 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/bz.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "bz@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "bz@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/bz.imageset/bz@2x.png b/Passepartout/App/macOS/Flags.xcassets/bz.imageset/bz@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..db05dfc960d061044d795844cbc7f217adc8a81b GIT binary patch literal 1505 zcmV<71s?i|P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1(r!fK~zYI#g}<((`6XPKfm5x+pXQzcI!s34YxW#m>W1$Ku|yk^GL)i z5)%_*f_U)<;(<|v3TiZjAl}9xf}jut$6-_yHW_ml+uCjJ9_}jby3uyM{KEue#L}S& z&!5lxJm2T@9(mvA6>7A3dk}=Xxw^JT;!>umA|m0cQi!85m1IkHNl~@RIO$}WR7}1p zmF#pi0DZ$_xO&}8gd&sHDjx4Il1w&fX1;-SD@&PPAfv!&qrz2zBh!IFW1zm@iPI&p zc~=#`whl~6H(?N^T*B71w<0q%FegjOjuTtC$uJvtz{`QQIu@Dc@j>l&Hm%r9k)wpl zGhx=eeU!jNI3ayeB0*ZUg0Eg(%#^$#(tTp~*X`xn{1WVrX$VFUsw^2!Sq~50vYLk0 zYPKDDg9mP%%J*;IM~X`R|A2@^0-rs*oc!D*4xZYDy>J%GO3K;a`VJ>MD(LBMVra0J zA3MJ0%Z9C}vom>e>3a4Z`v5m}?A}<8M11-AUN+*<@|k$#m3(|`D~~Q&N17y^eV-nn zOqj!t`q$6|lgNx|nfrqaU3)j*A3ly!l7v?$B5ef3slV~avg!W~BuOFV*$2y*tt!G{ zD<&@^pOLmUvcoa%n!bh?%v(t9kWn#wi1!P;6r>e$lPQ~&5UiTDievt2x_g{F|Il2N z^7zM5oRwAjWWP+4e5t`@bL>crwd|?=oK^OFIl1F4prA#TX=U1j4hZ|$clI#l*RNzr=>-n_ z-1@Jz;%<$_sO7yA+o%n+l5RGm)oK|V>87);f(f68iTWdCM z*dWQt$t0&{qe{{7bLwY5{X1m zDwV_}QffR>qH;9>#qIneY($!5LMD?D3WWd&N5d@8&E|p9hv_)yjSCWYYYtbnqqlY9 z9rsYxTZKdjV^HL9s`(3=y6SPcZzkl`AP5T7hEXihpRf)$QDVCdEn0Rr>_+2@kP)?V zsIvXaL5@^+u>Gmk42sWkxaBAst(c+43glKBgV8p+g$hg==eZD;GH^l9xJ*u$rP!uKrGwYsEap(_L3-L-xPRelp4ncBKN$b;!XFpPm%YwvWaH#S(=3kdffz3<-*=(uY#5J};%+{$`9C{1}1A*+%uNT*_i*%a} zncq(NhQ0VN(+XsTe4`1q0iLk{^VaU9<*bG&*UX@-XaVUy3GaTlfdQ9`*AH$a%{PK@ z-cKN1&W07Q;A+${|M8u8$AgKKKqxMLtfyLKG$j-b%&_ZOx3ZL_v#oTFw&2h^XdY}v zm!v}@&fuF{&CM0Q3#{aP_(gg`<;| z1VHk1-!Bajk&y6;{LNafDC-|4j>Z}!`Tmh{gsc0V0LK3Sd=wb$h$tE`00000NkvXX Hu0mjfpeE;| literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/bz.imageset/bz@3x.png b/Passepartout/App/macOS/Flags.xcassets/bz.imageset/bz@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..81824caa89ad2bb4a7c9265f12910d61e28bd111 GIT binary patch literal 2754 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ca.imageset/ca@3x.png b/Passepartout/App/macOS/Flags.xcassets/ca.imageset/ca@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..938af2e0f473981309d006b3908c50306b7126a6 GIT binary patch literal 705 zcmV;y0zUnTP)JQH5H5b}=kHA`lkoS65IjA*3+I(wv0fVDO41OPZZ zgiJ=uMeRbmy3}51apA=`FaU#tdOo!Fh=|C}jz~v`eIFmo!h%SpqP<7-g@}lx(<0s7 z&IGiziEM6~y8AjIA|hvJBB78yKY@TqDrGIA1|jZ!*~4L&pSNcli9kH=T4-?ltd+~b zz4| literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cc.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/cc.imageset/Contents.json new file mode 100644 index 00000000..4f10c903 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/cc.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "cc@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "cc@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/cc.imageset/cc@2x.png b/Passepartout/App/macOS/Flags.xcassets/cc.imageset/cc@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..70e652a1c252b5a82693563f76b3b0021c514542 GIT binary patch literal 650 zcmV;50(Jd~P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0zXMaK~zYI?UqeQR8bVie{ZH4N6Q>j8np}}7_G>Zz{ntNBBMn?&`#P3 zx+>aKxN=k5A_8mK2hCzIh{A~s>h(cIwJ8`2CT&pDXKEV7jLA4H4vxL|oDW`@v+xg> zd*9)lcYpVubMJc!odkg6EUyB#Wd=xU1;nVF0a;}ZB_6g3@3f^ z{CHF!n04JV-e*l^*z_ACq zo-nq@`2jm-O4*&}+!`^ekvm zbIi_S>D3g4Yw2daKPV~bsDbLD1$(IrzNc8Rs-=do3=)e&QxNVALQgaJ8{yPeDaPM( zR^GTsYO<9UgVq<>`6`&}%%~;*=+&-+t_CQ`u;e8N@wnuaWdgCBnrziOBF%Vj{CAK{ k0Q1V3AEOlzqjCo14=kaW=lMg_LjV8(07*qoM6N<$g6Zrk`~Uy| literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cc.imageset/cc@3x.png b/Passepartout/App/macOS/Flags.xcassets/cc.imageset/cc@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..738e29a84595e4995aab5e63679ce2d8aad724d6 GIT binary patch literal 1014 zcmVve0@*pe93&7}>tLew@T5g|S#4aFo6 zVvC?j3WfHqdB|h&!9p8IX-nIeLTF0ckkTX%Aqk0?=3)#rLcms=;3Wys6=maX&ARHk z_TebgsXM!~IMyNT4~Cg<=KDD3KXcCc&L}i;o#y~MP`TDln1OAr9WaZ85UY_8Vl|!{ zA$Gk7JJ&&VKCDjzUl6W(;qm}1{0~kk#BXPrkW2@hs(=F<)qDOB)D=OGA8LMw!NAHK zjYdfp?8<{%!_YZqe4Qq=Yzmy)Eh2nD_`?Sa3s89pnmXaFTxi|{8M@zbWhlVm&G5|* zcz?5ujiM1!TL4ur!{i*C=z=4yaPS)38-*8~(BXqu-Eg$nRR2|H6u3AbVSH&o#zs+S zRKxK?6}*!VH;19w3*X&`sX4GO%B@%jU%n{@ww^OvhTuwq;JkV^isp-K%3MtBLCAB# z$zAY@8(w#U(*(311 zPHYiw2ef$MiWi(ZA*vD5&>As2~MJJb}&^^bkOHW{9b3qg0DN=@8g4@GWaK%^c7&5Xk_(@gL1{Kre=PTVC*hNOaQdOX!NPPksXKi7 z^G1U3)!$G&1gH993jvszi~c;~*48ovWfx$5svJ*epwA!M*uV2%iBZ+gKZY|=UJ6LD zNV36C2E;~f8V3W=?lUF=B$TEX%VueI^ttl}nkhw*&cX<$cE5oT{Q5|)>pc=`k#N|I z3HhZTe(pDB+w?a6*j>q|bcdA8$~^7!jcHO8%tq6qm_>Fnd{zo|9@*W8rs2;qxa)&2 zx?pt1Y>TTTWQk;(v^^kSX(k+f{z_P-hFq8lL)Uox>y~!@c(B~BZfyblPyz22#<$K= zLhLpu&xQT@@J6os`(SA8>bVs^p)h>^0Pat~?O_=k#Zp259!$y+FO~|em5>l(H4;Ls kMnZ_yumd;N+6goG2Tqy^qQ-XPasU7T07*qoM6N<$f&(MkV*mgE literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cd.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/cd.imageset/Contents.json new file mode 100644 index 00000000..3f149671 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/cd.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "cd@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "cd@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/cd.imageset/cd@2x.png b/Passepartout/App/macOS/Flags.xcassets/cd.imageset/cd@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..228e8eda8d080147983684e1b47e34d1b5a2b05d GIT binary patch literal 910 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cg.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/cg.imageset/Contents.json new file mode 100644 index 00000000..3ad6e3e3 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/cg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "cg@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "cg@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/cg.imageset/cg@2x.png b/Passepartout/App/macOS/Flags.xcassets/cg.imageset/cg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0e219d6d8b4714c872f6472c0d7c2011b80160ea GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xxj(NH` zhIn)yy=u$FbP0l+XkKl!IbB literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cg.imageset/cg@3x.png b/Passepartout/App/macOS/Flags.xcassets/cg.imageset/cg@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..71e7524d5bc3b0ccf861252f66277b55772cd243 GIT binary patch literal 360 zcmV-u0hj)XP)1by&(7l(i4JTAiW{@0n#IaZ;)OQtU-E4@CE4|0p?4wcoh)|=3d012<6A} zt$#!iLqvift6JA-Ez{rZ4Ip5Ma69_+vzaTWUhF08G%BAqwP3NN)6|Oq0000|gW!U_%O?XxUVFMY zhIn))?^&h0eO6sVKamjyssvP6n z3nXV7o+$Bm6RZxJb^1f*Z?#Qlq)h^iUkQ{LWXK%y@HwevT`0!9dy`g|gs?e3bN32~ zt{d~Oub22&`?pEy+vj(=ZO4CRvcw$RFl$B3VJ+q32bL{x36KRUV`iT9_}||@o;{+? z>RD{P&K+H|?)%Fb8f@IWxI=KZTb+HSi*0*?cTUZ`ItkU+-RquRoHR8n;fmsmhBs*k zwr^f;AoLOF%9rma*sqT>sJZ7Ir_3QO0dW}vLrSQle(tgTD}df+@O1TaS?83{1OSl| BeeM7N literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ch.imageset/ch@3x.png b/Passepartout/App/macOS/Flags.xcassets/ch.imageset/ch@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..01066f88cc33dd6367414a4ceadea7ba0d71dd94 GIT binary patch literal 349 zcmV-j0iyniP)K~z|U?U*qOf<>mTpEA3WY28kM)YfCiWV@6E59n1b1_8<+|b!3K$7 z!&Gso745(Zx4l`Lo}fJ+C$FhQWbU}ISod%BS9McSQlHTx5p0kMHnb6uTEAAbgSq1h zbH;5q4HChI31IZ^$v@)*3^6=r2oInt00000NkvXXu0mjf?oEyL literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ci.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ci.imageset/Contents.json new file mode 100644 index 00000000..4ec1ef56 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ci.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ci@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ci@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ci.imageset/ci@2x.png b/Passepartout/App/macOS/Flags.xcassets/ci.imageset/ci@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..54025ba93f09fa2f984aea9ca4488d11f7aab50f GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?XxqCH(4 zLp(a)o-^caFpyw<7#{LqDd$Q?vnz>>voe~wN;XXY>-+zT!5#Da1(|bpsmONSc)!jx zf8v(CYo{-7iQ>JgD&lvbBl(EoBZYyeur;OXk; Jvd$@?2><|$J@o(p literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ci.imageset/ci@3x.png b/Passepartout/App/macOS/Flags.xcassets/ci.imageset/ci@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f1990808684496c48c95a73c9c3f19c53dc007 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv$(}Bb zArY-_&u`>yN?>q#sQy#9klWecKk1>9iC&WXW0OrBidViRIkhOR+xckUKfTK3e~(JL z{+{t-UT@Jw{l7LfZL2>8Hta5P*eUX0SF literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ck.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ck.imageset/Contents.json new file mode 100644 index 00000000..4e637127 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ck.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ck@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ck@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ck.imageset/ck@2x.png b/Passepartout/App/macOS/Flags.xcassets/ck.imageset/ck@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1543a11d5d5167d0a9e9ba6d95570d520b9ed92d GIT binary patch literal 1326 zcmV+}1=0G6P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1mj6WK~zYIwU&EKlUEqVe_y}0Kr5DuRxPj~pg16amw|#a;&e;Q2%6xA zmx#zVhI8sL(`}mB>7vFM6T`BMFr&fiM2&7{Qxu)zg-n8?a+8Y!3et*=lvb!M-5(4T zDd;-({CB?dyzl#b@8z5$Tun-S60&68P;^v_+IU=C zqz_c7|TbZp;l=lzBIS+L+|Iy$V*3ke8NyLx*o+4##{z8f*0mNqL7 zKT6^2)JQ5TH=z9$_y^QJ>r^=Hn z#Z}QMdV2Oxv0AYijRwz1cHCi7#Tw@-Tdev*@?Fu}(M`>Iv=jqqjr(+GAQxIS`WGTVNKn)rAs{U$P_z?Y4gS9vkvwY7R;W4H0i#*29FImD=h*?f8bAbHwIMvorW z%dtk|flB2@P>`CPJ3k~QCJ>d%jgXL0j)fdK^67*vsc-TyF@fgWRjhVTpzPnyBa8~(DnYakt$r>mDH#L__eg1mKGBLCQ}E;j$P++ z(S6Jlrt-k1;9PMtiSwgbwro0CSr^I6D?_h0vS-f~8X6u`TG~i)aXoQy!GwltC@Hz$ z9i~jG-F34X6p>KkFazs;xCRUb^bYs)^DD^DujpBuOco3V6OSIXQB(8WrnA#dLxTaG z&d8!glc}p~K@bG&_O8;4F!2KrLL5f<7jSWrvV3_QQmM#}9cM9{Ee?4$TPGJT+@Z1Y z3CYP*sIJyyHe1S^Ka*cVM~4-SMunG`0*htf5pHYiVElMLl9Jx)xhMtrI2VM(!4UJt z8(!#iM%vq-y^`zUp+Kc_qrUzzcDp@y&@vJp?#rc1Ylw{WdoBLhv1$qnzak>S7Z}7I zX>M-CU@%iw)`-DiekETf6RE0d=Je?@fWhk#fb#MtGBRep7B?+z8aHn~=vfb{kRd}{ z@b&e?-`^XVOmxVRN+pDc`w|u9-|JxO`vm(B$j`5!xVWA*Yu@ADy%u)wzS3)g+}vbr z-aMD4rY9sOX7wuJpk@TXU@&8`SP?}DDJd~*+LVA&=|Wc4BI4qLsjbzc(;55p(V%9e z8yhzKhFmTsB_#%lL_ndCBa?|(t(|0Mo_A<7sOQMbkjX@zJ+pNM5(Gq1=(;hf`+vjz4SvPfOWVhVUjP6A07*qoM6N<$f*IC=A^-pY literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ck.imageset/ck@3x.png b/Passepartout/App/macOS/Flags.xcassets/ck.imageset/ck@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..17f9f171b5175cbcd89ea17907fc7ae2ddaf510e GIT binary patch literal 2129 zcmV-X2(I^uP)Hp}1XHg>S|br+6fP6%LUBpKg+&QUmDL4gmtmPgK=y|Gw>NJM64iE8cI#A207twj%$COMjZG-vQg-Cv`m z0K7K0dCzTm!J$KGRr;QnNW_9ah5K1gu1vQSUOXewPJO*OFs|l$aY=QvzUO}lVp+-w znc%`nnO#f_9!n=!%$zyKE;KZr#Ka6ei3u5ME}-!0zW}hF?Jt(e207~!c6A*>Oz0Sl z_e7wrug5Mr8dG0iiQw-WJbT*&fbeL*7Uc65aC^!WiWV+puwg3+3Gb4axD*>3iyjLO z7+}nSJ#+YWQXQg@Ak1dWz$q&W*@THiMWs+$`sg{>0Aa+I@0b`!$q#sM5IU?#`g#V4Sya z=hCIMoI95X62$QVYSC)-%A!<$Kyk6&P3{*V$aQtq zKVm1eRac`ad^}Ag*49WAiXII(zkECycQrkV=?>z?YuBDRxaIzRTJGQP*?=}4&pcjN z2%n2;KOnXU4D3-r^WD2Nq@@91Go;`k4~MU@V`a|y!mGPV%Ie{({$qoS_G&R!>FigK&NN*Rr*B%O}%f##brx} zhL>J?fqnae7(3R6ma;O6)~=;CDTzTFHt~HkFE!Wy=s6 z8`BmRLCD@8NlPo}^`!ODzD6Vx5$o1XB_}7GsZ*S&I&_F!XJ=Y#YAD@x6tBIN98Ju8 zN+2Vn7zc-N_Ut)_%zFY(+1XeG2Ew~<5bySYzs1gF;6URZB_)?jF*TL;+=!3QNV2mx zvt!3Bba}bl8b6-WEn6`9bU&fmDfqp0l#-I_PDN^K8wm}K$K5@WtJx1wtXqduRu-DP zTa1oaz~yiy3m3lp)S2`Id;1sL%ODpQTh^?ZLRi>jl*++~L_&;>4RLg|?AplT!%Ij> z`6Eg@IrrDE=a#1@vRAxGUhpw4OH(;{GN;>bB_pGR@#8;a_3ERvC~UDmb&4S|G1Py! zh0Rrooc?k)CMJeY#rgS-CM9Jx!NFdXm#YX4_98gg3zbU4k|nQ@mbRYh(?@msA^?Oz zL2lF}B#@(2(wLb^Et=-)I0o!B#j+$ap~yvZ8w0ElO^l@t$5*5G61zM6Nt`&3m0y8I>3w> zqw)723xIK9E}LSrDXMPc;K4y5)zu9h;-yjv*4E~jno2P< zGh+UH53XJ<=CjYvcQgXO?@@`;8(3PJ@zqyLaCEd}$BysWz58sZwb>KQ&1J;I%wz7{ zajaRBz$c%a?$9p+*NEqsvtCS1rR?3CLTzm$(b50Zd*1v%YIO_A$u}@El5qTZHY$~d zmX@~m{yzO8a=8?D_hE#EO(rbtYx46eXlv8^d!SRKQVD8x3;Xs35gHm#YwP3qKCQLt z>eNh|HVQvKX95CTes((PLn0Az?AS6wLVSpd3TofByLX4}MRIZ;@XkAN+`L)Z>88>Z zDwUekr*CrWRvGE(g)}!muG{*2vD?`V=<;yw4kD3|wl*yag`BdoI-rlImQX0*z<~wq z-1$4q&1KK56A<9S7hk+ZV4!PzTc1v?#f!agcOQz0i6M_3J$nUgVj^YHB2R2>El5hb zPEk=+-%qWL8~ym^n@k=)tb6M4>n>JS=6HLL;M%nk?%XK{`r(Ec6O)Qgr(@#8kYBK8DW8IZiuU$CH&RvAz=;#f*|zO9EG&AyPJDcn6ct4>d9q`N?Yqy7xVa4_ zJNq7Y?o^;uD!Qy_e~LgLz{bV`u~WkI%`N5g&o83Y>NtBg zjQ#uP0T2@6!|~(G@$eW%US1iAi5aA(-sbYY<)5ovsm#MylyIUcPfz)2kr(gIFB8daWz>s=p00000NkvXX Hu0mjfClL+w literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cl.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/cl.imageset/Contents.json new file mode 100644 index 00000000..f329c863 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/cl.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "cl@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "cl@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/cl.imageset/cl@2x.png b/Passepartout/App/macOS/Flags.xcassets/cl.imageset/cl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..636adc7d17c8266cfd775bd37c7e3c0806c3367b GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O^81Fe-Su zIEHw1CZ}wO+1J(huwH|CVncK9&vW0I6Sa=4QWsj2wrEphO7p?@0@loiRlAtCJ1-NF zHvUkw@zPmEof9&dfqrcn<*aORdSPs_sf=wipDyF+kE=_KsQQ5ID_!B5|+&mv6Cqf<;SXV`Jjwhs$}czpGFA@%z2~;py-9Oa2PG zvtXz41}m44hPe-qudnAhr8rwsEVuqZLcYg*m(xvpAAX;&XWQQNm*@Y#zv(C5+n-iA zaoWs)@8^f7;#~j#K97IlmBGa3+juPKU+rgMxwiN0omUTh@BeuH@~zAMD_?QQ-Ba%g zFMSeb_$OUq*QLdr2{LQH7#v*Td;tY7DCA%eJrroNjGa{*7EU>sJHM#yYs zQBcIBZ^wr74kNZ>?4CS8Kj%a!l0vIoDrCNrVPJIR-7NBE31W$K_F(4oR!gKZIpfN1Ffu002ovPDHLkV1fbb&By=% literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cm.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/cm.imageset/Contents.json new file mode 100644 index 00000000..40a18873 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/cm.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "cm@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "cm@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/cm.imageset/cm@2x.png b/Passepartout/App/macOS/Flags.xcassets/cm.imageset/cm@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f4e504520cf6d108bbda51baab970629710a8569 GIT binary patch literal 304 zcmV-00nh%4P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0Od(UK~zYI?bNYK!$2H>@h>L1kR>F+MTqzS&O#>(BBh&)lY{Tj)i?1O z>gEfyIyu-$+85~PVglAAT+aP)2zM4G+&A6uzvIUpoX6em9Jr=O_mAtRvu%0aXSSH_ zmibjZ?lTKK9P}LAdk&)KAbJj>Hynr`EBsjfJtUhpq?6Vf5}0mGMlJEFB)e=tdW44^ zpKm_pOK5bS@r_ikA>vpfjygmkiB2Td$_!xzQ7u%@0#$o-UmhO|fwFiZl3zK=IEKaAqEdyN76_b&RPMg(k`1XOfU1KBXiP;=%Pfyri<@FK3^MO?#+xP}*T4KLyvUgWQYbs?;a z?HcNPeUW%8qq&{ht|2NrFsKUc&J;-%MW$%1=YXQUm!c|ystUua8bzu~ z?JZrTNEM@-h^31OVY2`QAS|9t&~E`x=d-0tfTgE3xr=z{#H7#R_gX$sJRHn3zAgRi z01G$rg=nGD)<_PBB5Vm_aa61gd%T&G4+9>LV)}XOBBLL(AX@!eD--`kaSbox8eYUTyohUf5!dh{uJLa~BA{mykcB}4YHE@p e;~)Vs%J={{h-X$3$=Uk=0000bQOY literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cn.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/cn.imageset/Contents.json new file mode 100644 index 00000000..ca204426 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/cn.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "cn@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "cn@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/cn.imageset/cn@2x.png b/Passepartout/App/macOS/Flags.xcassets/cn.imageset/cn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..420508ba86ee65b7f917ccabb27e8ec2408ba8c5 GIT binary patch literal 472 zcmV;}0Vn>6P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0gXvSK~zYI?UX-H+dvq`e|J|0I}U^jMH#zR2q7kfm{>ZoFz^)^I|;pPD8@kw9I*J=?)9DT=l6O2h~v+r z8weJ8SBZ@e1MQdK)Kf4JpG&JKecz_4CbwQ&3GnCIAgprq2O0Ysg6gda0T=5PT014g zTY#vKDgJDXJFa``CV`|W&<%<6DWSF;B8KuiH>kQZBB8nvF+3k3OMrstylp}`QO_%FmUJnF7bfmcYQ6_2H@#v8? z?GuS`4Emz;DE{03?~s+$3PdhQd0KPx$K!NqgvNItZ&K%-!<*97*Fw~&?HT!})~@s4 zhG5SjJjjn4eI>cyE|J{XvF6b&*;(jWEAVGx^ra*^RK#Z`D-iHRj^s&5sC;STPH5|a zHc-Ty7#iPvgloXgXgm)DI-zC)%k5x5YhF_YNLB?%Rs~2_1xQu}NLCNLt#GO>-U?*^ O00001(e+FyMy>Mcl7Xxf}(uW=fcwt_HugDEH<^2f=bKh z+yf6$j0>%9_Ni|60SJExj-Na9KG;JARVe7bFHl|&q8bK}f*-NJwm8(a_N9>eW z)ZMW;e&Hb7Vr*f1S>k_5Z@r8(0w7Gd_^KUCq0V-Jqi0TP;$|VS%gnmOsz)YdFY5i$ zl>o*M#GmhL>BexP5x42127+%d%N*RR^7CyGYiV+N2^$KRLuwB_$~OXpsa^9(6890S zCOLexfPWZy{r;wmw`)_p8qoigtWE{s-1c$q_;|Y(-rmHmN(+f=Br$EKNFnEz4_0K# z`#79z|AOT1N)nrNUqE3cWN={8OG*6SXvs%s-KX)SgVXY-4g=k2F``02aW%wlNUZbo zIW#7(kr^-+6h=v5o>9NgTWO;uQsjw1o(O^?9o0_9oPLA!lN-qzxsj}q8_62Ek*tv$ r$r`zltdSeZ8o80IVFBCo7NLV*g$u4t=xq&v00000NkvXXu0mjfiC{C- literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/co.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/co.imageset/Contents.json new file mode 100644 index 00000000..e6ead9c7 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/co.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "co@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "co@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/co.imageset/co@2x.png b/Passepartout/App/macOS/Flags.xcassets/co.imageset/co@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..37e680f8c1892b53d661c2e9c84945948aca6a16 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?XxT0LDH zLp(Z@|NNhnXnMH5O`xrjrH5zrOtveG9tl?zU!dcL)K5XuGq=m{V80@Gi0OVx#I<*q zrdw9HRXWH%N~j7iyWnzmh4Y1j3ko^9&n*AG=GlIEo)yX|c6-xPV^o)YKKtOR@VUm4 n6Rd?d-#4pexyd&1fiT0yZ&HqHoUZ5q9mL@2>gTe~DWM4fX6ICC literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/co.imageset/co@3x.png b/Passepartout/App/macOS/Flags.xcassets/co.imageset/co@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..068e4ef2bfd0b401d925b044d2741e6a764e2f3f GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvN>3NZ zkcif|*AH^GI0&#_eCPUM+Z#s%na7`#d}g<~B?ugvapZuA?_Q2N$HN9U-~DiBy!kF; zvHO<~lC}%PoilhA8nzr0kb*I0^*sI1?vcdNt7y`8VG8HT+IwC$9hFDdyLimJYy?rb f?DK9rkbWkKX}p@JkMwQ@I)cH|)z4*}Q$iB}Vp2?& literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cr.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/cr.imageset/Contents.json new file mode 100644 index 00000000..b86ea704 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/cr.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "cr@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "cr@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/cr.imageset/cr@2x.png b/Passepartout/App/macOS/Flags.xcassets/cr.imageset/cr@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ec31ed899f8c7f66f0ba867fcb1d426452b63aa3 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?XxHhH=@ zhIn))rzG6iG^?>uu_ZC#VAe9mG6oqQsrC&V92+(n81b!9{`WsUA@Rok|7RcnXXg3# zzW#H@1(&lcoG&mwzWLybzY_ns4}43M?`h4fOG>Q#*zxrE&CSd&`PkC<45v8?n=a;a zWC!8qV~Rb;t;6Mg&;P@B2&lYmKKs3Y5+;Gh88U~8{{Fh& xU;ppVbV(2QJNy2=ReqfDSdzELiba-zq5bpvQ!Q&mE(2Z9;OXk;vd$@?2>>YcYKs5> literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cr.imageset/cr@3x.png b/Passepartout/App/macOS/Flags.xcassets/cr.imageset/cr@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f2fefdbd80551156ef1ce6b0a2d706ad329ee71b GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDveoq(2 zkcif|*AH?Y4&Z4{w5;gnxh!iGm6rMb?OtvcBNshOYi|jimVKOGnkzpr{isn?Xsq(> zf3d-b|HUH#Gb6>qdF4Q^K&YyqQgIYtqO$O$>-+rkGX&Wmgm-s3->_)u1rt6V&vyCc zXFQZwl5XEn$T9oIw*5y|iynwpa(T8z=8&73O5+cpF&`NC+r-!R>s@OCI*q~8)z4*} HQ$iB}^e#~2 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cu.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/cu.imageset/Contents.json new file mode 100644 index 00000000..cd022b9a --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/cu.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "cu@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "cu@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/cu.imageset/cu@2x.png b/Passepartout/App/macOS/Flags.xcassets/cu.imageset/cu@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f259ed3fab204a9fda6dda9caa977d907baf1d31 GIT binary patch literal 766 zcmVX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0<%d(K~zYI#noL%Q(+v(@$cDoa+}gJHG8olOK~Y(Ofz2+0u96$G6LyJ zx=_@R)SIZAKta)qbXt^1NH;-^K%?#|%a@RpU0E7|8EU3v>SmkMxpTS@C13Mx^9K(c zp6BpCAN~*gkMJny%GcL{7ek&My~-}8MG@#2)jTlg@uEGQaO>w?lPDG*&X2Y6{#^nO z&3X9GjO`u-Kp{(H4nF1Mn<#So>QKpZy8~IsKIbIm-M46Ojw5mOjb|kN7t-y&L0)fJ z)6!&DU!Ux*nEPB4t9E30oUdLnsn=sKEJU7~a!W%t1OZ@n7DsI@mas5p>gz$0JO>d1 z0#@uv!^7BebFs$6FxS!H8Hjgv^_pjMU0qn?*--KI2ftFf88Q>rI!04H!y}4Go$d@ilb#oM+CJRZDl1sCKKL|9|Pd?D9;%2h(L`APA_UqXAIG#)2r~sHy^|bKPPmY~N_; zx<=90wXbwT5CGX~#a>VVvOK>bN!W67kS&(~78}+a=6YluHK9e@hX9BvDM$kY*s`;c zhKAUan!0Y0X{CmmkRoCdyLfi=Dl)>RA*$1Q-G17Z^AuPN2ITQ^W*ZyXlaaA@h2%7} zckfYj>^Ph6!+g32q=*fT_|=xhV33`yt)3n6|3>ihLu)j$x3d#fLc$h%urjI*zbT5S z^YhV^mLlkMI|kSkL`+ITYc!$^58rXXBBZx>V&WWVRy+K@_Y~!kWi%g5h6(_yn;60; zmCMD7->5~@Q4?BB-O2pv?^l)YI?JGAUgSt)a6E%>Hvbhx@f$2R*yrZd{8 z)m&~bMx3FZ$vu}p+XwE&-SPaM?-P<(Q^Fr|V1zC;qKSr7a{ef#MXScUA zR9KhoJi=gUnLws836W4F#`S`|1pPhy=G>g_OhP0r0`S=G z$mUZ!~>v>CcR&K^ua|X~FB2UfXV%2ZJ*&F;d}j+oJKjW-*Bk`mOoDE7 zgqxf7nVOooYg4MK&-e7`Q~CLZ?UoN&)*sc^>(Pk`J>9Imj@WDviL8E4Q9#oSo7#8p z#@W}0;`dwqt&?Kycf?2n3?<~EB3u_Ql6UiF#v~xYtYrqt=|nww5;Yh^QmwBGX0a|J zNjMH3#Ch%<^5*PqOjr`JRaWBc@5i=lSE}*|BlK5P-n0qV`SawDjQl4gz~mRArq~${ z9Al`aodq>7ow-b7YJ=|mvJZIR+LG=}LL_`gep%r2Pp?XOG0000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0(?nCK~zYI?UX%eQ&AMh|M$KZpUpE(YEx4S)wYO3X@`JfEsBE*I=EN| z-K404pj7JMA~?8-A`XI7SBE0q>e4DIqEv(mHZ=6Rsm(`2Ut(X zqKSh<+MsQeiV32rlSE6mh%CcC|C6w|aeG-lL*db0!BbRBY8&2DyZOE*A0^As>2uSI6vg`&w}TFj9| zEU~sMPtPWoAlSz_;qrsi;EYf*ITYCh=Y*85fH9!=;VE$Dd>YHKp9!(|RmLjc)GC`l tdKIkHhyWs1sX4`wNHs=D+D!Xj`~u!d*jnIqY!5j-x6ciLM9<)$IJs4~YmDr|MSTWg6nxsv3yV>r}?9R@- z9=6%KBD6a*p{wL~nSpuV|MUEZdEa@S8OawP`4&ki{Krv13?gvf=tS(|y3q+Z#hQ_3 zW6emjv1X*%SToXWtQol;dbTXCrhFZ%Vx+xAGk$gh1I`jDFf@H*_6}EW2dGFl~vPnd+eTnaA0- z>FQe0E3UdDfZtnT|NHl`^`;!UVfi8WSEQECSB0({mL>;%It9&MPv(RMfRw#d6xODi z_?O;6jgDH6E=u?_hft&MTGzOO(i-tMK1-c|)N`Ot;+1Bha}1PdV;Y4Mka`|UNxX6f zHhl3${ZdO=z7Bw<-k0K8bkJ9 zz$nHn1+QwXNA@mZXzMI#tRVe4&?|(d*%E06?7i6~`w7TlYdhvYk@82s7NTOUWN-(* zLoW_m3oNPND&h@)PAPW)A-rJcJE5>b`MeP6VId}BLZn|3qCC^MM)9-|lRZM5@(GbT zD1@O}N@WFWx4^vte7AsE0MBM{Z){w{-wmO=A#gi{hrs2tl*$Uykr={RNIfrIM@XE`S44d0;bjxd^P%PUL0f+=k~r9$xk1BS=Zj~>Y1$@d;gs&zW?AW-rRSRLr;#^ zN_;1fl~DidrYS7f)FoX;(-ji&JSWb@`Q+GkIwBg64gAjAPaH=A$`zS~Y=A%JA`JA- zpq3Qg__&{?WqS+!?)$XzXwmA-e(+z;^61+IJ zo4HJoSX4T|@H4 thc5%cYmRJk{x=`!6krOl&|Nhbe*yar;t(``tG)mL002ovPDHLkV1ku_>^uMf literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cw.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/cw.imageset/Contents.json new file mode 100644 index 00000000..4f8897e9 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/cw.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "cw@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "cw@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/cw.imageset/cw@2x.png b/Passepartout/App/macOS/Flags.xcassets/cw.imageset/cw@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..975bd666b3a8ff43d9b304373331fa5bcf70c164 GIT binary patch literal 410 zcmV;L0cHM)P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0Z&OpK~zYI?bbU>!%!TC@i#Y9Y7>eT3sUXWEm~0&EET^%5gc3`#KF8kmPVb3CA}iDEP26pTNdS3X8L22!{e>ATMtp=-?Pgu^!|KWjvNuG7tbL zC>0D$ucK1cnlqu3|9{B#febnSgtN<1bGE#Y1jjOtL)cae6C+V1hWao!6^Gx)A)9-^ zUiu2}TFnti%j=97Gl&JFii_PhcW~|54~1*3<0#+8UR?^ zJV8b-LJaU=Xc`UEBm>FFMF2om)g1$T<=!WrRIY)rsqvc-&pCGp|B`OdLFyeXN#g>Lod5s;07*qoM6N<$ Ef*S#=Bme*a literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cw.imageset/cw@3x.png b/Passepartout/App/macOS/Flags.xcassets/cw.imageset/cw@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..ec84960f396d8a86675753e7f15d0b8499983fff GIT binary patch literal 567 zcmV-70?7S|P))=fgJamYH zAVE4v;6YIE=0y~|=%GVVCm|5K6jIT_Lqw3VL}EXXpu0vQl+Ny~(2Y9o3^^7Kaqs5EY`Yu??f;9i z(lBk!l~kXJ(0=7C(S?q0tDz^N03Je+zjeFSU^ z0eJoP8tyZAWSwL6){m1ss}8Q1B2a{ z=^uOHmQThAy+=a%L3(a95-HN%^2wOA9obG$3vj!mjsiWO@{@(=p*)6quJZBA3LA#W zA{!d;*=q?W_ydKhb`jF(z0v>x002ovPDHLk FV1mR`2^|0c literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/cx.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/cx.imageset/Contents.json new file mode 100644 index 00000000..6074dd4c --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/cx.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "cx@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "cx@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/cx.imageset/cx@2x.png b/Passepartout/App/macOS/Flags.xcassets/cx.imageset/cx@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cd59e2b74b60c20e171e63c779486427a91787a4 GIT binary patch literal 882 zcmV-&1C9KNP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x11CvDK~zYI#g<=aQ&$|vKlfjnKh-v|YR6I*#Y(6sbAm-=IO;Y9(Ff7W zEFz341z!|=^-15xo(4WlK_4x(_@FR_(fzYiRK_M%jAHAw(Izo%li2j;=H7euur_JQ zO_w%mzHlGzJ->6#=brC5zu%EuTh3nhZ~J+N7D!Sn<)XnCvN5_c6Ytx{t~GhZ%5?S+JVd{8wnHZ>m)z6thOKk=D44CWtA!|00iERRTA*sT7wVjMCBke zdYe`W;7&@RcYTf~S1HWAAW*$knk)!;{+qZbrjRfsPPF7J2l07}mQ-VvX-gbxHo3c5 zr#omekdkTjmc}`bdi1MR9Ng1FN7wJzc5xZAkuXMlCCk3Nffh*8;jMZ4mMZVupk?-8Lfy|A9`RZFc8qOy`%|31Y8vB?H^KhioLw_SQI8 zKaKN6z^21*v({%5H)Njc&PU@PUE*>=VefK_<~qUF2AdDvg4-ztE3-81Xw7IsXYg^l z@E!_!acRX+VXB;Jo8ZT!!mFIbg_kN_gLNDWmU=&1ZW$U?_#-8AC86*`R4cR>&xsaK$My`Dv=ZytjgKiEtn+#3c67mREy9HiF z6!yWLv`qiFMmZ_?4|FERjJ7vfi-CK^3M@%*@<=OxKT4Cz~D|Y(`+Vf zX!pr{)4Q2i{cBRTU|5%UoRxVp{ba53Y1PUsO-rom>jm~X1%!fLMqW)}TF%+w zKY5A}aP`kMJWnn`^^X@$Ri(;BgD>U;h~@ck(j7x zB7sC>)E5(p7@iP)FcL%b!AOjk#Q3Z+lE&B0B?9-mTA*Q&?^;aWY>czTpJ0nW!LHf_ zTm2Ttf|Bt>b}|6xB7*OSG+N3n0xmoF0;fU~f)(Y8Ga*SbCBfqM4C&<$O)9!S{+iXb zWB0ZHJs~-C!NGxm$@70XN$)??vB6`}zB)Q}e=8<98xg#5#vo|gMJaf(FRXK=Y=3gq zMON32@!1sz6L%|rYC`b(KL*D~CAEg4&70e9oy3kBoAyXtaAZ(tZ@XNFJK$z-0*8c_3X5Myve!@pUaOC@ z&SSBs-@(ygop>7kOc9Y%@K9qp1D7T;4sJLkPD3($CrVYNV;T{q1f4<2s|(`vjB9j{ z3#5QRnc~Z46R)mNWLC2jimg72ZGMZskl>k~>{6T}a^#DRw5_XV-HuMK-HfDtA!b_a z``{D+q44xGP|v0LeCV^K^HQB1{=k622Yw!BI0Mfh2zJZKC@^Ev<_Or`nW)O;t9z zo?$n~N9^l?h+rV1VT)*Hm~t(LE)l}6__R&}zB<%OBB9vxUQb3F259h))4s2R4NGnS zFdP#g;QXaJUikDmf;CrX{bxtc_FLiBQKXhr%7KNVZP_)}G}$NRo{RJO{apQ&baY>k z>g_+_@ZT;h^9SS2_CAtVa6OKfqBraEcD1aFy=kEv zA>iWG@Qf492l={MQC%w=@^Q7Ix>h#i<7)qFB1z=pY9&Dgvb$Qz5P{56D=8vLq>@@m q5`pPb(}Awyrc^kRQj3px>;46?&j&_4fCPmA0000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0+mTbK~zYI?bcmLQ*ju_@$cErbZ_~Z+ceFWX*$%5Oe=+gGKj$52*SJW z!i&KBuDj_Xspz8UD(EJ=h%6{cO1BW5=|X9kUyF2`! z^PCU-pL5P%kR+)CIK$?qL$S$#Z}|`TIe!G=9e;-V}keXR+#l?D0G*@o9; zC9U!lpU1o6)=R-aLWr15tLehii>OW2=*pUshbXn#cwN2t zTvmCV1cBU>Hwb%|Q0j7s1ii8mF(ClyyIN#J)W)iW=i>Xs{Ges+J&!uKChEGNRG}%T zC%@$`<~GNM5fE=!1qCG+?D(hp@C@8WOv}SRGl;0$is{646ecCzGI;JNKFI<21Cnnog$L`h*ek`!UY`HFBT#GA2U3^{oe6_jEwsz4Bg zUk3p&7h5nFThM9rEU$Rzdhr0i-^=Odb1W>*@ud4cl@+xVZQp^VyoRid=<^dT!bZ-l zp>T-x^)>qJ-RN~`R9p6-)h6}!bZqE6A}U2hjmY5x$CG*Z5Bax_igNPTK)wJhCe_wW S)awTT0000DV$8-Abu!!}4CV$K1IqVDyOys~+Ee;^ zVbl?wp3@!zS$J;G`M>|)bK1V|dEZJxh(_)KBq4-Y>JWM$FLeODSP@xntcWZ&5hcK6 z+ZXt|8dTlC>_kK)%-A=F=&vb9j!PgRuS`{)adBg*N0}I4{M_64Z#7`BrsAxu$7st? zUBBcaA`)hzaUx~Y)>Pe#>2#CZ9_!nG1)RO+OsgHtOrR(@%1t{(oS%^ z1Aq7T3u@!n6_ZtQQq@Da8@h=YtSJQDHwe0KsIDw%btQT5f5K70`KA!c0{FsE+BXv<*u%U1~dJ!HT9wcZ(32GYRrXumjCQzdTu z#)T4A7F-K?UBcILLd$SM2qDHjBck={MRBseR&(v0X!^|4(=wTw@^PyEQ~LV57F;tq zoY)I1G(X6uOXoTM*%68hN;TKsi6#+Al2O7TaTK{xZ`FUwRP1b+f!KW zNM$Y<+ajy^HzGuYs~s);+27K7XHeYn_zt z*u%~4YmB*vVwQjyk4&d$Ci$uPEIqDHO13>l-(WWbL)~mEDr0-$BLGZJ`FQW>AxgII zCL!L+Trj}ku!~1`KE-{`^)UX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0aQsuK~zYI#n8V?0%07-@%NcS&{A_@?SXdi#KblJB?iKx+8O~V)4y& z`)o`^BKyQ*hv@nzvgQIX%?_E&1wLOARn_D{tZ7=6aClEj9oOFnS#^3K)_&G84Cm|g zg+RBC*PA4tzmW&ArfF3|pUu$G0dJPq6JDeYK#k2td32%<}Rf>2!g5z3InH zuJ~2N;pnKQb)7$pfZlcfCE}oC9akdoRcC&_z|GC0%9&i@TEwATt}!*W8F-z6ML>@_ zN<S(-OGLK{l0S>+SV8iuh|U!x zeMNMyAn7S$N(D)mh)ESBpCV3$6{>^{sUV4fxfLYV2Gb8~R9mL}3qSDzrQnfT4cd)r P00000NkvXXu0mjfr~K|; literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/de.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/de.imageset/Contents.json new file mode 100644 index 00000000..a6648ba1 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/de.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "de@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "de@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/de.imageset/de@2x.png b/Passepartout/App/macOS/Flags.xcassets/de.imageset/de@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8a52fd2ae061ebdccfe6d3c7f332295153a3a285 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx@;zM~ zLp(a)UfIam;K1YduzlHvOSfh_ZYYcOX1!h@@O0g^D2v}Z6GSQ}{A-qH+Q5AE$2K-~ zRu^%BScj4#2e}7ZTx=$!wh2b)D2nQtUuFSH%$4pa5q?^o``_bsu*zDMp8p&LyJxB? g>}q(ywCFdZLzCXwm;X*@0Ig>5boFyt=akR{0H_2+ng9R* literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/de.imageset/de@3x.png b/Passepartout/App/macOS/Flags.xcassets/de.imageset/de@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f8cfea2766ffd97a01c7630310052cf6fa135969 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvVow*x zkcif|*Bp5d2M90+=8L2~4fo+}T*WFNwsW~k*sY7#ZCK{b);>9rHDpqHl}meWm4mo* z2G2snmSY05Qk}kqf0`|KaiQLRv2I0^whIzY$sE0kCZ+p7&jpIk>t8N-R6q)%JZX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0k26!K~zYI#gx4-17RG1pF5{b#Wf+m8XYVm62W4S5Yokf0fVK3gu$%B zAmyLv&}jS(Vii%W603y4SEC}8&})fG`x>Nrt?Q*q@1E`6U*5}ePcA=c@BA)#dFfRz z;@C!_;p|y%Z*(dvQv&~pz^T|LBLhglXfFik1l=ARMe?+|AuwrA9l7*ClI*GTLnM#B zj>CdFWksM+XVZc@rXqQ)s8f*$l>9p#R*Iz4hR1Dg2uum)hXwU@R)_?Hkj)y7Bnfm)*f2^Zq9Zzr2;`%=E`QYFHG!0@g zSXlT2|C#|3MryBI5*lTltCl@Hg$EA%uMO>#L1g)GKjynpq6#p3M}Q7u}XKtbf#cq^!?sla!I z*ea=9l@&_(^?LfZ3MEv$&;)|*#5Vos1OF}o6&9&g1wE!kYF$B3*&<{907*qoM6N<$f%i45IgWME|^h_n0!3^G{4Lc-pTg*YII z3@!{VV%T&c;@|)=*oNp}9H40_A=c(N8>3OqT-!8v4)pLfmizH?y&s?P?#=T&-+bOT z@164W!)N_1V(Fem=CQdJ5y?aCQcnjIZKG2VRC`r+<)c7uMI|G zM=!qR(`jfnVR%@okzuxYs6OJc`UDeGcHS#VIlkTAhRI1N6d;#_ogJ8+_1&bX7s=M= zskW+a9i?$DJ2nP;dyq;&u?PnTzKR>BK|xz)Omyx(x5b|gW!U_%O?XxPI|gH zhIn))+bAyBKC7`&v89nC;nx=yW?^x4W*|8HI#pWoUFvng#k~?6rgcWC1#-E`Ht`|j zh>Ep6KWE;E=nOh@qNl)oc8dn{{$|!tnUDX!=hwCQxBJ`vvp?|Q@Wfz$Hs32eQtbwD zU%l=eJ#y@oS5MMc(a91LH*ZQx0D;{*>ti2kJ~^$jc=Z4M{ptuidF$U3GkEL&8yYy> z+#k0m?MKA}mQa~P2M&BFyx?+nh4Y1jNSKjfi_e-&LGxP;KupUbjUp^}r`b=Qv9FSLJh*)=KnJ$mq9QD4`iMf?kz`CK<78!-DQwNA^ZKmHul?7HHh(v<|ktPLEd5iL?WPQ2MJM{!N$SQwuNp=yJ@zGh= zl8{UjTgcWOa9B!ElOb#d%lf~D8+rcP-CM|TqD1l+^OY)Nxg`#7g@K-D@O1TaS?83{ F1OSS9f;s>I literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/dm.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/dm.imageset/Contents.json new file mode 100644 index 00000000..c96c4669 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/dm.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "dm@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "dm@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/dm.imageset/dm@2x.png b/Passepartout/App/macOS/Flags.xcassets/dm.imageset/dm@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..159144d1d2d0544650199c0f71248f2c158b1c08 GIT binary patch literal 881 zcmV-%1CIQOP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x113pCK~zYI?UqewR96^=pL6Hj$;@OXlW4JV#@1vEw$gY_p@@wsuB1w7 zsRpUkpM^meMXQL5N*CQI7_o&0X{9Xzp)GWw7VM&Gpiv^BF>PiM6*2yxktSvmCi8P= zGBbCMiv&xv@ZPIbvhZD=^PZPy@qOR}213ho&j)1fT^+h4e@=l>6y&^$l2j-&OHW@X#&yN&#gfa>k~@&q^9k$1nYm$D z^64LyoN7(u8`dyJyu8~VK+W8bR+kum&Eoi(5FK06+=*C@a!X}G;&Kne&GU%bx-A&p zA0jaZfucr5S)c(!b?bRJVX!jYfmAuBgrY(T%!L-QuhZbM2Z<+1I_{dnHOZO!9A`IY z&@J(}-G-xSt}O_1e!=$uR474zL!O`C&oI&Lym-Ytg9oW0B6h}oVIP}bkrV|iN&Q<| z=U?vRWaAfnb4d~|-T`2!xW^+`!ADfwF~;Uqg_f@u3{+s)cwq`}VoR^I@rY&VHIi;sT|JwCr1Y+=I( z{S@?3uAU47aPjp#_l*MYTxsO&hwE)Y#?8b(a>u4NfAgX>w&r4UoZj6nlm!$O=mLr! z#bnI|%ql^_0wq8wSUm0_cU!V#-DVE$JZPI8AN|Ykc#i0AG|?Da%hKL%M*J4Fc@MfJ zSaILaM|y@>pAUc$pGDo6PW@z%nj>4C#v|P9Bd?}4j$ZH+-<##VBOzYO|F<_YLh;Li z6vk;Ey_gF(cO_ zejs9zX~`4rg7hVwsS1VAr|1wVjDi)SOw2UVzNjoB??Rw-XbHvI(Ne00000NkvXX Hu0mjfD&?ab literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/dm.imageset/dm@3x.png b/Passepartout/App/macOS/Flags.xcassets/dm.imageset/dm@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc36d7d676834e1d73c5d8dd02e1aa65ba265d4 GIT binary patch literal 1384 zcmV-u1(*7XP)HpK*Ip>}8|L2{1?mbTgD%g!pSW-mqxdj9PVll*o7eKdA083Xci7YH% zF(7@1rP!IO671<>pa_J5*V zNLNF*kgkSqAzcm9_J|h5jys7Sa#B?+k(m~T6y$vTC5@*p;h8xP_t^2ar?pi`@T{a^ ziwEO^0{~a1$-X6F3@?m(Pmxu*m1yNwoI@X@q*QU(Z(nZPguHmtO>RizsAZDrSClkM z`sxn6S2S=b2F4PpYP|-RWEIc-u94f%#ZQCcw&b^Ek1ROt=Jlf<8cGblUfRm795ZQ~ zyw%6#Z~Pc4vA$VguyaKmr96VGIS;NhqZl9@@`59DwJE{6dmmj1#8b* zG>&|UWk)wqjT2uh6$x|I@_wA*ikricUAw9W*aRuf+H8eToX zZLeZiL9BzlNhn%{NM5h=J3i;~Bms5UN{JaNw`4Zb!H4!);J;pHnd^#?xduxoAMeu( z5+Z;)SI5&iyIE3r!^J|JOwACiIPS)3%XqQPcTkH&I2?HAElh_BV&-?_(>mFEgmqSb zR84gt%&9q1g8L;Ck7eSz=k4fPqNE%O4i1b`JuAk5-7dzT@Nj5EE?>>)pAHS={<^(s z1pufYCwco956&Eg*CCQ36p8DI0325P>(9BRAp#1&4z;-^uMGW%Xx-mwaS(xu^zK@B zF#4QiQVz6@bDBP^A; q0)^u(@lbPJa%xga)dTh%>%hM)(#b`4eL`^n0000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0c}Y{K~zYI?UlVt!$25^e@WA%X^S;htAha@6bgQ{6}mVGPHuvWnjcX1l|oL!R;AeR$xG_XNaK zhX5wQ$m;Ci)z)${`ui+@kUGn4Zp2w#fN&zQ4}IbFh#~<0A00#=0FB*7gCcLpf8&NY zaYLNAAx@emM4F%Ke^(Xhlyz`oR0jZLvL ioVX!Q+z=;C6Y>cF)o5!@c}_b30000+XeMFn)(IkzTJZG+7Aj>;=4fkyS@H?Evoe^a2 zK1DJ2Zk;b(Up*Qgck8~(mp89o3aWNmAXZe59!S^);MBOA2uJfmiqoo{Q>q956(&SC zOo(on5Zy2#x?w_e!-VL@#Ds`;XHZlCYS48%l7-TE^ae z$@HksjleeTW{0WFMQkhNhZ51ruf0}1YA+s7j(+|)5;&Hk-`&MS6511`_r8EkXSdcq zRJK(+MR93P`RDiG{fDn2*>l-(xAl*;PiL<^T2k$tm_NG-(G3%#8zw|IOo(on5Z#!V r5DO?MUmdy?U}M~=KNwX3N44@VupXPvHxv~600000NkvXXu0mjfrKS52 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/dz.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/dz.imageset/Contents.json new file mode 100644 index 00000000..431e938c --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/dz.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "dz@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "dz@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/dz.imageset/dz@2x.png b/Passepartout/App/macOS/Flags.xcassets/dz.imageset/dz@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7700ce96530fc68e9b1868c0c5da0d6984397a44 GIT binary patch literal 627 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 P00000NkvXXu0mjftLIEv literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ec.imageset/ec@3x.png b/Passepartout/App/macOS/Flags.xcassets/ec.imageset/ec@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfe0528d43e50aecca8824187a5528f1cdb1b23 GIT binary patch literal 2074 zcmV+#2<7*QP)1ksbMn<1@ZCUa!60 z`<|WQkF`u&RH2Mrw?h5?`QH1z`F-B|{oefMji7nC#Q%W=&5QOyJFy%RKWGP*OCN!} zm*%ISw-u%b{<}}j!t`}WCzkuEU|5bxrn;g35_ozb9$Hu(1MK=1sH)7|d_GP0&mtM& zm1Cf(kY5HBjnJ?Y%GZOi#3j|8?5YCY7oe{d!d?)CclIYzAOIO_A*r=3l#ZUlWYvhx z=h^`@Kvlt#4|Pp&XA8J0R~Tfn8(M!2sW507NCG62IUq>_Nd!Rv6^X2D$CwTQkXCX# zl2)Ls79=y6EFjwZ2eI z9a%XLlX05okKc>eXD6AF7)>Ua_shkGFxUIzNTni;vYCV`aev<}l-43} ze2yOF5Oe<5sf+HRF0zZ6REjqLsGAHBwThIlei!8yKY8LH=Vy=d#kIE( zBn?$i=})Ej=WvE{mx(+}26Wc2`roGtq*FHj_@^g%>#~e#W)lbU!5cV0b>SggmVHzf z?!$f8%a}L5M1X@t#qZ*F9mcVWoQ|aPw@1x1_0`(Iml-=A$Teu#7FrTcd ze_eHhC`cp{IrECJ#-|MJgc=Mu3yW}AAge)I1!umMmJJyud;v5K43a>o^s`K?`!kQf z>ZdJ}d+8)nGTF=ugA9#2sdh(*h6)xY$+AQ760^woqLak6X+p_3h1NV01TYJEm@N|V zY#gKDB4h>0CbKg$!^MSoiiJd~OQH)W+pXk6)758ehBjIC%nGUl2y#B z3`k}(0P4b-q0RtN6Z2t#)WmLFj`gI2Rd~nSDB0YHtvL4~Vh@E-JRkwuLM<#-nXnWa zKvwxref)ldAP@*!DR$*5+5q_gq^^N+JV~bP4y@+-+|YCqS-XpP?+&8IDNMx!tPVei z)|>10lMBzXk|5rYRTl&-;rN{m*r}Chs9m@BIp+HET&cqEI(~kj=?vib79P9{E07qV?D= zoWk%z&c2n+{DLExN1XWI|$UB!SP^fbi)8UOT^scJ`nOB2Pc|GwN&nbPqZi_m=7gk+8Nr zq0dx6Q4~J&i6NS|4kB8NxQflV>Zh@5evI)r1L-Oxzmasn%%tijFA+j4&Zn@&$lZ7M zbNEYV`SyV}0Df>{4_yQLcSLyFbdRobQv(8SiQQlB=gtS_NW_hFcUIARE=|KW0dGvk z=1(%AmZFLxHB6Imi4@u-#;+>u{b~^R`Y57Nqx*aj?Wfn_@~S!yUl0Z<&;=4Ic3}%g zF{ILqZ5=3Vu}IWkh@h2-lr{a8p9dcW;CltnF#WIn2tJjOy?OK|RW>0l+A1cQn8Qx~ z?CqB)O9FYfddadH5eouhfyRTjr|9%-ppAWKz+PTsYef$)#vUgd6iA{mh|0#d!7N2f zzB1K-p<*X>3lIP|f@O4iHew`3DRJDyF%sjdXA=X#Ttb@>s7GX|*tsmf1D1Sc8YnBF zc5WWS+oC&*#5XvBhoZ%{-Mr2!d}J1{8o-J`Z7@QhtOVDzZ%KYETWGyoS1F;I8BFAI zD2>b*rEFzs4!@V)H;|RqNB>7YY%&ZuN|paT?8C2r1Lj~9)mpx79{>OV07*qoM6N<$ Ef-h*wEC2ui literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ee.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ee.imageset/Contents.json new file mode 100644 index 00000000..e96a6b27 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ee.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ee@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ee@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ee.imageset/ee@2x.png b/Passepartout/App/macOS/Flags.xcassets/ee.imageset/ee@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d5c8765b4c4e43e5ff408755b79591505c55b7c5 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx8a!Pb zLp(a)UR=oAU?AXd(P_uBHWr&n8`z#*OLX$6Di(A?ed;_?Wu@sjqJ@efgJvddvX*+mCVjr2DG(JEexKnelF{r5}E*bTS`#? literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ee.imageset/ee@3x.png b/Passepartout/App/macOS/Flags.xcassets/ee.imageset/ee@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5aff2cb2369e1edc1b18bb2cb9e5ebdb047ec47e GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv22U5q zkcif|*EaGtByh9@22{l!P@Qx3WC5S`X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0Y*tgK~zYI?Ub=j0zni-?+nAbfP!Jg2!(};jiJ;pQ42pnyT;N6+~18aIxwzEi^>JLg2L^WD-`UxV&Rf zWj{@?`Gml0V?Or~>LCKJjc)UitApYW4nLnU9eqGb1w$c-2zuN>>Ewpx5%qfg-f^7Ml?Tl%xseRAMt`SZ2*S$G^dd7NX@{%2 v27^HZ0BQhe&4>RV`ETNoC~-)XI3&s+VAGL;xyoX100000NkvXXu0mjf>*KCw literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/eg.imageset/eg@3x.png b/Passepartout/App/macOS/Flags.xcassets/eg.imageset/eg@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..084665d1aa43ee54f1b13bafefcdeba48b429402 GIT binary patch literal 570 zcmV-A0>%A_P)bFfJMEKoH{k=}oO5{G>O?)_}|`SWeFnQXyr8kRkKQXSVkqB81;)?}vSvd|`BS z$o0iL%;EB-jjrV}; z&oh4UK9NkP1hPhE7S#Vb7jb)^%q|c?h%^6#h)D@ljMWK^?tQ9Jk1+1j*u95cCCEyQ z)&52Nua-%XD#q#=D((V~Kvhsd7poJbs$LatOPh{2- z)^3nxD;y9=L3QgETb%=hs`-rdKM|p7sHjVAd(J8yqfLScBnS{eol4a6E&(8h!{G<- zRo8$3a=mN)D>mkTq!cL{rAW~zMT$l#QZzP3L;X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0y;@VK~zYI#g<)2Q*ju^fBR4~XCKzcuticgrNfz4;;?yD2r?mVSh@XO|QR1VU>A0m*EZd_E}_OYitJAeqXf?Wd*b zXwsXSC=f`h>g%P!!GAmMYDzxq{JiX4zbwV$xj}w5xM%VLNsVgauN4%m7N(ndSF&eK|ibT?v_M%rZ*`%$F()cfFay;qh*e89XfzaAM4>lXLw}amghuJ^P=mi;Hosh9OaVn5h3T31=E-AVY zO_)A77^@#)cedcOqj0Mk=B%qh&P(sIwvLoQ+gW&7TQGn>$_Ub11=l<aSw flVwyH$N<1^yhw9Ly!da^00000NkvXXu0mjfWyL6e literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/eh.imageset/eh@3x.png b/Passepartout/App/macOS/Flags.xcassets/eh.imageset/eh@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..16c52ae6a5cfde9a6cfdabc39a6d9b92d8a3dfe8 GIT binary patch literal 790 zcmV+x1L^#UP)Bq2>O!mveVKSZQaNTdl-fhkcz zwUUAasi<&ckwLp~8EvA12&+Yup=2~c5Spb$WM!6FOp0ZV`nDKH@t2u9cRbwxHxjdb{c&3* z@2K9px2A!Jzp}HXwzlynt~xy2S6M&uUi)V$D`gsqfRvCR-Mcq-;=GK(9;fuB&v)(Z zYiWPJl#?MXMk?4O9X}{}eg-TO5w_#d@2q>T)=B9@^V{pa1s4nTrq; z7x1|7h$JUNT^*E`j=i^H?ckyxu00*T9vctde~`Ziy1QV0Y;ZGe-%`7GOCHa}d*FGq zFH8qV{nt*tu~~HUkS%@;ZLM#9P4rH+l8vrOk;!|XLTCyO+(m`|AKG8 U&QFK2djJ3c07*qoM6N<$f?FMIqyPW_ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/er.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/er.imageset/Contents.json new file mode 100644 index 00000000..555b3cbd --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/er.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "er@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "er@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/er.imageset/er@2x.png b/Passepartout/App/macOS/Flags.xcassets/er.imageset/er@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7297a1c50227ca2255e212175d1b6f1ea34f683e GIT binary patch literal 1176 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/es-ct.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/es-ct.imageset/Contents.json new file mode 100644 index 00000000..8db5b0ae --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/es-ct.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "es-ct@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "es-ct@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/es-ct.imageset/es-ct@2x.png b/Passepartout/App/macOS/Flags.xcassets/es-ct.imageset/es-ct@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..09abf9843976948de9830c04daf56a2e1de5cac3 GIT binary patch literal 330 zcmV-Q0k!^#P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0RKruK~zYI?UpfW0znjp|Jix7>_P%Y*T9B=-GUZ2V&MUD1AA|vckl)t zA+-ldwP{2JA%!RkqCrqH;yODvV&Mhe6!}l^@jm{aCoVtX5I`He8G6hB_t0q~pM?>u z5T3%5SbUThI#utSAVDKrx}zp+nYEwftQV1yT~VQ<=Kz|VAOPm>sM!v}#H@LFRGcT2 zO=VH1iWMYiWF>dhl>7P{_K&qSfJlj6&6yVh0C1+uM*6UpnM3&h6aN@eRrBi=EbB#7 zobM>==^21JCkTLT%JWSX<*Mj3}s?11H2S cM`zSr0gekyr{_*nVE_OC07*qoM6N<$f-CikyZ`_I literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/es-ct.imageset/es-ct@3x.png b/Passepartout/App/macOS/Flags.xcassets/es-ct.imageset/es-ct@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e18fffbe3e1ac005f4b92db86d9f926c9980ee6e GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvrJgR1 zArY-_XBcudC-Aua_psVwAtFAvYU#X%?VqK}zH%(uy;+vab=7nZ6`N0fA8dadVxO42 z@;H-2-&VW5&Jh8X>>HSrm2R(g4e@?f-7j!3gj;#h+0W1C9&EWYF(bj{i}l?-#xo{Z z3-R`Jgz+wl+^PJ~V`9dMPcH<_7yXX~N;Rw$b91p{P8KW{SllRhl0DYM;Oe1{C(U|N lGqMt0w#<3@R`yU6x71@TfzK>|b%73M@O1TaS?83{1OPxJU8n#6 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/es.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/es.imageset/Contents.json new file mode 100644 index 00000000..b70dcd3f --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/es.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "es@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "es@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/es.imageset/es@2x.png b/Passepartout/App/macOS/Flags.xcassets/es.imageset/es@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2fca4f3576045adcba9a95182442e7e20e82a6b1 GIT binary patch literal 579 zcmV-J0=)f+P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0r*KoK~zYI?bc0i58V+c{A(I716H-^IB+i7>nL=rfyb%QXqx@5akI=o3_by zgPb{GT78|4Ym$vMN$3uyZu^Rv3MqWDXcwUS!-bfjDT7#dg51CRk01kEP%mq&B^n%t z4Eo6cLJV;_9@j0K`f-40(jyd6e;4A8plX`rP6i~u>Nwve(WlSQ3>_n0qW0|-_Rt~6 z&=<(W@zu=;Qts0HqS4saXk`qPyMbHE(i`UR>?c@}OK*mRL)bp zeOF+R4ucGEQLb_Hrt2GI;-`sc1V5`mdh2N-N9QxKi!X?01_;AKt=vQ2-XYYn zNN?L5e%$B7ndcj1;wx>fR9Q`gSvFd1Z7RAdh$l`6?NrdDi_u9E)BFBGdR48hGK~z|U?U&7qTU8i`pObrU?nlx)$$TV};G|P$Dmue3PFJG~M^NmD z73@kV2;$m};C~=p_z$=c1UG_^HRAyaCrwOWVKDW%m^osV`xVv{B}xyk+NqA*ZI zywiMA@+=Qrcz)-7&pG!Mmtu$4cnpvsSn0P!Cy4Z0pi>Nk3>w2AgT^q(pdnAZV)fgh zBZ%NTf__VMg0@?0Pg6~=)xoO= zXcICcdWF^J9c&xUt*K0BJ&rB9-S*!nR1iJoF;e$2vH`z-YGVJQl1q3v1)cN<@8cP1 zn${M-xk=`_MH$O}@#3;%&t&dUPbjpK5=al$quCTQ@1%(w_`l)N2^GZhDg;|^P$(Bs zR09McKoCPoJcVvKsFsJMP0(@$YUynp_i~rjA12hEeZH~E-_;D6c!Bp;zvSohi_|J$ zKX;0jrxUx9ChBjq@X{t{Hdpvzdlp@8@Zs^#y6wMDTl0wRXaq>;O8`r;K zjktMoY*1#Swh)(MxyK?%|3|wHF$^+j41)|B!yto(4B~vhB|5=X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0%S=Q(+j!@&CEB=TIoET(uyVP!Mb+8bVA!5*7wr#KFMi z;Ds1BSK{D+35&CCx~Lmb2NR<4LP$hiBp??>sjW~h;nM4Yp3@!|Nld363@HQ8{66`9 z$@k@Zg-Z{dvr{qs1UZb?A%{d&B0rZ10J|vUiMdAX<`9yZLr7-iy%tmHLbj9jm}v!@ zyoh4|^?wkLBFB9N*%x*U7Zafy1jC(}rbxLOCb;dwr7m#VbDz@u3CoB|Ro3JouX_^6 z>Omv9$)SjQ0~W6wZ~+vY03$s;kUJ zj_n^r5=;P&s$nKJt7$9!jzdav${nPmbdD$fc4i}YOW-t6`q~ZXvAa zQKCi}@I7ZbQb8bIOh@@FH3e&&bS>^51mJS*7^AC=lqgXOcTNUd|i^fE4>xG5_LJVcOlmK=q3l;{JWw+fO zc6?|%$ny+gL-u<+Co|{w|1$GGb4GabbxMxSj}DJIKIVZ zY1cDyA>*?qx1z^FL*ZhMcE8Sa+@;PvTX>PCkxj_T!W;ac=K_05J|a_0=n<=8c-d#u zyh!_$pM8J4iBXuRvFr?od$t4cQ0@Ssn1gfUWdJl3|ID%eEjTkAoT+-B3?ZpG`wp6$ zJvMJ-*KhlY$|j~0R^}CvM?3*M<{5HKv+TON6@ZtD&NC5n0Py3ra^CIPsx^8MnnjNF zZ((FER~>)QTf+v|5Ow)&bWRmgv3dZPF@o1J&FQNTsMo!Hxt8gKRcpM8=4StLxPo=7 zLOkl}QRgBFGq0@umE(g|h$!qU{fW`2ljjOs7>u~dvq*d&yr1UadY7Px!(_KrYyBC*fjw68@nn%ky+W$D4Jw4Rrw-X3^ss7~+g3(($ zTPT*Tiv(yCv1cxPbNeyjU9O%lw}7wHC#cp_iqAWANiI^cK*H} z0IT69v3Vms+YV4_zoyOLHk!BJ#bcILO~CILE#__HQBbnkZn7=$EK@hlE?*Kv8qN6D%&l8VTCfvxPlRL|zyTeQbK z!;uZ2YmHunA$lUNd68E+O~_#8!^~P<>v%z(&kz@mAYD=cT~YyFMWSiuFs`pd=-28X zNdCKYIWz+N;MvH*(mhIV6B8Y{mq6eSx{E9qE9O@>Es|=aMN*BlNUE`7L=1=wFLx1o@E@-i VMQ2$iXaxWO002ovPDHLkV1g(%^Vt9Z literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/eu.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/eu.imageset/Contents.json new file mode 100644 index 00000000..70ec8ab9 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/eu.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "eu@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "eu@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/eu.imageset/eu@2x.png b/Passepartout/App/macOS/Flags.xcassets/eu.imageset/eu@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e747620e9f43a48db46b43bdeaad18437ad00a02 GIT binary patch literal 661 zcmV;G0&4wX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0!m3lK~zYI?UqkS6j2<JM_GeAWLAY0|zO|TFyciP|Jx;oFM+mUkTb$O0#4B8A_ z9Vc9~fs{J;E=_X(@++j&3D;~8yEaZ^(Dn@C`9z|}mx*;vF!K5$02dMuD{GFUGtfCf za=C#8JLoB|rrN%TbcY|VkE4eR6pI2`(kV*ui^ne{LUZx^CAoZ{5~Cos_H7BLn2it7 z9i1bW4^VLYzd-;LrJ&&W$>jrdN9UN05781%scfP4Myzx_K3%e&uU1M5u%55Rr%SAK zy^>$~YW7%aR}%>@?|28**lj^tLn}-vZA3&5+9n z_>?wDrW(k8SAQb_ng;K`p5*Q4Q^?XkYo6b>w>G7Z7w^t{0w~K`HL+GrC9m?Awe#!; z&mdl6lt7xz3}b!6^ma@sC+_W-VythNW;3JYS887&T$&7c20d*vSc7qz>g)=n5H0{sbvD*uoSwEB7PAIc##Elj zo~Q59n!$W3#DZOm5H2t8KIQrCCkWxPVAnFA3bC|icunhl`c8g4&6P(F0FY8c*CcwC vR;j$aw&x&Qb>ngWZc_mN(XZkG$X5LXH6YL{K^@LT00000NkvXXu0mjfyJ9S( literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/eu.imageset/eu@3x.png b/Passepartout/App/macOS/Flags.xcassets/eu.imageset/eu@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1e13b0dd0660cd7ad329c3c218443c75118f5c2e GIT binary patch literal 956 zcmV;t14I0YP))C1cOFj5P!w^ zW@HSQ;=&J27EE}re*lmGGrDCiP8n)uA}@U52>8f~}scK5cv zfZKG0ExqR+-9q|#bMH-_=leY0oO624sf$P3`nV5Jaq-k*Hz5P}VmBa*l98oG$w;w; zS48WWO?pX3jm6e#WdXneKUOV=6mc2$MAbH z9O`al)>It#AjQb6sc>Ov11p#P!{yN$;we7>rs?L=Xw971c*;+IEKEYz_$sg4tk`04r1JI)U*_MfhKgzIUa^H*A_z^bfTnZy^$uR#{0lYJlN|VH zFS;o|r4j;9!kZ_|ha&8WmcaL|PLnp4YmgVQGpWyhf~oPE8bQh?)RFBU@LGqq?)g zMdw3xXW6=XTqsxJftTK~lhE+kkDPA!lxH_xW$dpievb!*3g68WHKVld{)7WN`k6|W z^Xs3hY~|Y?k#kqJ5UQGF+uAV(Z>+PMJ}-ke*75k-F>0$OId^4??R?umH(Hs&^Q|pZ zcvIwZF53m?BbRgW#@PlEx(}_)AT{f;l`m~)Uu;SjD}d%FFUsn}v6hgLfTq)Pu#NUT zXXtF|!mEg1lDvvRXHysLd(O~vu#JGG3+V_SQ7(^!Naz~pqY=kPlnYlklGMEn42S;z zBg&fPQ;grLWKHE1<5QKu?dxkMTb!xFSWCmw6hU~6SOqN;04H|!6rEofYiWp@07*AQ zzb8X?a|bU!@-tO|X_`7;%}=-GfoTA4CCh=^Yocraht${o#HwJN#*SuYGWPb2dm+Wh zOvb~&a4m+R@XgTryov3hVOpN)Bb$TPZ=dFeky><9|gW!U_%O?Xx_ItWG zhIn))|M~y_e-;~Cn*f{5f}&S(ZGElo8&2iE?N9o!DeUO-xe^;@bp{EqV0Dvi;)7wf zUS|p0&(rVO7yjJHWaoOn{$JvckFWW|Eam*n*uun4{YhS_{=4Dn@BaHb@9qC9+@7F+ zzdrB@2OH3qeET|M{#h#|OF670O!yKXK1ukieByLt_{Hz@_e<9O`PCiTC$+P!yZNiW xvf=+3XF&h} literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/fi.imageset/fi@3x.png b/Passepartout/App/macOS/Flags.xcassets/fi.imageset/fi@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9ab2a0405cd6314df90c7d95439ea52513db4a GIT binary patch literal 318 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 TzXOia00000NkvXXu0mjff;P&h literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/fm.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/fm.imageset/Contents.json new file mode 100644 index 00000000..4f6defce --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/fm.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "fm@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "fm@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/fm.imageset/fm@2x.png b/Passepartout/App/macOS/Flags.xcassets/fm.imageset/fm@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2a4a7aad89506339ad3c1ef5ad9fc9a7f2e4bd36 GIT binary patch literal 556 zcmV+{0@MA8P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0pUqRK~zYI&6Z0`8&MdBpP9_W;3Q2GFDOP0r7cPu6c;KY6a>MgmyOVM z3w7VW(iXZcU6mFWVxgPrq8P!2ctPEGs|MpG29q>n#)*p(LBULNPHTKuXL05|&wS^5 zKaTSH{mK^wWsJ(|r&?ivD@lXsE(MQU{(qz$p0#-C4Ev-(G|>4w;LT8opieI! zB$>AO_+yXF_#dJhNg}OYG*{`-P*sJlM-TY5cFO*-$%pU1i_RIxtC?9z5Zy=uP)a*Sv(NmXR$Fw4YH zGjE5(9GsrZSc!uK42_pB8p-BtOv`4xzk%8!bHYi&SCdFvyqn&o`-vZqt}?rt5QdNf uDQI!)484p&_uoLwoQ)~|FuT&diSH#sf{#jb<@f0T0000fKr6E^$wyO$m<TT}PRBXW5MX?E zL4>3jBUYhEPhWy31GA;y`roDKdOU_<*&-yx_Q>8kKhNH!Fw6pnnu5r(gl!jvXbCeC z398(CHp%m$6aX(jWT*{mjLwKDEn!Bc(-zZdt8_guk`W~ZYz)M|kN?+5B&dprV+CQq zf=8BI-Q(Iw$LToAG7(K#ds09EP589M47az$c=0~Xn@<_$jny?A)kRf6C06C7_Ul3LoA_LIjj32h z+9;4SmjbQ{d#SDR5(zl#Nk>M;W)`^LKS}3<5ddBdXP8JXaH(|*lDks=DeWyWlJoh} zNucY|D0ll3e4280{CCwOnj-UdG|TM=pRw&C0o{XFl`&k@^3R^z{d9sHYp15Cxq?png8qYB_zO+sB>mGXg5+bBZ2;cqo52f&XJ)&jA8yT50g!RR8{>VTq oidinM;Gdc73KZY3cM#>^3vKo8Jpu1DSpWb407*qoM6N<$f`tN?%m4rY literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/fo.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/fo.imageset/Contents.json new file mode 100644 index 00000000..fd4e7136 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/fo.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "fo@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "fo@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/fo.imageset/fo@2x.png b/Passepartout/App/macOS/Flags.xcassets/fo.imageset/fo@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd58b6ba9530ea198cc57c84e741044561e76b21 GIT binary patch literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O^81FnW8s zIEHw1Cja^W|GyR+TU!7dlY?S`X7l^zyF54T{frENK;(p-yIj+LEaf8@f8B zmIW~PSh2{$FppIGhB>>wb$!2lJ)TAM-;b~C&ToF+&gZH2vtM{aFh}RiAD!CM`daJn z6i?S-{x-Mr)Q0zGg1clNC8#VtYH{2Cd+(pO!H14yJox{=x$*sfe>Na!yWVq$$6g{* zql|@_nfb6Y=T?0knf?2XPXGJuu_^81|9DA>f5As(dEVF6CnxcSg}Ky&2T leH+bQ36vPXaE1&ML+Ohc^}lAPbb$fQ;OXk;vd$@?2>=kfsuutN literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/fo.imageset/fo@3x.png b/Passepartout/App/macOS/Flags.xcassets/fo.imageset/fo@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..28b382af9f4ef6d1fc92af72944e487110d48bd9 GIT binary patch literal 469 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2rPgj9s2C zjv*1PZ)fiJb_$eeyI=f%r{r~k!V3%Kr|4b_()H`j6J%j^b*^`Cu6N0f*4=s~tk}iz zMHsKA^JK^7wr}1O6?Sr&@BMC~YN2t*e{%DjbnEAjtIvPud4BJqfuf5Li{ATB2k$;^ zf3f82y8JycGwXkc=5;mSSe9CFcCT$z<&u=(2Mj_}+;+cHn5)Uy>whL<=d(J`&&qQ( zTie=80yb-A{IzGP%Wi$XQ&w8|q%@yhKd`z0$I=g9>|C|l{^_zPIp@b4Hvofz^}_b!7vhVfvL3GNo*)K{Ck9VfKbLh*2~7ZI Cbkv{# literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/fr.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/fr.imageset/Contents.json new file mode 100644 index 00000000..e8a2d126 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/fr.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "fr@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "fr@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/fr.imageset/fr@2x.png b/Passepartout/App/macOS/Flags.xcassets/fr.imageset/fr@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..62d74b4234bbd0e63fcc2d2c282acfe986a5e93d GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx5M eG`?WL!Z1mKXa7E*nWjL?7(8A5T-G@yGywpH!bC~{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/fr.imageset/fr@3x.png b/Passepartout/App/macOS/Flags.xcassets/fr.imageset/fr@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b94a2263d0ae4c51f921f00255def0ba318d445 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv6`n4R zArY-_Z|ZU}C5p5@v_9-|n8Rp+K~I9v#-6LZ60!a34y2WMvk9^pM)N5B2yM3Sws^|> z{N?upv-7X5<6keJBVKwdKg>M!@!q?p^B?aFG3&bgRFBu^Rh^_@a_Zyn700&k))JoR zeO-ZXVIfDabB2u5V*#o53l=TM6iu)SY2Lc2p~-xB)pRANs|gW!U_%O?Xxnmt_{ zLp(Z@&)hii;l~|zHpwwHK8IF2#5&=7=0}gAz3{&tC8f?3?TS vg{{NndJuxMuO;VJxRtNpwef*kg9%z4&q?pt#K=p+VDS3j3^P6|gW!U_%O?Xxrg*wI zhIn))|M~y_e-;~Cn*f{9fl9?tk$n$$-+m%-_`rb!8)kLJ%)P?4n9q?N8SAW1*PrzB z^E>8Hp6Yv+oi^?qTqg|fed??F^Yn(M|D{}TIlG{cqq|}MZ(+IU;!TU5 xxjs)3+2>NJSJ@{ZQgO!O7LNlnvaujG!>MxR(w#r|76IMI;OXk;vd$@?2>=M5RU7~S literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gb-eng.imageset/gb-eng@3x.png b/Passepartout/App/macOS/Flags.xcassets/gb-eng.imageset/gb-eng@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f8537799f222b13b205848e3189d17d734601011 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv>7Fi* zArY-_Z*JslFc4{Z*d1~6B~Mptt3{Kv#VY9)+#1s!@vZw1qww~!@}2Ny6%W;YJ(^~& zEhy*>mXFS#{`1QX{TVYWdF)oH?Xt7ke!T2N%(8zDia8>O+~9=T%n2K&Z#`}LFZ<-2 z4yPL$ExmH`AQH@k5-P%zm~YsyiPwt%X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0$xc(K~zYI?UubuTTvK?pTyjJ*0i;W7cG7ucGIB_1+{-c?I6W28HA3~ z7QsO@I%Mb#f`U+5bk9=BR_xkE8cJ0v3bkUZq(N$~ny4`vV{%W2QYcQ|b9M6vXFKo1 zb6(zaI3SsMh%A8kf6YTgmS>kO{Fky5N{Us=C5UXbd-?sqZCS)2Te$i3euwMy2wStA za?wu8U!ZjJ)r8Jc)aY_jc*mzZhQ@1T#X*Q)oy%8CqDrp!<3$p zrjJ_-o@XPEjD~jXq5zwp$d6Bck>yE?2oU=(-q5o89J|B8N>3k(WH$h8W;RELh8mxQ zLN9GL+g>pi>+l4FT?ZZy`PEhKHaByePJd8Bq0hkWnVFf_nx-W$EV2M`py#3mu4t5& z;b8z$b921!>!WIapPr2k6sHq_m1vaW$cULU#!V0Fv8It;Tm-<#W@$<$snK=5&&~p{ zv%Jjl*qB+Y`CC(w&y$**1fZBoaU-9n;Bc@Pivf@vAIFi)UA;)z=c9gL;IEXb;uV76 z$q8y_CjbqDgOvULs~7Q&j#Ay$20(pxHyMuyy|R*f{rvz0TU+sk!=^6mMS>#w2ai!B%5x^z<&@L<2BIk20az1|mE%M=CTM!ik P00000NkvXXu0mjf07E!B literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gb-nir.imageset/gb-nir@3x.png b/Passepartout/App/macOS/Flags.xcassets/gb-nir.imageset/gb-nir@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..31a7955e515e2c85915a344344d7b6ea75b3593c GIT binary patch literal 1095 zcmV-N1i1T&P)CMHM|5bPD{jW#B2LNAGJS->=eR1nfwqy<|Hl%K!?yTG2^J}4vWuKW`(+|6@{dU4XHN32JtrFd5<=5=pq_iYOBRyn1 z6sQN4=+DF79Rs$uk=XL0F_CikwY_dYVQEodXrPhJ_?{FyjF^8_#FA!nO*f*ti@u8G zyFT^3pyAHd3E1KYLtuMV$3LqwM^1*N^=C}n;Ia&+6!k+_uiY*>YEFx%>i*z;(FdX*x@0h=B}8j7$?mEX z2q9QnSRnh!^Zzwdo*>6xcD!2cQeBIp)T)xcP_4Vu8BZGr@R#rgQ zF_O>bz=2Db@PtCen_7w|GVhFBzs~QW(7L9a*;(?Yr+H~+2BGT=+`5(SdwlmU;>Hcr z@TM8DB@#ToaDiAP0zf1j#y>VjLf453!7n{MEIct1TUui5{CVt}W)|MusHG@tM`V6t z0#72rF2f+(Fvx%KfSu*#e|_0Zw0TB!r<0c(8*yi50TdVG(redP7$3)?DENztxOes}c1?Sjx_GhK>2&(dOo&p{4_)^_47atVYptQSHu2+s zvDQ+6$(EM%bGW5N>XnU@GXAMNp%9Pm++kG+?46x5QF4t~fXU`&5CXT5djzB!0kF5X z%SHgt!H8X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x12IWNK~zYI%~xMYQ&AlL&hF;crm5F~MkppYoy1s8phS5+sDQ(9rTl4HlNETbQDll%-R5b86e%=|N}P?$xN~v?R z-e^YAQ!QQ%>GzaGc7hVmuBs5Aknn1RTQUFfk%_&W3zPyiZ>CVuIu47K$JH%J7=r5D zaFm}81tI+U?^TP5X=Sp~j)eF`hO#n8h6G5D@Wq+90CedVu()jTh(xfz6zwI6$WILv zB%zt)ko$0`lbMSwIM>ua6GJI*Jkk%usr#^>6oqL)82N6**Iz4ck;qO^qN6McQ9*KE zjZ)yjyJ_Ut595cy^ofDGD9=g}(=)n=zHttju`Il$jKdQPE=)I{%nDW4u zB!c~==qW#n+c{wn32332Y_XVF}4TX>KdB*XW)rc87dYXrAbg7Qt$}a zOQAQKoy%Gt5dg4Kz#XYXWL=7eE79+xVj0wZz* zjELZ6NdmIs1NNSXSVT~j6Nb*RL#S#wz3JKau5^+C25)x)>(hl!%)!?aXYy(go z>a!EqY=0sdDi)fGWI+;?0<~|aak6FrC+-g5PTK^m{2K+*BYg4kR*Flh1nq0fik%K9 zcL$)rx6Ze(r&$5)E~^|)WEWYn2@kVsJ!`}w60^&!aDYv!fvF{A#*|NxyA37|C+z@HN%e- SmyU`60000jrzN^U}9GGM-A#vF4RD8Lj#7^^pEew5{<^9y0S@8ql zb31v_=B0M4Ly?;*MrS%lh|MPvTLcqKX=CYWm z5@IwENtSc|&uJ0@u&J{$JY~E&Rqnn9nh7RZz1K&~7y~FuE@35|V-z zt7U`U@|_NgkpM!GDBg|%dc*ny2t}gQ+XHE<=9;>}rglmGomP00000NkvXXu0mjfIk0_g literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gb-wls.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/gb-wls.imageset/Contents.json new file mode 100644 index 00000000..432f48ff --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/gb-wls.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "gb-wls@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "gb-wls@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/gb-wls.imageset/gb-wls@2x.png b/Passepartout/App/macOS/Flags.xcassets/gb-wls.imageset/gb-wls@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bcd336f045496a7a6d027ccf2d380e8272917b00 GIT binary patch literal 1502 zcmV<41tI#0P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1(QicK~zYI?Uq|?RL2>|e=~E=o?S2N3pU0n#>QDLxfn0BiIOyzhRZ_< zN~A^>X%&S^%|&WdwMkJPLSIU0(}%VX=}i?hga9fMRsy7<35k^0R7na212(q63$|0+ z*j``u=DnRg=S&|!Zd_w4eWI26f1R1{`_1?NG~WoVbqmnU%~gxM$pF*(-v&v>#^zm5 zjmAhPQ~yy+&d89IEN%^w{Cz|I$F zKhQ!+xSpnU4}Niw*p+^&!^;?M{Ts1A{E6XcFJ5|zv?*yAN|N+!BFA>mf*9}aq2v2M zCV2W1HPw}L9Xvwv)On_kwGsZw3xq!hak=$lmOp&|jPtXsvHJ%(vEfNNPM*SiwwZLz zLiC1vsFi*KLLvkV|9T&pcw+iYbk8B$H*O_(`VtxKGBh&G z;4o8rkIbsbERfm_53u+<%~ZPrUw0p+Ih)M8f2BVlh`Ko{g^4?!ATv6K=enHx;ZC|< z*ol$Jlh6)DG!@byr5!%=@?5R2;_|6>0Qy_rVd%x5lTD@Px5jlG(y?*I#>ZIu{8obH zWw4|gqwW^^o_?7)5E2TvaV1qN!wkIr0qH$&Q6o(TyaE9s2?+xM)JZ?ZHLGYmwj0B5 z(Ra3!^o1TWRUrb|?EE0gFgUmEr;yIj+7)H!&7AY1~3xmUiT$yKJRU9@7mXa5KuF2JCx6F4;1`mG(j+Jp00J0T93nb4LS{HdGL^*G z{tVeff}mlrxbe0b5VI-*5L$Z&iyeU>uQ85Bdnq{|Wn61a1pjagsQrg2ym|mpEHbHG zG#WpWm{+7yny{#X+g^GGtE?2yRD9``ZNxwLm=e=MmWF280$}XwJvva~3$;!6$s2Fi zR#gR-BwpW_Yu{Me;T>tKUIw>&Xe=SAkOsMtN#bZM1O^Zg21V`Bp#1c@c?zQ=SlfPy zjV5%xO69;7f@$x@>DFAzhG|&IV{(*@VmbK_8R4NCA&tFHfzsaDcG# zbE(`Vn7h{TVHKeDPWZw009R@>i4usHKt^dI7abaVJW`fsaOn-FO8308=Jm%+0+|B8 zZ8q8Ys~k;JCB!X{6D#4=SKxG{gx|kXpl-+`t{ozSif_DU^T`^6Pw!FFaenl(6nc^3 z%<8$*%?pyMRQ%>!7EMuyWl6>MXBEK&w63%81fT>jzGU&}M@7E=UYpOqb2=CIH9Q!fW5QC@hdveOAPB;CuV>+~S%9U6XLXOWBx9a?y>e zazl`jdXqD2Y%YA&M_WWvC^Koi;82trfaqNT4(8!v#78!y5FRw0wJD!)7+v6Fyx!z| zW07-rEBeAFMFXnFT`ES4bArrxM{c72|9PIJ{~C~g0{it+@K`Sk;s5{u07*qoM6N<$ Eg6|H`r~m)} literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gb-wls.imageset/gb-wls@3x.png b/Passepartout/App/macOS/Flags.xcassets/gb-wls.imageset/gb-wls@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..04ac076023a4ca2632e7091987fbda5e6fc621a8 GIT binary patch literal 2773 zcmV;`3M%!9P)^f4kr1T%>b!Ig%_{mLkh?WWWyCu0jnoBr$|I zHMe9;E~T`cTs%PABtSyaKyPV6(Gx z;C$gdA@4SvcOmKN)H(GZ=|B+orXq@%dlT`SdR^moDMj`|kO_2~kQhHaJL8Ss4KBFElXp$QGRD zqx6pqQ>87QsVnEomO)DTMiAOV0+rvpn-w3q;*5h0wYIVEE8m9K_p@BuAS5F%y^3cU z4E}m2L%)2P@{U0&@4SV&d%tp;eS5T4DK9^*?TqJ0{pPPzT3(J?vjV5RoBYy6 z9N)7a_mO8AUR}eorArC_dI9eQqR`Y zw)q~?Jp-h=`zb0aqJ8yJs%nG;#H6B$Wj7{;7@&nTp@s)FkO z{5N#nN{ZgUjF4?14T)^;rTyuxxSoqBh_lz9WJ(9*36s!hlHup;XMK!y_OS2z&5S?w zOEO9^p?y+Xq0!VB5iBGpv`>4GW}iPrlRw4Ynj*~7#B4-Hk9Bk8b9az#?_%0$|0SE-=(pj6n{VO34YzUv%~~T0fc>RS)PCxk*}g5e-3yH^ z_-HhmPFg84bwd)`gTJb&^reC?_itMr|nIZm8OqM6OE!VT+5O(dCquAZ1M z$Y{m14#*J(l@I>|W^N7uDhP0bfQXO`DHk7&i2z_)2c&g?Ap{ALoqco7g+%k>OdKEL z;B}jcxAh_bR|}t5==Ue&oR? zhz}=e3sU4ulOg2+(0%891T!alYIu|>eDZ}!2F0lIkO&lD%zV>Y&F03j=0hl@7%8zmAC(qIK>BpD4(1ijZ8PTB2FX$8{O7(CaPx_5;6=@KvC0CMtb@vs>mKfeTUkp z=ov*yn_lIRFHHKCOI#QjfBkJ@o+d5~@^!$p4j9(nEO7yhDUV6vQzk?BS}}IhdX_A& zq&ObK7Lvr$N-k*l3CDl)8e>DlBnQW!dla*3@&8UprlXg%)I_|1k-Z0Ig-kWP!H{w> z5f})Dl}oJ=#YCcAk8z+|WhfLD5=aOO56y)3sghv;jw_dg{xl&Wx$vQ%F|MB>M;Iif z(?zWI}96(V?M-DxL#{*cc<{?Or-8qGbggm^J;ns3|} z2TOAGwhZ?_m)&u8`AK5JphAX;3xiITA&Mj*n|!}@Tq29JI##p557 zB!hr{-T z$S#pmY10~{7*-x@%@`3O+2c>LNZQy4dX+<&w3*ZaHj)$p%VdPGkfgMtM`ef!gTzcU zUMqC?@wEoKFOMupz;9u2Q^nu^jx?P3$-`=JvB{f@13vw>NlqXzgkVzp#DvM9atX~4 zI-z|$G=thDjUpi|N~O(^^2ik?Nga?cO)8BrFP1xOxeOL}cvKU{2S&9|nt<@M;*G+e=B};g7cvJ%%1kJV>SBxueLaKeKAXh775+(0s>JXVdH6m(?BO)6Sf zSo2X__{D1bRS{m=ox;+B=hs=dNryYPYRY7Y9Fa}%d}*;eoZ{!J1W$h4W>dY(mv_g2 z>@oz%^CaaR9_^PH^jF*TSKDOE%xq~M8Fab(5r;^p$Ii=bMq(gcg|g3nnO#ss01yx! z^Z9k1V9#Y?KDsNQx;vo44D(M{IDDeV=Jp#L9{qA2yVqJcc?O;3f}CE5#E6=?fB0yv zxn+;Z2lhE627Fqp4FdaQGWfX$i~4;oXjimVoBZaQ2-=uGS?!vjv`}h!=QiLb6C5V&A>b`ilOU0z*2OBi?8?z*~d@&AEP`h)A&G%1m z`SuI|nOsTzdYiGBz!H+A4tQ%hJopz8espt~=>n7Mw@ee7I$1@pZOj iC9>2u8i!I6Z|#iJ%=GFzhTEY9%6dY`7NPp%jH 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ge.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ge.imageset/Contents.json new file mode 100644 index 00000000..ca3dbb2f --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ge.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ge@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ge@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ge.imageset/ge@2x.png b/Passepartout/App/macOS/Flags.xcassets/ge.imageset/ge@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..80960fc537d19890b3025d188cad3811ac8e4ea3 GIT binary patch literal 330 zcmV-Q0k!^#P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0RKruK~zYI?UpeL!Y~wuzle)li&xMS2wn9+-F54#vw8_VLcD-O4&5d=lBP?QA;3Td>nQM8ai z{0H<;(6kDIS}53PWvvqKP_z&vf{hSS!N%CcLQp~Xin-u%x0#!DCnSXZAPmF2H}BVE zGkF`ZZTknhnVybvdHLOOt*h&qt*xwXlR?1Jy(xEhaDMK*R$m_mT6CNIrhCJ3Q8j@C zm88;XI6H$#1ZHMR>rsKtO?Y^KzCIWp{;#-NMY35~Sb&2AkKVape_zKSLFB@ z-rk_5M$8)<;p7A!A7O0FtE8zJXNY&&O35Q{52=%|QGs^$mL52Vrv z*p_8$-}T}G@_FaAa2UF~wVMpspg)i@P&G%(52VuY1F1BESo(Vp<#_!1cdbgp52Vsi z3nY~ie|O{Y61(#U@wl*=N-2q}1=7|AudmSF?!hycxU?y6KFrU<>8Z#Jh*r?(sAxVM z9(we&2(g%G0p)UHzP=92%h2BsOG`!7fa`H1X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0gy>VK~zYI#nw+t!f+hN@%L{oY-yM%m61e2hY~z=lkk*w^U$Gd)Pv~W zBj^;JdIa_)f{36)1ks_i$f7?+BBl9%TL(uM)7r%C17oM(cazDKjc|Udv0w5W8WqY9zKTGCLyt4M?Bm{tnueSV<%I25+^^Bts z0Jlq@bE2vah!NYX>IMPqt*R#k?5pZeh>@;UNqYOT3j+LJRrIMz^tov-1Ujoq-qc85 z*ZPLYRu;A1BxUok8ee;Tc`seb0UaSGN*dK6!Cu@;e$@2)ncoord0b;`tIqHzL0?4| zV-<~XQRN`!v4pS;0T>Facw$WufBncOWC+AFj0(G2%<0E*VF zk_OhzF4XG+tqiU}``c9u0?7*vnY+Z%jB4h$LO|N`jtIB@gMcvRqLph z8`V|oxg$B-zs=?MhJ@cTUGdxzC+TGM%GaBP^~)(U z@4h!(FqtaUWR&TOlpxSqwd^O8>{?Y;nT|*c@*m^=rC*uV>t9w9(MDOfY%--9Q-vCa z<=fz{NSToqc1^JLSjWt3G)z&+|BQ*VKk7Qb`|&8{;pTH&JE<{0oxs%O&5hI`&^)L>^zp>ox!h>R??QtP0?0WQC=mqw9}5C| zYxRrYV}UXqapFZaC4)f!swtzEn|@VOwj)k@Q7sff;Aqv9Rm;s$s)eQ_PTHv!${=u9 rwa}>L#;uyLit*Qj-jrXSmXf7^H!)YU_=S5%00000NkvXXu0mjfO6D_t literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gg.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/gg.imageset/Contents.json new file mode 100644 index 00000000..fe3ea1a1 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/gg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "gg@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "gg@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/gg.imageset/gg@2x.png b/Passepartout/App/macOS/Flags.xcassets/gg.imageset/gg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..146322fcccb125b0a0bc697fcb48d9d348bf0ddf GIT binary patch literal 540 zcmV+%0^|LOP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0ntfBK~zYI?Uuhw8(|p7zxT_Fo?_DyA%mgV4yolJe}L&!D0J%JV8_xy z=3;9RO5S(T@L;az6COZd;6PWRlt;F$mQa zNCSk-a|;0AzA->`B{7JcxD!BgS8u&{^q9&^2DwP3AYr8-VX2K5v!=JVFVqwqH@Lae z`IoSl-ikroyKAcc_n$`d>o zeaNF{!-GR5ej|N=a>o+~ab6qTHJ&%$Z(^wO8vtO<4a57a#n$UnHs4Db&0AV&ydx2O z1+-Foj2s4H3}iV7>c1il<=ibuMt@|^`v54nBYJM$U?8F@3CelDMYXI+M-xS22P4D| zM(C(qq*~S_=iR2L9TCymwK-@hNLVRISUrJg4_ND6W-*oB)ze=**%F*rgKe=Z2cfzG ew_+q79M(VXr1qQ%WuvM90000Se;;cfYvvm>d;vgbuDcTOb%Owt0Yq6SKN%SoD+j95v-uvfrAul0HsWVulwX#|@ zvCE$xUfPUHlv2v3!-ssu$Zn?9uo)K2s<%FgvH)B3N4^tR96{55SSLc{EdyWgfG_uk zo{M@4-pQ1Ukf1J{Dj(=>CeJpu<7&T1Vorc0t;P%mNxtQvLo0+;d}Q|8eAIJbnBpL6hNSEgz~s;Xrz~ zZDgwzA{rdt@s!h|=sT1TbT@OLCH?ZN6%yPyDeH|>me_OZ-g9S2R!suc@~8nKY5 z5etbLu@D_336P8&v@_Caappt_;Xr!34O$oop#|x*(sZ(sq9p;pmV#gVTG`QA@qaFQ tf+lm4>`yQN=QbVk>VnZ_C;+RMp|6%}iX7$^P=x>h002ovPDHLkV1nYX_YnX9 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gh.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/gh.imageset/Contents.json new file mode 100644 index 00000000..d15231e6 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/gh.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "gh@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "gh@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/gh.imageset/gh@2x.png b/Passepartout/App/macOS/Flags.xcassets/gh.imageset/gh@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6f7bc005d8fdd20a50106898d353b1c95d12b2c GIT binary patch literal 416 zcmV;R0bl-!P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0aZyvK~zYI?UcVu0$~`(Kc}z1GO=!nrpS&Gg95jln{H!0HbV)A;InO6uOMu6%$)p5#XR~Bd;#=+hQe}O`b#H)&iF_a>wAvOk ziBb2hwuO{l)5f?XrHaX_CeSZbs#hx6jG$EUzJ1E^X}Y$M7_PZ}*lZZ2mLdd$qls9S z6f*iY5bcL?~6F`MV$B|PTm0!2w=1SIVFey0000< KMNUMnLSTYgt-hxK literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gh.imageset/gh@3x.png b/Passepartout/App/macOS/Flags.xcassets/gh.imageset/gh@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a8462728cbbf8cf95c540856b2830eb1aa876c9b GIT binary patch literal 538 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2rPgjORUF z977^n-%j`SmJSqYn{VCc*(0(@H1@^0vdc;wbq=h)=2|YXQ5u(A>mA<8zwiqAz%H`n z%32S57DtUM4xQ5W9%5QQ1UbT-GBsjDS(4M9?Gg~VxNFyOp2T}+&m4HV=lRa>^L9R8 z<#YbAkf=iRTg}~fJZDS@eaGUX$?$PDlfZr`wKB=!&8;%`D+jKMpVv~&YA)I)wROqC ztX(ZZ7j6gYW;RzG-Z8^wueiWPsf$w6>O>-a#4av+t;e%zW2{pAhaX>$Cl|YayOo@i z{ghje`~JG~HCnZ0KkW>wo%R@){9G%t$Hyfj)5v(bTX${h+n($1{{{Ydeb;iGV%o>T zM~sI*ZqUr$9KHH~WXGB1RcuvG|7Ab#(RO)Oyf=_TV8z5`?P90jC-Z#0>r-MO_w0AO z#M$0w-oZ<5=yDhRoXwv5ZF#fmmuf-I-Ls2t*q1O?7)m6TJV+|tn|VMT5l?}aQE6-Gj|Ge zdWY0(I{jwm>Vw6m(`u`yzp#{A?bY~D?ULW$zFEByYN2OpRnP-3XNuocYffP+_6K35 Vj$6Z)vj8KT!PC{xWt~$(6969O@azBp literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gi.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/gi.imageset/Contents.json new file mode 100644 index 00000000..75faa11d --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/gi.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "gi@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "gi@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/gi.imageset/gi@2x.png b/Passepartout/App/macOS/Flags.xcassets/gi.imageset/gi@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..949bd7424c4a1bcd2c2c46034403ee05f32839a0 GIT binary patch literal 861 zcmV-j1ETziP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0}@F@K~zYI&6Z0@R8bhme`oHU_d~NXtp-Kh1CrQEs`b?~1^&UWD2%S}Wh5u9JX0-#SSq@=u@8SB>kT@b@C zXx_FRzXf{f6s%y77Y7gHi^T!ZLP5NHcG1()iu1!K6afoQ97UGxO<@~Ek|Ywb7|F&f z02DWzrLd@owpcp?sG2sF;LI|*H*5mHTE7-alI)hZ4Kob34=jUSRSPGaa{iTr{9#7)B#&QG32?pXuyC=Py!PFpfFl zFs9ds+22obZH=8N?18vLA;RtoK^}rcZ(r69nK8%(bRJ@&C<>1;S!~5wg2FRQlz5z0OfF>6tQmoH zI3;$IWFJWY9$^y0q7RFQLq~WYN%oMW!)f2lG6qQv`O~n81p*_6kkX0P9U-uM8O0TI zM+ebgb;L$Xa>c$=wsS{1b~d*ns~WP`$CJbZ5>k@t>ZKT(isADzbz$|$*mob$dV2p@ z-)Mi`FWL#z0~xE~{`&*@>5m~Jsa5d=*^sx+5MS^CJZ zCN>NFZU}x8jDME(Y5+OB(1ztN5a>#75Rl`FjHR*$F@d%%1H@-oqvrlq5CFHv;0-ti n%DP7+Aap~Zby|47p{*@`h=Gfd;xNX=+d;Si^==2?7OK4X(ZP#x z0^u;3L;`{1@gmnbJrQ#L?QX90oFOu0VbVf|mWZ&`*>b7n|?|u(!^(vgfA!e^z!@$}XsZFJ)>`%^!FmLxxMt6UP7M+WJ z=o_r9uW`Nm9Xd}Op}LU0a!^r5G)+UVslm5l69Vv^J5MegqH+7{3_ZG%*xrNuf&gGX zD!yl*rZE;{_`pE|1XfqT9AivE|y^h_$u=(1pcu98TfT zg#|#YwS`=J+Z3PZwk`Pm{z^ir{ES2z8>uUK9>Io&;`%;RbQILW`X-_c4b+!>&Nntz z8isr2*90VB7)H^y4j(@wh$DC&U(s$D2BP5O7F-c>H5j0S3~yjjT02hR@F6*NlH&)Q zqFqYKb|&Z`!_{itjS$=sk_c9lMsm4uuy3ODiRb^~a|KBnNg@<(+qQ}C z=prE|pSA!-GvnlPIg*!urMDyt7jXFPVjL+YqnYud;k_s>LO0Kup+eU-ail-&?N=zNaa{fDS3@g77lf~3mlLs2!VS|r&f3rz!c z$Ok7ia2)cs%^Vb>rK7w8##5_#dEe({2`RgeELyOD;45>d*m6gYv-rX#R9#0=73hN_ zwK+yYf@gZepo0_=p;(M9UP#l5seiDtHQ{o@K^b2Es;Bo_U)sm8g`iV!_mT$X5@An- zNZ{I1$4bNV!UX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0tQJ$K~zYI?bbg`6Hx%i@$a>bgMi?_!9O7`u1+Qz6BiB9!9^nuPC61X z@z27lQG=R5BC?{L;j|w|xa=LVe#v}2)rK+itztt# z&9ZR$Hu~f=d%HV8k~~RD?h#>_%(Y(mC*tpat|#BaGSa zwSfrJLg^j$R3VLYUTUpD`K^KNBu=cV)P?!4v;@@fA`tc2ove*Mvd z&1)achZ$c8JEc~ID5msgRWhC-*~plub!(5Wk0U5d3%O^oHV^>$;Sl=!&sCQt?(|_q z=W7QMrp4U3t1M5)To);QBc!^XdP0(OSM!fANKd#^N^dc*! z;{Qk?mnYtSi&WPDO|2)WJ9L21j;#pC!Hg}Cdp&{n>=jOa$uqzeq!=R>Cwcd=?~7H+ ffAg!j0a=|ti?Yi8$HIfEd{4{{ci#Nbx>iJ4lVzBJ~eve3Yxf4YE8sNoJx3 z3r7%{`c0Y{woaX0 zn1{bJOPw76L`yp&)3c<80N}m%6iP5ms+suq8w|l+e~0$=+uH}vtGC zU5k)&G%W)bj=O<>4 bL1lq|#>*nr%L!B&00000NkvXXu0mjfR5)wl literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gm.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/gm.imageset/Contents.json new file mode 100644 index 00000000..eb99bd62 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/gm.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "gm@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "gm@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/gm.imageset/gm@2x.png b/Passepartout/App/macOS/Flags.xcassets/gm.imageset/gm@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0b89cf171752d1605bc943436943b9cface64f25 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx7I?Zi zhIn+oy}FV2kONQa!}5v#c}lGp(wM?dXq-95bivS-&Ep_bW(Hr-y{9cN_cpBmpuh7! z*XcF}e#Rpe?_{M;Dq6L_;CMVk@X+-T#Yvo+h7FT7SrVeAm9Gkoo5r>1!@|nCd5keS ziVbVd>a2Dy;k#(cyfAn7vc!bT)|=j2UNrgotbED)$6hs$YfdEo%1#nDo*HlX-*l;1 hURtE=qT-Hs{4?XSYdF5ma|F7T!PC{xWt~$(69AdNUSa?M literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gm.imageset/gm@3x.png b/Passepartout/App/macOS/Flags.xcassets/gm.imageset/gm@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9ab11e755ce6e921c5638a777cd9e8d65708a896 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvZci7- zkcif|Hx6<(7znsrjP%rAsq#0%|577sMX-Q>RO8zO(q>I)Dy`k@?qX1W{p`6TQMca%<#{BmqI{qVfU4Gfe}76&&~bgd zS=jbpDg7M@62FX=E)p=~N?a^pcDY4_A^lqihy9Ng5{$AprkDYp#o+1c=d#Wzp$PzK CR7}DE literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gn.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/gn.imageset/Contents.json new file mode 100644 index 00000000..09710fc5 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/gn.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "gn@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "gn@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/gn.imageset/gn@2x.png b/Passepartout/App/macOS/Flags.xcassets/gn.imageset/gn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..88f1362d20f9336de141f8212eba8e0440ba5a43 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx!aZFa zLp(a)p4%wskRZbH@UQ5x9;uLpimn%$8UmZkPUu%n6nrCo|4vSI0;`% zrp;dX<@SwTmp(AJsW?wkJUJo7!$?JP5|1aC`_f!d|GN=Kxu5m1uRtppJYD@<);T3K F0RYNDI?4b5 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gn.imageset/gn@3x.png b/Passepartout/App/macOS/Flags.xcassets/gn.imageset/gn@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..797ab9c5b0426e4d35140767f98bd71c713b4f0a GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvR!@i)Ar8;*GK0b z98}%8!%p(O|2IR%?N1tJN=8iTemlEfX7WZ)=Nze|%L238ZkQZdrf9~yF|)%LtB_hk kuUr}126gf0!T&z8i)8a(U(_Ld59lBUPgg&ebxsLQ022F5bpQYW literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gp.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/gp.imageset/Contents.json new file mode 100644 index 00000000..e31b6f54 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/gp.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "gp@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "gp@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/gp.imageset/gp@2x.png b/Passepartout/App/macOS/Flags.xcassets/gp.imageset/gp@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..62d74b4234bbd0e63fcc2d2c282acfe986a5e93d GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx5M eG`?WL!Z1mKXa7E*nWjL?7(8A5T-G@yGywpH!bC~{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gp.imageset/gp@3x.png b/Passepartout/App/macOS/Flags.xcassets/gp.imageset/gp@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b94a2263d0ae4c51f921f00255def0ba318d445 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv6`n4R zArY-_Z|ZU}C5p5@v_9-|n8Rp+K~I9v#-6LZ60!a34y2WMvk9^pM)N5B2yM3Sws^|> z{N?upv-7X5<6keJBVKwdKg>M!@!q?p^B?aFG3&bgRFBu^Rh^_@a_Zyn700&k))JoR zeO-ZXVIfDabB2u5V*#o53l=TM6iu)SY2Lc2p~-xB)pRANsX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0wPI7K~zYI#nwM)6JZ?2@$Y-NCWa*a6QZ?2tb&V+bP);`ZAH-v?k>7I z*u|j;x`^N(iqb)JR=RYN4ni%Cf`YBmNlPP=N=j>*q~UTo-{x|cbFh`P7gBm+?pY4r z-`(-K_kD&F!%s&mM(}YE;ow*L+Xtlby>vXVT)gHRVk-(jIyXW|_W2KS2(Ym7kgDD3 zF9e`sb+h>M9yr2Z2*7%I0KfX8>|F4xFD{5*eNmIa!&V9c^@|m&n_BfXch9dPcBzcO z2L612*Tm9!U5zOnwMN5_KO%g}oMCkEK;x&48Or4{4&hCZMKl_L$i+QFHr76vuA`~X z?dcWXFBuJI6?KTV&dW?2QKm{EWOxWGbZ*axtu%#LHHRw`Y4V2Unh7D8FMMNceuBw` z8J;grc}4)JyWOy?RT+P`#{J=>3(^-q#@qfoNNEvI_Wl#3>5c##>S*KUX?IVA5IBy5 zEM`#@kU=xg54_ z)82amMN!Z+jaV$^9a7OsCUk{&4lX1%xbbTi`KIxMiOp**v=6&h<6zYUKzcw}nM^^| zmohs0yE^IzJu=VOixJk%l84uNO3Kv{)vn-um*AlZCG>MYtemvvXWe zy=pmP8>C0(8J~NCz@MLJ1^nxU3*uKVwm}B7pI80rMSXq)oJP>v9U*}>00000NkvXX Hu0mjfMgAbk literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gq.imageset/gq@3x.png b/Passepartout/App/macOS/Flags.xcassets/gq.imageset/gq@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9469ed72acc7dcabc505f0587959fa9229b5da55 GIT binary patch literal 941 zcmV;e15*5nP)S7e~ljFVbr#*wP;!r;8&xL6p+Cw0ee?86Kz4$VlrOH}^&E{J^b! zxg!X;voBqPxUnx?gMj<`(lZFSt1p_}fR*A&=BB(n5W2DlI-_G7#56tpo_>#|Qx9?9 zKHK3Ps^wLLlr+j05keBU_b5u41jAE~gnKcN+11S(ymtO77hXSvu&GR~lBf9ZrwHLC z5PKf8SwKi1^-6~N+V^aFe1xXnA{3q34gU^;(@O(i!Y{sXkQ4Lw_Z`!28U z%Rlnn$}b~}+A-A9y2ZkgaNoY@x=yjN$x1U%Xf;Q>bc08pevVqDN+1xx=iB`m8ER<_ zf@zuvA&7W`%tsG!Z9}JOw(tmf+ZZW_S`4-f{cFjHk8h48d(K8KmqXWel-i!?YB58* z-RgX=>pF!(VKm!53>C!d5uAT@w(ogTtyU?Q%NWLXkJi%{Dg2iPwr8SLDp4-){{4ZW zmewZ=iM~4)z~tm4sZ@%1JWiw0Ao0X2DCHrO$E_1n#&k+%<@%3_kz!4AEv~uYE?QYmkrr`I<-9FYUF9Bkl;| zre0XNEr{ECVWktqjlHna3F5|HSdrk~URaTC?u8ZY?9$>=v{`XyF)aKKi{ehJsG2ZC P00000NkvXXu0mjf(}cpk literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gr.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/gr.imageset/Contents.json new file mode 100644 index 00000000..346cdd61 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/gr.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "gr@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "gr@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/gr.imageset/gr@2x.png b/Passepartout/App/macOS/Flags.xcassets/gr.imageset/gr@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0c5e7314b5b6865b2109cd6433b9ec5e930e8099 GIT binary patch literal 535 zcmV+y0_gpTP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0nAB6K~zYI?Uuhw8(|p7zjt}hc<~ZrmNXbdT9sCm;tvWPT@-QZ&{c;H zg+hz|2}1V_lBE?2f{RNQ2MaF2ArMi7LIR>85)&JmR!T}kn$N~T$mds-%dWdd@NZ1y;dV+;8MP^N{u3H8t!oIB6 zBh`6Gm?o)gYS`a%kS5UzQ5O?opw(G#!$y!gK3!9A#7<9?t3-;lt)}PHX7*=14&4L1g7603dl* zLG=512l(dIU}|#6cg;gWt?CJu{dI%(t_cTZ;EzbYQb#PA?|?roj*LGGDm*-ZATo|A z4NIJstxq!m^Pdlj0Gd1``rIy!=?1a?fm?J2GO>6NODmT~`81Ob=j8Up}T zYnjX?n(c7N?=JN+SBr;;0n!8_+5zyE$A%AxbLI%!ieLP!-RcQDB|L6cWFNnsJRzdj zc8U-Q4w@rh-%nrq`=q#?5^7a1Ja$cc*z?uB%5_ao+bQAqNGiMfeH$R67j}wh4Z}Hq Z);r{vpGaW&Ze#!e002ovPDHLkV1l2P?9BiG literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gr.imageset/gr@3x.png b/Passepartout/App/macOS/Flags.xcassets/gr.imageset/gr@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b879dd8dfa1af56af15212505549ce8709d13cf3 GIT binary patch literal 526 zcmV+p0`dKcP)V zXfFp8mS_FeiNP-Jr`|bvs%*y}g=TsJP)5KznkQ=rfWQ$z7fm$au|sgkU9aQGtc3u| z8GG48R0@8X{`Q5fqiq`D|)e*KKR4$9ztpJtK&<%F1ryj7d6$AOQ&pA%vyr?Q;PpmyTFkD!|wy`U7K$4E59U zd+p%nJL+{RQ-V~s)Ks6&m!;_S%MH7TN+2TILlJ5to8bV=jC<`JfTTjOY$-e&Z^pbqKW}fc)jd|G?NI`h!D&L#;!og#Z!00SL5X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x2FyuBK~zYIt(JRGRM#EHKX>=u-GybBjj{_WZ}ACgkX8axwW75#4R)-L zOvjcaO$XEtlh{VB={WT3%x9 zr@pX|hLtOMc2*)46&qQxBJ)X3psE9grcRBe?47y1e0npqw&2*DkA0-b+-F+&#+2SC z#{)FaZ@F>dFN?OI8ckHDrlLK2nnQszGYHV*ejUrEug(`Q7yN__2?VilT-Q zf)^>R zFT&-sV3cIaTc2jxvNX=0ze{+yjyreUkCrSEEbKt;oE?#V8$BuI}G<5ZYl+B#$5zm)~ z4GHo!6%a+FO`CadUxPUMI!HSAo#uZYAPy0X&kVC=~tL z#=U?IeadxuTmC_6f{b5hqwG>T#l<6lD+ByQU%}e0Z|?lfkQq_^e(c%V0E~I_P0aJ> z5111Qg*bP&mL+u^96J`tgxuG0-F^otAfT5fqth8kF#d@sTM4nLHqLyOO?!v_A;`x4 z6*qM{DdthI=x8&qy_QQxMgmgJSDN{t6dK3b3kYLb{yQ7-qWEoF$8x^%~ZZv37)&2v~*4HQI)z&_k zTvz8}-n@zI+O?dxNG*-8zKZMML0tK3ShT5}`E$pk?%xGG{C#J=_zAteer7M9gDGINbUJU=c2B5LOMmBDIK54^-XVJ8`QL}h4ftD8T z{b~=dY%9a*{P$3$Ls?lZ)2DCcjW-rDE;X4+Q>Ic;ewFm3WRjw$((2QZ66wbm%*2Wb z(BSv`5k(P23G~I$e0$FLX!n7ARApqKosrFsw3U2!)hV3Ljv*l)NtP8pI(CdRXG-yT zyo`>E$6y;tbB9VWm`RuxVk4&0s{lM~m|ceOd=#t{ml1PKQ4Wlj(`zJCNmGR5b;#0aS_y{&l|z1it*?L8JQRHc&RZKPm!E&r*Rh+a}Cn%2Y` z_Z4D!wDk^ z0mhn|vAYun*hYo7a?fM?>Tt=h73<>)sM4Siz+eyn{1;a$yok4>9*h70002ovPDHLk FV1k}sgkS&w literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gs.imageset/gs@3x.png b/Passepartout/App/macOS/Flags.xcassets/gs.imageset/gs@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1884af4f3ec973270eadb130fc7ab62427301a62 GIT binary patch literal 3131 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gt.imageset/gt@3x.png b/Passepartout/App/macOS/Flags.xcassets/gt.imageset/gt@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d3d3a4f9f41eab2e79113d276ed702de31ffed59 GIT binary patch literal 676 zcmV;V0$crwP)0p@N`O zAOwAZ4$-aeAan>4Iz%0$f?hDt%23+SvcfdQE!SOl*KO2YcXwuXrkl4;^B3kY&utjy z_wX>oFfh`k;V_LTV1fFnBU{pErr8qP5~f3R@XM0hRsXeN?p9967ke zy@5d%muJXmX__N3(i=%C)g7T;p&?qaK)SF>U+*9w6K*(#5>iovCKpeh;a7T&uFf7( z*;P!-6sZ;)@;kFgsj^9|@etK&70DmRwrYTlx$~XBr7VGfilJA~iW?%;VnckgLO@nY zoA%^yqz9pv!wB3?K8#HBvP$_qWEZQ>J+UN`)C13lEm#h z4|zN`OlRyE6}?QXp@WX21K5_2%NK5lRswqv0w5uAt^d~UaZ9w7c&uwLRJ(ZJT5iJ& zaT{KU+wel%h8N;Cyb!mcfHdJ`z^K`grF_}Z&rqXgCqZ)bGxQ&+Dbj%4BA>qi0000< KMNUMnLSTY<0WfX= literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gu.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/gu.imageset/Contents.json new file mode 100644 index 00000000..0f5f389a --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/gu.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "gu@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "gu@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/gu.imageset/gu@2x.png b/Passepartout/App/macOS/Flags.xcassets/gu.imageset/gu@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a63dfc15dda97ab7cf3a9103688f53180807ff0b GIT binary patch literal 949 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 Tv3BJh00000NkvXXu0mjfhL0=F literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gw.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/gw.imageset/Contents.json new file mode 100644 index 00000000..6fa4eaaa --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/gw.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "gw@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "gw@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/gw.imageset/gw@2x.png b/Passepartout/App/macOS/Flags.xcassets/gw.imageset/gw@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0c03edae42bed9bc07dee371ceb3cbedd4c7ce5e GIT binary patch literal 370 zcmV-&0ge8NP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0VhdBK~zYI?bN+W!$1JQ@qcVSj1k+qWE3hQ2v&Ro(aohGh;QKL3yAb3 zd;@0#ZVqmOvmin@iy|U^P>fYf>?P+?gq$6!G>Jq0+uen`AD0mAyfSx)rfo7rPCaVP z?spf4dG?oiV<~Ls~6)*HNh3JDOPr@$uaW5apQRs6J zcKDQ%hgcwib-#^{M#C(#ZBJ(d*|5sgN+vsRcgX(Sa~#ohTpH#S0M~&b_pWNEqefIs zahrHGOS;XnZgbXq2VkaTd?NsEgr#{e)s<00fTzUA8X>t90b5pu-3gb+SkRGC3g`YT zaU(4e(sW$bj7b3IOBNU6gVp{xGsvPoo>;6a<23ue$+JjpxNFkJ4O!{foI zz3~U1D9FS2t)@4|jiP&s;DJ0Xy2Po-SK$5#eDXV7^P005=_vwV=VASEHHsbvvGm%w<==qCb%t zbb!}auWL}s$L0C^{a>&lreQ-&!-klK4KWQHVj3Q(ouW&w#M11R)WIl(^70#~2X55q S_@&tZ0000{IP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1T0BJK~zYI#g>0elyw}(U(X%S!QnkJ46JmP89$_xtRa7xrv0$A*|be1 zD+BC^QrEAo&D>I#HK&`b<&rraSWD3ykT;kz&LokvoHj+}mnh0n!tulFj(hIB=k9s> z!yzgn2P(b)d_JGg^L>4v@9WvV!irT{E#~P@j6LSsM`Pz1{-0=tI<2W9=F27DkRJUR z`DsU)Z?<3*O~a0&Ut`pLWp)LGW%)ldI_x)AroF?WlpMy7N=8^Eq<4lCt^&j$ST9)q)QW1Rx0Hba}Bw`LS*{V2&5A7X%|jz6O#7 zM=+7{hCLLY-A1ds`M!YY-yR#ecC@StJ&$z2G^0qAtRrjJH4@`>Bu)^304TN4UBHOI zuRQ(e6c(j?%j7Y$@CSX^osFoPI#iOHJ|I1rXwWlF6j@eu4JAxt`V?JnG1v}X8-gpB zvBqv*O0Y0*@;V-o#^LDxo2%aTL4));n%mPFRLO4jkUSgmHi{S{`e_ssKuQNwCUsrS zSkL8A-mnL+;t7G{4vyR@va0cEyNqXIkYBcnJRH;K1NKG;hse1gS@7snIC#F0vibr} zUpad3AkZsusnO5AZ6Ya?1{?t~5u|rPT1u0%jRW<&D5=@OzrLgik$rab7p3WMfBsDf@?odM5UT+HB ze!l3E*`IG<_KZP|f@v|tqxo-Yg=+*{y;FTf_JkJTTA@#^y-LfqsH z#uuq;KZW&N9=3+P$ch_)L4oXc`^mW`vm@8Qyjh_*5)V=am@;uGIw~#{Q*?F}jUCl} zT0;WyYp|wM=2VPARY5pOad-P`3=sJ`NEXzHnVf7njP;L?sk~T1Kvnu38xW*5sIt7x z!;2LT4G?3lfD2e+GUnz=~(}{i0<~& zxM}x(!&Iu84q!c;!3lc>8d^vI1A^>!``P4`*}hq1!5saqMR5X1?|~_ux~>+if97Fp zSbRggp`;IpUxT%sGAE)HDtCr6DWS&)Js4+#WWlAMLB$0tMQ7&Tx9jCCAZz?O9pgqdCd$wIU8 z6t?q4l-9lyvUo!V+3ohTp<8D2##l0!W}}SA+!rHi8myW-^Yyz{A70<4wh{o zD(Pi5R{wyl;kkPfZzvH~u3ypgSnBBUM;ygmzFI%5i}yw={134i&u;#?Wpn@l002ov JPDHLkV1gCMBl-XU literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/gy.imageset/gy@3x.png b/Passepartout/App/macOS/Flags.xcassets/gy.imageset/gy@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a8d4b86e23485d93563dffdf93ddb649bb63a9da GIT binary patch literal 1597 zcmV-D2EzG?P)`Gn0O$kdu?8BdxZZh+~B=h7JD*c|G&b3Wh3J3Mp1q*DiRd}b|k7U+fVAoEImoYOVlU2J9Pd@EQ7fc*)G zeGaVG;qjg0JNH*)xYl#7=1h+!-&D;&04g<|1*JZI@z*o=agkMTOV}g;0iwnkyA(YY z4UuDi?Z=sy%z>ias6nNN5Dc{f0SE#gSNK^|9bjyNK-wCKtNSz=B=!aSqu`hgwh`0@ zs>mta$<7l=6qcX3qyP;H3DTflUWHf7{PZ6PyVltlF*L-$h*8Ea#XJEPJNcgDI9CKCTbG|z@-G4U*e!txP7}t1x}4Nb(AasL1xBM?&=ECdatKfuhWADYjvQ0O&wcb%2j5{EQhT zkiJIZnz%40OT)nN6vWH|u@5EQzsN2~B`tR?=WEZJ&A(9{0%=f|Pi3)3rcYnUNRqhY zmW%i%iVRjwRC&)(i;1Zvmrt$`KlyKazN4lGyPe(ok?b z4KYuHcopSx2|0y3aJn{fy290=P^Liu&IdJ~J?|q=4f4u7EAK6_B6MJL{>#D!(Nh|C z2`o*H@$LB4_HP)S0s)XUorNBmA7qtjlSMXtC=nfHJ|0p$IOc+5CJ0yHRjT>n)DALS z>v4O2yXdq|gFy36;P#sZoNFbn>)*+s&Ac=ofTD_%WVuuLHg6-o{1L7P6pr8l-8F z968)VMv{%e13U4pO2ff1!)S4YD*(v%9A~e48++X;)YMgmoYpB2S<_ikCbQRPoLCz_ zkg!La2oz%VjjKU2J9F1kSoV9nAxwk(scOtC^>IoKvUI-58q(0VIA()zC7P~rtT@M1 zl{W?QlV4>~sf-q-leSXg;rlyK)myYEV4=9GkbS3ClX-HB>AtH&APs)_xWdnnK^8KS zBDgu!Wh<1V8;v4&p=mUXo8D!eaM&QSrt@-{OqNgOfpG%cK9lGj+YUsC)i;d$ew)TM zqp(2EUhqRfxPFl0!7;0`8LSOdk>lDBwsFmEF*ndXkNVks-E0y1_VgVrGIE$Jwe=Waqxe?vtA-sV(lVyjv+G zNI=(lz06O#SK;n40^h7^@f_4*^_5_t$KQ)vf&5c%_#rnCO}b$lMI z1B^Svp_l#_FZj(s4%OB3VyO?WsFS=xV$L)X5FzRwWA*Kc)YR4RqdTozjcZ1YAYWZ* z!TVlqA#=5jI}@&jnCTEZA5H9U828}JOJZCzvMLsxWgb5}y$W}Y7TB@jUi!tq0MQR| zwz`PytkPSGBmd5M?TA3ei|U9ZoYJ&(jWlW@9{ v{};wJBg>kM74Aa;XLWw*uX0Z((;58>TR-VpkU%##00000NkvXXu0mjfZp;R4 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/hk.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/hk.imageset/Contents.json new file mode 100644 index 00000000..60b14d75 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/hk.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "hk@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "hk@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/hk.imageset/hk@2x.png b/Passepartout/App/macOS/Flags.xcassets/hk.imageset/hk@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..975e73b0c6c381a5a6b29b4c92b468ef7c7d5280 GIT binary patch literal 689 zcmV;i0#5yjP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0%l1>K~zYI?bg3b8*v!N@%LSFu`!7?2@LLybPEsdv z5ISWsgW#%vfkQUIs1VU1P$Ywc1xW-Qq|y#Ws!*30n>4nD#7d&cMBfT(z#fS+>!dZ6|cy>(NWB9H`(oNjLpqh+S)2cXoBcWreB_|Jw05cQq;7!qZEr= zq|;bD9&Ek6R5dnghN#{e_xwCMvl-E7B)PaqDVs$pmnj?`axgi`vv8QZot>92D+)&o z3w-eTP>MxW{Z+4s!QsH(*N4&R#634hc54e1g?9r3IEIF(YHFg8NKi;7`L?@DQ&UJ*EAc>pxBdMTkB_<2(15wMm802NzOJpQh6rkB zjiA%f8VXTAJWL^xK+fm+6b$lZb(LzDi~BwwC+q8+CzBN7aWb)(dIUsOpAkitc|S5j za(S8Bt}f)WGt!X=w%%THJ3EL51J3brK8M33Lm}0O9~iCESF+oA9*JP_c(_QV5cGQX z#>RNMv_vVF!%$z(rqf9wkx-AQWcogwn4re%Mb70w6w%k#qBEJ$na!6lQN-f)YHh3S z%W9~rqi%4Ja;bzMNf;dt_WXV_u^7cnhH94!0QvOv-$DdQA`^{L)6v0sB0)S5;3OIa z;7xZoPl7=tn~luore=udGxEEbT3V3vc?$8kHiVX2qb6tj`xV#TjQ^3pnOn%!{5O#A XGGEP#cP4i#00000NkvXXu0mjfusuQ6 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/hk.imageset/hk@3x.png b/Passepartout/App/macOS/Flags.xcassets/hk.imageset/hk@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..228615a8c8c5639a5cd0470f571e15a4a0b4336a GIT binary patch literal 1135 zcmV-#1d#iQP)|)8By!yysilypi@XTB zG$JnwioUxO1d;Hnguu|7E)s%5hCm{BiD>)4U1*a{cW`SnM;&)&%u#nn=Qy5o_F~$h z*qhy%Gbu68<;&s!`#i<61YN1-i9vKr1pL>y3=adLtw9U$8VZ z;Oy^b_rwHw_4VnD!jP`QB`qyf_4FX<^#DjdU%H}zG_8o);lR<|osa-1J$*VIQ3=u_ zQg-<=I#DDR3Ndx#1_0Lm`_mDXAT1)crX~PZ=jSOoaUwpbs_BSIkkTHpG&C^(?Aa${ zf=-9Apa99|!FejT03^hq66mKnct zg+JQbQd+g7MRKaE`S#VTe~o*)x)4N>{C)c{@Bikh1l@9030B>ZkSu~3N8GiL~U zJY<)bW8S_Ub7du}B(V|+_4OE-Vmmy8*BrJ`5j@TBFs9&Sc`ZmKNlN z1vWaJjJLP*bA3HOmX;>=lxVkOX=p%I6vob!Bewl$H_; zg^(sEF_o7y|NJ?l$Bv=OGAIhUb#+)=E+oI7+57h?yKn((Vh+?^GCGqfaX?gFyN3VH9pp$vix#xI zG!`B@MD4wMAP9-Eg^>qH;38b zK(yQOc6G553=;8p;twkd!iQB8K3ct0Nm)d++u70A7k{M$fh}jxA{G`R==IF>_3@^) z6#&nvQ^=7B=Bg^hO`8B%eDNaH_yj47toZ#*T)j%@@naN8LJo&{KRC!Q2M#dO+??3l z^G~1h)2>~-fA9c+zlMi3`F{L^Cdcpp3N#p~d-8-|j~pR7HKkqM&n*I=&&fd!hc&Ia zCVx@1mVnIfp!G*aWWA9QS#NwXA_m~?S~sBue*?gHfuDo?+57+i002ovPDHLkV1kUF B87lw) literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/hm.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/hm.imageset/Contents.json new file mode 100644 index 00000000..cca51f0b --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/hm.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "hm@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "hm@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/hm.imageset/hm@2x.png b/Passepartout/App/macOS/Flags.xcassets/hm.imageset/hm@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d2f46c4ff6535a931f334d139b76fe609b359c5c GIT binary patch literal 1293 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 JPDHLkV1m_`)cpVe literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/hn.imageset/hn@3x.png b/Passepartout/App/macOS/Flags.xcassets/hn.imageset/hn@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..382c0cf1ba9a6f0b263e14ecadafff3d276954f9 GIT binary patch literal 545 zcmV++0^a?JP)l#YQ(F2e;=~h*wC|%(&hzVSmju`#$qLyz|bm z28#zd8UTT0G-wlk&=j-*zlef_jVMUih=PQTC`j07m>^=TFCMf9UofPUQm4=la#Bn_)*KBr=Zb@a2DO^^yH-DsXStXS{X1jR9@<^T0=}g!=K)nvq|wM@K^ZTVLWw zsZ5gr6a6n=Dk_?_&>r@BSj{`E>^VpYU#Bg;j9Txtm3|QK4n!Rj*1B8(36*TxH_cjT z-&#xGFJArTy5g}j*UQd)FV~gV2e=;1=TPp5Q}&qMIA`zVmZ7A{dZvfL&X~3Vfa29} zW;f0_yr?pjYGXaqt^A%Scf^VdGQ;f%!(b?BzBvTIU}ubUSBwwM1~bF$dXJ*iAZNSs z@12zUC0D1sCi|ra&77^L`L4It|3r*`vxD~F3nF(~4%&k+G|c}<6eMg!LBd89By2=M j!bZac5g6oyHsJ^NK*mgfJ}k~x00000NkvXXu0mjfZw~yS literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/hr.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/hr.imageset/Contents.json new file mode 100644 index 00000000..b170577c --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/hr.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "hr@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "hr@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/hr.imageset/hr@2x.png b/Passepartout/App/macOS/Flags.xcassets/hr.imageset/hr@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ad56e1049c6dca3c2cddf85a2f571f07f3bd371f GIT binary patch literal 760 zcmVX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0oCP(B6)8bahlJ;dsv$VoovK)f|Y%u7uX(YfiIi;>$jm;8G;LD18VR4Vj^ z!@2wpU%uyie&>SUYzb?iZD(0ATf#By5bS;-!NbP@SS&8bQ(O+f>d&#QKqoUfke$o( ztBsWOchNkUKxyR#UYs)0GguN(iAT z3c>JRrVZJ&pE*Tw$j$YJOYHHuqY~jaTh^5E=GWfi`b{-jYB z$`Jqx3Lqr~91d_gp|%zx5om3NU=Zr+AR|MXR$fSDC74W5Rt7yi;Pr}eqY)}9psNdp zhyQ^PrxRvpAvYJ&(x9^wbULW20#ya8RX9{sB*(ku9O>>BeWOv+^!jbck(?Z{`iTkf z`M_ckZ>ZG@p^%7WWl7V@J7Tkm+H4l9_j)zW=M(MnauMt3kauKcWciEVzm^`Y@HC$e zlidz^dB1W*QG^o)1K902mUMXE%|va++}x^PQPmc!qG%UoTzpnK&*{b*ag>clu{F!f zFgi+m<4dmeACjR1u*N1Po~>3Cq~7m03(3s)e5T-={00001bfE(UiCtrS~Z#6n6Wq^8x@UY1gbhL9#U zHLVeiE3r~z4aP{H6yt+wVvO+tO%`cdOZ!qutwk{?NtZ^+5@|?nOQCXER?5n)Tvmkc zvU_}(;&`dCItL+y@9E38=gj~A&H2vRlTm^XZ4I*kpa>9i-GmINbKQU}EE<__m=z-; zap`Y-c;i-vHf_7*Z!#fev)@>gPHe9qrl#=jDdiPk7O$oS$g%}^+*!iJG@SN+!0>b; zZ(X^ULn|)etbPY#W4W<%6|tQ^%)Jp2AJ2C81%g7O*xy9t-73<4_K^}9C(%?Jb+0{v5)7I$VmewU%G~&S8p-|fY06^O5(-B- zZrehU{RP5~OuC{Ow1yu*Xe)U3sZU5>_8p<{2ybZVsDo!29c-rR%?h(^m^YF<)Jv~z z9qv00F&<+jn3BexNiT=TJ|aF4!5;aERZ2IilEm1gjgr@!aplMHdCU9kNPQCD@G6KUwk_FYeEp^AXi3@ZN8UTh%hm_6$7nn^d5x^bZ^^jcM)H^s+vpG|3X}Gw1njH1 zlCYMR9ozX>TTV)x!rQ}Ma$eeNwgnWCmuK3@)SdBoHs`SUtgRYSje)fg)Ya-wCifTH||>MCfO zoED@!#o>UO8km~;Skm>%8@ZWEks+J&j0SzDk?Jc&Q4ux zZ51LMmePWp*P&_9+WPP3wYTfBlmKPduG3P!Yb8V{sK^~bJ?GI+C4h?;p|)1%1qG0q zsq=~oqS-m@t9LM>#K|a+rLnP3%7Xy*`NyezYz<0Yo-XwELVdl?3k%_#7s6b8?v+~I_|L*I!HmTgN zjf1Ar5xR>bO;PIl9kWqx_Kf`BSTJ|3MI-YKi$>-f7LCj|Sb&DPZbAlr1*24M6!gEM QPyhe`07*qoM6N<$f-Tt`MF0Q* literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ht.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ht.imageset/Contents.json new file mode 100644 index 00000000..02362ebd --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ht.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ht@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ht@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ht.imageset/ht@2x.png b/Passepartout/App/macOS/Flags.xcassets/ht.imageset/ht@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..cf8db38bef5a18146af64f4d60880835dbd24b66 GIT binary patch literal 436 zcmV;l0ZaagP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0clA@K~zYI?bSO-!%!4};lE8R5)}nes4r+s!KH)6E-Hv3xHt$RicSs= z9o^jAbaNJ02T>$ywS z-$MsRmVn>65PL4fo(r*8HxN~3XnSJ_tx=^SD!jhyRID;xodFb&f?2d!UQIgQ zDRm-qQvnvIgM=a<+$#H|8xILbK3SX&GB*{FSt)lS0LDv}mgjHQ#^>=W8b>ZPQEVD9jhp774x(+ei{lLu9Eb+pHBSfnxz>MJsw@^YIajQoSGN-RYB(QgsLTY>kp$B z&*)3HBlAk6AgQYq(clQCX;SJKMNzzHr2^3=jibal@&AG>Z)Sju%;=xh%?Hhe*mEKF eT!_88f&2g_)OGWM((|JL0000y4rm(~I3<^GpY3wt zJnzGMhGUtI-KsJG*p|h(uirz+z}oKtWMPIF4Ku`Om?1{P3^5vJh|w6B5Sz@y(sxhc z^V)a5RZXE)ZlSc>jKu@kg=6Pm?T^aExp&gsQbT4>h6(t$hb`7i+<5(fa=nPqbo|vY z*U!!o^aKDX{Z?eEck62Dc%5#Jh7O?#f$nf|EI7lk-Mu?HByVIJ9j%q;%d;0;x_pJx z@gX!Z!es0W?;kzncX$ zsSur+WMc6q`{E7!Rx7>M6m%>c4t+zluhQ&#i5H5?DsX^Gd7V~m6VcPL z`zG*@NBGrPXQQ5HHku%HwIE9^cOzTM2+2qSuhT=eP$1-v5RB|a*aS_rL3Xo%%Q;Hi z?c;m4K}w=q>PGs>z`V805Tjv+7!5PTXqX{J!wfMR0~2Bc-u8P48T|gW!U_%O?XxT0C7G zLp(Z@_e_`j@#FT+#YQ~L96Nf}${X`8VV-bsh4Td%W_-Nd+4}px|6dPhI>a74wr_gt z^=oh6Hdrw+-Q%0JLb8;@N&cDFA^YFqhVsBAVcjGY3|-TlXQXZVeoYIb6Mw<&;$VQD^hR( literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/hu.imageset/hu@3x.png b/Passepartout/App/macOS/Flags.xcassets/hu.imageset/hu@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..06f50b6bfa2ae384899e22158965a23ce9d856d8 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvE>9Q7 zkcif|*B0_NFz~npdaVl32ss;{2xHo~}=4Enn{8 zu>bRl#qJdvi`gp@Ii%VafC*3GMWN;{`2~t;X&04kmRRaS#leyjQ)PqyMD4mC{e?|D t)2~}GL!zk-M5y_8Z1er^*8kxHbEU8V@XgNrC_X literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/id.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/id.imageset/Contents.json new file mode 100644 index 00000000..72af7398 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/id.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "id@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "id@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/id.imageset/id@2x.png b/Passepartout/App/macOS/Flags.xcassets/id.imageset/id@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9a25f4e978b4482dc291f2f22bf8c30225601264 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?XxB0XIk zLp(a)UR@~IU?9SB@wcQ%7vtnZ8cgnqnmq1W33gmZOa(TtZz`3ZK27cDx{XniG9Q$W z2tMK{Y_V{JuCg|OF`jvmzkGII3;uR zDw?!ifHOkMe+zi>EHrF6CLraU0cX5Zc@NZLw=;}mhltFdoj|)7JYD@<);T3K0RY4I BI*|gW!U_%O?Xx5mdKI;Vst09ZjZa{vGU literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ie.imageset/ie@3x.png b/Passepartout/App/macOS/Flags.xcassets/ie.imageset/ie@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..deaf1c57d0b6dbb27279a4ba4bf3d971035dcc35 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvMV>B> zArY-_Zz}RNJBYMAT+-*IwY)F7NZd4UDBL?4{1kpEUEt^0(f+Tb2hf?J$!5vHpNjpfLNZs1D~V y7B0O+5l=SmQcY73dCt;M-6rSU?7gIJrnR-A@Wzr~kwC{XFnGH9xvXX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0v}04K~zYI?U%7jTTv9ozZ>$BkmS))w2zozw9*7RbO{C*^F&2l`xl6t zf}7&vC=P<74iB;hbx zISCO8DNPX35lQIeCj$Tguh)g0od`T0_Rroz6`7t^(Q0uV9=-!( zK(Y7%h7m+1Mx*<`Hbg{O zDUf=-OOeP0rPDuTAc#a;^HhU_ZWu-s^YgD{Yybdm!)OdOn>{I$%gYC;d{uR6ES36l zT`061Jp+(cJ??k_T1C^DLg+?_45&!@I07*qoM6N<$ Eg4tUSF#rGn literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/il.imageset/il@3x.png b/Passepartout/App/macOS/Flags.xcassets/il.imageset/il@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f5ce63e267ee6369e70fc0e6268769c163986b6 GIT binary patch literal 836 zcmV-K1H1f*P)E?9do;v%wRFYym*^)p1V-D=5krg@7$TI`D{*|zV$rM z`Tf4XZ|58p$rZcuX6#82}0gF`Jz@KE8w5>{L?b2`a?N$sNIcC)Xoc`-8L3c2TY2Vt=U(9obqVxkJN z49w4aP+FRd+}wna+M1dV=;|_rV*!AGQ%jPFl9GKGjVWks)FT)KT3a13nX*w_to>bQ zv)y8F@Emh?G+(EUlVo^AzN#8^@ce)JM?-b&dglWXgqka&S*T~ z__&Mr_cA|!-sRBHxd?fZ0(+#s{+PYJKbe)a!_7_Ki#1zYei{rm_V=GMFYhb;eo2(P zxFB}>9pmFIY;SkGTG!e6oxnEd=iQ>DNs_|m$Wy2B%_*Lg6c=(8hNve}S9i>|HV5^3 zD{Z#Gi!~b?J|-qw*wNu&Vc|DEJjkNt#cZvWm1|~X*ywf#X)>L&vhwg*&EuoYl9E04 z^_?;hkXTT#%jxM05%MGj%#mR5>G-X#)}ggE4L+ZQ+FCn?hqF;umI94N1pruB@L*!% z0!vGupwq=;anXaRsY@Il79le;;SH6y2|LKr(ltz`^N@R9uY{wcdl(FAXti-50jKi; zg@sAT$_h2z(vphq?(}dhJRxjt|Dd_q&Vhk5lH}y1i{<49l*P5gGZYKraNJR+vvPg? zhN-F6zs?p>C>Dey2L{fl(OB5i^Fv7)k^-9jHGDo9Wn~9gU;l#ibhT140RF+NuE!%m zua8$!0sx>M8*{x~^&b%X(im;TfX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0}4q*K~zYI?bcsNQ&Aki@$cQ1UbpF-eeeaVP%mP5@O}ByjVn2r;HMtbGuG=w;lpBDczhFLBGfI zyXW`&aL+yW9HA8&1+efJLx88MzX_Nf{~>c@UdV*e_{(v>ATV84#^j|#Oqxu;d`3}+ z2hsd45d@~KR@@KjiG9-d9hRMqv805Rg@wp!2O8A`!$XNsQ}ff@ud6|SG706=0o;Q& zh)Y4VI}u;J2p=KOgq~2baM9YCC*^L;c(z{G!dV5ge|AG@$&XA@8UEYt!BVb^H825~hGpv)QfeI8-L?EpZIdxd?&s+pWn zRK%LxTzn2kNQjUi8bIF#(ejTmzaS7_Ue3qfI$CaRV&H=lOWPY_s;cm&rm`Y87oX3^ z7n^PAAaf%KXilG|=wdaSw^rftCbRF@6?}?9dTA+ZTUrRDG~)Go@ppDEA7paZF1A-! zW4GHe7z{*tGkJESmROw*v)N2uem>@PR;FC{QK>>Nzu?FE6Cy87IdP>%8CjCSsKQ7gChK42tagmGkrUEl8})B)*6Co@kHPVZ)xU+c6gZg z-QCDTLm01)qY5s*Rzw#gcXTw<@ixS3S5b#}rYs9&Ix`dXBOiK~Cn5wyxHJip1dz|BoX~GNt^!f|&00000NkvXXu0mjfu&Rdf literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/im.imageset/im@3x.png b/Passepartout/App/macOS/Flags.xcassets/im.imageset/im@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..57bfb8e4e488072191684ed7ecfefd5f5effd439 GIT binary patch literal 1481 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 Hu0mjfr`OBB literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/is.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/is.imageset/Contents.json new file mode 100644 index 00000000..3ccfe7ce --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/is.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "is@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "is@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/is.imageset/is@2x.png b/Passepartout/App/macOS/Flags.xcassets/is.imageset/is@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2d24e40392ec564f07338f7a3e6105fde3abfdf8 GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O^81FnV~p zIEHw1CZ}wev9YW1VZ8=37^t9!G!pIa}r-Fm$hB_*4(m1h&jwK z@UTc$Lty)YW*BySEFflG%UNe;mUf71rr}*3-BV{DBxyNsRIdB`@AUagGqP4aP0(?j z(x#tL>mDnXbe;e6UEDK8x5M}O3-$U|Aueu zKY#gHuXOPAw{QQio0|NKzkcDz|F?fCleP-7{623}dnCyI_ZQP`t!G#!|7-K(=h^u7 zxV+&P-Tf|w9e;lP{VsKSVYj}Wk-;DJ6+h13ua`*jkFQU?QT&VZC|_bi!VilKt}QU1 dgJ_`d8J_cAaZ?Zv*#Qh?22WQ%mvv4FO#m9cy3zmu literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/is.imageset/is@3x.png b/Passepartout/App/macOS/Flags.xcassets/is.imageset/is@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a7a5481cab95f98c000e3267426a8cfca4cfef2e GIT binary patch literal 445 zcmV;u0Yd(XP)esK!| z2iq&f;~k^K9`Bgayi|YpgM#LNpPV_i;|(`YZyqSw6c~UFO5>b5gIZO?*K2@o`##)P zbR9-jQ+l5+sM!?cqz;N3A;KF%gg1l;ZwL|I5F)&h8WFa%kRvq~^4W>?j4XkgO@Tc( z_hJd2&u0-=_Fu4(ZAS|5U3Y99_&%a$Qjnf1l_2p`V<0udE<|`k8d_GQ8R?rQ-s<&m zJzFkgvC)Wpv1wtMT(q}dR@Je!B+H1JNrCCRSER=Mt!11at^Hg7um-3dUQ_QiHSDEJ zd-LC|!NmH=4?xYPkeXo^BD^6)cteQrh7jQmA;KG}5n%vKN@L&kimgts#B7Nv#%lO2 n?-Vq@)#*95;|&2M_A~ScTJT*7GTsjn00000NkvXXu0mjfHFv?O literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/it.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/it.imageset/Contents.json new file mode 100644 index 00000000..c59fcb30 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/it.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "it@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "it@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/it.imageset/it@2x.png b/Passepartout/App/macOS/Flags.xcassets/it.imageset/it@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4b09031406a2be5f61c7171fb5e055120b46f196 GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx5=@FEu!Hs#H{OC;Z(L|e?#1kxZM0<8~@QZeoAMC z_jLung@qiw&KWXJj|HUKFIco3Q#8RUr1|QjjyCg3^Am!Kw$9dz6R*aeSsMRLzPVPs Va?yjIvOp&@c)I$ztaD0e0sxy8Vjchh literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/je.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/je.imageset/Contents.json new file mode 100644 index 00000000..2ce97cf8 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/je.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "je@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "je@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/je.imageset/je@2x.png b/Passepartout/App/macOS/Flags.xcassets/je.imageset/je@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..90ff19c08eff393634b5af3fe4bc1067d2bea6b3 GIT binary patch literal 1257 zcmV=P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1fEGmK~zYIy_aijlVudgfA8C_-Ae7+j&a#QNW{pZxPT5Ld?2EcL@tU( zV2LIuiV%WAfUz+Zgt4&=3>OC>T+|@p@E0oeL#Q(?hJm);W=Q(}PIhEA5c14$&k-`9_Dy<+w=#7sKGz6N*i|m;EdWvV) z0fZV(+EEA%rMr%B$c^HzCg?hb8tO*z{euw6$3Y0ZhpTCsI18z9*fT-|6;j5G#$H}X z+6$ACis5stK*%;Ur5RbLN77}XsV$gCR3+uF{B;#)K`DWA7XhLmy)sRkf_-x_`s`r| z1Nm?Kitnc_a85xn`;o_5uufl$arDfDeww=r*QT9#_8x+;7O~5jdn;7^sO;!XPuAdg zem0(}uMr{j{x`blr?dVF(i8RghBeYz|2Il)cLD+p?>FDlk~ag-?t>8s*_KYmmXDE5 z)2C|Le;miQb{X;@Q;(0g8|Noma7>zw|F_@c#?`xg=&sB7j-?U&GnLdc7Bp9TeCW$p zXnkcq?H{fq+}_z^lqAe^XOeyXdmedb4l;n0Y9#%mcgZ^c9p<^wrwujy%dIyS(U!jy zwYfDGWato-ks8L=0+=Q!NaMOO4tYHG5nLXeMddhNoJX+sQp9e^&0+Y-0}S4^5#3;0 z50?-k2pIYX2%N5^V|5v!s|^vGWJ)7_>3q_cEkH6F&~Dx4#_XvWbYX6r6fAA2j68l4 z-KgxIG#ver&QCW-U*Jv}tg9Abc|RX?atw4_5C9QU>DqS$S6LNWmp5Whd2AH+@*>iv zPNHS)62e_S;|XbGroY6{lD#OG>gXsaC3xX-G?*-7esemul2zz3tZ|Z;0Hjypo44uw zY%AWQKY$PsyJ^}KY$Yq{E-FWaLRhLwaPRmE&z?h|MZX5)_$RSf7Gs?7)cuY~4y0Fs zvlno#E<>ri7QN^o6X`1#A{mXi%6FoQ zsNv?T3+{n{o*#JI+skp4??Nb{e#K4tMM4ctIEyynKXs;$w}d%=7W$D{xVP;`1cH$z zL(UlN6>CVH{OrR45&i(~?O)>Fx*rkjbI`c4WKj~>!n441!$WQafd#03d8G~p~P!~e_K zK077Mb7o*$zXDyRJ>l&l#c<;ev~FL-o@msF0g0wzAALsyLv9Wk6>Bi&24_KOOmj=r8~UTb=~_ApN)x6_QtGcO&cgDPn0B8;Z|JY? zo31;(OKQx@6T%;eEEw~0$*3&G@buV+0&us~=2o1=mH4Vp#n>aGqHMQfUHJi)h4~;4 zJPpa}o>8MQd!pzl+$6#-kNCf(1%kr$`5w`jJyA$X-8Cg8XUu^A*E|fV&8_?gLFlY8 TP|eH(00000NkvXXu0mjfe~e&V literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/je.imageset/je@3x.png b/Passepartout/App/macOS/Flags.xcassets/je.imageset/je@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6de40bf1b7a7c5ab6d939459401300f5ca71edea GIT binary patch literal 1796 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 N002ovPDHLkV1k)2rDgyC literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/jm.imageset/jm@3x.png b/Passepartout/App/macOS/Flags.xcassets/jm.imageset/jm@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e7f649b9bbca2ca90ae05430cee6915eda577ede GIT binary patch literal 730 zcmV<00ww*4P)f{x>c7C|LL4l{0TTwx z!hmseQ6dWrguorQVM&f96Jl5Iz{ju7LBj^TAA*Tf>XURM-4AaEf_{nktn!Lx8GiJX9KlNywah}SMA5~fRu{GaS#&xwt!yoh`SzDTyogXiGQ zbC|dlCX;}L=-n_s4Xcmk?~rT}Qd@9k3l_dR#~D4a{K&qa?E8U?e{+fQ*Do6VuB}Qn zm-}hz*Itp?SVeoQt6C*DRHzo2&q2}pK-X@S+z6tYmP}xEN+mb^s1}{y3bG=yMYxgc zToGVDdt_U_R*M@Bi$=2s_X{w-+xq$7g|cOX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0eMM8K~zYI#nZn_0%07-@weg+JSi9HTpAo|@(++`kO&%G8fhg+aEh+80Ch|{305T`(fA$Eg2qeP;;(`+7CE$|tM z%to1v_Lj?Ob48h3sWBJ~9*|V3DO#4uR zbDnFaYbbt2^V}cOO|{uKyScv$*QaoE0uzHTTsOk)=F!*<_!Ywty8wnEb_2FToC4@V uoCd5x+yZ<*v- literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/jo.imageset/jo@3x.png b/Passepartout/App/macOS/Flags.xcassets/jo.imageset/jo@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..33e4251e4c6b23083da5705c65603d0b46b416e9 GIT binary patch literal 455 zcmV;&0XY7NP)2KhD)D9r!Iw-3U&~K&F4@rDAtm+xydzmuk>Yh-%O#h)U2lh$>JThzd{^h-lC*5RssLAfiBdKtzD@gp>&~2|xok zeR$sLsnwc4hT(MS`zuF}Sw~}XpU9sT1Z2NYE*5lEF^~d4#X=l{vO!Kx#Dda68V$1D zCWk|^*(AeI94P%nMk6wg$?=%<=>WAFP^|)S3`7y&c}`E$%%z@46p`I7 z+3Sg#ME0!}1nXu)_kUILyjd9lTP~0?0k*v$5&*WHAd&#KOc03xTPlcTfNd*81HiTs xq6uL81DXPOEO`I`002ovPDHLkV1gMH!7%^; literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/jp.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/jp.imageset/Contents.json new file mode 100644 index 00000000..7ed4886c --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/jp.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "jp@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "jp@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/jp.imageset/jp@2x.png b/Passepartout/App/macOS/Flags.xcassets/jp.imageset/jp@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a5c917345228f1cc48881ac1a1a5ebd0c0674580 GIT binary patch literal 478 zcmV<40U`d0P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0h38YK~zYI?be}B0$~`(@h|5M(7;gV=3QY|BnW}Rs1!QG=twjS{wD@! zV52z_ve5|y8UYG~ON??9CX9lx<1jd!;wJCGJ2CL9@B2LOC%o^T*RxzM%fJo$OhTl`t-zGr}J&iABk|5&vTl~;ZfbS_PBX9 zwq?;zrvn}3 z&rFlS{k>es%rqI7O2SQ789zTWGfjDr$;%5kj%x^x!=zG?2bs27?h&inc3U1~F&b?R zSqz8rAV=rtTSL@~3we;^SZr&EU$9mP63Apg*LoK~z|U?O07q8&MQJZ(b6TOr!y|s1quTk-AG(;s>}G$U^ZC=xjxQ zg-HH}>)_f&h(g8HB!almonS)gA`>eS3TYZi9A6iOZmN>p_d z_=5icOb8)H-GmBgqi#SI0waDyV8m|-4MWsxHqk1T(5=v50UgCDVqSk(W*fU)R>qxw?{SBAUs-bR4N< zq;4&DXGhuu06g8?z}?%E(jX_&xx7SeX$ep`s+o?1`06T&OHSnb{=QNZ0Pv8{lewfs zyvIk}PEA2PKa&f;+6?FT+-M*)IXN(wlt`;oQf>kOgy-Ss=_!dzGSa=fBNgjQyILjj zNJe^%2B}zI+OA9D(LQ#@NVH*UlZ=F?r%A>7(w>tqe7FjwAhd2q;X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0#HdrK~zYI?Uv6=6k!<0KQoL2Yf3UBVU~IbOQ%>0wjbcZ&4XwE044G0 zWxa@}5OE>srhkEp;!O~*b=lLVZ5sxpIbB z6cIT&5CG5f7#|-8pdN@h4l&1}zO+6uF+o0`S1k*wr^d1@aa~tz+m>mNOe7+iNJOSV znwy)&bzQM6OZn7jv$L~_TrPJ@1^(dRfR=O`XL*@RGc$+?&&S5t7#QG9clU42(T}oi zJ7Ek3gP#h%uVfSvR%0;$^gy7T?_67BaCB68P%(_W@nUk)c^8i>`L=-1z*WHC+bicc zvRPjD_tU9{K~qo9Wkb;ez+)g^0?DthSL7Q&83dpz5SL;{0K815oZl&dRHLduK2Yok zK+E7D03TB+-UDB13DN}AmEzrng^GM*EkW8i>_~lA7f|d-8#R74*EyV#hG4K5EG}~6 zI3O3MrZx+{e@?}8O@!6qVaR5wv#fI7X>H}^+*~#H$c8arc-ENP&nfx#clSBl7vjpo z3ST`BN*}mPUx@h2hXh&!M^vbkeadbymYyt~k8i16Xd`DvxF1+yx&zv`w*h$60e1r{ z481zdd}>~)Uif0TO?gH_T8PBk1ZZ&YHncx|02E_1NbV&GX(5u5RH~~ClJZj&i~<0j z33s|SE7sGb(S2RHvhx4PcZlQeIX1{i=|9NN`Uc$h`)R_htG56E002ovPDHLkV1fyR BFYEvS literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ke.imageset/ke@3x.png b/Passepartout/App/macOS/Flags.xcassets/ke.imageset/ke@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..ae26b27ed29c82e59b9fabde4c61700e5e674bb9 GIT binary patch literal 1003 zcmVzyRc^i_n1Ws0+}-iIL+56(cs=$I~2U?k*k; zlJ4$q>g((O^Ss8!M!LGXG)e&SyVjwunwlC(Bog9wyZ8O}xy>dnn{8jbyu4iI=jWxW zs_M}C)}=xsfRD4FM4I`Pf)oWbWKK9Jg*UH8n+1 zQIVE3rr+;ZBLkQmA7|<1%RG5W$+l2wDI1H6oSB@Y#N(l-r$<%SoVj^ZmGEsWh9jK@ zAh*8070;$p02mt^EZn}$%%exDy2hAwqiDeo^pQV}+MQ0CA3p|Q^2!ymsT2bIY~^Ue z)FfL5CV)Ah8ptM-tjFUZvel7U;8$P?a4Bl58i|r`ZV&8mb*B-ZKJB_xA3} zIekEm22?vzVU3kLV$RxHoYu11nNxu-RE;!~Uoy=*Vx_IElw7>HFQ-XU80Do^27C*g zvA)}#P6{e3w?1c+NveTXbe|yrrf1I@J}iEW#W0>d1K^ZvyWCS{Wn_~{0Dd@s9#4~Q zPt3Y|_f!c};V>&#uVSRr*a`}^;^yjh_Jc3%G+Z2 z-W{Pk{v|WN&G3R3YTA0cRt|1_bAyKq56PHtrw!6<@*x`KLo`a-$a1F*GA2A&c)<0u z*D-Q>k3~CY@oNxWE4jw=`R638lh%?G;-zrm^#*_a@tU7%5=1>#vJKY$T%+Z53)7it z4S5WDb^ec3uU9i$IJ+X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0`f^jK~zYI?Uu`nTtyUzzq)nn-rM)~V=|fasF88NFv$$Y#TZZ!QQYX> zjT>Ew2!gKM2mBAjof2>(fYCbSAG!;=DSYo}QlRzR#+1(HjW})gh8u zh=idDU__rQ_+^ItY;@|bbmO(ZRGf_SmO z3oV16Bg!2~(eW8vh}i!v!ldGV01?nQlM|mTs4wSCzci$~QfK4CDG*R!&Y69EK>zz1 z!n3Hhrn^#iPVelWI;u&Qa_UcIOuaZ__03t5#e!4kwmEffo5pg+>RYq4p3bN*=Y+>A zlGC{}h?672gW8D#bxd>Qg%OwDZZrBbWc~f4%v=nSiJ|jZgY>Fm?VUCYA9TpBDx$fH z;qRdnh?^q_|30YGE>u)^jQTw85@}9=e(C6lE)cEd*X@vALk^O0so@ z-!S+sO|n>!Z~2%5Np@L5DbPbfc}rq)w-I)pn)HgI>PvRNix61ol3og2)4T7H?1rM)@)4dz#)hR&w&{G)p!-#V5Q3@aQ`)cY)Bm={ z@M1uEMUij1uPOIP3*D7E(=QM45=+_fkxk9qdp-Q7;oz5$t&f|SOfdQ@VDCcBIrU^9 zj2m|FW5j4pQ9Dr*FBA;_2#MxP(zSr}nj*Wd#=VibulI>T0Lq@E>Pw0ppMzgRgoNCk+P9)R4bLj&>;X1+2l&XxQ%00000NkvXX Hu0mjfau}NF literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/kg.imageset/kg@3x.png b/Passepartout/App/macOS/Flags.xcassets/kg.imageset/kg@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a0b5a945d3c03c88f53f3177c47df5ddbdac91 GIT binary patch literal 1529 zcmVU!D5jbKG)xp84Mw$WKI+ztJR`Qvp!yjI=Ie z+>}r|ZqYig;x?>(L7DPv{5e?h~YGAQr!xcowi z<~s(OlQD9jPH<79dZa*ZOVnvNoo7TTWY{|c)<3z7Yzq3m-s1E<8)-}#h)`NtSG?0l zb5g34g_WzL52fe>DLdYr!F}5#x~fup-D2*gB3U5)7muH+&TFLb#gOuS9*HZXN`ka0 z6W3+F7EF`WW!$$+-rqk={f*r9;1ec(eU;)aAEl5n^_80lE^0(qRQwqYeJG){$76A_ z&`~@cgLv;6WWIzs7Bl!rgVtFc`}Ux1w3yL+*TCEulQtzpBw>ywEFQ_@?DYV!cLaE6 z3{)qjbu`c7WS;0+=l`CLYoxF}z#NOoZHf`G^a*SJIUV{`&tY<N_a)>_!r!9F5OcG!DW@9M;nyyOHkHjsCGu< zA34HV4UtMHc1H2bKKf7shfDY$YRHDbea9rODwv}QSxaXAw>FnwD0N!sKo=QNiy6+{ z9?O5RSbQZJQ zH2rqSB>|J$sy^?|=*!+_Pmj7%q@=bQJqJO8 z+?EJqB%!$5XYrK+o1Uu@e5A2-%%X5xNPZ$h2$((O;OuSTozaQrRhm=AXWRd5bveeb zn1SGej(<)^Hbr}qeX)oG^Rkc169pS~p&6kJzhDYapvlYapvlDoDp~ fbP(N2A`|}t1|wc^-c?rr00000NkvXXu0mjfdR5#- literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/kh.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/kh.imageset/Contents.json new file mode 100644 index 00000000..423ac3ac --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/kh.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "kh@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "kh@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/kh.imageset/kh@2x.png b/Passepartout/App/macOS/Flags.xcassets/kh.imageset/kh@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5ab5cc81f6d5c22e810a524cedb47be4fccbd9aa GIT binary patch literal 689 zcmV;i0#5yjP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0%l1>K~zYI?bf|d6LB2J@%Q!a`h=8vm7+o=g`wCeJ_JD|(G?#_d;k*@ z65^nVE;>6J<$o{?E-pAbJ32X{A(fc`+fYu;|N^t0B{QkcA-0PRS z;Uu~L^(=6k{fxw{YhMAsqzS1_6H*)H`NF$+Zz;2{h_BvITqqg3hNKabcH~Xk=$-Fhl5p|S0#Vr62|E8jv(?Kckk0qTMulv_-(Kc`~FSTLmHMU zW4Cz8KDpwvKs3KGmkMkf_gTN-5JJAr3fr6Z;M!T2MwiOv2^}4ImgChnivBy zB9miy@_7=81dij-(Gy{9`U$B|^8^i(vao3zIs+d**VSJ)#QW+k;kz>&424MB4whx1 zX&TXJ6aZb<$!4=0X%7+ZiJ}MFa6NcgZ+-m`XXqq)I!!j0LzpJ2p5w>z3d_L&2th?R za9Jfvij0*^A_@h9=T5-;kN*x*KGuOWafQ~^GNsl4{^DBoAXh-rLf}*ohE<)}4h2QU zvsy-;xJ)^b!kzryI79%}oLJMFcQD{o819JN+L!VQATUH{sQC%CoL3b3nX~?!Ak|+<)^M(1g^c38~Fb XdB)izy{}BU00000NkvXXu0mjfG>kns literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/kh.imageset/kh@3x.png b/Passepartout/App/macOS/Flags.xcassets/kh.imageset/kh@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f391da82abeb3494823f3040aed5bf6739b598c0 GIT binary patch literal 990 zcmV<410np0P)L6P7SAXHivS|!xQ@xOGvjTP5_cQ}AdUAKqW4z?oy zq&>|0&Z~JIy))X`6?*dOPaFay@W!x33<7P~0tUs{$fz+kGHQ&Cj2bdk`gPbE27>sL zWi@OOgW$lo)~#fe+wp~iUgltpw1l8|@pbZ-&eA%_h4|;LH4qdao``L}5Mt`&2?Ve; zA0n114QjbA2GWu3^)(9XYhCfm={QrN5P?vLy;Je7eEx$qwx3eh3w?K_i6V3U3<3y$ zcOCg}Uld@?&5_RKsMqVnj?8v+t%)N2)@d{$i9A-DfqMTg$ldJ5>qUY?gdBi|v%KEDO^#0Z1egR4Nr**JWj81pw1Du`CPQDUr)& z$z`)trH=Q;oqnYBci4^Ze`MmlbDWIFab1_KJ9m*@vn|+lT~=3D0dO1#!!Qs+Ff%hl z+2dg`7DLlC{!2U}py*1a`^BEA`Ra-Tu@S{UVK1VDU|Edv>j$z z08+jC*8AKCqcu4S{%S?tZn3dZKRnlN9&A`4(?(e;3R{ z^I;{wSa^5X8U}*UlUEN#M-I(jl(CUfV{By97#kTiB=GaFMGS(!0dp@jG|%3nFaQ7m M07*qoM6N<$f|*{=w*UYD literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ki.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ki.imageset/Contents.json new file mode 100644 index 00000000..103a7f8e --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ki.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ki@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ki@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ki.imageset/ki@2x.png b/Passepartout/App/macOS/Flags.xcassets/ki.imageset/ki@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..224aac6fd3eee3a6d3400ec977a24e8271adb166 GIT binary patch literal 1613 zcmV-T2D15yP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1_DV$K~zYI#g|!ZTxS`EpZ_egd1kzfCvnDG#!E6;>a=$3CQZ_sG{r3t z+SHUls#HQ0gb;{au&6hH5J(L|N+N+oRfK@HiAxenL**9dG(&>`@iq~b&eQ&ysQq4{XEz@DLr6-#ZvyKZWe)*r6Ozs zeKdg)(?1;$u~tPbvZ7=wsQD%c>x9nFqUKt#R;6KfD`+|-{Ba`3r|zqV`vNii2{eC# zM3#cS%Ym>7GGER?H3{Mq3Fgkuquq*OOeOCN0$^o3Vv&$^Fc(`fQaZ8e1f)qQU2V?MC#)xLc8}l-B)Vl0uyqcikzi@3W};= zF-cfd34}mOlhB2Mxxj>+et$jQGl(I9o+e{1vLI{{k|d$XV)41E2!sGROGVC*p+LR6 zy!TiNfZ{F2_S{#HJ$Yy!T_^hPpE2U`WkOSt59^L+k&B8jlD(*jdPqfFbF;=+V`C!X zA4sWAr{v!Ln3Cb!Ab-*@84oexKTmk37a=5^tG3`S+=C>k=&2-x7aC9bIaP(X&qcdSDi*h)8pqh=ju0?T7OY+*K zk2!L-mB4J6$4YZKa&R~0-qlN^GvJMDo&4xTBXf~B`zlL0{MBmmU5-UfFsAYA3paSZ zp`F>t0(;9#IP^>fp_n!zT;Du)YC5z~>vr16cRA=Bo5jXH#A_F1wZH{s8er3cFeTi}FyO+y3(IE$rXsLy;u{vteF6^C5p|?Brbg07Agy zzI=|o^d!$$twWV1=Avx%okMR2|9bD=fa)^emp}{9MvjxvizFUz0^N zp1?m9BsbGey3I^9p5Sjc`k4;Ls44SOygGv`-9sbd$EU8fywlQG*)co`fDmwS=Ozw4 zvlXAmMR-BubW0zvp81f$so>(gYpd4r^Dpnh=W$^eaG_&>A0EHL&7r$Ksx0yCryk+! zpDDxZPG@L3M15QT;+_G>l3;In2^;fV9|;Z|uJdHr_kUye7QF6s{@&r|#PwT?$N8Vi zcR4t?a}z#~i{}0@es{T@cp`<%ZY8Pf%tzy7JFL9&>^8ja3{G6{=45j(|6QB&v-#fB zTXET~ocYIX>Y933NF+~+V`p32zqRM#GLy2Ds=l!q{&=;Mj^Qa*Ic7&{U9%orCx%=a*?DAt-P;&Ik@1uEXGg|JVE*$#h~G+s&3~00000 LNkvXXu0mjfpO6<> literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ki.imageset/ki@3x.png b/Passepartout/App/macOS/Flags.xcassets/ki.imageset/ki@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5eb820faac75324c84eaba59474ba576e772215e GIT binary patch literal 2555 zcmVqx{0Ek|S5jqhfRujbzS=gs_gpn8$kbsO_3)>?hXREj-C*dh^q3bq^A~3=x4zG+P z38F0qM$ja@y&dbDP$J9%32t@~w6JQU1Z$%hGm=Q2o`R%+D_J3O!60}jh*=%MtkV&C zA}uF4Bi#=7$w>Vj*ij4XlmUiyGt2-tWBgtNyWPaBjerFhc89gt&9QY;h}ivAq@aa1 zGX?!v2vmV{q?^$0AofWe5lwt%5=z8Y1#*#woTDJ}93+>zXf-UnT7;r zL>uG5Hf_|Q8X`$TGHfhcAiD$zklZq|A_%p_&_;VO>kX_tmFT)aLiR~QG9t=dSTP&l z9Vy6O8CjCB0SOx$uq==jh?y2zvV@kY;vDF}Y%-8av_!a&03taGYMO$QB%?=6WCw(G z6V)N1DiThIjCSR3Ns`d7MBh>bYN;DxKq6l2`d(U1F&y)pcm_GqV>UwAXsSSwyL+dp zf`|^XB!O4pN>K?!EW!~RPDT6VM&B|b17$9v0h4ebh7b_5tR6{Rg;SM?7#21bZS_%N zEhZ!j>^{~;M@A$G=N+?g-8~Pbuo$!cETI*DC$e?pjg|8Xa7|i(Hg+PCFB!AxAfokS zudxnqgf@Bto<)!2C?D6Ion;Z-y@TlX%?Qh~ z?5pnz!C=S?w6@2Rl01qx$s@-J88O>`@sb{knRaGYxioJ@zy<&4`3wuj87^Ub<1HAP8F_r-MpglSp!(Q|$lFW=0X{WaKEM*6JMfxP?p zEQ+&JyGH`J*cRrEHQ(^|`n|MAILmlsSS&Fkz@=iH?>Uix%9OE(`PW_Da}ZtI`HGjqrBaK$j3s)AVb&MIs9_G7}d zx-TV7mHE-E+j+QR7)9AWR9WVDgP#?vK3Dq>U@cQaq ze7Nag+?i{U>T&Y3d&V$-^kDMSytIXNj@JA6WM>u2wjV=}nLXOdNOEz{s3HUlmzaQ* zm+IxAiecQ=FO!<4%Y3-$5KXPY9+j^`2)J`Z0e6=b;qz$hIMKjgw;hQabvYDreO^Mk z!TFZXvkEg)cxLWcin4rE)->|w7rSW<-FW=^+!{~M9?kgTT+aFftlC?{+5@%m3KAvH zeqjFmp0Uz*Cyzi=JIkRxqVx9py}bFwo^FIvJx;ziWdu*nDrZP;S{K>L^OyO>vdw(9 z`$XKxRb0*R3lC1h>+HO1HMIu$)rzlKy6GUsb=mT0Do@NPJC5P&o$x3!JXH*eCoim2Q%#;oyf7^D%df{JR zi<9RscT+CypUG>FOlS7U!uYzdZP-#($BUnCXXBAG-6JF5v1z5evS2DXK2I0fs=d`b zw`?=V>iymHW{fD{7Bx&(@2lbU)s<9MH+IvJCBePr#XK->NN2MHHKV?+Vak>S5=JMOkvTa z5%J2n5D4+!hW#wvbcoZ)ko>q@ z_}jwvl2w(wwQdh#y|d;tRp$Bm6+An4EN-pKwFW(A^3mo){QC2qoVnQbOL}p3D(^ft zt4o<)>&&YwEBVcuU0rHFGuh2c-x|7y^>Y8%Arxk%phz9f{`sDh)cM3>U z8xGv?wosJiV{Um7`Dsan^%zwRe%2j0Ma#EreN~paPOV!R3a|m}TmHw;{{R*<@>g<$ R%W41s002ovPDHLkV1jmx=~Dmz literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/km.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/km.imageset/Contents.json new file mode 100644 index 00000000..4b603c3c --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/km.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "km@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "km@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/km.imageset/km@2x.png b/Passepartout/App/macOS/Flags.xcassets/km.imageset/km@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..74e6ad276da14e8a41578935c8fd4324220038cc GIT binary patch literal 892 zcmV-?1B3jDP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x12IWNK~zYI#g%JlQ)d{*f9H}WJ^uj?Kb*;i^RIEoosm3{5w#8|Y_GC&w6>72Dvsrud=LOt7bthkX7hz&9NpIBfsClZ zYi8RY%cd+HIjk-TL37-OB#0<-D&>yZRJRldkCc4UV$Yfzm>i5=kDMY|OwTSY%6ys6 z7L{T#D4e)|hU;xLwDh}EORIk<+Bt74UoGB&L6j2=GNUOb^LOX0reggurkia1bniC~ zm+YY+Jr@8~Qz>^;u;s$%IC~ls3?b#N}MaAMTXP4 z_yu*n@#kwIih{iHq8)&Lx*h=J^T4baz0G{Ztx!P6(z|yP*0JsA^ z{OmYAE<}ziOxgFHym!Wn9MLDj5LFc9$G?B2KkR2?{##_Hy+A}$=?@Q%Zqi`gpFX}l z)Jfi>q2~gK191&{*nRaNfk=?UC40%Yy~M%dPsz8QEzFtzmOuBP925;76 zO^?y2AWC~7mU=san&?;de}YVP3h^MifZ{5c@)Tk~TGLFX4j^bMSZOIjUJwOD7Izn9;T#rr=>u`x zWr1BbcVT~@-g(cN|9PHy&U?=LKS%iH?993?#)f8r&_+nvy?kKa^bS5*c%J0Qo{84u zHwu8?+otmPPq~y_NMc~375Rx`Xdw10`LH^jR}N>>+8s8Ln*2gBeByXZ4EYE0`2L^7 zkV?nH2!O3m#k(gm*l;+Tn<0|Uh(?Au))GVhkAvw4 zH8MnHb1eA>7EIc7gp}RO$GxWK&xkO8w($Ooi4kGFfe_^nUX4U*3}nTnqg86Cx%oGp zb{hawGzPZkY-V-J(x3?S#;CW}oY*u=ceevMV?A~PnHjF?m$15S@3W~qZMHW#1##igoH5mnSuj=?#Rqvs zEKAA@xOi9G64^Gl0HrWE^>f2fnr&?Ww05@>q0v)sx$3pxEz!#BWjp^%rz-%GM@BZ1 zXqZlJe3pFRm#dZXczya4>{;w}L2#wyS!Ur3x$UpEJW!F#MMY*FR8_9_`x*hnd zyrnSy2l zhV8XF?KbKx4XnCv30jqgdkix;*m#UJX)D>aU>gs_rg8Y%Z`hrEBNod%FR}GY6Y2HR z7>|y?;IV0Jyxl@g+c_2|&c_%x3xyzXrSm#krH1mRQ~Y77^(Yc1I$68d!t?vAgo~bg zv0yN2KcZLbcsb)~o}Bpzb=C%Up86KCPeO9I_fnbXB??N+L|cM)8;yid9il-Uj#{a9 z>pQ|kCu>TrEUL00OoH!5D(|N-_'JAE6OL9%d#af+Ss$CH%Y2(8uBSQ%NY9cOW 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/kp.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/kp.imageset/Contents.json new file mode 100644 index 00000000..dc604660 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/kp.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "kp@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "kp@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/kp.imageset/kp@2x.png b/Passepartout/App/macOS/Flags.xcassets/kp.imageset/kp@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8150ce682ebd593df5af61541413d0244df347a0 GIT binary patch literal 693 zcmV;m0!safP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0%}P_K~zYI?bg3b8*v!N@%LR$6E(4^ZPco5(b|?)Y!#`YgHf=Ht0*`r zA~;FWC4!*T!NtXYz+Ys;V*^uvf9@fVW@fn8(~~}r z2ZQX7jiJP1DQICKPi!{yt*yC(6qrmr7#+P*J6>8MF3W^Go^(x+Bpyyrs|Jy-7w&X+ zB1jVc*;#^4Cjild0|34Z4pLZIi6BYTOiXaMs|!)9B^iyX4=E@w2T`QjYDHUH%h%yy z5~rsC#Qgr${MhZ3wzZ`eC@Uit2xJZUXlZXEH5J&jZ_Q`A!sywUs?HeuiKp-VAUasV35Gv901Y7Ll6XBZ*EdQKTqTO zI^mriP!yDS9N*NGDhS9hBLKe1Npy8}7%UbV*VYg;8UPGtGcQ~&F3--`9~t4o>s1Ys zaUW3<2|oAracH#?-r5310U#NPaO!rmYq20NE~fxb~rqj7Z;YCtp1PD==C1SUD}`v@gtuOjD{ku^l9^;YI`sH4Jn&6H&j*sH@}Lv bkn8ygtm@B)tLU&d00000NkvXXu0mjfsdq1F literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/kp.imageset/kp@3x.png b/Passepartout/App/macOS/Flags.xcassets/kp.imageset/kp@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d45d78787f902d816eb91ebd34eaa3c9d20f8cf GIT binary patch literal 937 zcmV;a16KTrP)7J6Hye0znhFnw25tE@lkEGhMu${!u?>ET;2m_PhGwEN;kLnZa_&mgYmX6jm7i}prCA)*f- zqRMhXZ|(W>IFBAR#!x4kL4+i+{_54DJyn(&3y1kRI?BY07e!|_T)T!an~ky5fo729 z`}Se;c#8JMpFZX1$Or(@2M>zQ*t}jGd-fQhs1MCmtNOqJ0H*r-=s$IeiKA15lekN0LvO1Y3%N%_QVO~SPVH9 zLrElZbE+)o>dTs%@I@lj`u*8+xZNezpGNy;SEv8*%?<~i&Q3PpyNBc~+)xThqQ0$- zEzh1|YiKBm=uBt^Nq_xXP+M{QILOwQfL{AUNk00}D(XK8slaoj_HEg3|zRt;FT+Rt6s?wLf@YK`^}rY z+rFJ>IE<1?74(%K$)2euc zKz!@$oc}>UT`;eM#9n`J-UnHH8()bm2B|a_Oc2St!5J&Jgc1A#-F+JIbZ56000000 LNkvXXu0mjfM!>`O literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/kr.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/kr.imageset/Contents.json new file mode 100644 index 00000000..e51c6f44 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/kr.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "kr@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "kr@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/kr.imageset/kr@2x.png b/Passepartout/App/macOS/Flags.xcassets/kr.imageset/kr@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4f4b1c5d67a7586df71ec2470e49a7da769d857e GIT binary patch literal 1325 zcmV+|1=9M7P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1ma0VK~zYI#g=VMQ&$+r|GjMiMOg>3BEzA>87T`a1q>l(gja`}I51=r zP=dxUGa)n4EG!{}WKq#CSR+|74VjHLp&_A0QPE}}BqKs(>oT{X2D+3$H$t(th0?eG zJ}g#md&|I??4O(u_jx(@cb`j3{0E2^ru>(l< zGD4-Lr3Ao~loZHZ0*ywaR7h_W$jOr@34nqiu&Szx<>lq{cs#ES z;c~gy)YL?+R?F7bRu&f*(`vOY4`MVL34j3D(9po-;EYHaN)n z8#lP{=#gYhdwV+*5)ydl&K;^$Djq+6oW;e()MzxEpP!EgX=`gE0M^#lQV;}ocXu-@ zD~lBs74-Rh;+0;%&R_ELISh!#*n97B=E4Pr{QhukC=}x5%a`eLxo9vLs8A@_+1bg$ z!a|OXjYWgJNZPq`C)?WEq^QYIh?6ZXQ2>$Sw~7h|oX&9C($W$SA3n^SoE)Azca9p3 zhF-5%^l3!LS0~u zEzCo;FpsU*u3^K017W|-W`kO-MqFH6WU5giHKANC7eN4k{o=)CA%6Uz1Os_B@G1UT z=|_KzqWR*tB9Kj+HpR@3d9y~!anBsn_j~$>Fy((1h5&${GYip!Z3sSpzM}b83^L)0 z?K5ktLCB))zrLG?=T_UB1$m<0E@`*FwGp-rTO@q}L4ifc-z(ij61dFue6+^yhz$AF`{Kg%B9Rp`+Czn_jQS!-o%71~M`-0+Y#v zg9i^{U|=9@U!VFmzTB4$fuUvA^-_m21IR8f3O}38W*j+k1ZJ}tCX*>DUUZ>7efkvj z_4QCHl_)4EKu=E(hK7cao0}U>xcyx}x^7QkA#SZCfFkHe(>6JpzWE|-v)k<$8XCfb z2M;hZG6J{Tjnk)3qq4FRGMNl`^$*Qru^>A;8^?|v!_?Fis;jF}R#t|+d-q~yW+pu8 zCr3Yp;X)%0s28xs`xoMaKFC8ssJ#yCOPs^^UssAC91aKS>gte}mxq>?7I-`!?BBm1 zd-m+X*x1<16};N?PMkQwb?esg{{8!$n3&+%vuC+u#|~<>TDskC$u_^7{C+>n%F39V zo6C-l4qm-_l`fZyMMXvI>gp0TJrPJS7-UUN4Kp$_c;(6!3WC7%=g+gDp+Ve*S0SBF zN1aYbxm?aOXU_1{sZ*StosA6ZjcR&}i;E~NErrkLLv3v>rl+UT-QB%{?HOA)Z{Ec4 z@G$!O`;nHGhFiC8L8(-}8e)|Ed7hr0W@ct4`}+D`s|r#YA0OwgUAyRTIHcUs6?q|# j$AiSg#Q#)@Rmk`^?w9i>i|VBP00000NkvXXu0mjfGq-*t literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/kr.imageset/kr@3x.png b/Passepartout/App/macOS/Flags.xcassets/kr.imageset/kr@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4e83a5d6bb927f605506c4760e7cf89f03b376fb GIT binary patch literal 2065 zcmV+s2=4cZP)>-?qP9DrFd(}c#f$?Hp&|>&rP$lE zA0{@EUhOd1WS-=FXwP&0eSUpU-k$egf#fax0wj>+|2xEZNaT(wHZ~Rm0|P&I7Q0fb z)i9gQu8nk|kdP1ppdbjYtmCf2!a@RIPEL+XuTzl3#6$uh07gbeGB-DuuU@?xx1f$R zI5^0iJ9kp6)iNL;fB<;x*fFPT9D;1!y44Ed@9%GYy?F8BaS#5XEEWrMa&icOixw@S zTCJu;B4JWe5<5FP9j>zra_ZD6D}-1qW^r*b0WdHykd2LvOiWDV_3PKi9ipYBg({Vb zO-)UViHRWqZrr$$wY9a>>-8KQ9OTodPu&A~^yrZlLJ$O&mzPr{5>YCZ^5)H(T(V>d z0Wdi^dE7y=va+n(xVgER!NI`Jer;MuchnVFeM0Gu&n24BB^?J}6Lr-#F>tsHD<;JcSEX)zd_`V9ty^^01#a3LES z8mymx?%X-9TD6J*n2?ab;o)J&Afch5R*3xkd@7Yn0$^cbA&ZKN2!KkZl5K5m4#Vi5 zKj#l$f6b=p)A=u8%xF+3_$)1rebv-j@Y4!@O3Z2;_z z|0E|SM%`U!#sHKp!G}CXf({p$>HeesAG`#s;;i4OeSM$YAQ7v&6vw; zPloPpwtn`RTL2%92NNc+zoy1+&CbqF`uqD+5Cm3KR4^kWgMuLNR4}>+9{-uBxiC?u5F!I#xT`k`9k3^XJcp zOeTY`uP?T2*@E4>ciZ*7$jrphg9omU5DsJ+9mTV?Yhku?1X{Ol9rE+@;pgWEi9~{B z%a%E;l=jXm{oW@H3lZJ7re|yM0K{{H!a^F5Tl6i z?uOXc*P|>RgIM%>JX9)S85wcQ-w_y&zb@Pfz0})gPHxoW_xJvSFG>$#;+i#{#BuK! zZ%_UAHEu(UddYDvaf@AuALl>8*~G1QSySg}9M3_XKJIYa+c4vE^m|Wm>KT#w;Eqo4 zG|o=|=^BDrBzDVNKjU+^d~IeQPvdwFBJ=aX_md)B`Z|=;(c>5FUQwyc(>R`kO#W36 z{u#9l7Qyj$FpI?ayK1f5HG_TJyTbP5F-Y8sBzzwffp6l|VG`N?#uy|rRLu0i_x`k+uKAQszR_TQ!_;?ad?82BUr_hzMd90CARC%%KvM1Pz2Efx#f+uIQy z?)+*w-CEC|KgYaz^N^R9XLmkv&0@q0y&n2xS5DZ%mM$L;#|AK8Imqvt&@iN%CJuAhSmQ-W;f&YU@e;^Jb6#bWsR z`Jt?=%wZk7AUAH@KuSsq_Uze%ii!$IBobt2XG5)4+js+%0r+$NT1+$zeKdsBVnkl* zRLoy%yDgtQd4iIX5_oxep|Y|P`}Xa_wr$&R;=~EpAS6*xP=LvkCu7#ES*WY4LseB3 zjvhS%Ji3J&dvW9s^YF!%FKy=Dym^D!vuES> z?c2C?=@PD9y^5Ne8mLq%L_|a&B_#zqoo?)+44b9$Eu{H zga8;F9ZjuPONBzg(9lr!_V$wev7@qbrgujh^(J6K;|&+zbY0^t7r`?+h^E?&NT+3K+;hs_7AR!g~DPC*cO{``4n zWMmKkmoHyVv)MfE5Fe_dqJkokh-qnQEG;c100spGIc*9$?Z#JCRau*3ckbL_c6K&( zI^DPjx2IdTZt>c+YxMH+qEss7-Me?4`d$7%^1eB?ef#!t3+b*}T3R@5+BBAxmAUk~ v1R=?b7cbJ{=zjS#%bmL;NecXh{2BT`D)y^m2SSu~00000NkvXXu0mjf-v{_0 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/kw.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/kw.imageset/Contents.json new file mode 100644 index 00000000..7dd61ad6 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/kw.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "kw@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "kw@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/kw.imageset/kw@2x.png b/Passepartout/App/macOS/Flags.xcassets/kw.imageset/kw@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ce74c634a7322827934d5c27efb275d7750c7f35 GIT binary patch literal 409 zcmV;K0cQS*P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0ZvIoK~zYI?UTVu0#Ot|&zqUX86CBVC@Ce0pf4yY`h)`efb0iq)h?)Q z&keMp5nOIZy;X{P{gIwpjGG9-#SXyiCbsG-#XnQEilmJClCMGDeGv8EZ@8Otnt zDFWDXPt%4F!efUoh9aE|MLPL6BAR2Doqh()TD{slJD30OG8kq>tm#(i>a9NW*IgCC zZe)UeD?!NnDmhK&R$2{l8c(sJN4yqj@vDdeWW(beMW+dizSqeck+d4(B%Wkdw+1TE zQ^d~-Jw^Pk&?O>(?EotL5Si8Vm&52hOCy8(5i)!NpF>uwW^!b$00000NkvXXu0mjf D0|T;R literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/kw.imageset/kw@3x.png b/Passepartout/App/macOS/Flags.xcassets/kw.imageset/kw@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..bc18e3ddcfb229a7565f5d39cc2582568bbfc0c0 GIT binary patch literal 441 zcmV;q0Y?6bP)-z7EuN}55CBDS`=D2QM;-D;iuD+*46=prIG zi`^^e-{qo{gY7C#j#>waJ=)Tb>(Sgv9%Ma!k4MNwa9(}pw9>`FY6Q@u7D8(q*0XW% zQRY_!AmhMU6;4XvhySXpPZNJK4!yDg~X7Pm-|@giVNoyj5*hS!;1 z1dOgTn@EI#b<{+_xH{@05qlxD;;%Em2p}@9NHEdF*r{k&D>%BP9cIOo$ z-uJ}v%X^=s$RLS`CK8cB5)n-#B7^)Jk+@0eIK+3{uj8lJx6j?ihmP}9nEUp7ln!VY z%B;CdnkK2CTqF=Kx4|mS+%ob1Rw;@!(gE#4iIVH--lNP+BBoW4nOfw~3%C!>svt8_ z#N-MxV?_?UJP%=+4L7~0J<5y}$q9#RzsN;?#hNeXkcdqcWd1~KtRRyD*!S{0T3A6Q jbrTd{uKZ%x#tJe&F@DBeD&uLO00000NkvXXu0mjft}V#V literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ky.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ky.imageset/Contents.json new file mode 100644 index 00000000..4a4160cf --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ky.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ky@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ky@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ky.imageset/ky@2x.png b/Passepartout/App/macOS/Flags.xcassets/ky.imageset/ky@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2fb44b3e37acbd1c32b7ac6966f6c255777d4ceb GIT binary patch literal 1533 zcmVX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1+qy*K~zYIy_S7YR8<(pfA{Xf!U`_JiVH}95Q;7z24dkCn4hVcX*!is zX&MG)P6eo$WM(#wA6ZT%=1ioPqLo&reOMTXVJ4{%qNxjlAR@cVBD>t(z5QV@I-(V! z&wuBh=Q-y$?|bH*E9`%GrWE(w45cF`o{Wso$j;73mStMCWXX6Q*_MvAtc;eOc_d8U z!nKNt31s6#YSgP*RdbM#g9q3bEZ#;?OXP zGJ{CkvkJe=Ox%{PWMj#xeiC;@So*Ff( zurOp9O8Z7&Eh|HR_AJiEMigFN$i99U4E31J*0#ee78^-Pt2)AwE950juy-xaSKP|w zG@Fqf4ip*6d@79 zkHvvJHTNLR&C-n^Ybtw~0t5SM0Yp(?*syRWPK?I#*$!-{PNAAL7t4VIIE+TRE_fC1 ze&I-!mDH|TL*0Opd|GV9V!8TGY&JVk0Dy~&f|ZN4C@-$V)_8@k>M};&HysZTxAsB4 z`s%n91frsPvT@@KVtT5mcyt=F%AFkFQ7AVaV)EbS^72~J=k6vudj=tCX;@QJnG+n! zTIn9vZz^g#RHJd{k;NXoyyF=Azp2G)gTyEqA5{Z&b&c&-Q&g)}hODd!94^Wvu9)cWV{c{DSyN^5>^R6>WPpHD)$#D!?cyuq2G) z;>AWjKVqUZ!;gs^M1SH4iN>Q0uQ^Uw`2ogTYMAX~ruUdZ?D?hk+G|P$n4Js4lv|eI zKkD@3Rw`AW;2{Y#`O9DsF$+$_W&zy^S57^+j7L|OUK`21`E>dpvN|2ut3|BcW!xR$ zW(VH@8Qmo%&9M@)d}HRefcVaPk=`Ls5p0}6Xz&`kHw>mv{8ltlB>G7o(dZv~XF%3f zsM#~^750x0XPM7PYCqV?vkiSX^Tt%>H$`%WE_ViGST9d56fY!w?JD~437NTNL|=J{ zlocx&srv;tspW=@0%E6v(6=)HluD88lmHa=7R10nhR1|ZAw@A=U&-(FKFk@_pCV%% z$;Y-+7Z5M*(VBV}A1dn+Q?_GCDN zd;G!4cyMv|CFSzRgoa-IE$y_{cIah;8|xADpUcHBY5G>Ke5}LojcHUx~>RV8^cW7!398*>jbh4bUoC jmMJK#qM)$qU-|z6v$iW0B;zww00000NkvXXu0mjf4s_>u literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ky.imageset/ky@3x.png b/Passepartout/App/macOS/Flags.xcassets/ky.imageset/ky@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5480fd6dcae734f8be9d8da93e85ba953015084d GIT binary patch literal 2681 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/la.imageset/la@3x.png b/Passepartout/App/macOS/Flags.xcassets/la.imageset/la@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b8ad1121ee9ec0fbfdaa29d508fd0e58c73b5159 GIT binary patch literal 553 zcmV+^0@nSBP)i&)H)y(3l$cB=^%^Q77saeA3Ura-fu`qBKys(aZ{9I=C7kK`v!8$i}}`Yue##%a1D|Ap~H r(Hn+{-Y`V;#@L9k=pa4n5EOg?^B;arTS=1*00000NkvXXu0mjfvqb+` literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lb.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/lb.imageset/Contents.json new file mode 100644 index 00000000..195bbb5c --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/lb.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "lb@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "lb@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/lb.imageset/lb@2x.png b/Passepartout/App/macOS/Flags.xcassets/lb.imageset/lb@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..22413f2d2cb8f88f435fa1984b4e5a7a28bea185 GIT binary patch literal 703 zcmV;w0zmzVP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0(414K~zYI?Up}CTTvWF&+}PAF;|0H>l%;ZHfQ%E3ijKSc|74U9%p}6QqQQB79rsQl9jUFR} zaEKf;y*@4U{d%GA*Nb8Iu-N~#pDQZ&=eu#V!Qh8M;@5F5Q&01)U^Q-f0vB(1h15bblng=8qC8=3Ad|gadf0SshTW6^7hHxPQ2*&{r_)pG7C@@I3R-WNgX? z^(Sv75eST7Fg(;ckyMk?t8e3Fk80cF&6Q0FfVtg;;$%80ef;@Z|HAtGxU#4sm6b*` l>LLGC%t&4&GkKBB{05zQ^OI}|&13)o002ovPDHLkV1j$HNofE8 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lb.imageset/lb@3x.png b/Passepartout/App/macOS/Flags.xcassets/lb.imageset/lb@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..09e5996adebbb19128c82b8d57b53492b2dfbbe4 GIT binary patch literal 1117 zcmV-j1fu(iP))Zn#xVX}~j34UA<#0AA5kY+Q2y8xD$;xI}zlA%1REG9iTD8luDP;86V`!W3aV`tA{GrP?1hfFGCE==>hQAHiU3S0t`DI3g5R^2Q@c7l^bz>2s5me+>aJBF%GMRL?ewmSTZReO= zoFqgZLc-<*Qeslbh|fS7qQvI3(a_t#z}$eOo|1zsJC|{JU6`yUs=uk`WX4HW+$%WT z4l?62$x6&ZuhUciM?Ef&OEO|B0Vmh!MQ=yN;Unn{R~@%xqs|F z1=<3d{%RuSMhXqR4S0oD5`Rf&#A3Hl_+udvp%HYCcLNZv2*=@etcg3Db(Wr~9xOHs z8np&PnSta_l6~@)1Vjjdq2Iuj&MUnB_cZ{Kp^@b7$R$aWMDo^TF8*?HO-{HXoc*8e zCod_F{G@#LZr|%m2`GHZ21YC+ocZ|-#xWzhZ8~m$dz-GYE)4w!+K1Z#$V$vwm*?`j zn6^$ML&kz*!Phc;-yEpTPcv!IH*oNagXq)r>`C0S8gE&#FugR* z1N{T89lnOyW~QXEgzL|)`&5Tdd!+VdEtfklW44*mYP2M7PQ*B71VEprXWl-K$!fys zaWY~VS(hIh8B5jSDt2tyL9{BG^tkl*4b=crqjj*A+LyIFpLkCD_wD2-<$oBEjpP+xvTL%} zY;u58U!CIKv3ncl%q`EcDQpuerRtqLCI8kkSxp>oI?kwNl;YH4b|>s!9c%7uUI+J9 zv5~Rw3;}=;!Yd?F^>5W8uP#s2yr>a2r)~9lRaceJ-O!2h)^ZX1L#%lC=R>J1S0xjb zl}0I!x^`UhSDxAMuR{_yJUPvHmy~hxD3=+#;)Q1-qA29cMJd;F@ZWEsDF_m13W5Zh jf*^q=1@J2$K_B@KHikv(zY6s$00000NkvXXu0mjfxNj2P literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lc.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/lc.imageset/Contents.json new file mode 100644 index 00000000..7712a0f2 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/lc.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "lc@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "lc@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/lc.imageset/lc@2x.png b/Passepartout/App/macOS/Flags.xcassets/lc.imageset/lc@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c164b27014ba3bc64955e794322cbc2ff3a05e92 GIT binary patch literal 659 zcmV;E0&M+>P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0!T?jK~zYI&DY;cQ(+ju@$Wg?oNl#WXGJtfD+6T|m`qpgSCsw*Qs89} z6x|gBUDj2<7$k#jY;KDnCQFlsR7enLK|~}KhzzFIMZ&tU3w2YRU1;mVV#lp{d@i5& zdC&R04-dTO2p2!DrGOrkjg+V`pcGX@Z1rH!>;Q<*3NDMn5UmKEX7E@+6cmJXnBo1~ zF>=`{jv5q%cq9mgLWIL%e3C+tMjhxEe=syOL_8j+QMJHctpX6Q1hH6*d_K?o{5%86 zBUe(;*ua7 z4sXf_gF(F3ZGs%qL*36g(&;n+P5VLG=t44?#ITs-K*Kgbyb?qr5mr`KXwbsoeR%4J zIt>&G1rmt_o(j6MC5TQ1ZH6NK{rw06#Baj!7I3$L|Jr&@C=|kBEYhH=A;f8c(dQ$~ z&dze<0-W#uvv%biTrHp}bLmpIKegt#|`wEG0yy1aS4?>d}ztPicv3R}5;WJ8YV zp_uzdcJc)Sw?XxnofKlARa3`j0H&DS;e&b-*pxv4Eu{bN(8oa z|Hy*q)o@I|Oy|Bn?1#(Ow;qI3wg9c#1q|x{2svqinekq_I`Z8)Gc(?cOJ-Nf zLIj|zZkQI+plrnNuv?#TR{dDkM^o9xHEVOI=k782RaeT1qKF{K8!wyY0rq+?pO!SnY!F04cY(z002ovPDHLkV1knKF24W( literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lc.imageset/lc@3x.png b/Passepartout/App/macOS/Flags.xcassets/lc.imageset/lc@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..56f9642970d6f123ae069d4927a4e65c7d56d74b GIT binary patch literal 1067 zcmV+`1l0S9P)$SK~z|U-I-BL6L%cPKX<*h(ArXaCx$@OiPMRjZezxYK-CAg8Mb7; znCxYVi`jhHmhE9#e3_ZavIMv6=_t6_tPEJfj4wR!Fsg<$BLs+G7J?ZpDG&_!AW2DU zq20rEosFP!_rH<&eY*Vn|NpnfCx+Vm`!omXG-QB!eW@Jy4 zgn=|@#<_28Z7mu<{{fsnQ9M`I^+G*~k`NFj|0eJ6?`LdmtT6t@VYqM(u3UiHz5mUR z$KwnS4;P+rA|wRll``-v#YMhn2mJaiIAkbw!*9({{!j+O;V?m`xTZ@;v46e`wDdiy zs;Wq(QusXZ$Ino+vv^+o799T&(htDn@i09-&8)JSAO5l$fq;x`aT|})NF+ikl|q)G znc(lIhOC7;^4%5={uez+2KHPx{8Bwx~Zt%P1*9Fz`=FxC$vM{ lNIf(ESSi4bjSfPD{sFts4qfMOF-ZUb002ovPDHLkV1ni_2;Kky literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/li.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/li.imageset/Contents.json new file mode 100644 index 00000000..d792d4df --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/li.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "li@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "li@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/li.imageset/li@2x.png b/Passepartout/App/macOS/Flags.xcassets/li.imageset/li@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c595cc33f02d19619567b4ec9a77ce0b7e93bf5d GIT binary patch literal 425 zcmV;a0apHrP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0bWT&K~zYI?bOXm0#O)%;rEQrIHpskkOU?DQIw0QZ3_w7x+v-nx{RQk zXx$CClGZKS76fH2`V+D!5K$-dZ=7-3#-Pwb8yE8~zs-3#-{A<7#~ENBHxnWwxeEBz zpCBu-Jd&{7g~(Ee_2~i=YHO$vf3Kn9>u|7f&ty=iSPL^Qci5VHBoWnVcEeYBfSYEmNuoIlD~`9}-Xm72V+Dvx$u$GVa4L{k(p( z(ZUu!+Z-sOFC-D~GBX7cO(VS>mc z@B{lbGC!;TsCxCLVO+S0sG+?3_v%lx2$6CV0u)DPH6Fy72XW>>oOuvu9>m!XRX-Mi*D;KG$D#2LhJ)$`yvfVQCoL+W@qM17eZp_F6z2F*gSBq&RjeXXWqk+ z7`ipZ5kLk1a;qg8f!u0=MzODu&e$r7Y@xDI z5iA#VKsp4a{h`+TK$okG^nJ&xR?v(X?-$aX%h^PuCFGxrr1T=$w9D6(B=45Go8i18 z5<@q4{XbO6<@(?YMsn-;!eOoG;0ka(8M`V-8K7!1>7>ertur%k^0YAAO#dy{TARI@ zUtAb0Vx~5T88W&i^YF;W9HJk4CIKu;Rz@=2FQgK$8DmVzVCh2ccb4COLU6=4Y zAItI)zR%f{31mq^*A-6Z<5X;cCwvqIJdc)*P0bKP16>i!&X-8WWj++jyqf#X_>~M3 z@2N>jxDrSA1R`LZ9w`^@CyPdJWG+4684K_nvMxIW2*O2SYu%?@S?y-iTw znVQ${Un+}G`T}kVJPU*c$eztTFeGS%AweSy2^wKY&$_!jPa5h6D{2r0G^mG=e|4E3~7n?}0r4 O0000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0}@F@K~zYI-Iq;h6lWO6fA7rfW_R|hCdS>EXgX^Wwc?7caee^`M}FAmq@KXbWu+3$3+YMS{fHpOmP{cj)+d<=iy$k8wbjhSSm zlcnO5+h~%{I~d#RXaH07HqPJgYFc<$E3sR=0Fnwos#S%Z`xm+JZ5|<&mO=8{%Iy2R z%EY}C2C%x53?H6-km2(821?Rx83JIgq;c`PK2%Qy2qN--<(A`-AOM__-t^phY+tk9 z9}rvmG(LJ9I_FDCIa{HuS5`~8Wwn$eFREkTG)AAtNc;)rLK~kRnkN?bnO=aA3BleC zf&s&$Ru^2q)CIF?63WW=j|@`mvnZEUibb1)pOu-bfbGDCJ@ELs%0JVRpMS}rC0xkQ zVCSglWeF@u=8aX zxQ2uP#}lz&E3%SNnRGFHVo)sX>9$0D5$bF9)7BE$oe%%{^$TVrDWvqqno{+P@eH nL@GY_htuQ>L1e|d@?Y~WcS#F-IluAK00000NkvXXu0mjfc$ApZ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lk.imageset/lk@3x.png b/Passepartout/App/macOS/Flags.xcassets/lk.imageset/lk@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e2b591d5c4c65db83ed25acb5ac935db12d899 GIT binary patch literal 1382 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ls.imageset/ls@3x.png b/Passepartout/App/macOS/Flags.xcassets/ls.imageset/ls@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..0573c05fbb9fe3602bf5e7e25cc68efaf042eee2 GIT binary patch literal 605 zcmV-j0;2tiP)l$Qo5Z}gXDp;=J`K4;T*!rjjslt z0RH=rpP@$&L4$XX9)K2Zh|_RGoQ50XG~5uU!M}X^_~;qvKp3K`DydW|q+YKRRaIH4 z2uBDZEMCy*bV9e=g(!;f`~A=~4gG!}kw}Dv4$MM^!yzO|!hAl5&*wuvpU3rjMXS|f zp##t4sQ_-b8}9cz#^W(Kjzc<~hH09tbnHTs$t3psJu;aLOw+{Sa6m4XW2IyFX<3$q zPN#$Ic8mM{j%+pyMN#1OdRge$?T8=cW_ zvCkgDlIqTrLm<0p)TTtJMml(TJ9s z-l;_hK{yWZ(o>Pi2oZ7pDRxh@-%;lZiv%x rL!5>i;xyb4r@_nbKU^L?1Py)xzGEJZU&bAy00000NkvXXu0mjfKN|=$ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lt.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/lt.imageset/Contents.json new file mode 100644 index 00000000..0a71075c --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/lt.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "lt@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "lt@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/lt.imageset/lt@2x.png b/Passepartout/App/macOS/Flags.xcassets/lt.imageset/lt@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..33af49e2076871ad58df15492395ab33d6372bb6 GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xxrg*wI zhIn))-`OAXZ{yq(;*xEQEbaF`*d$7Muq!kNwl9ET=4scWCz)5h`y+j!=*e^YW70a+ zai8lF5`NfEc$binkWyivu_*0|;)?_jzF^UE^vPd+#%=rmvt1F~KSPowGU(@$7CM9-cM-|NUoSxcgG6^Xp<)7NGkWJYD@< J);T3K0RZ4yUU2{b literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lt.imageset/lt@3x.png b/Passepartout/App/macOS/Flags.xcassets/lt.imageset/lt@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7f2c76a21d17e35e78cb88e651621e232b130eba GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvPEQxd zkcif|mo{=X1PC-IPJOL2kNbv2(^}^pQx8Y%K63b!;F>K0TZG=kC>16?$EMxn$r!9mR=CyJ44`hw)Gx&g+EvR@;V=4ohb@*6oaR$pUXO@geCwFPf|1h literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lu.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/lu.imageset/Contents.json new file mode 100644 index 00000000..80e8f320 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/lu.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "lu@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "lu@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/lu.imageset/lu@2x.png b/Passepartout/App/macOS/Flags.xcassets/lu.imageset/lu@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0175718a24838317925a1f1918dbb0e0c54f3745 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?XxW_!9g zhIn))*Q`$5IjeD^VoPGe!K`JBWehSsRxGkGyrE#)vlWKk-aIRm|Jl{9J9cQ*V$CB- zX%-9ke%8L4b74W}tb>myTtBqvKHDw9{1%t}#&@5HJ(S95zw<=!sfG$79c%9$3|LB1O3(P0*B_<^7FwIz$c17_;0u(baOmmmdw2oPR Q80bs}Pgg&ebxsLQ08WWtegFUf literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lu.imageset/lu@3x.png b/Passepartout/App/macOS/Flags.xcassets/lu.imageset/lu@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..dee17ae1468e99f230679c80901986c42d7ef87b GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv22U5q zkcif|mp1Y?IPf@Ml;JvjAxI%m@!B%0We>U77I1qNIzj3r^ zRx@-t-Oy<11rfe81?F!zt!8%V?l>XW81O8LD{--a8I*YZ{A)^n!w0*4Z+Hb#*DZyM j2df=9`{tZn;|Jz1-aP)fmdVS3Zej3r^>bP0l+XkKpZ`gR literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lv.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/lv.imageset/Contents.json new file mode 100644 index 00000000..42677cf5 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/lv.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "lv@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "lv@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/lv.imageset/lv@2x.png b/Passepartout/App/macOS/Flags.xcassets/lv.imageset/lv@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5a4c14f4ed411c2338e9045748ea1466c7e69f5e GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?XxqCH(4 zLp(Z@??}x0_2cKs%|<-T94fj!^9^{HFi$wR!ubL+W_bP0l+XkKtBpGk literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/lv.imageset/lv@3x.png b/Passepartout/App/macOS/Flags.xcassets/lv.imageset/lv@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c34d91b1b80774da98cbb045dc86bb4a3f90a7ef GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2s0xPZ!6K zh}O4PHu5?Ih_oj9-(%p~8n^t`Q&u2gQbMh?jXM=sN zY>$fPO#RNmz4SYSHrK*Hj$Wq>5vRohQmq$SvTsfTN+>R!;_6|xd?`riNcG*l<})~g tFTegfNu$M0(FCqT`1QKKd)y;_FrK+6l-i|zG6v`(22WQ%mvv4FO#qg#O{o9? literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ly.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ly.imageset/Contents.json new file mode 100644 index 00000000..e91cb286 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ly.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ly@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ly@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ly.imageset/ly@2x.png b/Passepartout/App/macOS/Flags.xcassets/ly.imageset/ly@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..738e8ad3140ca8ec4c3d84b79069a6d63dfe61cf GIT binary patch literal 399 zcmV;A0dW3_P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0YpheK~zYI?UX%B!%!54-!K_C6$z|X7F&qvN$1$eUDVED+ z{bAfQ5&%@SMxzmp$7AaCdIW$pO(Vt_4F-eCv$$s@wM2AXr##Qeahz|x*=$B(7*Y@f ze=lO&Hm%p|FK4D{QWQl*M3kl}sjB)viDX$uuItK81ON#kXfm0QWmz9`ilWqhBdTul z+qZmof{M)Nb1W7M2qDn#_fZrDvMj@DwW>M_y2+nwC-R%cJtH}s53O}^w1LWOnG&tD t&PFqDE@ObMWQqVRKA6=sB4rwpGViTlAx(+(e8~U+002ovPDHLkV1kb(u+RVi literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ly.imageset/ly@3x.png b/Passepartout/App/macOS/Flags.xcassets/ly.imageset/ly@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e5f51a54da0f84aac775ba10b4f268fe0a34ed77 GIT binary patch literal 468 zcmV;_0W1EAP)Uay-cG9Hh)+wHF2^E{7X7;?2*@r%)D zq$O`EyOzlB&k7`UW!3ve27>`fvR148*joL5-`v)69EWinGm0V>3WcjNK@hOh>0H)E ze(V6)XfzndF_+6Fo6ROgg!z1)l}aVG?KibUW2scS48-&KjP-hr>2!+Y@u)u;?CIA$ ztcYnS@8y}0`~TZj&i|)d*Pw;Ww3Zby4J%?AR>U-v01X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0Q*TqK~zYI?bJPL0znvn;df?YKnq0^K`jD8FjxfASXy}o$pM0g@C4q% z-k%~DkU+q~&MLhkX=FhO38L(*g|V3~Gr<*^7q*x!b{{@IM!Y{f_9JK#V*&;;PQbAU zqO*Vic!-&Ym|YI!>+0~t4jJbp6NTwNgh}BR>c}cINxY@!ib$HjVCJ3(K z`7@-k)Te0znW!-|i{qKpTx>8X<*93QJps6#1HvFAPBI{4aBCe}(h}t3|zde+fZj3d1FDIF$puAL+mx@{HFp5oJWao)5 znEHaoT+tlwXpVO@=8CB=nD}Ov~a+-pbq00000NkvXXu0mjfj+)9e literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mc.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/mc.imageset/Contents.json new file mode 100644 index 00000000..47971ff9 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/mc.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mc@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "mc@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/mc.imageset/mc@2x.png b/Passepartout/App/macOS/Flags.xcassets/mc.imageset/mc@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2cabbfa72606a2c9343df2b216790149fbcfd5c4 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?XxqCH(4 zLp(a)UNz)xa1da<80+NZt}(Gu;>iLA?d43ma~O)$6JB!sWZO1#dBU!b`|^&SDLWn7 z_N0Mdu}i?UL&-&O(Xp2{dGXJ*jg{tw*(%MrCl8m1`_IG|;>Ob45448C)78&qol`;+ E0I@AN3jhEB literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mc.imageset/mc@3x.png b/Passepartout/App/macOS/Flags.xcassets/mc.imageset/mc@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b6319e7fa59cb66cc539aab516419d9e4896e853 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvR8JSj zkcif|7a4gQ3k<5=XD1 zN!tYpr(_tzc-5+~{udk0Dx-*krHxPSu5xLY|767OrrLD#EYLy*Pgg&ebxsLQ0ERd_ Av;Y7A literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/md.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/md.imageset/Contents.json new file mode 100644 index 00000000..76682709 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/md.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "md@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "md@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/md.imageset/md@2x.png b/Passepartout/App/macOS/Flags.xcassets/md.imageset/md@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b5213fb1e6d2da847b7de94c7fa7afc5741a0b45 GIT binary patch literal 954 zcmV;r14aCaP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x18+%0K~zYI?bh3C990~^@$Z@0-DEbq+w3Nrnhl#^wrN^RZ-O=0*g&O- zc%cuezW6BkKM0EAgAXbep9)fZDF|M$BBBK&u@IAx)P$5=8q;lXb207SH+!4iGslN5 z6;jGhU;_&Np3WS8znKp+=Xd4^PG0^B)G#(;1Vkvw>XiHF$VgWWm4ekv8l&Hz z<=Qu=SYGx#$Q>JNXVlSmvakz^ZAhqj9joAMU0DioXSEsK4XuL;DefYKKzCRGBvU#w zQ{9wAQ_EUgOXDFvSB`AKq*Ruq(=LRB)`-F%%;I#XiS!l#NTqd@CAgOR!R;{M75TVdC2LZ1Om#$$XCD}t|f|Fo;4n)9z267j` z`;(J^$Awc97`pwYtPk^&eB8>`B7D zb(AjI)++#P9PXuhsE_qG_T!lcV;qtn_%WLga{I|A9+dVDXOT&J3#C3}>mcMhNQURg z>s6FeT=87w?dT1DbG}Y27GP`3#|`rZ-nlc)CGQvil#aVGm+f^NVh@kZ|>N)Vbo$L+x@{L=OpKPI7)+2pyG zI+&h3jnk><_D<0A*q21yzY}#oj6<@;fa!&eJjcy$p~n!~j@j)+YV z_Fw1u&=ftFP0qg-B_7kudjgSFi_;ae6@iOI*!za-64thm0M)94tl!H+T_dk3q~Peo3RVXqr%@R@weLl1dodU=23Ak c<6i^$8!3fC_{%conE(I)07*qoM6N<$g82!>dH?_b literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/md.imageset/md@3x.png b/Passepartout/App/macOS/Flags.xcassets/md.imageset/md@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2accb74af242743a6030da0652906e0c520b0425 GIT binary patch literal 1640 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 KMNUMnLSTY9@s~;f literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/me.imageset/me@3x.png b/Passepartout/App/macOS/Flags.xcassets/me.imageset/me@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..dd08c87ef8d201a7ef8790fd2f68bff05caeec02 GIT binary patch literal 1480 zcmV;(1vmPMP)ZVyVu%Vl(Y*@65u8RyCHb@{SZPbPq1gTtt8`m`x>Rw9SE*JZta8DWYKn-U>brQti zn*(#TB@uC2Tx~p3$2)o*xhNzTh4|0a5yy62+uJ^nT8PUl)Uo>2cI${&L*j0N31Z^4 z5c@wmygFLP4nI{W9Z4^w`@*J#MA=9mt^)1;q4s;Un1UG0Pou_y*rAiLt|-a zq^l7zQ9w@=5JMUY8fPu~rEydv3tdC_&Jr##0JxkY^V%fj6!v^T{F_;Xl2FvB$pU7w zg!pH>Z!UdD#0k(p9YYp0HgU-PRm?<{@YDuE2>f~m@18Q8Zo=s%-o0h~T^Xc+;M4}@ zwkm3WZS!qj;U64@6y?%?Y84ce6wWwwS(7`s1HIHnf3!&Vl^MeMfWm`i_)!_|E>pN~ zh;S~TdvXT-(IRTOP3GVzURh%uFr*0OGE z2WrRzHM*A)qNxSs#Sk&9DV*4ii5)0`h0SOT^`Ggfid|+UHgP0@C0kSYRgcWiZUHS2 zPwv3Qw(o^W7!n7iejDN=2c8$Z6vv|`9BYw!|>tnc;7(L?Qj3a6rq$d%u+1*mC z68(3reN{}`AT@-|7@ZYFO+)F?3b{vWOkLQ^6ZKgzjy*e8$!83sdY$}ZHHwc`2-hqs zrwG?$q$f#EH6gO!y%7Go2F(cDO7KTK!lpqN6y2qWC~%yK8k}uad3$=C&W50p?c#io zD1hElj8_yy&6v!vhi%5V4_5l7l1hkZCx{J8^xJuoW`aMg=q*NgLz*a2JU#LmHNC-X zr;5OF`s*=n_Lhkgfj=baEyVa`P0~z=-k3wg{YN8}5CGRT=*Me>Cuit<+(c&u@p^*q zB1U(9!Jmqb%I<&gmr_Fe`U_mlxA1I4v~JLOLFaER!jm(wE0;HY_zIZ+ROEG7AmTBt&aEFT7U9!l)5xo8%Sd9>C37)BgQ=@^_ah)qTp>`Q+~{(fZxjn6(HsqEXM*i5ex| z|FVIL4b{nXJ6`GyQA!YvEV-9&CYlQffBkRNS3N`{hv^xD#NrUR$RW>dVE(v_xgn3< zH$vqu$J0B{5&XG{dv9rbg}B)+F0}MkW8AOKp<)ZZ#6RA^ab=)&2m$^J4dU0%q2{}| z`7Xhm3y`u~T|w&9677WKmtW%6WAHAI7<)=k^AJj4tpno_THtCK*faFa<1G>aTXcL7 zfrZ!SzA=2#BFswEV>R@sj|1YRkoetY^rx+@aCsF5c14k=*05(gMEgg;lk!`n_@=41`PJD1u$R%SMbBh^!tX*)KUUD>TffZK5==g6lbRPeK$!w iU}$h3Za0aoz<&Xe)G+CmixGMN0000|gW!U_%O?Xx5M eG`?WL!Z1mKXa7E*nWjL?7(8A5T-G@yGywpH!bC~{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mf.imageset/mf@3x.png b/Passepartout/App/macOS/Flags.xcassets/mf.imageset/mf@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b94a2263d0ae4c51f921f00255def0ba318d445 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv6`n4R zArY-_Z|ZU}C5p5@v_9-|n8Rp+K~I9v#-6LZ60!a34y2WMvk9^pM)N5B2yM3Sws^|> z{N?upv-7X5<6keJBVKwdKg>M!@!q?p^B?aFG3&bgRFBu^Rh^_@a_Zyn700&k))JoR zeO-ZXVIfDabB2u5V*#o53l=TM6iu)SY2Lc2p~-xB)pRANs|gW!U_%O?XxN<3X0 zLp(Z@|NQ^|KZ}j6O@J-wz^m4F2`lZl9YNkw5r=vHgTe~ HDWM4fZ;(G# literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mg.imageset/mg@3x.png b/Passepartout/App/macOS/Flags.xcassets/mg.imageset/mg@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a13cbb8dd7923cc9ae2a1a9f969273d6be82bd69 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvsh%#5 zArY-_FK*;)2@q&`So!GzlcO@X!A3UYHEng@h#o? zTxHwQZE7{guWfm#z$D?ro%+?$;eGMB;-k0OD*`#BTQ{H)o!1)oa=uu0>#^A6{XaXL uZfLahq7uF=8zR{HUQZV&u)6#C2Jg+6{6X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1t&>FK~zYIz0}K7(^nM0@$dcRMM6lzBalQ0Ppil)2nzMxYPAceV;$RR z9i3^bBUPs^+AdwS&UDl1Ur^g&?5@?KZrYBuI^wHXc?6K6@-h)3k`M?V4fueD9U^p&%UxvAvPEFv`bHtoMAD%6vWzG4@Wj$ zz+s#)tLICUgg{mloDLJifiRLJkmcvU8iQtv&a8xDg>>dU}SM4XXc&zo zv$MRDErtCE@$Yw`V$8aOf~u|PlQi*MAw(j?;~VFdyfn&}WMa!mp7RgW%zA_n)VdaN zrNuiZ!jTfGCNGN9y#jaX}n7!xF{Rz%B4ct)!gu+v} zyN4O}htX-(I5LeyqA^mEwX+JNQ!zY4<8<}-X}RIUH!=Z$UK3+)rJGewZ#*|>*-UoT zdpJ$A2cp+E&aqP+{Bog(m@In|o@Qh;!mo`zWMvpI=ryb?vnLeGio(tQ06LwDmK#0- zV^M^F0?R0$)LbXa7zSWkn+;13P+C|p3()5ca_m$GXD;_LGxM-_{xi@N1+r}^oIZPt z54V@mesdUWngMf)jNn78 z66ehAfdKU<+c|f2V9vfufW&5GZV!yIvfNI6Lp!h4IC0ud81x$M2O?a!b_cauBGr_{ z9nW13Rb8XPHVnYHVL7Q4dnvP}B^+>TAV7UXJLmrFpLZJ18u76inM=)Hs!DA9aJqwy zwRsd|TWD$@q}MZw({3W>@8rma7R%ljRg2pw^6v_ZH&pfc-{3*AN37x{^}TdBEW(W zSy2dvCIRU821z%BIp}I+aaw>0O&;pv15^|`Q&&a|XJu5`7j`7iQH*1_;?i<#TR=u0t^b}-8;Zn1g z?@qMQ^_+kOA^EAJ9I9!?Vot{IJWQpl6j@RD<7z)gkGIk14ZaY-V)>Pq^{;#$O6x z7NjI|gu0rWCZ;UH Ao&W#< literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mh.imageset/mh@3x.png b/Passepartout/App/macOS/Flags.xcassets/mh.imageset/mh@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..ba36b4a86a584053440d38af0c66a85bba16beaa GIT binary patch literal 2308 zcmV+f3H$bmP) zv)S9*4=cf#-P{DU|4%!6p69&h_rA~bobw!^>VbVH_&?Xy+zzu`fVB&qC>Lb}L*W|{ z(}JW?1lhT=ku~W($QR=vEyaMN$928qT9C5hM|rxk4zu1%7#0VTVKIJVAc7#VIorX5 zg)PWs*H*=XKy(@f;}ZeWQ;Y}#ND>%yO5EfA>mG148C8Dvl-E<7GC0E~n`^R8qd*WM zzf1GX0K~_sG3r$4wF+`<@jwLV>bM)Bf@CMZ+jKH21k3|uVlv3ON*e$xvJ+9Os>(#KRgw^==8m;l^bL-)>%I~ky<-5RChJis#Onf)q95nC>pte*740zt z4aJwEt9~gqh{x+ECo_RN*Jknl$xA%{L=|J6Nw#lVjzOoSyudiTty)2xK}Fx7XTbm( zd5|4N&8%N`Ir;!WhCk&lQcJd@Q7eJSp%WDZpt2~HyVhq@d$x-oY`KMWi;+0JDyr|^ z0S}*D=;QE59c=#2QZ711IC|>Rg7-|O$;D4r*O8(hk7^I=b5Z8+#*%88_J356v=jq! zQAY282a`d?Z=SxDW$7k#8b!X)x%N=yghrdgc5ai2~K7R*G_y@Ob@PagNi~>*BwCZX7)>F87U1 z!HKdk+ivM#d)`H4!t|vl$V9xB`>~bWfl4`d;W6g%^Y-ypNe+>twyDEOQ-^bEfYof^ zu65bmxi)KFAfhP4-aX2@wH^HXv&%8}Mxthdr&rgLyJUEVEnp}_SNH_E=EOOl=WdX(x-53t%<6d8V?SjJUCB&j@O4h zzQaw_obDtLjCq-h4x&{n@cIInjB0+prtqzS&z>jSw6N@BR%~dy8GRHe?ty0ynKc~{%ix!y!Zhb z79*v3X4*Qs*;!o2nzY{Oe)X#`6+cE^a(v8)I=e@C^Sx${pRp4T&%ZQ?xkuDW`P63G zc~3EK*R)bqYQ;V7r!Y5(Hpei<%ai%*+nt4)tAo>>prXaLx1-0k8aCs)ts1?+lv9mPIgmYwqW2ZW? zB8Ke-;GusJs&l;5Aw#5CO)oT6u^|`%s5_O0DE_& zl&)*OLO3kp@%kBdP0)SCO{O)DB^nBM&@4w&xSL{YN>sn~E&aUyP9y(m zy0ZA_7XtESb@fJyLATe>(C7pJNwo3&rUnekNWPF{TE^0LvZAyqYJqpIp_jdfF3`{x zy|!Ac76fwj(+>=J3Htp!T++XV3TY>cIwDJBOmVx^7x9$gQ?+c9u4x zl82Cx<4m}hyw!K2QC+*Qge8fSpI+u~2O4f#|7+eLSKE`-={*3rHKmw}A7iCu$<&x& zD9neSIM{pW0+;*7VtBeSnit5I+miv&h|BUQ#buRKrAiqjQ}siZ88kqoSUh^Flh@yAWMJ5PQv!~qm>@=#pWWr>DM=Y%Twx=yd=F(g zkw%?wGRTn=9sJ`+6V8!|n-=VBiV9MY?BvOcdW>2aOnQvMighUDB3@sB_fKA8-@6wW zcFnw=ev_I8GIa%A(T-EO8pWy~u`&kR;s%PgT^BktAo- z_Dfck6fipG_6Iq#~YZ<&o?ePMB0;&uWDq}^gYZ~+X;mw{_@Xy4%D>c( eZX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1OQ1yK~zYIwU=#ZTV)i-fA=P9Zj!Z4s;GTgSGw5QF=b2;rzi-%GC>$C zs1!d8Uzi^z>Tt?%ABL-uq|n`q&I1D zuOCisZ*p^Q+M*tKxX*cB|IhiK=bYy%;~P2J`3CoC{VYiSXZY(8Fs|S!iXYa+LDfVz z3-CuDnDgFq)FAYH1mRolw!%21c5zJ2|3dccX1ILN?hM@wJqJMzc`s^~pfG0ZbAK)Z zLW7JIRa+VCax~0g}&vk(WW?TVVAEpai@ZpBuI7`l$CfWd(G<2jSaA zH+1-W4@~W__fxAUq=yBeen#|_cUHhOc>wv{ykA-!(6t|0?iJml!a8U}AW%Dx9KZ50UU+Lw8{UiW5+n z5IPDIP)@r~@(Rf~<7XmT)HucJP{sIZVvI14>hw2b-NqGi}iAtG- zLL746L-@9O5CHx*Xt@WnCm^%|0)5c5T8h>O{%hR_YQOjMvkr)Lg0?}?vnOD3dp!sMt%{a9iU6|=$sI6zO!UZB z+rkZjR8s+P+YDK>lma4K}`ZiXXHaY+dUYfAJDShjWiX?v&kTQ5D`q>p#A4j#l+Z RW{m&<002ovPDHLkV1o0i`bhu) literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mk.imageset/mk@3x.png b/Passepartout/App/macOS/Flags.xcassets/mk.imageset/mk@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..024a361a47067bc58d4f6d4a3add3a1a900dd47d GIT binary patch literal 1457 zcmV;i1y1^jP)Py|xi>17J^HiXVh=idwa(sWw7xZ5s$E7i3QY8qjIQI~Y=W$6ycB%1(C3|C zv1+WVlZ%-<-t_4~^vGfE^@jH^1XH8^l;n zxM?%YT~~TeqBtTp6{}$_G;J!h-B8I4*N%XiYRy|EIw}+!pD5wToYfHi(5T-HmCW$u z$Rx~E3vYw^RaUuFH)KX2GYY95>v*UWT6W33S1OsIU4UG9Q$Y_xcqi1a0CLc~35Jdv zWoA7t*E_!&`|DnUwu68!RO)@#dlU?|lt0x(wQ*?K3$;su{0_k1EY9jdsA!Tt%?CA4 zL*x_4rpl+186I~~Y7C!*yMI9B03@zJMWfu$e!?ghKM&E3ki0Hctaqcggtmh=a+F-^ zx+qUxm1}0WOl6f&(EuH%3lT75A_mu%Li)D%9rYx9AqdQeK!;o_=Yy8(v*t)<*yz}l zqt_vqw13FF@2rt9BmN6?t+bcX0(oQeh87#{3n}DPj@ThH3dt*w_yThaZP&Ty!9nk(I1n)<7zVE@%H)iedz$Lj}%F7ia)CrM~0bTO5`_=NPR#rqp%c0|J z-U*<8m%<68ocd}dCo0>mxha9v(^L><2Oa1IqPy>X82Z-O?L;+$Bc-SW zF#4lxDco+=g9<7+<;fKC@1>DbCSz@=Hsy$&$75%pXIwyX)1x77rNhoT-t*Xs8`>0MDoaG!fXGRKSTcmk|gW!U_%O?Xx5N>9K$5kNkA?00Z zT6fOQ6>oGF>Q2$L_%p|O3KU*pP}EfJeZNQ;SuATNu8-B4oeixcsFKt_&VoEC0!Pn-FCy| u$TF-#%sbSX=gS*^=#HzYWImtrh+n3j@6(buZ=V5O#^CAd=d#Wzp$Pz{DO5WE literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mm.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/mm.imageset/Contents.json new file mode 100644 index 00000000..fac2fb73 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/mm.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mm@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "mm@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/mm.imageset/mm@2x.png b/Passepartout/App/macOS/Flags.xcassets/mm.imageset/mm@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd69d748287e3ef9054030c9843ceab28b945ef GIT binary patch literal 679 zcmV;Y0$BZtP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0$fQ%K~zYI?UqkS6j2<wD5MokK}zuTIJ!iB;Lt3w4Ig2X5y zBZ@+(ThO7vZXSvt2s%i&JcypGAdDcWus~c%kw^$pGsW5scQx02+fD~-OG{@)gN^9> zn8W+c@ArKlc<=pYM5=>k;0PI%DQH$Q3GlQ2gUr>^L9#Z_JedX&dFK#$XEO{U++fsz zaSD{I41%nz1~m^<19A>8$x1!_F)%ug`eHG~*Zr4EH-Hb|t#KuKsjsJZF+MpYN7de> zr@%BRcUoMWUCer4NqW9^=`W=G|;vQ11l7dE%18WZA)4X^!A3n`Xw&o>2 zD<6TFm3z0Mk+Jv~6Ea3r#)!!%Q5oaWa2uWB&IQ-81PO&h1apH_6<1lM;&!v=GA-&VfuThlh&Ms0g7k?F`U zpeE+5*mz=`3op;xhHwM|(DSLAnx`k2{xY48iErb(5~&0ypVbfwhn!eD?;|oL(OvUz zkEUo$C8wO)qHY>gMkbe;w)@C_|6W5N{PVpR2o8BF`X0Z(7q;u^nGz%F&0Fefu-`|r z>q=nPkGX8`z?2ew&(3u0%-|OP(Q6OwT7ux6<*k`3eR~-IsSjZ$Z`>x{IHLdi88frzm{c?(c& zCs{4=BXkYp&62onGR N002ovPDHLkV1i7WF|hyu literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mm.imageset/mm@3x.png b/Passepartout/App/macOS/Flags.xcassets/mm.imageset/mm@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f4cb181d1c6ec85178485b90de886caa58becdb6 GIT binary patch literal 917 zcmV;G18V$CmK~z|U?U-9gR8bU$zcZJd31_ewMN7Ka1+qlL2GbJiv8RflA}G_c zdZ-?vpto+620;Z~-h#9qih3%D=w4`$-BGMaFsw;Row0FjoH@-oJv4d2+nhQ3poBjR zd(NKyueE;mUTf_+l2XT0{sTzL3)Ha=LIg}>9e^lI2pMmf5E3`cQ~rJohVeq&o58)w za5sjRUuj`INM_WA1xC6tct?_#fjtLo*^s={P*;WukZCZm zcvyZ#ekHFuUJ;N3bjbk%au;2Z*eC~L^IiDDKB8(g?zl7^EeVN|xh3q%-i?G5w-YT; zQK@dK=E8^bD5?@SPt%U5s8lso;r;cELyHb!Gut!=IuasEgyZjyar^6S&D?}?sN zl-F+Kd+2*2^dZsS)6ULkI}#EBI+Fe4&ySSVl=8l_F;Nq}_!RiW)|xUJ{0#})&{ehC zdfF(jE$5E+&ai9LQLb_iTOYEmW-G0sRz0C$p0;t?VLb+-YLv&Vj|eMa3euJg`hBFL zP}Nk$iTX-pMb;AnAgGW0D*_$ij<`9#u#a=^&uXenBSBb0Ot+`wPIAY+-j(Dc!=53^ zy*MErw?{K4-<>bYJ(h!)EJ7}gp8dF`ouTDE&!xLxMEJK9Hk$H87;??X9&$eX z;3;ab8{4XtAPr3XjI112VWUZt_~D@Wt~C@)Q`0eLP8~28ZSfL3dXh+O9RNKyZs9m` z0Q2mbgLqM|zS0YVa%56bzx??9o6zO!_}7&5iU5#bzQwfG1-egb4frmj)3lzWMX}00000NkvXXu0mjft2?s5 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mn.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/mn.imageset/Contents.json new file mode 100644 index 00000000..58b5b662 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/mn.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mn@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "mn@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/mn.imageset/mn@2x.png b/Passepartout/App/macOS/Flags.xcassets/mn.imageset/mn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..684cecc96821d9741fbb9d73bc515c287fe5cd83 GIT binary patch literal 458 zcmV;*0X6=KP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0e?wEK~zYI?bba@LQxzB@JH{9-t_u*5i^R6NFj(^f~X;yU4y2k);>a? zAllmc1d(fFLlHLgLYPB?&=z8PyLz+x?zJJZ@D|+V9vyt9a}NLE$8*kbd{?=A(TCm^ zT;wRVj#FXD%_z3TN9@(FUCsJ{qTkgdfs7%88Ewc!MgPUIjLY~r$!F)o%pH@^PPr| z=^?V*@f`3kL@Y(2zXZ^}4@0_%5Q8`#Yr4<`H?M+g(qM%yF^Hp)u0p|hWf971=-I>^ zPDtY-2D!|mekMS=<%vNYSCd$i!A)yl8;Y3Yrx9DD&{ZgiS5f#`8&-!x>yC%@LBZC& z|1IK~(FWDFV1Cnrd192bQ=6aWAK07*qoM6N<$f|R4i ANdN!< literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mn.imageset/mn@3x.png b/Passepartout/App/macOS/Flags.xcassets/mn.imageset/mn@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5734bfdf4cd99d5d2245e94f1b525fa122d27a GIT binary patch literal 813 zcmV+|1JeA7P)ilh(EgA^Eh zOMc~Pn`K3cFLj)%ApcDFD^J_B6cHhbmawo&Dv`A1XQsAr6%ipx>TsUkPki))p?;rlZIv9-mKtFRI(g>SPBy z&QCFWBaO5Ls&13mU*zlSnBVzUjO&avYYOi!_Yz5&bnYqPmbk7Psj? zGY!Dpog`Y^Cc0^1pRCVR>FAB250}t)R%m23Ca?7UnZzylv9!VxeRmmv+!KTOM+wZV zM%RHNv$v91d5sOnvgo_Z)TX0fq2|E;C#8IM-&+%4{ z>t+|4WbSS^g;z1w^;em=+{c&a2Jyj)-}zQd%l4Z&_x`7I#>iKs9o(hWvi%mub(F}D zrBweAp>sI6Z;I~i*AiqOB+$An(noVhOOStR_?>N4EY65sRC#kD13)9IVV6}VE^X%h zRflGM!FT5R20q?S2C{oCibz{fndn$D;JXAs<8zqCk`ck+|M}ARx3DG>H2xV8RUjXE rDG+vSW3WE&>1Sxzv8M#m)7SEE;p^su@-&HF00000NkvXXu0mjf5?zcb literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mo.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/mo.imageset/Contents.json new file mode 100644 index 00000000..6be1f045 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/mo.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mo@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "mo@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/mo.imageset/mo@2x.png b/Passepartout/App/macOS/Flags.xcassets/mo.imageset/mo@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..afeb2408517864105d832b8e2d86115ed7ab4902 GIT binary patch literal 777 zcmV+k1NQuhP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0=`K^K~zYI?Uv0;R8bg*pF4Nv&N$utm{PHrG8L66Oz1-wDyS5N&^OX5 zBdA4fixv^|2egYmb``Y9Y;B9c78BA?nWG_8sD%dOj2|^#o!i`d?rkAWq)^w<5TYNP z&3WJV$8*kk&%HIvScGm_KHE=D=GHL78fc%0dVvE zR&2Tj1IhOod@(#+>aWJOVOv2V9lIJ3mc@fNy^PKzGO-`IPUZM$+>%Xa zV?RNE3fl%%@p0$qX|6OM;%dubZXM~s?@_RA2>MfWHumFQMiV;*F>Q(Va4j+23&7^Q z0yg+n+%6X$S*A!`&*r=W0AjkA_HZqxEv-HXfF``0tJ_aYd5E}{WS!#8#B$sU32m0v z@(^eD?n4va-#9ImOvBE0Btm~mEK+m1*m#iY!V(Tt*3h)A3R!YdTCfp-f!G+0rB$?6 zY)AEasV&*UQ2aCVM%n>}G~~Eh=hJD<>~12M7s$+MX&uX6=!3do8LHyT#6HeUay|US zslD@~Neh!l0})1NetsuZ#YaL*l9-$Q1!816!Q;0tF@$go;&?~W!sK?Ohw0QDb-{9q z)m(msQ_xJ677vuS1o6RO zBq1@TiBDpJCiuhy31XrT#>5z&j3yW*CI(Fe6BA>wka|N~5JA=gy#QUx(i=;=ZTB)W zK2#Pq3o&x0X=D0-o9}#czW;ybyUZDlT`foXA3z75m}wGTK+H4&uP`TMwqZ`lY{Rq* z30qmhR(86>pik%KYs!*58%+T4b-a?_h89d)EKh|P!ohJhY*zzdFm3WuT^xY@-O;?C z)Lew-l6AaG2v3E)^Uyis<0kLM>HrwZ7<|+f#YJN=*KhhZhDM3_ zCozPhLPbr8(BRy=f}}!(yIk@z$oTyz=MDJN*7*3rDEhR%Vj9P9Z@nS*3q^BXD~2u&kAZ$8b7 z7PC6CgcnvmhT}Sf`~g-}Mv!7EWzxAEt=%znDS3U}W@<~z(S_jbwK$2fB&w}bsr_!O zU%?kIzDmd!$lESnAEak^5K~I(!xdBpr&90gXp-*XYh-Mjy0V2V4u$jgj7+3>{=hz3 zyJPn(L@Bj?zI1_+iBy4*+E6*Qp>oEv8O+=2Ash%&;`0+Q%%XjU$5Z@rxl4tLTKmm9 zHaiY|%E&~jXf0rv=;D?TL(02~*m3w1a*kcJ_FteRL>H2lRgbg3qwTH*`@!*6KK%9Q z9oJgBV|;v~jh0pG3Pj%vl!`s)*nIhCJLQ2O(ULL}V@Vv>#c>_lde8CR58v`gO+E81 zAMgM49lDT&`~muJT<2u}MFvu%w06aK^ZP?&ZM8R|RO}0UezrBO&0m{RCusQy7$%LC zQIeD6>^<@o8X9|^+Cqut=S-rH@oa{%^duQOm%sP(KaP`}oR}FQ0BdXN3px73 z!K-BK98wdYf$cb0y1{+n%7Q@&aOwIG#}$iReX_@UNM+J2uc*%3e7eDdRW$$@LgM0* zbME|67`t|b*uWK48tOu9$Kgz(k5d0UR#q=A>P&`|xGqIqDV0fcs{b-)5`C%^01ppV zZM~iJj0~`OX%nj=wS)t~sQ^OYG9?&bXnc$l@r!)Zd5ZXr5wF5~d$76*T}akMm(WyI zLu5fIt_$(x2&WU5Y47V*o*8$-vAI7ZI}}>+b}0&wm}Du%`^!w@HfnNh{<#h RQ``Um002ovPDHLkV1h+vN1p%y literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mp.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/mp.imageset/Contents.json new file mode 100644 index 00000000..5d0fc266 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/mp.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mp@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "mp@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/mp.imageset/mp@2x.png b/Passepartout/App/macOS/Flags.xcassets/mp.imageset/mp@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4855abeec1dffe4505ce1b059f43aa3391f4bae7 GIT binary patch literal 1392 zcmV-$1&{iPP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1tm#DK~zYI&6jCxR8V$wRwajaLx=D-a*El`cM6YQj=!V*2e)oV{uq`^;Rr)x-jwo;6__UPuY! zr1o`6nrs|zk>M34w&)WAnHeClF<8Ue7?GRD50ID~L*#;4DB?CT|4t{JCoiB@Xoyd+ z(S5Owr0zV{u3k!nI)m>Uy_ntOrx{ma4D#@{N{`NR32XULmcNvPQ)XZE0bssxBk9eaXD%w~$|( zz=sts0_~l=9CZs>lz`Xg#WC2;?y@+(FhRCK#qQjlTsxFcPSzvH9d7b!9Akovxq%y! z)vOEs8ArnhcrsSA?OZH7F8MHf{E(0#7e!)XV+aWj!Q~ueK-AFe((py2hR46L60tm$ z!=L7{W=0&DI%%pPKGMQv+${HSSrN+NrX;?;J|yoEg0VR65FZ~;bZj(rw`I8H{tx_> z_8{IZUr3wWM!%_mC&L4#1~T1c_A^)Ndp^CYY;Ng3xM0Fl!buAUJu{uZOh6@CTYz;i+ge z8lt14*|0E%Waqtk`Fs?bdT4e}!>dcDxAsSLk+pG!r^@E=|Ssw_&rDyke2v$NnjO@n^J-s!b+%xWiv^#^cyos$PC zZn5LWL49)ti<80$5Iw{ES+flQbai&o-`@|ws+obqG@|6$yi8`bz6y+nrT zNnW&=Yu3^0r%3uU8vx@-m%z;F@#Ln>qrK)dS?Q@%x8J7SE|8^{uyr)hQdfl_2zb3- z8tNOUHiLQK4n1x^vJLRgiWq83j*z`_GkeZ=QEwX+3Gah05HefEah_#M6gJ`>hcTI{0FV}S{*#FRh)n(PXi>;`5#tYk_940uJfqQqY=C8vdj47BW8d1cyV9&$s*DXZyeJ^KSoFU`54lz6YWNO0IPh{t(5rPQYKHygF`Wg1lBr0!2ba zHI;o<4ABDpZjm#?5-v@M-y`}Bh~Tjkp^|uS?lC�x~9=@OGc4qfX|LqA*YiXhY)B zVCKUUpL2XTlG0WcU0$7E;(vD_9w)1k+E_8iOZnjdq>6P&135I>mie z;%r1_-TTaVji%^qtjmbxW_=>g6MO00x0y*(5=k$yl6})}3DGps;mjmFd@?(#d+6=y zAjyz};1#(2hEygNWFf^SAezgm-EBvmdIwoCUKYd-^O0F#1l72K2&|}($73)p*vij_ zqA>)8pqJOvcXB_|78Q^@s{qOAX8XCBw40mQd`yK(t)|YRC0rW9tI{zi2C^f(T%Q@o zb^1zr)br>sUrAf7i^SCPWG{P~`ELZXw=d}G1KGMnPqICp_Oe%S4eemg-RT%oZsb1= z;kxfKF5j0k6k{sQjXWdz}J%Ad!0XPH= ziNYXLV{~L0v`jVXNzsdB8MG7|1BrHbQ)dfe-7$Eutd~tqnWQdxlI!j=P+R&(;@tr} zl$6U1EaU0lu>(mE`gwM7ILgKc>8jj_ZAvnljE5<03+L&>GVRWb%jlr@VvVOwPQx(4 z0Kl29Zq6!WF6yD>g=4`aKlCb|$f@)j-Ryhq54c?t&)t%N%IokykO^uRgNk$xe-uoJ zQB9ZLz}lk*9@+0=L=o^c-5!qy0H@Q5$z&oSF#&*%K__la=+|^5g-Cl~8o#ehBp~w_ z^eCzrvR0CtY9w7X;9nprX@qrm&qAZo5ZYVKXPSJx?r>f??t6Om2Paa|e4ak51EbMM zUVc8cEvNZZl|E{Ww_4St#pbYcSfKyF8g{Qe#ftn?{{oq4vyo!iLF<;M=(D@XOpn4H zJr5fJKJ{fmi4Yh}abW=f`p{5{@=S=Ah~ZG{`SbQFetgsYRCHNLoS|m^)C}V3^B<7e zv4M2<7SUB(MMOp>3yYWYevAE*HWL&UGP5!-d?zF%5UlWC(xzET;^yKz>2?kws+u_4 z+rgk~Y}G%e^(`+hlJnhqR1Beun#9h}x){_%12D;L=J6jG$j|yp8OSnP<#LjflP@$C z6&LY#{6sw8SW>rER9@J1_s?`_T zvvfz1CKlpSfkv1>d{`i0yKIhQ8n=vyPy_)~Gq(|t{xCc1zg|{WLCZ5o)hvB+2j;Gx z%lfNsXs7svGG1%f;uSA~KveR#hCC(~-htI+V)wt(_~fW_EGdo+NSo8j-nMt>bDN2a zjpK&}CLdY?+q-oXuQ@<@Rn4fr)|BpJ{y*xev4{EmKgX0r%Iw8#?l?$7ZYas(rIv_s z0-2hlr@H3@+AIe-+uu%KcPCMz@5z4B6H0x{=}~=Eva zI;G2(6^s$c_ND<)LQ~HXWXZ+7w=NFc=I>jSC?| z`|V-BJ}m+Ov)Rnrm)FwS(MfGhEt@uOVqjnZV_XcgCwx0bX238j7f+||a3waogTFt& znQe^?G&=QT0y5@{)l8$F*>Mq=CZ%zE@a2S*JUmwtLqq*h_LP?+ zD!yn}C=@sx4r*&_k<>agqJrILF76F_$-;x#B1sWi%HLW?e$j2@=g#0S`|4=2s(qz% ztxsRRPI?gn}+H#BBLWIF1elGZQQ}eQ$Zk%?H)ho)2~aRW>Yh0gMyj9FTc4u0<1>^>C2rTqsCJ?#60TG7qv=N6 zZYQT|N~zznnuMi~vbWjBZ+4yGxFd8_`%B5V$%n6sR(9}uNg!!a&~s=LuJeO@U`ZiV z6+l!}luw)9-d+--oJ{CHhC0ne!J<{1vq;R{aD-m@%6YBt#5CH4Kvo~JF+ax3FPHv_ z?zWF{Z#~H6XsO}hA!gjN5>HSH#V=HFRt{lMapfT3JC4X##i+8fG(8wseFY&(>5?Pz zu`LRBR5Eq_3Y^OS7w-2hJ3GHtSYW` c68@0?0XEBybZx|jNB{r;07*qoM6N<$f~YLGd;kCd literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mq.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/mq.imageset/Contents.json new file mode 100644 index 00000000..2820787f --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/mq.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mq@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "mq@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/mq.imageset/mq@2x.png b/Passepartout/App/macOS/Flags.xcassets/mq.imageset/mq@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..62d74b4234bbd0e63fcc2d2c282acfe986a5e93d GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx5M eG`?WL!Z1mKXa7E*nWjL?7(8A5T-G@yGywpH!bC~{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mq.imageset/mq@3x.png b/Passepartout/App/macOS/Flags.xcassets/mq.imageset/mq@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b94a2263d0ae4c51f921f00255def0ba318d445 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv6`n4R zArY-_Z|ZU}C5p5@v_9-|n8Rp+K~I9v#-6LZ60!a34y2WMvk9^pM)N5B2yM3Sws^|> z{N?upv-7X5<6keJBVKwdKg>M!@!q?p^B?aFG3&bgRFBu^Rh^_@a_Zyn700&k))JoR zeO-ZXVIfDabB2u5V*#o53l=TM6iu)SY2Lc2p~-xB)pRANsX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0#`{yK~zYI&6dk+6Hye#zdJLTre-otIyFMmMw2cQ;=)CuL=j36K@ePM z7rwGp2o(G)#H9~(r7OG9N)bdsP-x=|q+Jwj(O9ER(i;1S&7=u!l9}tGG!&CM(@Z4! zHW%ic`|;zRbI)8d;qMh3q;^l1iNbYKtL+s&Wr;$ryV=? zNoa2#7EaX!(JT$iPz-eEFgj9^?s}i5#JIb zz9rodL;giv@h;;*Ollm+(}WGtw1B(E61W{o!fM)i5{tZ2$$PzE#j|8}Z`G2nIYKFL zaomG?z-v9sr07*qo IM6N<$f|&*>#{d8T literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mr.imageset/mr@3x.png b/Passepartout/App/macOS/Flags.xcassets/mr.imageset/mr@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2896bdddd6f5c98cf5baf228746cee4908ee1883 GIT binary patch literal 947 zcmV;k15EshP)2W8z0Nk|;_AsZG+_Xf6^V zie9`41rbD0y!GHgya@#n@gV4-l!}G6k(QQHY>Pyx62<6ROEg9>CfRh>-HH1-J3Xk; zl>Klfvup_Y-F9c5_xb*lCJyq&pCyI}j;$8suUp*u7i>pzmpAQS&%%#HSdn@FV~b z1n6mafhd@4s(y+2dWAjK75+^)o7!k31NC(M)XYTu?L37NGTVM$&EXpjBn=^Fd}W@o^I_SDAV9lcFL>Xd zV;<7xOu>JQRuqiu@aqVo_4>EPcb;u-@w8CWw@mboppsLVB?aP zc+0F;#qu6eC6kY93kz!X#rWvT8g5T60^sVXhYr8aZ+P;?bu866|F9Y@DOu8G*@&JJ z=?X+xqNbUQ=MFy`teNpU7*+{})x2ZZsA)c38YN=U1lU+wFOm{dDTxCu6PA+|;^5i| zw1kA7w%&tmb*<~;ZjQB$QCFU_6P}fTJH^qqG5W^~H-v21GVlY_-d20Ro(BAEB#0N+=<7>5a~e{%?c69aWj+1MX2i>Kc&@6~c+!VSQlCXGA2 zL3TH3?^PX9fW6B#?)KiNw=oRBwebqh{IAnlL16!fwikK8o#NV#2Q*eBr~i8xQTb}9 zieI037}UzATWO_Y(B_S?Ef8hj%1N3RC#GYDqY7KDv@jYgD~%C=CQp(dxBtUhZ#?Vu zxbdp!s+9ee`d+x49lxyNiLT5>#_V6LhNB9b`&u~ncMX{=Q=&?ltR^z%t3z}14=uAc z0S;8;UDo?z99cKUuEucA%^yukd^_yr)S#b1t=y^9&Kh}xOElS3Jw>Z8j!#Jgpe1Dn z!zwpJ?!1rjb}5RHQZR2m&@C95Ysh^A&UKDbBG)J8M^Wa73l@ybJ!AxaFSQ6K_z#^% V33-*jX#4;G002ovPDHLkV1f#%#3uj% literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ms.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ms.imageset/Contents.json new file mode 100644 index 00000000..9da4de8e --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ms.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ms@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ms@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ms.imageset/ms@2x.png b/Passepartout/App/macOS/Flags.xcassets/ms.imageset/ms@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7f357cf36f6d5338418526e4a834b20c0e0228fa GIT binary patch literal 1383 zcmV-t1(^DYP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1sq94K~zYIy_S1WRCN@`KX)G>E4v1Wyd)lh55_kliBgi9qgHBSH9iYO z9nHy6k+DpzloUtIk#U9@bH-AKW}R|0Ck+J`e3A-?AZjei8w3~GW!ZIi@Ae0R5=7xh z=f88#_x$eX-t+sN-xV&+UD7mc)e@yWbUd3kpJ3m<3`EgRn@yQAlh$e-xm?P|pMsBVP-P@7cRj2ha=q38hQ!=fMj{%#hbCFsTc+ZQydY&Sh0e_ z!mT7EOhYP_bXnx&BxlbTlQ`^og}#^1GDxGL*n1RX#%$;K@w^uU0m!~kLfE(WNuLo< zO;QrI%VXJ|5JgtjdVGCdI~0V4`ID14lDCg1tDrW~;^7E1V_)xuN3lCFM8JLuW`>Ivg&1Q@Rw=k&O(TNV&?a$`U z<-HkjHmm0#^XDJP2O$_>=FH)wrY^*xLd)G{%aD(IonL*XGW)rLZQD)}A3qIiZ4C{d ze2jJOBI16tk&|=(g}y{P2!M-=f*m{FCoX0@wYzt7U#+HW!8&4h=MfT8%8Y9Xl^z$FD{h28ACce$ZF7IG3asf^zINJZZMOw z=oqr4ODB3ICeFdRx|BPSkx0YFvn?=|qifFt5EA0miN3I~iin7vtXnsgt>2|!(VS!4 zh7DXzSj^&ITChk3GGB`UM=kmL(_9*WtG@GHWnl~LR1WBwc)%}Rf z)YQ2(`#(Qa>WaxHPngNo^_`FLwQCR9@K}Xv)VbfGcZ>@?Kf#}XWf&7cD(Wruv%w^}dQc~QX|LH_tETtLxzkpC|rf@ovT zlPa1FM)v1qfz9&&fCzv4iHT~+#H}HN%En6QCxx=khe6gGAfnMkK>eQpOws?&jp7zg zm;#vPSHc0k61T_IsGjDX`ndES$fHs{2^D)#nwmgi$K51SSpljM60r1T*3F-pT$BdD z9}ydYUTV#iOXbuKjcRp_0>hLN{Qc}WI|3p|<*lvLIlGg8!=d*;o;S$zW{Cp@Q!EpMb-cS002ovPDHLkV1nA#p4R{X literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ms.imageset/ms@3x.png b/Passepartout/App/macOS/Flags.xcassets/ms.imageset/ms@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..ab33c26bba6f85c211efaae5b0787aab7e87a4ca GIT binary patch literal 2193 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 S<6toW0000|gW!U_%O?Xx7I?Zi zhIn))*R0Rm_sgEynd2}6lN;Nyt3J#x8Bz>h36y~Ffk}V7|B6Z<-rvpqvSU6^&-w_y z|BuC!6A~`Sd$b!E7~PXH2{Z<&&5${CY4*nVhW6*rHv^US$KRN5@X!A6hFOh;3EH-7 zZfzI6_?dgGSY$Wc`FZxMSHsKm4cAQN|83fv6u9@L(y;>{>Kk55wO!oB23Eu))y}}+ X;-K_&Mo?=y(5(!fu6{1-oD!M<;gwuL literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mu.imageset/mu@3x.png b/Passepartout/App/macOS/Flags.xcassets/mu.imageset/mu@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4f9996bc0277028fe4a725da2a83c535943ada6 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvZci7- zkcif|*Ee!DIPkPSbP2i{9es~&o8JSCbq{p<9*Iu-)|c>Msgz}#JrtgOxEox7f zcrd9gD*nR3ANz$tpU3gAfC-Od^7rfWFDl!-Fj%Ks)zWU_->sM-(bT4xaj7L^cMH29 zr}G5^7GCEIOE@>a)wJBVYm@$-Hy&UG5>3aJc=pOYe8|4Efq!Mmr~Q+F&SLO%^>bP0 Hl+XkK@7Pfn literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mv.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/mv.imageset/Contents.json new file mode 100644 index 00000000..53757b3a --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/mv.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mv@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "mv@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/mv.imageset/mv@2x.png b/Passepartout/App/macOS/Flags.xcassets/mv.imageset/mv@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa9d896ecf311401f5f21feaf039d3500ebd28b GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O^81Fj{)L zIEHw1Cht*6*fguLQL!aafl>K!)-uLY1|f-34l58&IH&B$1z;p|LJ~iIc(=o&Wx`6tQknYH!J~G}>TbXuM{} zp7td7fF}Z)ae{64>;D_<`T4CdLH5&|&(dsRX<}@Fd5w*wCtj`oE%EQq@6!S+Ut4Y9 z+xhjIq4T$Eacx!YDs0)7wq3GLf#2qqrYRqO*e)*l$23Rs%h6DYbNhE3EqH!cxb1qp z{e|m_JU{?sCG7b3i*f0(2W1^M!r9m+FaNK(jp44(B-uwL-{qSx$G#C2(LJyrldZ>! dMHYk^7$&U_PiwfnA`lp?44$rjF6*2UngD}Jrb_?- literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mv.imageset/mv@3x.png b/Passepartout/App/macOS/Flags.xcassets/mv.imageset/mv@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..66b1e87aaa4c7d4b8a9322cae37d4668d7585f5f GIT binary patch literal 551 zcmV+?0@(eDP)0O)9_|8v{9Eee>42 zj6|kiD9l!S?p*4BXpbhT-M@YAaXqa&ho~NcnofZ)m%ZZyVyA}f8KO7h&&ea)I>^EB zJRci+h+iZ`BtY;+$_k2!^o|n@=nTw-nOL8diUNdg#G|UrbbX;pD<`}%DJ}s*B3&Rcis4H1!Q?HK@3V^`vMOGHFcqySJ9MdEl% zL`0&-Zvd*aa*5+D5fS;hy$C>CMLqexrxFoqh=}~yim(=oQuHLBk;XoWh%`h*lBP-L z)CYbUy9~YVW+2od5%UjXD@yFdpnjsC@X91(&HYTh{Y*{qbE!DlrSatQjQ5eRd|LcQ zWkAR8%cUew<8R{7_N;r^ev_st{!MvY|08dS->P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0rN>jK~zYI?UFrfR6!JmpE)!4BOx0kK?o8H4Mw-Iik%S@iwLIDN+H+_ zf>nNjzre;u6tqx+wOAN1La-2o*oZ>VZ2XAvBe+R+v-i#%3maYa?rxz;u}^#EoO#YW zW5%6S9_L}04jB@|K5G~hgI8D%%4$$P1nqPb<4%@cCk+CeN-PtxP*eCCl(G}nRC(`} z{Z?34+~xeNxxP`1KBYuIBAmwFwyYB?`_YnhfJd&Mvr zTh_u4iMh=4+ABvR;Y{i%TOk9U=Yg5JXSU&4w1(rcrECpnQ^&Ph&Zid1v=lj?S}gE3 zDEAwlsw%hpV(%eiBbaIwd6vz~Lgn&BIsQexRHhLf>yr|t{yk)q;ZCnRF%H87tA zJ_hA_>34~rxsW=p^hH#>GM@z^V8jX~Q@n6tA}c|8u;uxt${Vi;Fujp6y^$3TRUiWv z^1zZ;5(AAE-^AQ2MGrUO#Gi_Jac{@`ZR-?f-9#*3)U?R$A7kKi;UD>*bVZu!iZruh zMBJm1T?2Kuy*^1E2HlM#L!(cJ`?ghNtWq7_F;CMKX{IaEOjo3t@BJ~nDmy#=`~Uy| M07*qoM6N<$f;}z)WdHyG literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mw.imageset/mw@3x.png b/Passepartout/App/macOS/Flags.xcassets/mw.imageset/mw@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..16214d0abe59bd0e1c33854f8a73ee8a87c53f34 GIT binary patch literal 848 zcmV-W1F!svP)Z0AH zP+I6uXz8}leHUE{{)7r{Tqw8@6+zU}QraM~#i9gCN}8mJFUh-i=5%qN8!6?!X$sS7LEBlvJi|2oKKanMiR~@ioP&++u&+9@NFmO=RERb zW@KJzsnHUc^-9~|{nT;2+h0$6G1mVw>y>F04yo`*FxJhun@4^Nh63M>CR}MXIQJhC z01bhU8jhQL8+#+{+@X1{-FqnQ=N%n$njC4)~_*;JJpQ?TYu{X*3=MV?Hms z)5Wor&zj{9Sb_IaM;Ex2Mb^z25on4qr2+yD;ZZ1G^`%ebuvgBf3JA+qh&<`F*iV{{ zxrQqp^f_PeNjT+|j=^$-rD!}eh`>?b-;tEQ>s-BwA|tn%S-%tev0~O{EO7vA;R6zt%A6t7}!6TBK^!B2}Xn zsT#FN)u=_PhW~u-$gp!52>!v;>%-1rAiOfARf|-OTBK^!B2}XnsT!}0h@V}0wmR%2 a2Eo71OewnK6g|5D0000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0eeYAK~zYI?UXx9!%!H8pOk35wBA~!Rz*cwDpbo7P}h8I_PNS>3^wX#LZej~E% zCU2U=Rf*JV5T&<^sNaW?^AL_kNNZ2j*Lf*d#n#n?L!*qhC=86uFj4zXO7dY0PNGQ) zLy}l|Li$4VO!OC!!9+u>b%707*qoM6N<$g08*L+5i9m literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/mx.imageset/mx@3x.png b/Passepartout/App/macOS/Flags.xcassets/mx.imageset/mx@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..45ecb0397e6d55b2840359ff66eac7034b3255d0 GIT binary patch literal 742 zcmVf`Ub?s9Q*B9V{$EN&_X`OhwamU0*xyW1P;N=f5(C`R?=k_+aKg z!$@>r9K`@%Iy(oQ@j z3cmFb=BDSkbp94jk6*Ml9dC9Cm$#gjmNL}XHtUN^=({m;8*bxv6(Y+S;+3TFTT7N? z91bsz6W(+w{`Vb<uK5z@1|c0fv5y=<#?6Btskj Y0A#P$Tv=v_4FCWD07*qoM6N<$f=Mh)o&W#< literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/my.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/my.imageset/Contents.json new file mode 100644 index 00000000..6e53f21b --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/my.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "my@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "my@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/my.imageset/my@2x.png b/Passepartout/App/macOS/Flags.xcassets/my.imageset/my@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fd19357d19aaa4b0988e634bf704632eee4609cf GIT binary patch literal 949 zcmV;m14{gfP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x18PY`K~zYI#g|=7TV)u>f2TYBK84akGd8|5%7j3X2`EOTi^+@^GQDud z%w$oMd238|v8zRIjEi0w^~(5>DH=(uh*Ay>(AjKQ_V;QJ zW-?aM+1*jikJoSe=5dEP*c-y2&oX_b7Wq;=*{txN^Q`^-bX*wL?4iiAM~sKo5`Z~h zG#gdkKQ+nWK|im5a35cMyN^iBK(&-&C!xntm1OOP1%p0IDy=ITmX>GYRA6PlXmr>Oa7*OT{ty78Q_cUn3hc6>hOTi?|zLM}HWX47h6(&fck03PVt;Md>k{^^15XLi%o8m8MFroAOXGPR3~ zzt{2ES$E+!0CH&+b!)2x5meE2|ACtP^F8-d19R6LoH#bir{iw6wvC0;e?8SqT}=|F zJ;}9|YQ}wy)Y_9pBGTX^^j!E-vxg$feZry66VdYv+g16ZyK$TGcgBb+23~y4%j{KW zA>eW(sIQGPd)0}{kzgZiE*d!4D@)AzZ3sw#S7ksmo_JZIPczkcOGii^ZBzj&ACh@@`ETf?X?iReZ`l8v9*=GZ@i*8 zr^s@X@X5W8`;t1tKsiKe^jSPrH#O(7snj{KefDgy91?l9OG*h*Av!kpr*&YUrJOQa zQG7nXn2ERtIZy&J%6&(EE2J$6IXJ8 z&L(iAx*B~{n1(WD5wd?*J*7oXTyBX+cW%UfGBIGxKOTu~4|Z_KzLcjPK0`%i4#n%b z`1;sgvkK{ZKYuIRSWX?;2GRIq5@)I)&7P%RIKRlj8MV+?O@L zBWt_yP3p*AK8z&FnkG9Ng1|EYmGIYtUy_?KNXr>3xle9EQK^;5apQdS+Hsm3R(5Q4 z5NYsnX*`UYx)f|y7jGS0$+2de>Y|RSO~hLbnhFUxS~jbT+>Aj0KC|B)AVQ~8$jclc zQa{NTKcupMS3RQc%AhEdhteV^Zyd-*5ENEtU!chmgWD@!6T_IFk15zyD>dQL^mBW6 z;9V)p0xeD}+X_1g_O7AwaC*SR^pr8$ z&sx~?Y!eNwaqN4ck&@j7>?~=eWOo6}lP}Wwmr3FIq_^A<%E$k}uK%d>qZ^x=M1 zXJ24LULTIGXq?v>f9mX;jb6Sxk&MOY zgSMCDtU>^m*v2W{+)nX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0!2wgK~zYI#g$8F6Hyd~zne}|5<4+fqGBJ4@exHd2u4wZ)e0>|=%y51 zD1!Tn3o#WJqPE73=*l8R#Dz$uPziz?E7XdjMo@}`ND)mcS{scoZ1cJ7(oO4F>?c&YlCf1MEVw?nbOwI|^Cw@5i%s>#p1W-KwE0od{ZUY>*Ypur#jwkhbp23KxFW!gXx03o4s2p(L5<#GK%ltm^r0YB$7 zc;71BCpEP)Iq8k(v*K5WwF zve{V2Oq7XDAVe+=4Iymb9?F54Uy;T50;!4B zM+j>wEB8NJS$Xh;_i`@GxcAozVbQVoDZ-cIK7WT$m+q93l&mYm&v*)bRk#w@@CPta2wvlXQ%V|9=0WE!B=X2ps?API!CIolh+`vfvi_OsZulwT8E+uWu1#X(d`BxNMX62@FGFM|YPCb#`8lBu9_*9@{w3N{qJ~xrm z@FXrTNS3^qxyYsHMVUV5I=)B@%khA+8cLJNE>edz(r1w}XL^zOcp7tymL)GTi?re~ z#EY6GFD8oAq8rzjBuic#6KRwlN)08;k{4-_W~`FlL(NjEJZ!f+XaAp}{{!dP(5Kv? R0b~FG002ovPDHLkV1hNLtFQn7 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/na.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/na.imageset/Contents.json new file mode 100644 index 00000000..3b73c1eb --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/na.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "na@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "na@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/na.imageset/na@2x.png b/Passepartout/App/macOS/Flags.xcassets/na.imageset/na@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5bb37a9a7eda1028ab0022dbb39a43c713d04696 GIT binary patch literal 1104 zcmV-W1h4yvP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1O-V%K~zYIwbg4(Q+F80@o!7Zr7$Q$VVlf~xR`-llmaU^-5fB2q7&;P zUSRG98pX|JGcy^>Ug(fSQ-b(rX3NOtvKPxDf|OT;1m@UM?qEeBX26OA3UXol3zL(}YgUs90Nc!r#3{tf-GZNN3Qy@A#_>Qb^X@JI zo)7fl!ifZ;J!a_3&g5x*{hIroLM|S>iD4)dfbB2z^2v8aYwj0|L}aIKr6?zc@p3Kg z#l_fWXPv?wLPR1vSB`3FydTZk%pVYm>}c=iqRlJigUa*RY~p|QgoVhtn6GB@!~l;{ zlbF`)odT8*;AlY^Xr%wiMvf%w@b)w#^RRF1e0}~Ee6D{< zr%ELVA(BY!4igy|3u4wPWo*iq&59ua#wPu++r$h%-LSkbdTS7$=D$q9!*=e+t1uf3 zE&~7pG#Zpwuj(B_7HncXB=hLn5*eM81JK+T&bH?sGjEmR?Iq>?12G&_JAJx5lGIGMv5PjLjF4w$ z64B9$F407Ob*x|nfaLP2RK2CCF|;!#8%uAmpk_BeKa^LlFsV^5rZD=uV8Bv|2hX0_ z*1dbTV1zs?i|t+Q=n_r5Rjv9@2mpz>r$>(6?s|hnl45~Rw@;4{3YEjrMbA3IAZQC$ky!hA{*%PYGEu<2G zP3sr1{iOta9ah@&^Xb~ZAE(_uWvtgiX82h!5Bqx?{tz({!Mw9&HH)G`Fr7QcwTujg z^?JACC7v7>;BRJG)HUQXD~B?Q3Gg?g3F{yMY_JSNW+n|O zDISRckj_hZagV#3gJ%w)`&|(-iIeL_HSv*pcKzb7d~)FPN=S5OZv*QM2B^7^R|kk7uJy)UxVEt z;o!+%W3x-AJXEQWvt!e8(w~pP)_t3{++2E&9PvuP7;e2I4yV8kV+38jv)TR2a?~M4 z02a<|C0?!P{bR4QB;tl!B9h}((vs$r_3}!Telofa9H3+OZX9Oww2KFj1qBiL@yG57X}a|z z&NU}sw@c{ko6X$dJL7A{{t(O~3eH?vMV(>MggDh4CA&5!v2sxuLszfTpw%*1QzME1 zfS|NA=IeC$sOGsRL?Uqz9o|7~csqaod^@iupCC584ZTrK)wzwllz18+iGyQxDL5Pw zq!NKwQlCYe9*++WI!j9Up|B9g$cQKcq=A7%e((Wvv|4&BU6g#2?%r2x3{6-EpJ|J! z`u3;v4=D*$4Dy@g6KwmefR3Ip0Akg%cxOuz3nN1qtf}EVWQ8h1V$U%+gp-QhXyck_ACaimf`Ey zMG*iHxM2hH%gd3gBRHnl@t3+BhODLud%T{t`pn7+jm_SF4?|`q-8vmOy?QneAyFt$ z7Z($@b0?kVR`z|pf!eNrJ#w$tLdF|gu!6qh$7$KVo%^?Ld0q5_D3g=XR8-&_t>LI% z$HCfcEVjW(_j@elnLvMXUP)x#3N==v5&f@TqxZ`%r&Y8o5`_X)K>>4fbGc=1W#6e6 zs54GIf4MEhwXp>#3Q~1y|e>;@a3o3LNokOh@omxlz?Qgx#_mB|R z#wOTpbe5FRQBZ*M{{3kc?uv5tYUWo|Adl7XdGjZHdg*P3Z9~(_IYG$s1)=PEZM3nO zzWWY?R*R*vaasqsBJuM>wPz3EIXSeLntAWUS{i%Aaajfvf3Z0&L!yrt05g-4M&E@6 z(Ns0;M|Zgpt6iKS5gF^a60S1~KVk9#Li((=X|jI_0hcECgznkYK4hNhnHMaw^i z;B-2jw!S{v^YiI0D-$*O%)~@Am6gaB#_;!sQqf&-MRxa#FKFGd18aA;Xh{VhAHuV; zh}gRq!(cN-)k!qptrIQ(BhNe!;!Jq|MG+s5rm_;>rHlDT<45S~3$QxG`{GT8Xji6! zTs}G@<>hhH)JRcv64!bke_tymq6kqeT{`MQd>mDcrBBQSSEeOIkjV(o&L-mBce!D1 zqNw^g^u3qFs?8(37NS_PWYmRaOQ>r6h_d?K*c{fW1OG>OEX37?#(_(`cYGNw{o-|h zZ}CWoA}$V1MFlLjv7%pHTH0a~1|_8zc0_j$wkn=vah~uW XpT&*>4$MX+00000NkvXXu0mjf)46BV literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/nc.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/nc.imageset/Contents.json new file mode 100644 index 00000000..9287c8b3 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/nc.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "nc@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "nc@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/nc.imageset/nc@2x.png b/Passepartout/App/macOS/Flags.xcassets/nc.imageset/nc@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..62d74b4234bbd0e63fcc2d2c282acfe986a5e93d GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx5M eG`?WL!Z1mKXa7E*nWjL?7(8A5T-G@yGywpH!bC~{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/nc.imageset/nc@3x.png b/Passepartout/App/macOS/Flags.xcassets/nc.imageset/nc@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b94a2263d0ae4c51f921f00255def0ba318d445 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv6`n4R zArY-_Z|ZU}C5p5@v_9-|n8Rp+K~I9v#-6LZ60!a34y2WMvk9^pM)N5B2yM3Sws^|> z{N?upv-7X5<6keJBVKwdKg>M!@!q?p^B?aFG3&bgRFBu^Rh^_@a_Zyn700&k))JoR zeO-ZXVIfDabB2u5V*#o53l=TM6iu)SY2Lc2p~-xB)pRANs|gW!U_%O^81FzS1{ zIEHw1ChxiT;!E%6M}mHBj4bzgbM_hYE@7T)7-oFD^6}>QtpCCy%C}qo|6izP zI4Spt=&|zk5p}Di{yY*gQ;hsPU%XuM-dX+BAB8^|n3Pc04`uBn$7_GOi|zzfrMyf_ zSm0&(>BZ~I-93Axw}cxT7_>~tS6f-cKQ1QD`V-g$#3`_=3 LS3j3^P6SkL-%Eh5WFt%}VDOg(J#9YGt#^jLyeB|74!k$mI0we&#c)T;> zZh`_W?gpq(BC?@GWJ8I_h7ysD#E2MXemm|SNMKdT(gXm^trVayW}=Eh zBnxBEdxE&Az`ws7yKZjo!YbFmomKKo@;4H6T6jAxVKflG-q+?WWX>AkZjLgR{;-Ss z@k9v#7!3qOy+R#JEArLvz;9kpt@9rm7>XWcG_gpx4a_pBVThpHri>;YEyn&*Od3rp z!rk0#GK|T6*mc{5S=gCcXKs|BTMlJ3{a4F6I)|3FCkLi&SmhdZEWHTNuEVK%NEP?S z$BZ$giu-V?9(Z<*IyT}J<>MW}&x*pA^UxQTqKX1L@D3vr`A>|S{%zbnkdT=F5hWrU rN<=o4h-@ek*+`6t0fwu%o1owu8X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0y9ZOK~zYI-PTQO6Hye#@&DunnoLZjCSt)?RK$oc=)#p~78Z0>)Ma(q zoeS{`h+n~_=%z&kE4UE^7j3acl2Y5+rfmvInxv*CO=>bTnM{(IjJqP;)M=Uo`t0uI zaQJb#2aeG9k`KTmcFDubgX6CThVSfF_ivtldOY!QVdVCIl#bf0G;U`O7Q{5omV4|A zWF;MKxkt;8nbj~;$+7N2B(=k- z$5~8SA7#ssT0>(w8>Ofg$knr$4N!y<86}RlrBU{Y27gE>j3{Sphz8GOenWL(! zI0YvT!AZGULe@(prB&WfzvYjz)jo*UsFGF_7&Hh5t|8hzXo8AtlxdneN1VqHO&?y5 z51U}^u^m>5y)GZ2Gxu;I;y)bViD!sNYKkqbz|hTSTse6iK@czu1H0YcJ_tZ4*iR_f zzkSy9D&h1bS5Mv8zO#yeecDHU%ho^V&RBktow*-;z^&7FyAKgv9z>U?Wyrx=p7$ev Y0dV2&f(r@~B>(^b07*qoM6N<$f?6sjqyPW_ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/nf.imageset/nf@3x.png b/Passepartout/App/macOS/Flags.xcassets/nf.imageset/nf@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..e36482930308429c63716c68997a4f56c5d16cd2 GIT binary patch literal 1109 zcmV-b1giUqP)e<#UllbkLeO_MC$SD9|p*0tzGC!<5VU8w9% zoQNQb;>AQ1D~K10B3_FZB7!JWL2y(BJGwcoZQ16wVyjJ?E^F7XByD1nCOK)7oU~1j z7hX7_H+JulUi5$Ya-Qe+{Q18xFXxp4?=iq8)%{F={Akm|fz8(6u3zT{;!k|lx#?aO z;GxYHSEz)5md)0S>}3)$#8%L@k*%g}BmYIy(J8|jh8sz%DT1*PqcO%C8J@XL&%{}y zF~%AhnHu6oY#fK;B%Mnci89v6L~NWZp+Ux{gS_Kvq{KiN+UvQ}#Z4lu~b<*8rj*n5I|{cY?pIq}%McpJQ2nEjqBQ-ekz#T!{J<|$SS zM3S>)N=e36hme3O>m2m9@b%TtICJR}(OB_kWPCozLMDo0anR;G!g{$%xbO#=;u4FM zISwj^dHTrnqOoEV(RH0fE=E>Mvm&X4^24}o_2`n0Q?AE`!m_6F#lWY;k`a+;v5CYp z3%oP%8W}AGW*zgoj3hx-ud-auQKCSpQeZIC%QwUK@cLtK3u6mSq|vjR7hAjVS_1@3 zO(-=AI#6eFAXWZGwYu6l*>nm;t|Pv*AdD?Ek#ID`LN-cA;|Z!#6{#u_&V(pSMGm{# z@kxFXt1(iO#a4q(Jz@;9>yvu*lh}a07lpBf8u=-Fj@iXqgc74jl8IxUM`&?8K&F(UrflV;|0&|-2+O+4aO4_;<9))| z!nRggO;Ib^aVRd9b(MS}!;Rc1Zn*);0vFY9sjOA7%68gZ?bxhVR4pS4FV0BMNH=rE zNlXzPTln!88u6+Fw4zSkp9J93e`LlxdH$)xk+5+2Ew^9YSygCCRxM?VvHO+betbY z&#@$@=$SmrF2`PW*EdnW=3zcRjaDx4>e08z6wu zen336h{xGLO-;=|>%DJsajJ)xkH7J+?|p8+C^R7WLJW8tH(XyS=S5;R)c^9Xl`bVI zua*sE7;eO4^Kro4Ec6!NNQV5g->%c0U7YUhG8(h}_Pgb@ZDgy-0&Mzy#*8@*q(uyJ br@j6H9!iqBi(KX?00000NkvXXu0mjf2m%ui literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ng.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ng.imageset/Contents.json new file mode 100644 index 00000000..497947a0 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ng.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ng@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ng@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ng.imageset/ng@2x.png b/Passepartout/App/macOS/Flags.xcassets/ng.imageset/ng@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..31ca8c399273e98375fa7602ed015aea191ff53a GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx5x6)G^7tdQ*FL+YiX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0cA-*MmpxJT|bjULv_+FmxgYydZE>3`5{u057^``>g zC`7UpB3TNNEb3@ysku}u8wXf=NQwqAK`PAl>Ud#OZ7jRhR&yrza1!|>W1q3*0-)j^ z%C4Zw_1sx!?f0tD3P~Igjk?(GBJE+q;~>VFT16)#lE^oSM41dlA1^pltDIjRb9HwI zj>KPCqqVh97(5|M`7dlFB1R&(Mi@jIT|@|lRMW)a8P6!B0{jHf0!LvC}ow|{2FLJ$PYS#LS^sfT^vhu`e%tl-9r z9cBQDwxeX{d`3-`dmb$`-#Ly?-0VH-dYFX<=!W( z6>N5w0e*{EO%R@S8S8c;M#q5pBe6I9#?kkf;r@gl(N_S1<}z7wfYFJ|XtxuY414&s z6R3I@lPBDHe2YAu!ziD+jJS9G5uOZ4$Gdp`95OiND%!0`wEvv2eGwrf54Uf#uy&1w z{)o_*d}(_`AD?jZ>I1CRj1OPaJbA%YG)|9@`OYN(lI)oEr3MXk7qt?T<{oX^;LOSu zCRs#X%{!F<*Y8L^24HuvjcJX@ymO4$AeEaabsilK=pQ`&YppAspITYm2R!ftjVle5kfi_DdfvOi9V1g1A=fB6|}Kd zlP3exxKFLQgbF&YBa6GD7@eTgLyVaqgu>(_f^Ze#sUqSKTle1-BJ#hHJH6qwJ2+ux x{zod2vQdeYjY_0!R3c?#W<(@{XVWg>f?qIG%`)`BU+Vw>002ovPDHLkV1ikU6`ueA literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/nl.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/nl.imageset/Contents.json new file mode 100644 index 00000000..2f73923d --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/nl.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "nl@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "nl@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/nl.imageset/nl@2x.png b/Passepartout/App/macOS/Flags.xcassets/nl.imageset/nl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8f28328d264560f40b4352fb20ad09124de39e9f GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?XxdOckn zLp(Z@ZA65A|2W%u*@%ak!$s%pJOkb(%o7f-aJ~S;jE_${yMO=l`{U(G1=)i~4sL6A zJ#+2VUk58Du6z8mR!Ej|SV@4e316aR(Z7WU*2mYgT@lR5(P`2No-TXcqVna*2CE}Z y@qWn{T+YJGeNcGfz5V|>-Yv>?fB*d!W>{>d^m5z#FDro#WAJqKb6Mw<&;$UHi&??| literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/nl.imageset/nl@3x.png b/Passepartout/App/macOS/Flags.xcassets/nl.imageset/nl@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..15ce6d6a912b85cb5ba09398dc6462020dae8414 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvZci7- zkcif|*B0_NFz~npdRZ}Wvb84hvv8f}Idjk>he67}>2OkF^Cp+cakHw0@AzwJ{kGWa z%Jge)xTx(RXGz-w+|CyaSa?B%?<|4bHoK~3ZbRd4xrd5pGYui)V9DMyr)NF7e(CLw v#pXLailcZO4-1%piA<+0*{{{BTH57x>;+gA*!oL>&SLO%^>bP0l+XkKAcjUr literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/no.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/no.imageset/Contents.json new file mode 100644 index 00000000..04face2b --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/no.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "no@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "no@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/no.imageset/no@2x.png b/Passepartout/App/macOS/Flags.xcassets/no.imageset/no@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6a5ef869e548ef78051638da2f5fe833fee084fa GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O^81FzR`_ zIEHw1CfBS^+&QapqGAgpf5O)7Ne|}UJN#hQjpG}h-za4Rg0{%Bg*=*d%Xr@R&iRn3 zDz+wVQJdx!hQ)l2>@eJXOi^df&y}ZqgdSCh8hUmlil(Qeras79z3_(M|G0fYX+Kvk zRz9|1xo^bR<@r4I|NgWV@2~xT^uxo~{%maO>|L^l3LbV@EcUN>ydO$CM}gQu&X J%Q~loCIE|qoF)JO literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/no.imageset/no@3x.png b/Passepartout/App/macOS/Flags.xcassets/no.imageset/no@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a14878a795c828a2c18b22bfa319efd4c47e3b0a GIT binary patch literal 469 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2rPgj9s2C zjv*1P$u)~JD;pYl4(zXJ<5N~=FaF*Z{3hD(Zlde7=y1^=p)=Y)|NlPq^}N3^dtaJb zKAX%HAt5R8=H$f_YnB~3aN_jg4+&2-+ZJD+zv#r@;GhTTVh__39z79BSkh(8$*g8| z)4AB-)x?8rZnj1@4y#?`EXZ9$!tP2M1Qp=Be&q*u}a- z!oZ{BLvV`T%7&-c_Z?2jOxe6SB_Sd4;Ob}Z-&XU~%iAAa-4@mG)Z5Q8Qi|38T~fl6 zr$D*qx6bm|i>*}wI`ZI#lW)M@xT4(5+f$XYp)s(Z#|-S(wqEy$f5rwfD(;W(M}IGo zu(X^ZdPDNYTGOS0YR)s?+5Y(TUG(|?`uqFsf1f|#F#Tiz!<_%2Pwrme&jZF2gQu&X J%Q~loCIHo^(SiT~ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/np.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/np.imageset/Contents.json new file mode 100644 index 00000000..1757ac7d --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/np.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "np@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "np@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/np.imageset/np@2x.png b/Passepartout/App/macOS/Flags.xcassets/np.imageset/np@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0ee9267dbd78e1dfa42804924ff5f7064f6c61 GIT binary patch literal 944 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/nu.imageset/nu@3x.png b/Passepartout/App/macOS/Flags.xcassets/nu.imageset/nu@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2504561dc2269f81cc26c019bcb9ad2e2e22c5e2 GIT binary patch literal 2358 zcmV-63CZ?}P)v^E{v5`_A(`zgMVUxUkZ1)v6k~udk8oDk-US&dAsw+|<;eQt?Zy}nf{h57#bgW6WEoOVh2 zY>#{Mu3f_ZXNUKHW;zIo! zZ}5Fk5H*VzW2~>o#YIJ0+GA8!{)M!($55#hKPwsMi4M5LI{Y$#ZBvMTcNym%ewg;6 zA`8HwLyS6h443$LN=vJlHf=K#CS(e-y?g)3_y;q2Hm?igo+AWlwK%xCa&6Nl^r4{^ zpt?G|yqw9*oWZ$s>q$VD)ZOTG$&|dCz#=nGs`t5dqoR$kb{J zP*|7+=*krW0^HGR=Wzaf2Fb~BI5-TRV9z;``i%za-Zap2P8<@TSo6BaI&z!3IYk!0`{KGd@ql z*_aqw3kpzAnndWQpE9br7}taZii<4(v9WIs0O*q-2q}^zNj7iFWCAm1j$_Tzc<$Q& z3D>f+Ft@cKD3y4=_#%F*SEKOv2cV>+lEa73lAb<|mfgFlnmya5&yo50xX+x4UVnuU znyFj2j+Xp;lIZB@ z<*BElaWi+)ar7vNBIeds1eFT6C!a*_>Dg~hABYhdKj03)2wG4eT0ta}iSCmp;rb>D zj*d8u9c%SbQ`16eX_fW2(P*ZlqknEUrYTQI7=2UP{&L1WDakI&JjU=24z95(Ln{nd?T^|tOPC&qTyE7BY!S;LgE3}J9HWCBC+~psS8%dh=P- z7>4xaK2uK19+O@94O!e}DhSx9=&CSVry`#98E9vR9A2|Yofcvaj_+@19bsg;AuScVqK}&uqcHr=o(YXP)8A#EI6)H2m;k#4R7OAo~Q-(d)>|`_|^} zD+6VCzM#PCMFq+r+a*`8zrwtEJFGw^(+xls6&9etKpJy$sDChuWlrC5;`ovQ6Sqtd zEC8oZuSKUzX2b|D01Ou|Qk{}QMN||md3iXE8N*1O4rkpymhQUD*s*K)@WWC>aqwDU zZj*#dJgopcD04`sqIwb{tSQw2tIXH%f5}cchci}PCABV88p8^dfbF0LqB|Th9?ZMP) zUvaFeY9uA)BO)SJvweFpMx*&Bpi`#^&dtTa!-Lx8%W;1GQFKqs+5Pc+Nj7d=AOOaz zSE)%&MIRbUV@?hVKR<%rf1kTc%Gq4yPDt2lva$;4>9M~#B0+nRnf9WgCxU-hWn}{| zzr2(1@KtEFM==;o{eiY`M{sncCN-6a4atJc+|ojAdOG@$5U#!bHV$rX1Y~CuuCL(l zrZ7g`vzE1M3ute*V@~)F=;FmD7A*Lfz`zw~G+)r&ZM0UiF=x&YykiG4LodR&dBfVx z;tkbHE;9pkcMB?mk)QR+#K8fxvs&sB0L+r@f474mNi(;bl8P5(C_@^Za*qbLgh c>p;@K0QZQXsVf#P9RL6T07*qoM6N<$f^q_I^#A|> literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/nz.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/nz.imageset/Contents.json new file mode 100644 index 00000000..3b318786 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/nz.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "nz@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "nz@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/nz.imageset/nz@2x.png b/Passepartout/App/macOS/Flags.xcassets/nz.imageset/nz@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2fe78b9dd1f88487ddb6451e193f59f75d1636f9 GIT binary patch literal 1080 zcmV-81jqY{P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1MNvfK~zYI?UsK`)O8rgUw3@r4i63?eoqo4K;R~j0|_z_q9rw4SlcQcGkSN)ra-pevL9Rls!LKap7t+i;!Ac;1KjvPh~v=sfWnixrVa*B-X5U znKw!*m9Xa-6*ck8h|*NxnSB^-WGr>sp2a{+$+p=aM*< z7Kfd!d`>{Hzbn`Ft4P&;iBm)figz=3<#;tw&!3^==HTK%0Qv_<*?p>xZ9{?RY@KP{ zv6o%$<7mE0;Q@Qa%;v-mD^V+(@EGo4)!7^hhwV_so#5m1^%#vtvqcsnNnuV=yRW0n z<4)r;xq!lG0HcUeKT7MqLsq4Wp z%N&PVQuS1lUZ}3N{zvWnrBA}QkgXBt*q@H@BE#4~i%$s2#hvu@>F0n5lYYMAPA<#M zf`}t}21?5j9PF`uG;Cgw!9g2f?mf9w)kdsgH|{4h5j8*4`)Lt_s$h;bj?voDKa;G!t1(KZ?s-=ez}U@2H|Mae z;frK~eypS|^)R)*VMLZ&@_xZ}xMLbdZjZA+{Sx7cAJOq-JRV05u}?;CW5FrR%wEQv4@8W1fe2gDfhH)y&H8gZj zP@Cw=q!GgNO^>n(sUK~z|U?U-p)ROcChpII2T0fwChSyTjcL<~~YV*_d&ji_i6H)tYB zYl0O@6RHMdP!dmsU_CAb5|h&$K|`}t3ku`_0i>XyLaL%{qB0dGN-*rhA~5~oIaGwO zSgiBI=g&R&yYKhj_c`Ca_j_jq=fd}?HLG9lL@eTJRejsmm`vr*P3m5Tz{$Z}_gJXc zG|~S31^^n5S@*u1IJ<7w!JN9G;sF9y%rFa?rsJq{{Dhvy!M^v1R9+LGQg-K;;vW^U zwD62RXY%#!qIWQRji>3-`BUt+MrV+8suYbzGay(f1UGwQ%CD3GVD36eY-Mif1UNmM z*wI!-Z15c9-zU=?ozFAjf5h_j^*Ue0WV!;b<1HdQwk!yfz_na|HH7Nl24mjc&ar)~ z$vOHO@+nqhPN*vp^WLWC$X{d5gzzu~ViEGfRID}zkaMnvm$T6W3JBgLlqN`&$AP_cxp2TBYZKI>W(Ve!nu5> zZA?VHF z%o?Z;*o^Fj1=vPzAtB}^&R?#BzNP^QW;k0@6lhDs`|r>*XBP4^Cz06N@Xrf11V^TF zrKxoDJ%~|=}Ih=_8)G5>}mJDhY1-7o7cmsIw_5;cZ0Q(u z&Dugrb88o!UHAIO`ri>7ODTzaUnVc1B5yhozK7dfxf;++hVG2-et+_iTDM5Nu64Q-Jb0@fBQM@-{;}m zS_Occvn53fpd;=x3KoL9>*zXdTN@K*r?j&oqXP?5gZ^>B2Z4Xl7_~NX$HsvyRWA>} z{10Mcq(|WM6LGwGzZGvbF(*eYC4ZQf!%$zsnx%3i5)lH8hKh3)?9tiu=>0P2gEE>5?@rV&mh>*Wkp;R>?7K^YlGXw_zQhX4tT@j_~ z{vUxoJ-w*vTSko6T9L8xR7Bf&Dxz(OfxIVO#CY%@c2GblXUNrW00000NkvXXu0mjf Dvz|t- literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/om.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/om.imageset/Contents.json new file mode 100644 index 00000000..10fafd75 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/om.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "om@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "om@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/om.imageset/om@2x.png b/Passepartout/App/macOS/Flags.xcassets/om.imageset/om@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5685445093eaf4d4d1a5b64d02d084713a3e1dee GIT binary patch literal 405 zcmV;G0c!qX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0ZK_kK~zYI?bNwS13>_X@o%z+yQYwU7*L2;(87`p~iG!p`( zMIfs@QRu3`e z7ciGr&}OF5lC#+Rd&sJTwX>@hB7{K1<1`)~(c=TS7g_KC+g1kA0cv*z0F2c&s<|B6 z$SCer7FnsNg@{-TV{sWLbB0$cB5a%9(+stIp89=32_yobPfp=vPVh=a0Hovab$9^L zs1gK#`12oWHL@%)&A<>6ZuE|Zt_!XkB%~2(KT}f(@fSk;bq%DW&-ZCi^4c%k5C2(T zouQ5(w+Tsh+zSkn{1Az*d72R7FNF9DA^yGrL5fvtrpr~`00000NkvXXu0mjfxZ|v_ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/om.imageset/om@3x.png b/Passepartout/App/macOS/Flags.xcassets/om.imageset/om@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a1da5c68e89899baa6a3fa5d780f362cec289147 GIT binary patch literal 646 zcmV;10(t$3P)QAE9nh+wIR zR*kiHK|w4ng;GSk2#TQeBwkeP1AD0f6?_~;&_AGPDOhamgEqU#?s^EcLa}*3yF=N} zX=a$;@cpne?7)b8s^uLu5;}UU!MKubsD3OaDxRXCAj*j5w zXE3{a@uq+I7_mC^e>;oaw}`)ai)&egGKX;|CI}rr!R(>5U-_y=2awx$5b3ytH#dhf zHHC4u9TAITT<*a6{tctE3p9ScH4;E;ZYJE;PWb!=)1d&RLP=!(Mpw zkivueIA6cu&HQF*pr6o@4EnzPe&(y1mBVgX$i^hz!UFSWPJ`=Uy?Tjxy9cplE5+Qn zk1;D#{vxJHY&?gaKETqwyXBuEfNitb*MpJ0N__Y=NV&#R{-OhDJDVu<_E7x%Y4r@( zW&T_nq1J1r;P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0rp8mK~zYI<(9uo8(|p7KbKr0NiaQYdmsdH&>>9}GPEuovKDj@?7tum zPA(2E;*YVTDC*>(AUFy_v$(hkmSD`%tMms+${{^NP405Zbtr~Xk2BDXHTS;LsXDfYH%s0K{S;biGb88TACh5di!O75WZ|j7^{^q(;sS^tM@5OzM$6fhID4qW1Sdo7r09%MoNjyK- zBC4vpI%N3uTf(te`w$}|nz*s?d1z}(aRrjgePAf=YLIg+S$sG2bU+$6H<-oZpbrZs|qG&4j0;$m}4nw{nO!UFj1P0^Fq-0Ao6F)vnE@%Q!dYjYDU z>+fsYO%Tg4kk{AgNhAP>Oia+wG<=f%H^MUzAsB2z00agH9pj&lp|z?%a|oHvw=iK? P00000NkvXXu0mjfW`GI? literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pa.imageset/pa@3x.png b/Passepartout/App/macOS/Flags.xcassets/pa.imageset/pa@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f944e16a2377e9ab878dd5c9c65c0703120abf05 GIT binary patch literal 792 zcmV+z1LypSP)U~KF=BuVk5B@5X`0)ZrWK7*~T6D9QgGqR1WtV96- zK3}BjVk+U$?RRJA1moj-NF)j%gdmf-Eb7zNRu8Y&j)8&32Xm-m`|a&*KrrY)Uthz6 zCPqfyf#<)JH1SkWO)ZP%75x4_3=K8ki#weySX=9b*~}>-P7c&-gb)Ir{|Nxl>sbK6 z-d-A_sE*x>+Q{ziDdO>SOiq44GWiv5cNbEr0z#pblKQBjHWCh}u(9zOv$LOIFlaF| z(}hsTfrEpzlKQBjJ~WCV0n2KrhM?NnpT7-Smin{i8 zMQdmrj!m+;nN+k$AmC8^f%$Bv){7Cf@nS?Nq)Y~v$H%hAsm@4tbrr(Gg6wgsGa@W5 zLYSWiWPWbbDx`-Ba&dvH==H0!l*>U(B#;XR0ZBsE=R;jb$6a5}W&>k1mdsUCBN~oF zet#c{i3y0Or}x@oqodb-^m;V9-OzP+m(5l4sbzGzU_Cm*>*3*|HhoVItUM3%)D*y! zms)cp0HAGdhQ;G4iZ@J8gR|MFa;U-x0AzhW0D#VJhr#It00>J<)ZPf2k{2UtLu<7fe%S3-4?g>KI<}r+G;F0sOeSp(fLLjs8{#+DJ$?i4 W?Codzj0mCt0000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0{clsK~zYI?UX@iTtygwzklZKZnm48t$rr0*kZo9kL-S=jG52+Z} zP1#+xw|v7~-u(Z}_ul`%kqbv2`datvaevT*fGQwLJ5tX+!$AHCV(}5OxmOUAXd4Hx zdHNHspFFke`c6dn-1u>qlG_Gbun^vnP`PVj*xcaOjUPKYq*IK!Wt%$e(LgbmEwUvY z$y7_f;-YH*M0_sFNZCLdNPt}nFl7Ux$eqy+RY$#Ysed9aPT)r!W+{M};s-tQm&IJO zDBHcVn@n?Sy?-JCU=$tkm<@x3g5KwmlEJP8|3Q7-#5lDtLMZ$lTq6bU+CobOe5g z#aacT3e%}W_}Z7OX_}4AP0FJ6l3i-FY1UnFLTYPNG*VO88Nn zu#lkk)@yuUFEDjwk=MHv>8iy=goj7x*(Aww`4Z-NhkGo*?1!i+%=jUm8=U0L=@VUQ zbSVOmiKqGC$u~IXE>azTm-y1l#1k(PzWqL@%HNQGWS-PLEzJ(*4?fM|Mw*{~|ALX> z12|WwsH>cr`;gJ`sb041O#~o2G0RI6v%RMOkKV4qd%&JZD|;fX?1{AUH^pWh#=*0| Q1ONa407*qoM6N<$g5qwEfdBvi literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pe.imageset/pe@3x.png b/Passepartout/App/macOS/Flags.xcassets/pe.imageset/pe@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..3e10ce301cbc71ef289756189564df30ce507292 GIT binary patch literal 1507 zcmV<91swW`P)b zQ3Zj7kYK@riWO=V1SP<)D zhlaNU7~LXmEl*X9ib^A6Z*%keKb~Ix8%Z> zwSKh9DkLEwf`lDr+(T90BLnM}$uFD+am~(kO*951Cb*QVl|xuCZ+oa^4M2UpKpK|` zsyRw4lbez6J<)b|fS%RpjKQ`#Bq2x`%#23Q8=xkm6zh^Hi3sK$51p+KQ}rfr7a65A#zZzb{dc)T1VFS<{cshVs+E+=X(S@Jq<{xHV=%L( zesN7ksrQF6eiGDO!*2@SS|@|uRU~fk&iMp;1BeSQWzn-5RaBTO9_&+y2q1MCK|}~g zd-(PAX$qw|6pBQwgQLAiHcjNdx6F21D#I1LiCRgig2MJ&r~pO?&v&6zy+w`t$RA`jxLU*<_i9i&!E;WuyWXFw-7pLE|2A zpdB_S5KbQCL^j9qxeV95ZW6@;F8^;{_}dRTb?N7%$gn>aP^o5!`kI$cpKPj#=bs6! zZ-fsN!G*zGF|gARj`j1(^vL21JqCCe=v@QKzQwnba`UiW!=QU!i* z`&n4Ifz9N&jNnvyF~u8{vwu-P8EtPIkq6=^;Tn-qjQdxKI1NA7()lo7u_A(ir3U zSuU4K>~OP0gA!fWFB7Xq_?B-;{(Xs1u|#ZXil3y$8P860(Dd^1_175g-2cB90nn8Y zo#`*|Y#Q zqYcjuJ;Mvdw>f$94}9Y*KP55xFG@2L_+d-z$w8Kn9puE=4_I_zV*9_e?r#BW(KHc& zzLqrK9r+Qb{&JjG&;FM7P=d6xpcIRe=lZn?p6~k{t=$JW+;yOtQ#V%xAY!6Cx#uZH zr(dVEcoT+)km52^(Rt$j98V8?6~C={ZTB`!7XgT-hZsq}zy6!kWbe(^y)bMt4@Dj{ z9*R6@JQR7*cqsCq@qZ)Y3H)^<0bHq^ET28!x4{_G0vq}n`X4TLGciVrM+5)>002ov JPDHLkV1oA%(t`j1 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pf.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/pf.imageset/Contents.json new file mode 100644 index 00000000..f258944a --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/pf.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "pf@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "pf@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/pf.imageset/pf@2x.png b/Passepartout/App/macOS/Flags.xcassets/pf.imageset/pf@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..399812c747f02c3ef448c990c868bbf652c1f696 GIT binary patch literal 670 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pg.imageset/pg@3x.png b/Passepartout/App/macOS/Flags.xcassets/pg.imageset/pg@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..131018becc5057bfc23fc2fc7c291d0d8afade1d GIT binary patch literal 1112 zcmV-e1gHCnP)q8(P{pO~CT`K0b;5)ysYKi2dLczb5FLe5 zv@mUH6jlVmUg%XX^g=0gH}ghN*3uS5Db@*sQ$eLdYfY+ivr_DwbKUf+4U?Ku?c>Ec ztu@U_&PmdgJn+K#^Su~BNxCii1;keud-~9ti0#&L3Tn2O)t}Ve2 zyPZ&>W^7E$FK}Q#+QlCTV;U{cpC5m^_bhAx?1?Schpo)cI3LnhTA3(`)Y^b| zfX~QXscr(|z-|q)DrFPVj)D8kYnDck5b)O4A10%p5;9+NZ zxgug12BV{+7={_PQPtv*5G>mUJ_X#I@hkx{cz(>HVn3d}gj#uJUGFlWn z8yg#wB#n=cXMOL7wGUxZu%5M*Ff#7LNFN}5n_391DMA2I)^FFJ-{mP70_Wli(;)x{(jZg*5*w*8jZ^5^SPH= zHVay0jv@Jw_92ZU9m!8*F*AYc>S~RQj3|{#DVa>FtE%5{ZO{hlkbB(2&)q z2WHmY9t*-qPa=&Wb?5ibN(4}6XQw1-VPQdjzu%Tfb93{iUmy@DjnobzJ&)9bRPT(q zZPS=er)h6*Cl-t4Twsffi^St`s;a73U0t>Hy95VrgZ*b=`Vq6&wcj1C0dM5|tZi7{ zbx=x+7a}zW(khrpFc_3!7zM=^T-9vMb+5G*eSLlO_VyMOYf0_sIddl|2@0N(nwlDg zLZPCi_AGo;tkeLm7n?{a%#zy0vJt7PtJ^U$0a*J4rgoG_AP`VXON(Y^W)zFX6buG; zjF2U@l@&?SiXoCuYG5AqcRfirmQ89ENd&e_tzwCQDYehd6R14E`~3gE e@ruJBT=^Hb0Hy=byhwlm0000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x16D~yK~zYI#nxYJQ)L*(@$Y-uv$<~0LKua*Oq^_qF##svNH&5Rox03G zjM1ybJ7QE&FAyjeRfkg?~g&ig$F#!dfe=xGCLs-k!v2N?ywcXC? zIgb}Wu~rO>t^HlT?~^B=JbCiwReKMe``ve}zhbxVEF$D8ZQ9&f1qHjBs`G`0Oh(n_Gl64=nZYoh(vr~_(2S0>75KeV)T+6t01_!h0yLcuO$D_ZG0$b~IPXa}k+9WvT+n83?#V4Mp~3UF13axK01-0NP5_`nQ+n5dbJD0@6r zmpFBrz=k&&J9^@V09S>ed#<1gmw_Dzl@HE*0FuLDg3a3qeY6L$tSLeKH{_pjxKZxM z01z`t=##zlzr7VJ5}h)@wLvZ=dgLg94R0~t^~aP0G9VJ~%=ijS^ql4V#!ZZN9G*77 z4n#8YNSp}pZMqe=Y*Hdc=w|C?Oa5;Yi2k}f+)dA3$00000NkvXXu0mjf DSH-l7 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ph.imageset/ph@3x.png b/Passepartout/App/macOS/Flags.xcassets/ph.imageset/ph@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5cbb989473d2554c4ece35259e8703a35694e784 GIT binary patch literal 1382 zcmV-s1)2JZP)qBG5#Ok_sW94F~~gSZZo%8z_`Yr~9;>rPJB&y~hvJg)(#N zFibn}e4Bgjx##zr_q^{p=U%aSfBlV5_tw~a0ZsA%Bczn_x~-3#UH?#avN_RuVn#?Q zhaz$EQU_}b{-)-JGm)BNV%Uh<1?GoQ)c_?&oB6n?hAxLc!SbSK$cTO`8&D8g*@)Dq z=yeD9?7LdNIn;pq0HlusAYH#B-KUYxa?tDmOrB(+VC~afDP75HOCCw6$Y>afh;$wU z&4HM>7$(dKyRqV82dlSLQQzbmcahOBoFkeWlvEHV!<&Pu&aPjt^U0noxIDq}(ijyZ zs#dhv9ey_aP{+=)1~mQt$e);u3{rKqmo@oSoUOLUQ&UXblaWD=o@?d3tyMI&dE%id zChp3Jv=>3zGDPwdVQu|Bjl!~PZ1}#8KCc>AkJ>A>9>7UtQ=z(lpS$AhjVA()k`>^UMA;?Ug5{} zinaGgquYxSmYImGcfo%H*?$p{`Yc#iAd=@B4$|jU z*;;y)P5bKb2leqa0zlv?U`2&6pe)!l#zh zke^b*Rn97vjus!2+YG?H6X zgFOz%1#`r!a$p_{1sJV{3J_*Obyf-e9+lyClhk?Jd5IUU=c9J_-i2g?Cx_*T)Iv#| zJP%Ci=&iX(dvV0h%G{%f)aOD|OLrM3yygU{BE8j!NiX9*eI8p*9=`g9dp0mgctnIL zw3P?&HzG`vkxEL$WXInK$qT{q*yyn^h4LZL`8chs*Wf5W9vAT=WE+>?Uk1u=9m4u1 zsO{)odk_<5A+oZ;cWt2jJ_G415Ge}`2hlzKbnYyny`Tu`55(OB8083n-Vg3S5!RK6 zjJH7dAUqckX-g5-RmchTApJ<^F+}>S2G7vxDLX>T`YotkW4l8h)rgq34w9yWNJ4sR zz?6Xu+(G~%`AJA=fRy>5_l0%$T&||&!#q5ftH)6OFos4%R`$pXYUjYhCqiqCDFb1B zBdlMrwVl=t`Sko$&Uo$`jU#dgBI6xUdmwFT#GSA1_0qNH0PSCYi|*-P4r0WlK z+xwvQqRifpxXp;Kp^=u{O}Hw~Bur#9m;prkazxsTfC8pW05pe-wk?I&iw`2z`y&rV zBkZ$+4EpFUEvGH70M*`;V0qCqVjXdxsiY+*4{zPIL~4o&Gl0MGUs}J|HYVHa@xt7( oy|}UM%N;i93&{UJ;oZOd2S-0{9o+19iU0rr07*qoM6N<$f=$kxdjJ3c literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pk.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/pk.imageset/Contents.json new file mode 100644 index 00000000..44615c4a --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/pk.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "pk@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "pk@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/pk.imageset/pk@2x.png b/Passepartout/App/macOS/Flags.xcassets/pk.imageset/pk@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ea2a0b3801ba5bc3ed1ea5f500949cccc81a2981 GIT binary patch literal 552 zcmV+@0@wYCP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0o_SNK~zYI?bbg?TTv9p@$XGze3}?iB_xreywoUklB!EV#f}PfX^Iv9 zAeBO)Dt0t9YloH&LI#(XrueUeh^>>0e`x3up+h8#{}6|lLekKu*d~(BNi+DKNi8M6 z@t(uEA1-IOVl%RF)PAeu26?jhd6Ch;qkN@8=Y!#I+;WkWAh{_)a&sw2g{h)Y4t)@l z(S+~554Xd8br6Fv5S$3|E1e>86v?VpTdEo89K_@DP*YV?T*y$@Fx|I%2(G`&Iu}CF z+R#eiae$d8GsM++aUo;fV<<@l<-3w~ZZ0=tku1c2#5p-TrKz?_(_EvLW~a?bV{Id` zWbBWcdZx1UWeKTFVs2|r69P28h|O#Rz;3nUy6(!`qX(fGq9heEnG8Y*M(&R2y09RS zgqmP`FATusy=SzzTdoEI@N)ST08*L6%G5`^cf1H8vU)1Z&GfhTW4w0p71Xq>0IT6o zOs`He-ZPH1(#o5sZ+Y(Zv$?ZDLQPO-ucujV=Hcr;(&y>oK>&QSQ$&xW_#gOj+MLJ^ z8QCENu=aJ0-WRD3wf$d^ix{*9jC4PNT$YbG8>ikrBcvk6G9zB~y@uO2 zg$eIO#+=n;1;a3ur6Hx-NTbqVxa%<#G6ja753QMPtFywg!vgQzCsgSx(fhDB=lWzK zJ;!@cswstI%z;QOk}+3OSb~b;ava!o5Nv|Q-tI<{`Xr;JE7ajc%Six$XV#rDx3#Do zw>k$ly#8_SHickw=Cc`|-YFcQdR@|=1g5sAbi7<@XIcF*2mhwIuilowa5`C7eNkIP58 zu*$CH)C1XZkTg$<(JL-kc3RTz$JscXZ=4vN8pTKd2Q2?shElFXt)Uh+vkmQL8`}F0 z!8h;A#e*X~*D6pJ;L#-~nrfPORS&KNactlyCO=Q|%C7tkV{WJ6z%HH2~iroKi00000NkvXXu0mjf DtDI)Z literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pl.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/pl.imageset/Contents.json new file mode 100644 index 00000000..e50e8cc0 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/pl.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "pl@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "pl@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/pl.imageset/pl@2x.png b/Passepartout/App/macOS/Flags.xcassets/pl.imageset/pl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7e0873d5dd7e8396b118cf9b9e50030b4dcb5619 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx(mY)p zLp(Z@|NQ^|UyF^cEugKDb@dFk8;k`8uLMfa@qtg757k!I%iHs>P@eIla%tqgHTRYO v|9$b3v6N%^)`fQ#bj}KFU(k$(8QmBzf9L<)xqN0S&_)JNS3j3^P6!0DcW`BYZ_sMH zAmNnE(W__zXFRsllUM3Q5`f5@-FE)-Te-l8%-?5nSD#FjnFzFz!PC{xWt~$(69D2K BIynFU literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pm.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/pm.imageset/Contents.json new file mode 100644 index 00000000..be2e1130 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/pm.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "pm@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "pm@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/pm.imageset/pm@2x.png b/Passepartout/App/macOS/Flags.xcassets/pm.imageset/pm@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..62d74b4234bbd0e63fcc2d2c282acfe986a5e93d GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx5M eG`?WL!Z1mKXa7E*nWjL?7(8A5T-G@yGywpH!bC~{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pm.imageset/pm@3x.png b/Passepartout/App/macOS/Flags.xcassets/pm.imageset/pm@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b94a2263d0ae4c51f921f00255def0ba318d445 GIT binary patch literal 243 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 ABLDyZ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pr.imageset/pr@3x.png b/Passepartout/App/macOS/Flags.xcassets/pr.imageset/pr@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..12dd0acc6c9611f1fbbeb1454f318f7319196c66 GIT binary patch literal 1079 zcmV-71jze|P)^5|K~Z+InSwh>Ap7x+J4>bu_(bP|6_!xzp766ou{MU!Rkw& z=&eUHLeyVXRRjRbuAIQ>ZfDN*Uv!q0Inu2UUzRSX=8>;xsoaCtT%wmIO-SQ^hzKJG zrf+89ij(Y{*@Pktdg#iSF-vPADu&%S&$O}F`)vVbWlmg1#^Wxopl<0=)>j|mg6*C{ zXwpQ=jNFP<4bc=iN^9saMQSk5(lSGchHI*-X7*88iG*{5%*GlsBE31tJDQBdSTM^# zSEH4Mv-RH)vN8f73D~gQMCUVB?wX`uda^bWV^Wcz{YjbTIvLrNeY{M`nUNT?r%Js2 ztd&*sjJXS%1}V4S7#nNSo92PbQEGSjc=UB2{hq@0p=lej*UD7hn|@J$emX+s%Qvv^ z4{+U|!;~k$h^j)0bEK?9qH2bLhH4Y1&MRpL4=d31S%~+$hiDBQW=psS1Nq5PS_k5` zRc5*xt@K?`sIcGEJlF%*PP5zHMzyzBbBshxXyoa|CR!Whe-69yQi;iTj6VE$P9e5A zd_Snr@?L;oID-LEdE(NiIQn*Sci>_!JdDOol#$wpj2y7rxbwD&vvu%znCJHf2!yn) zf2$H;+n|f)!9B=I_U%r>V(&f~VczzeaWxTEV3W(wCYN8c2>>}df<*};)ZEle(#`(& zzoPVeqGNU|g9OJ;MKlj6sZrKk{D?REI+#3iMRT0ExXE4`4Y0Cm)N9XA5r+LLl7QOz z+K%oeLtpd7@n!7&p(&>(AVo%&&NWgb3!2{z;_4ouyj0@QD>hayFtPtwDD6SYqF!DN zeZV@)379_xn3ApTIFhy~&2=)pXCw3u{97lo2^{Mz?D}|w8-e6CVv_|s>dmx2Wx5zhPXfmSL(+ov5wIpy4eDDUB={`Ua=Fjr)iD3ZX|c35`q*TxMs# zgSDOy5#;}>nk{igtV)0_=k~GvY$rt#pB|btF~-PafA;X!nH@~?d-T$y86%9|rJe3} x7J0wZTaRYMYqRV>Z~g6^KO|N8?-xQ6{syf6U80QG(CPpH002ovPDHLkV1lo~5K;gD literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ps.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ps.imageset/Contents.json new file mode 100644 index 00000000..74da65e7 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ps.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ps@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ps@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ps.imageset/ps@2x.png b/Passepartout/App/macOS/Flags.xcassets/ps.imageset/ps@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1f98ed6235a7659d228d4c53da15c96b5b78833b GIT binary patch literal 386 zcmV-|0e$|7P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0XIoRK~zYI&DOC?!$1_r@o!3(4h}Az0(KB_h=e*i1s9>CGkgP!M_!B>@S+l8d?g;K2GBctIlsl|dgS3TVeC~wd{$GvXoz8ML9F7;Z zJw+>*702--!m=U(V(T(ZAv{lr^;(pe0t+n&U@(Ag7kq!iDrH8hRXy+#ZAYzxC?pK21e{G#NXuRRfaz0Pwu!C<{1cdH?_b07*qoM6N<$f&>$tT>t<8 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ps.imageset/ps@3x.png b/Passepartout/App/macOS/Flags.xcassets/ps.imageset/ps@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..991c51a77b2fd3f8a0592fe9be761a0b339c1241 GIT binary patch literal 356 zcmV-q0h|7bP)dx#|X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0yarRK~zYI?bT06Q*i*m@$cK-o5MewZ`E>$C3Ci1u|>luLCgMG1mz*R zbchZ?VAP>MUV<(`hi)Dshz?-~EA3Da5g~zvHVmVKm`l@{L(;a{+cWpib?6WbV)M;) z+V}JhzxRG0e!s`>Cvc7@2%KaUIes$e?_tks-pNw0ZVf+{S4Bu>MM!3vAd((ots!Er z12{SkW7jC{T}SmxkQ~|(IYFWdbiV^N9Y@`i0=u1=v<1QL;8&%As4b3B0-XY} zYVDA$TT^R>ksvG?<5=rs9KZ4kxuS&0K$P~Bgm>FAa{-9i;rj`wxuXq|bwvVE_!@@f zf{B$rk=|PeX?9o9dDg?u#buJOH&W(;l5b#rt__hBWJ&?I6~-DCi8PIqdTt{A+L|w2oTkd0MO&* z6aub)4G5|*tw37?bT3RX)KZJ<%&tVJYQ27Gei+fFA`gIkJ}<{;P6t~57nlmc<$Yih z{pj8P6(J6y0CEo)UgU)UR&m5nhM?o=pXbI$eDd9+G5_iRrs>iPD)L6t+aK9O&^lbJwbuM0 zsQX6?j%`dP{-;i1wmv$l;+B~j* zWSdr)G}$Q)C7*u|mvip#d_UZC?>+ZQ9N{|zqP#D%+Un5&`_^Y_v8dKNfGCP0g+@`N z&?t%&8XHDLBdSn?9om{;Sp%6tFieW7ygF`6#G;4e55m402t~kVgK!N5++dKQ%mcc& zK@$-Z_W#IxX|>kF(6gY#q4OhnxDURX0Q=`q*A9k5@Rtt!LlAEknD`b*96`zTq=)L^ zrF+5n^^@48AjYT}2~gx1ItBDW85IyWh44#OX#14fE-+jWFK~mLm(~NdaOP>44Z>FA z2->R4=sUB0$v3jC_GGrzodMI827FiH;w#WN2NmO@qOT-pkyDR>)e250M0_UnV{q;0 zQPfT+n#w6aA<|VtW^NAqxn3eh6Y@4tfar_BLE#QS9wKT9M#rJH668OOa1rE@L&z={ zul9OLD;avacN6n^VOKAiW|_K92vx&!-x?TPC#Rd;wHdDZ;q-a2Inp zW5+hz&Evp55G_sMKMa&ZG!C%_QPEeT#zpsP2OrxFjdqZ<@Z%J8IE=_00e)C~iqiwr zm`z$@ODWC{{Ei`=VEcW2s7qy*{eBYrAyNfs!ScO$k({oGN`g!VWC=>tkRB>W{d{)0 z%`V1?CsM@YDP|VpsMQkc=OBIl4q`GyRgebKI`I-Yi+nMj4fNq9m<>ZZrGpvRWl8W! zPYYX|CaNk*Ioq?Jy`~t$`@cD1`b?lH3Z(J>_gV2Idx!%~0~o+KA-z)KY-4DLB;*^C1{soW!a%QQ77p z^0=GhorghDh(7Te70+DYPsu{&Q6H%!l$-zt)ASPq61#{0Pnzj69f-} zr3FkcfN@Z8^8b*x2tc_EU5`L>HOvRVYJutigkvDv!0Z8SH)t0HCcXu?CGu}vo58&k zULJwuHz1FKB%<&t5hikj_4@a_VZPamB85g#q|hje6dD^wL<4x%JA?@S2CHKwa^VI8 Qr2qf`07*qoM6N<$g0;=+f&c&j literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pw.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/pw.imageset/Contents.json new file mode 100644 index 00000000..14f31b4b --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/pw.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "pw@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "pw@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/pw.imageset/pw@2x.png b/Passepartout/App/macOS/Flags.xcassets/pw.imageset/pw@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..26eee9fbc1c18b362c274f471bcd7da2b378e211 GIT binary patch literal 515 zcmV+e0{s1nP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0k}y-K~zYI?bbhN6JZ?2@$Vfmf14QE(j*84EyfH=Nf)IQbc^61Nd*_l z?kG~E5u62aw-ln_W_2h+hqmA#8PcJkqBj^cv{gtnrP$sjjmf=kwg$Z19T%FR&v?AQ z=RWUo+OZ%6IC9ay+y?R?Z0az z1gW8yL_M24D9zInrXTd*bbUwejNUgy9M1Sak(-e@%ZRR!MBp70p@OBtbmS>MS#=h2 z@#GuJg+5thJXmxV5_4}@E(C~qtj`%jBuTdgk!{QwLVh-*wje)j%o#$~cc&~DwuFoK zyO*4XO!B3kuvEBO%dpcLbQU6n%;WMywDy3hvaQBx^55@TMs$S$lpAq!r9749DZ_Oi z)d^-x&rsVzTM$#<;?LT7ZY!_3I{bpm;U&iW3NGn4b={A$mt0A002ovPDHLk FV1ihW>9YU; literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/pw.imageset/pw@3x.png b/Passepartout/App/macOS/Flags.xcassets/pw.imageset/pw@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..714ebbe9bd75d8b3d2ee1b35c6a7461bedd33ceb GIT binary patch literal 699 zcmV;s0!00ZP)9iyr+<9mI;UfE- z=l%Wu&&)f+%s5(mhMutjZ~+I_dk6`%^&UWqoJh8j6UjEjMSR*K`ObOi*o?UB1{ArX zv;-c}SlCCEZy3K*2Ow#97+b2LKi15P*~3gELUyax#L?O_WLR04r^Pu|c9TQF`*^g( zn#UT3M&H~)?o4#@bEU-6pqa2F67)p4Sk*zuJEF91F1eYmvFm(V*rQsR5#@U%;GX76 z^>JkhfMWLyUDYSq;U839n+YWmha<(g&{<0J#w{26v;{6yoDqK@D2cQbKW6u)H?~WI zo(Sz_w`}LEMoFZt^sZQOYe_eLO&7~EEmH3NLb-QTtk~;ZqQ3BzSe|K-o%sV|rD=BM zzZc6gEfRE3ik1G&jEH5K7IA7xvC=dy!A#R4iIh*Q^nYZU7KtRbiLgG7#Gfv3@UJZ^eX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0YOPbK~zYI?Ub=f!%!54zuTrH>R^RZBq_QGg5si6eGdBwzK6~ZK8Gzh zxVSjESa%&YF9@utc9%{(Pa)}p6Gqz$xw+AJdU`+Wc=lL_T=nR>mBQcB0AZRm6Xc%DbE z*TY({07yO(vMi&~XlUhW%}5kQ3{d5euR54h6U(x+L=cg-XyCf8h=|1F zk%UP!^QOU>_ORNvjqm$kTjI+I$8mJyFuHfaORZ{Z-jSu5Dt6zrQi5pwY%~wAR)MCT q$ZsJ}|K`LOB6$jtJcYZoB zN|Gc9App=?qm;t)yj=2fIU|$F1jliRq6pvj>G%7@aST8Z1bIZ77YW0VcDv1BFyQwY z&Dm{_>vwiI*I8#c9HNvW3`5hg=0%bu!S{WB^_uK`e$2XB<5FvbC*x;yuUup_8j&Q4 z=~(k3Qc9M~C6B%x@NjFNo9>*(YQVj%+q{a7Nz)W5%|Fq(oRMa;$>!PxK71d8)dH)< z;g2yE7K_Cqk4W<(T5B4O1`oWuyqF%b_x>eMgHxV=eaHUgT{@i(S(cfOHNPWa7$T*_ zbzLmS=3^8v`+3UF##QV;lKFg&5W@ItIF~^Tf&kZbQA+*Wku1wd)08-l>GgW1BlBDK z*=)vYwfb)m9mk>D?dB0zolg{T>;Bu5qDz=SaP6QHcce1^Beh7`s71;~EmAgWk+M-4 g5gYWIqDz?IFTt*!&2%wJivR!s07*qoM6N<$g3rPNw*UYD literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/qa.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/qa.imageset/Contents.json new file mode 100644 index 00000000..3ca2d93f --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/qa.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "qa@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "qa@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/qa.imageset/qa@2x.png b/Passepartout/App/macOS/Flags.xcassets/qa.imageset/qa@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..54120932eefeb5ff124306fd0869dc345f796508 GIT binary patch literal 581 zcmV-L0=oT)P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0s2WqK~zYI&6mw@5>XUK4_HV6zcy}^=)zS^R2I7E!ezIbu1)-h>fSW9 zJCm9=sm6__B1xGFro6EUp`xjQ&QQkIrbQ^j$1s2kQf1Td+C0Ite#t$_z4teFJcYzY zAv_rga{?W=&Hk6~m}`PuG>IiLbUU4so}UrVl4p=eKdoAWt+%TrX6C8v>?#!*8(7?~ zlYa4r+=m2~$k29L3I+Z$P{bDsaQDe0uH3qbq3M`wg1z*&;fnx_1;zO^}a$!v1-nQe(+0`_!r0)DB8i zihDH6M+zl+NVn$e>nNpMLAk&&r^=B^VV8U?N$T0c@N)#9Y+4waz|?e%c#3AFs!*cG zz!`C>H7tD-OJpdnr~iorNX&@;e2|IhDJG_;pxY(;>OCK4o{uI+w%)}tR#TXoz}`Pp zDj+T53kA4#|2A%;N!w{*YJ$cn))(N?^{d=@{E!vF3ct3CN{ja+ zog>F9oQozg<0;&xqf$dY;(fsY{!ozd%NOup3@Mc8A>EqKbBi?php%tPZSzClWIMi2 zc6mkduu4X}TW?^A%%2NQ^~Qi?Yld;Np6!Z%IzRl@^#9iwn$AvggO1x)DAD6Lx{owC TOmeXJ00000NkvXXu0mjf11}lq literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/qa.imageset/qa@3x.png b/Passepartout/App/macOS/Flags.xcassets/qa.imageset/qa@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b845f0695e541ad6b293cf7da31dd9f28a9d62ee GIT binary patch literal 602 zcmV-g0;T-}_1GMG=(Q>& zDwsIIU2Eav~GMg!uLYetgd0#$JS>i3#S?@@`xhm1CTzMd+cTF!Ki)^qY;ltghZZj)k84u|A5D)17B_7amBKAl; opbLqIGob5Ljx9<+RDXv42BrM}>zTSz&Hw-a07*qoM6N<$f>9b31^@s6 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/re.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/re.imageset/Contents.json new file mode 100644 index 00000000..83133245 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/re.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "re@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "re@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/re.imageset/re@2x.png b/Passepartout/App/macOS/Flags.xcassets/re.imageset/re@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..62d74b4234bbd0e63fcc2d2c282acfe986a5e93d GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx5M eG`?WL!Z1mKXa7E*nWjL?7(8A5T-G@yGywpH!bC~{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/re.imageset/re@3x.png b/Passepartout/App/macOS/Flags.xcassets/re.imageset/re@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b94a2263d0ae4c51f921f00255def0ba318d445 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv6`n4R zArY-_Z|ZU}C5p5@v_9-|n8Rp+K~I9v#-6LZ60!a34y2WMvk9^pM)N5B2yM3Sws^|> z{N?upv-7X5<6keJBVKwdKg>M!@!q?p^B?aFG3&bgRFBu^Rh^_@a_Zyn700&k))JoR zeO-ZXVIfDabB2u5V*#o53l=TM6iu)SY2Lc2p~-xB)pRANs|gW!U_%O?Xxl001; zLp(Z@Qw-+pp4IrUo`YF1A>aADqWWFwvLh>MjXOU-c;5Tw+mRKi2?-I0U6we_Y7T5) fKs0uIEWj}HDEFHQ5;yaKwlR3R`njxgN@xNAMi)c1 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ro.imageset/ro@3x.png b/Passepartout/App/macOS/Flags.xcassets/ro.imageset/ro@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a8c3cb2daaf8920dca28c6b3f7b608c74cf4fa75 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvNuDl_ zArY-_&u`>Cy#nn yG+AI)%LS}L%cgHzUVP!&La(fI?%VIb>9>ETB<4F`z``HsItEWyKbLh*2~7ZR091ki literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/rs.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/rs.imageset/Contents.json new file mode 100644 index 00000000..393bbfe4 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/rs.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "rs@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "rs@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/rs.imageset/rs@2x.png b/Passepartout/App/macOS/Flags.xcassets/rs.imageset/rs@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5ff02e46bef21213f336ff95f569ed3faeb0f8b9 GIT binary patch literal 1221 zcmV;$1UmbPP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1bRtCK~zYI?UqYuTvZsyf9KwF@0~|xCYdIacha;{u|B%6FPa8w+G2gt zf`X+YmAViSapyu^DdNIK)ukYaxUw5Xp&$iq5-7OvRceWCtVz>0X(lt7*PWUBIxdn_ zZ6`AWDX#o)E}ZXw&-eSzcewWxpB_4DZ^_JtSwp|LWj-lpFc9pqqI_M+)2SI)0uDzK zJZ!A_YSWrb4%k{FlTrc~MHR)5u8jclfsaHGsC6^kQbUjc1xlb0L|QZ~U4U4DaC1QfR92ca90pUtSFC$V)a4pYf1X1>q-xWrxgB5z)=Cd z&?sm&nhL-WxYa5xhC)h#3>@Ovv}qD_g(a3t&;UaSBm#Y)IUy zrIr}<@?1AF>=T2iV!)MfmSn*t)7Q_0ALaXeB+HpV&PKF;Dxys zrZ4|a>c!*usdlEu#*xy%7(GbW6OXfS?HWJNTp_XWUBjx={m-KAxXS+k@x7`DGz+Ck zKu2jhN=O3DMEO2WrOHCFjDP75TB0%Zc#Q0Yi)2TJ@%(^tsfZKqMFdq)KAQ3ofd}}A zzz5}{WEfNcqDKE$L0mg0wZMVE`N#6|hv>`?1)e_sJjG0!SSp3+Orb?0_(Ox_mX2IIuHP|b!dC>>dbVj(hLG&pfm#|Oafi<%FaRhI@(DWij*og z%5gBF5yGC2?s%j+x_J4(5nele0Zq9OxQM_-Q_D{gxF{K>nAlbq0zgV56e!IASl-Nc z0UJD+{L{g6UFNS|WrMF^F@xjzxamdmb2o@@8e;1D45qVi=gyi$X%bJ5HiQ6>`wl)i zyLmpFtQ8ztoW#iH>6RtfyOaEl1yr#>WbYmfe+hklfgNq#OdTF>D%n~Z=xoghrPL|l znOcVQ_yp5mzK89l(a*=&{P|}j+uQl+=rPJ&vqYmU^bEgB&ymCH0s&6d9RoJ(-bKhX z>5K<-9l9S}k8&KoY;(ww4L2lPyD}cqVbQa1U00000NkvXXu0mjfAdN_j literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/rs.imageset/rs@3x.png b/Passepartout/App/macOS/Flags.xcassets/rs.imageset/rs@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f559d43e9c9a645e3a9d1eecc48acb1f902ad962 GIT binary patch literal 2058 zcmV+l2=(`gP)*#&*2LS)8Sb(=-i9o3x=3CyulNygjk9|eV{-U1T-ZfX_L@~G`7CswIexh?(7)6SWiFVz}-0w%`KylJ)Wxz^JXpz7*OG2`CcINRtIXK(P(OD%36UClp{a@C^WZiF#wP)kI-B*DFC#> zay6C~jplzj-!8Qbq7hd=poPY;4TNK08v-FTVh&Q>UXEJ;5e*bA1ztA8mYtia$t0$0 z<8@|1Hc-@U4lVP$g-HYgi9m=3nbaVKKmrvMdd`z!NQ`BD7(oJY;SxbDPi_1tU2SP{ zbsxVn4G8kP?q>L{3w(e43ZegQQj7@!8Wf;`NB~+B&9z5bBN42!Z61xawFYt~3~tyU z07o?9!xfE%OJqF?6KAPKf+*C?lp@|b526UDP5|f0bgqr zngC7oZx$;Z8HBW!iOeTco!9+PSDI*ESVU;*b4!v~+0Wl|?=U)Er6eJSBontNm8MA< z2Fg^-D$RrK1{VyQt?O1&$~FFPM+gkA-#Br3ePo+}g&-zG%jwj7-LF#9ijq=|CD$4u z#DW+P(Qx!6)3K0hB+y!u=@6`26{Di+oC*SBuEESq$nhzknX->McoI9*Sb&(vAP`tW zV9#ZQtEL0M0+vaOE~BN}8|D(jU^3M7+YXU#gur|`2;_a z(vql}LLk`G6H*v=_;A&O*qnI{&1Phq)>EGOQ6~vb^8;R~m2d_V{N%N1R-`S~u8DCd z*U9>h8P1*cnXM_h`aG<+BbKzsMM1e%;y7RL6a;&zH_0;em&D(mguLXCAUK zo$V}(mXJCASK^yDF?-iN#F8)4_KzGN8X6+|((l;cv6knZrHhQw;tetRkzIW3siz1h zr}1pqvb@IXZ+;Ec*Ui8;o@UFS$I^^I7JW8+d^cT>KekA=7pf(Y?tObvQed@ZxcALA z5+_ffgMi*Ie2!#$JO05}S$iT)TDUl=G~IhXg|u$ZJ~2~M2b$`5vT9)U_MpOumCrrP z>Bqkc?>OinpzDF{D5bD2XEAa`x}SNHSSm#TOeO4QPM(58!auguu;;cC+U&2ET)PjqGE}fAL71#3@nrN&wq#EZ$F1suTx&$$JFI3 zgkeb9b?Foy)zo@~@)0Vyc9zOVC?BbP&JF|-5f+nG!i{mPoaFIs$aKx1Tb7T z`1POmv*W=JQd1G-VgXkQobE0FoStsN;Su~wm6Bgam<9(=o#2meAI2>e-Yx&Hn-!F> z5GX()v;riN;ZTpSXbD836+(wd<kgp;>VA#0=gy&kw}($*XoWX8h?z=bmwPonq^Z`Z=`~~a&t&Q4D8n~P9C92m654^^XRco<(dfByYI~TSL z@#8bahFRq!bqFdz=m4og(7{~DHDCj$gHm=&OAr92GQDeG1R9}yPzztIT#6KiYa=X! z-@d$`mAN8?U;GLgj}vaZoBZ$pfGAf9rmygFSmlv5k70O8j*Xqbsl1m311$}-Y&@rg zb_Ok4D;OIfmUr`370$&kScW1$aTzb&M%;HmQtQ%Mbu&DZQzwj(4>MEGboR5Nxnq;)Cm$p2?B>*^4ZF;wxPK z^8u;@%jw&GKldI!0)--RX|Szl1Fse{w`8sriTy{0n|io*&yCUP=kZNR;mAuQcMMT^ zV}!P$hY>-Db{z6Q{U!FU2PnV!8?s$HG5VG*6oYUfzbK}N&E&<)f#_$;`88L zBJwKO=N-Zkhvh$iflNmSj%D%sr}v_q3H;Sn5@CYUl*fI~{)pJ}WsA+xe61y8F5TN6 zB+*;NKI4*It?&ldBebGaETa5??Cv3w-HObNi*B#dy=LIHKtPK{W8b4+CLCRb*B>Gh zijLj)VIwIQ@`TkYsV(pO|3m2S3E^?LqYQQj&s%FbFPP zB$}G0f8S?`uU@qnes8K<0=X*x@)ZiljuYf&v9nnc>(=7-FaFcujr6`i?j*JTHvSIP o|3U6F{m+1yz$^c46aNYQ6VYQ|-L;{&q5uE@07*qoM6N<$f|xJaod5s; literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ru.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ru.imageset/Contents.json new file mode 100644 index 00000000..ba5226c9 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ru.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ru@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ru@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ru.imageset/ru@2x.png b/Passepartout/App/macOS/Flags.xcassets/ru.imageset/ru@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a43e6c13125da4b134b42e2c75eb32f52b3ba7e7 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xxnmk<` zLp(Z@|NQ^|KZ}j6O`xrjb@fcP8;k`8uLMe9_&|`=&po%A#pBtp2y#ub$s60O-gcM-KOU7_rF^iOHV9S kZ`;$XmgOef#0SF+GyX^y_nX|E1au99r>mdKI;Vst0QRI#4*&oF literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ru.imageset/ru@3x.png b/Passepartout/App/macOS/Flags.xcassets/ru.imageset/ru@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9f5d4658c09b0c5fd304490cea47e1494ad04117 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvMo$;V zkcif|*9>_Z0(e>;hF=ntJd?wdCgmQg)XNX8ZEsb!gr>?`{$GQDzdSU%h7sVWrLvBzaXa07f{nPaC&)uu&GV^i} phjiX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0c=S`K~zYI?bS<50$~)!@&C-c<5)5oY8Qw=$S?}pMVkn6)2HgYwCfv0 z(59eG5JVdzE4mR~wQNeunfHC$M3`M@Gft4t`dR!q=fE*$mKJLpjoB_D%uH;(Zbk`c zPFo-*3PFI0`nDs&Mp#H((_=&&b0zzD)CoN0BC*;BvGM5>w@ip4S^Jo(N^&jx+4b|3 zWrm;$6DlNbyf7yAn0B@(bgiMZ!OHVIzP9m{OQ5^oyP@8QX-LW{MM{*(+a<y*M9HgeZsi+i}a)2kDpemCe4mETLK%fP8vX>n>`L-JC%U$q~I zdp0D>!i9+@D2ci-1yZ1`Mk;MzY2VDa5~4+1Q0>^fvzol*m)w&#_udi9PoDM}1N58T zvL1C2!$6L@fMJn{{4E3yfQ*Qkl1HcKAK!n6SN$QeSR@5?NGMxq7ZbS*1zjVuX=-K; z0EZaJdL;sIGxY)C9MkeEbLx;X6?XeYdZbv?d+fxE=jOZ-Q5cH4O50|6IQf!L9`hje znyOh~UL9~`rr11LAt#$OZEhg%jYvjzNr@g)vPoVwSWUkmD>{_a9!;*Y-dQ6r8+2Si z&!vc5=BKi;}W+f z-t+3@K6A3hXEQ^`1?-w4^*B#jc29T7uLvH0x_D*&Llg#sqNu7|k!=))N_?HXuG6;@ z?3;NU!vBS6PzW4Vvp`@YCdCPD7f_G$L@tfJU^aOr0%y;UwhL&x;Pm__ycxfjWo$%5 zZ%cU7?3ZC|{zxL?8;OW-BqF{sHX{1b`qHRt7z+B?_WAGo|BbP^T8W5nBqF|%i1>yE eo{zeSVelQBJjU+an1Ema0000_apHD literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sa.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sa.imageset/Contents.json new file mode 100644 index 00000000..f6a16107 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sa.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sa@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sa@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sa.imageset/sa@2x.png b/Passepartout/App/macOS/Flags.xcassets/sa.imageset/sa@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..88171bda95518aad5e783e2b0830c8dcb78d6705 GIT binary patch literal 792 zcmV+z1LypSP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0?kQ8K~zYI?bY8)Q&9lG@$cO)-F7ePoI1DpV`!A9{g@?YWd>!@4mUEVbB@)xj4#)skdqO zN&9QI71XoW)k34AnXLu&NTwW4RGdLgC^R__pc8b2V~a$SDs@GT~kODv-|clvIUlak#88{OAgSPGGC zurLuGBdI01P<4d@a}f^)ZsW9+FuydH_C(S`7Gv|goqUDeTu5J_hiPSsiSQV$mFIc> z;|bqGL+mKp#mK@iYC`2$c`F^?9o1+(kSYLqj7H z53g*z+%n9lGf`vna<1|+rMVRxepdfyAxb>LJO7(C&HW_5TkEnb{Wo_c14%6dN$nTE Wdk#6^-2+7c0000dUSID literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sa.imageset/sa@3x.png b/Passepartout/App/macOS/Flags.xcassets/sa.imageset/sa@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc09c90ef829bbd8a9126b58f136506db9ea4c48 GIT binary patch literal 1425 zcmV;C1#bF@P)62ySLME12V&%bA`N z%pLw1g=r<6=sJpCW8e;ZF@8zl`7y8H5!^VEortoC-H^^Rg_Zas0?!?Mocmq#C`vCO z&oZ2cz9?tS-J9`8d^8KcVbP_~73!eP*TUzX-Gh!Trqr4~bT$i%DhWwJiqlK+hWn_! z`YS`t!>F3Dnl1I~D7KH|PWw0n(Mu>AqPFV@4zrUrr0@D7GIia@=^N-_QuZ`tS!S3ykIvu~#%4_5snLr$-F=)Q zdkK;p;ecl+Nm|p56WMZZJzLLjB-LPJ*^y`Yq5UiBdrncFa}R>pk6NuE*W#ig?-Ax4 zD5J5jo~oJ`csPGP6|Q+~Z+wsGj(a)Ud59E)jZ6MkF8Z3;>;9O%&D$A~I+8SFIv4sH za9Z+W5{YS#Gf)Lnd;# z<3|D!A9{@*U!1za z>bh$gpE((?*vpEtwIpdxyn1voZ%lrdBOM2MdE6>~X#bkkC#op0jY5SAS&1Sk5`x(O zN1Fm&!7F?;>vPtgT1idUVOoV|R^PoTCXqp}h)%6ze!} zv#4k(pEiF&o^=Epr|)3Jv8BBD%K~=0x8bzpk!yA_CVf01DM(hbgSF)!u;I*`s8KV^ z`2eeGmr=SS7mv@)MCqf$keG5|8|EipGRUypa%zH)5)_{)|$D+0n$oDfcy@<-g z3;3q>vzsddP~Ezp>el_&J$|IEklDEp5G6`Wpoy-~mFu1>aUsSV36XdsArfySMB)uC fD!%(ae1`rGE+P~1u#Q@x00000NkvXXu0mjf*w>}F literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sb.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sb.imageset/Contents.json new file mode 100644 index 00000000..3dc5434c --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sb.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sb@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sb@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sb.imageset/sb@2x.png b/Passepartout/App/macOS/Flags.xcassets/sb.imageset/sb@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..473108503fc1bcb053e75d33bd07bba5930e41c3 GIT binary patch literal 859 zcmV-h1ElX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0}x3>K~zYIwboBe(@+4%@o&4XR4_0=VZ#2vA|ZqW(ThjoJm?7%jb?f= zQIP;p*?y zzP{If-g|wo72v~TNFM{JtdxjGH8zSMKt;vo^|lsaP+WZ)43^T+plsM=-@a|Mwia86 z$V3G2`Ru%W>7lKyn4uvLJv}>-WnoQ4MG@%jEhiLm6AYH{{JEQ|D!XM6L7y7GzksJt zUChm;@OUOjr%lu%#9}q%=ZhRVG{wlsFRK_UQ&UhNP+L36nKLoG-j$vnKVE1Y`+PEi zK$N<=Ns5YW79lc`^n+072LQ2H<|S-w%%{9uqQBpXC_+50F+BW}iHRftk;o5AA>!XI zgu@H8v^Xd&wb9;QOgNmh^ug;Rtv)F$lbD&wjL7V4ifB}$xAz+^mz{WAGp(0P?2^Wb zgU>kJIP6^m2?k3T7?>j*UI3t@V+K{#a5`72?b)Ny)U=(hu0+m&p7z`Gt}<1bo#(p* zP*r88udf`xzkooXkb!|Yy1NsoYNpq!s*#r`(Al|@lP3#tIBYaDC|tM@XKHFOYk+KD zGd7cV>{5-Hs7j~g!Eq9Pjy4t&Xa`RXIk-FheK zamHl5d{l*-;}H79pfTnShmE?rN%rnl@Otfh{`_Z8eLk7yW|eSwf%^KqEdcH&Jx>$kk{Mt*gVG;G767ia+|#Nnq7q;S7>U8H_oe_NmOxAZ zQnmm~AO_&v{Zw^j#P%Q-_Ux9C@yi- zKSWPkA2psY=z!O8wCnGX{wKhIv>bU{(Q)b_zRHMEI2I#$@eT5D#F`B+E6Dl4BSlBN ljg!3g4mtD*d6RaQ=Qm5PPa3-H$xQ$N002ovPDHLkV1m$wjcxz{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sb.imageset/sb@3x.png b/Passepartout/App/macOS/Flags.xcassets/sb.imageset/sb@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..930e3748634e9edee3fe449596c0b29cfd9ca895 GIT binary patch literal 1109 zcmV-b1giUqP)Ro#vX^b~Vc|uh_+ZRj+yfB_k%U&oF+r^bTA&5) z9@r^sZ|y(Z0-wio?)Ti^=bm%!KM4kUh(MA+mLpr^lWHyRP z$elcC!Q+{anac#BrR8=9xq8(T>KGad(BA$!?&fv5f^>8&aFSKFs_)Y~Q{{5wP2JingjM6KBtkv1^wLNrG+Lw3(~;Erjk`k_4MKYZ)2} z0FaX-v3|Vua*xTHi&OG_b@l_N_7NU&v#mdB5ma>d0OT&^J5L~;9##AH&jb?f34 zuC2|dp}|6V`4eVlWPH8_1_uLKDKs9Mcn3^PEl^sjqpht7qj7O1-o5)i_wP?rTl;s$ z3rv)_Ga{&{Fw)(<0f0x3W<&dEC6I5NR6Y;^3JaAJwST{!zP=eQTzJW*O*s@4D36Jj z%OpmiRt*r=H+|UOOJYjr1{^dP$#!72z^0|138F1EJ!knFUQ92xg^Ac~YV39wBO^iT>&@)l zo6DU${wB&q(x*o1qAOTvJwOYDT%Bk0YOqCLZGRxlXV5-ivHyg5F{kB zk_7}YMdAts;Bx=+3J9W#=yfyHSO2mq1O#Cst5HCpfz>S_&@|Tkh_mim)R(!50JQhP zw|(H5S%&J8K$0Jz_zdy|k-vM0w325a63wLFc+X^*@{jwmJoB;Pk5PPI{>jr9ezN;J b{T=xijifPB+1_Dl00000NkvXXu0mjf8O;=t literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sc.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sc.imageset/Contents.json new file mode 100644 index 00000000..282bd27e --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sc.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sc@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sc@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sc.imageset/sc@2x.png b/Passepartout/App/macOS/Flags.xcassets/sc.imageset/sc@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..02f57a8cbd0c98a229bbb20415b7265e82f3e3fd GIT binary patch literal 880 zcmV-$1CRWPP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x10_jBK~zYIwU%2*6k!y{f3v&d1=5FB1T*nP!z@Ay%nN29U5F*pbW37I zh z`5D*%-268H!owjg&Fm8-G|)|P*(DGZk}b%i`A(;KSQxBc4LLcmd^t2U#QFred9Z}Q zc+b>CIj{xL`q2#zhRjUaJUbggLMEgYL2?$fuy{xJ#6=fS2vle=4-ABrD`DL_uvn&; z`vnOyd8j;72?664-vHUbOBLouBP1uwC(p|Rvso4M6p*XCjuEnOT;Hz&`M`jmT?__D zNs-O1R)~mDW$qJXS)9bO{gV9P0rmmK$YVM=1ObwgWaHdih>TS4>UQJmY^T@WM#mSC zuD6ffqaY^32p3M3Loo0OSP$G)*d!rgtnIO}{tZ1IemU&)y_e{AinI<&Tpw=XhVd1{ z!tYU8#y5gSL8>-a5SH$O2Y?kA|N4lDkx!nV5ApGep1(i#^0iCE?v!Zj7is({Q6oI% zvtiOl$H$zS01_kZSPwVLqge?20%p&KtStHTsi~s{-hqCGIwc$qk@kLxJ3m^uBD|p2 zFf?&zqyJ_pf?O>+jU{9WSW$P-$PlYX-_8u|+1 zTzYbAO6=f#XVfD4qG!_R61nS@XbkAVtMpd=50UYj4}Sn0pz{d!c#kUp0000 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sc.imageset/sc@3x.png b/Passepartout/App/macOS/Flags.xcassets/sc.imageset/sc@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b57640d5a91b1a55af12cb7a4c0d1ab9951c20 GIT binary patch literal 1300 zcmV+v1?&2WP)&A=={LC!JhDw8*_T>*Jfxo|JHKThg} z%f0v9bI+aMKhN`f`##U_`906`JHm5p=pjIuHGR+gtfLh(qlQ0; zj|hkppk;Fz`Xyt5G5#B{4lok~5SW<)USD*E9$S;b(*Po?v?LFxz$? z(0-Z*fD+)K>rg<59N$<$@KZKzjWz*UfNAn!%~LCDegli%zN)R!{Xi;iNr1*gLJT(c z?x}(xjSO0WQlJpH>seIO)H<}jlCYE!ZH#pQ*}yqv;+n0%kTJSqz8BvIId3JZz9jcbWpJQFaL}* zBA3=S^(OpIt(xuI5FU4^H}DOx7{5q>pF}>-{hkkl!}x(0xU#R5}=aE`enZ|x6tC7k{u`mjKFO*UOmI- z)S4MK#HL+8g5ZOa1t$mc1&^gG$fZ?OADdU` zbdZ_~+1Zer3sF(Zh`ciI0!!X&^)6TqtOZn_kzSFUEC*jy1asz$8}drTpc|uVM-@!* zAY=nRM83Idjr+kD6hLC4TQRRh4wmjS+3|2oWKYRnBGZOk2R!ta6d^nu($nRa2Xp;-FyMJyL#N`+Rw_-$NsNagWTckb>loGMV|Sb9Egrq7O>sUXyLrpN=Y~hqm;;3F? zOmHg69yZ>ifKYFo_qTp_oY3{;jK_W-Y}EfT+8SiTuKup@i0~hMx^Xg`-Y=v80000< KMNUMnLSTYmTWPWY literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sd.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sd.imageset/Contents.json new file mode 100644 index 00000000..e790510e --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sd.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sd@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sd@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sd.imageset/sd@2x.png b/Passepartout/App/macOS/Flags.xcassets/sd.imageset/sd@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..55f0018da2533bf41fa54cbd9df27edc902d6ce6 GIT binary patch literal 443 zcmV;s0Yv_ZP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0dPq~K~zYI#nU}YLQx#Y@vnA6?@&Z#6xP%OLbwIyQiIODg1ke4zJaEC z3l6RsxLh2xsa`?UP(xEfT<~G(N$?^Ph)L>ga#8bM^gjIHZ2!agaDL}-D)IW_N7Hb0 z<=y2K=0fL?KETnq0a~+=I0oqinjQxs{mA>UcL4>z!w>*v6`ZJQ2m;PjH4@T~omGv6 zfPGcD!dIKcN3FbNWca8XtjV2NWnT04OjU^Dv*20V@bXzUG=Do&@P(E#zI-H4a4~2m zL2al%Mu(%z(OPmhSrO}EuT(FYhEP?t z>f($yc32-f`3vNLd(+My%(Z?sRp1i%unYm{y^$v%3$(38{136d3IhvKC002ovPDHLkV1l2j!uJ3G literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sd.imageset/sd@3x.png b/Passepartout/App/macOS/Flags.xcassets/sd.imageset/sd@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2d8a4426d6c2f0d3bf6a7195455d310e22ce892f GIT binary patch literal 511 zcmV&WA(fU$^|ngpEJO39sbZWIN<;wKuWhpDS**6DYUETX z69MS;dz9)W@>hAf{jSQ1nV3%G12_e)J=tX@+=~P(B@uTb0Zd6`vPgha5*aTN@RUSG zi)fIN$gqe;DT(}uXqJ-5w}^%*iG;|};vf7O`UT?p;@XWS#M%G=002ovPDHLkV1l9s B=IH|gW!U_%O?XxCVIL! zhIn))r<{n|H>E0bb(9^ p2b!1}cvSTNfBty_l4yo8FbMj{Omlk2_7mth22WQ%mvv4FO#luxP2d0k literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/se.imageset/se@3x.png b/Passepartout/App/macOS/Flags.xcassets/se.imageset/se@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5cae31830b9158e4ef016ebb36c50d55cffd51f5 GIT binary patch literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2rPgjAEWH zjv*1PZ*Ls*Vk#6k{_*~cMQo3hIOO)UuruFx6!^kx^_6R%PdneeT`j6#ILbQs;&}48 zszjqyoCYr^-XW6rzy_p@-bxHQ^?~WOob!_T4Vwp1jd}$2YaK55c$7OcC@T0x8BI%b@ z*>bg8FIfJc{91gk^~bN(f%5unZ?&Jti~N69B`4?iM&CI_^D*Ne vh1gri@3FN^&5k?c`uamag=e`5=OcZU`yS?}Pkg8Xh8csWtDnm{r-UW|!8w~I literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sg.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sg.imageset/Contents.json new file mode 100644 index 00000000..d251c0f2 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sg@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sg@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sg.imageset/sg@2x.png b/Passepartout/App/macOS/Flags.xcassets/sg.imageset/sg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..baf21ab98e2820e4e834ea59a744bf7a9181db6d GIT binary patch literal 490 zcmVX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0iQ`kK~zYI?bXjp0zn+W@$b&Ang0pfr07=Hu7$Tf)F~kftA~iZnm&O& zK*zv~QWT;OAb1XZ0|h~_Qb;P3bz65k6|~@S^|Ig7Ff%Y8=JJ!CHLa^R8k;PzWligf zS%)GPLt0vz8|FVmmWgGvY<9b>7K`|Hb^wq9fjL4X3AI#WrBGn}_(=cw7^B(5pG>k^ zEFvP2`9Ok4M}*GLF*_ZG*(~zL1_0B3pK+~*_4$dszV1FGban>7xLU=wEaEpeL@q8c z+ikweWkfiPdUwaNrnv%9eiw2g0l@V26-<+1E{Cn_e;2LMh__6J>0sar{;P4QD$mJ!$lM`1E z{~(j6Cx-bvA{u4w{vOHaqn}DKu2jG@8JwQ-RVuj;0eHW@=H=i3>*E8pQo+Bwi#?eD zU>gRuVYmiSoEv(*j$W_3_TWrNFqP{0_x2V#Yh+dJNw#f20O>_SfQOkwZ{B$jXCB0v g2XW>>oOuvuKSj@m_Lkpv8~^|S07*qoM6N<$g25`@W&i*H literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sg.imageset/sg@3x.png b/Passepartout/App/macOS/Flags.xcassets/sg.imageset/sg@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd654121d3bc5d69db9a0d77d98d396c7c877084 GIT binary patch literal 717 zcmV;;0y6!HP)Y4p(ap(41d)JhO>Apx7~0z_oBSTiViy}55hO_|@tSzRS} zc2?eIKrR~Pc4r5jB#}Kjs!-&|Q4U1C-A>cxrBaAFouvH!ss(#3N^9k>uE@t?O2N?4 zQU0LSisW*Y&DFZys@b{97JJg`RqkuX#*}-#-Hv^03)}iSCa1Gl9~q&3WrYThM->O9 z{u_M18)QNu>c+D*7_7+2HE4gTt8;=L_dE`U_^m?)f2c-A+tEf=q z!AGNMV1Uot+X!Yeh3jj6xm=`!!D0)^^3&HU^WbDp?d@^V(?dEKL}#(k=<{KjnJKl; zUFiGQD)a1TywTyn)Ypg3W+Q)b!Hvg5A(5zLz89nYkEjhnmQ~W^|H->~BbtcX&_vXR zCZaYp5w)R-s0~d-ZD=BDLlaROBJiWyA>M+2?jzEkP#_=Q00000NkvXXu0mjfufjzK literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sh.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sh.imageset/Contents.json new file mode 100644 index 00000000..811d8a03 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sh.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sh@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sh@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sh.imageset/sh@2x.png b/Passepartout/App/macOS/Flags.xcassets/sh.imageset/sh@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..02a7482873124baef120ec63dc0ea7a4c20b9c75 GIT binary patch literal 1433 zcmV;K1!nq*P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1x`ssK~zYIwU&EORCN@`KX)H2k6pk;S8!l4(D0QaJ}S);4HX}gIaVs> zBW-d<%dycWmDFs~)XB1Gbez-zQ%5r$ZBUcQCq57b6;3p??P&IPyN#jn8j-(j=W3@YYHJ;>5YYg|vJEE+MjmidJZJz^=rq`%F(S5(EybvAkeMp8unCz>~tZPSEBIqMcpZ=#bBPhLhFT`89bpl{H5kv-VFc^Xt#V_v=%w^GF}U4N#YtEn?leW6Yl)%NOfcBV4=28>=@mVfkw;PIr-V^ajI*`7&dM zmFVaiqM}S>WmR%BKbq;Y(ow5Hk~)%?*N>c>V2&L#kd$NxK(TGxyU}lU6(}4#jq2(; zmMDiZ`r|(^n`@p(pCEuF$!yw`Mz3D0_`O0!_ru8qdU^Op$e>F{A7W#j%$=Lez=0{~ zbj3tQy3h%c>`WTk@aL*(`t(U-%9LG9oLJhFk<_gzmRq*lp*dl%vw6++CsMri*IfDy z9)s;c0L8`CjoW&!0m6VtpY+jlupsIa@Wahts zJ#Y*v<4ee*6OCG+LqrjhJB;fNJ4#XHzAF^FC}1tj0Ja0r`pe-d5X;ihoEnLkmWX!W zD3INF2{LK{)Ph8v(}ms9P=}(!+345i8F7jb=6pzH?w8mN-grbA!B34w*5LAZ@b?lB zC5eZ4;c_%JMw@4()S|{@1yqpb=fGBc0MTBH&1yj<*Hcw(#Zpnqkc+!{U}>7lZC@jq zb&MS!fav=G-x5f-eu&+%0okWNF4@iH9bX}r-@x5>I7RtQ3s~D9jZ-4W@glvvj^nTM zJFPa?fao{Z<00000NkvXXu0mjf$>g}M literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sh.imageset/sh@3x.png b/Passepartout/App/macOS/Flags.xcassets/sh.imageset/sh@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..edd7df44b2e892a9c38aaef32a2fbc0e76a302af GIT binary patch literal 2388 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sj.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sj.imageset/Contents.json new file mode 100644 index 00000000..b77353e9 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sj.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sj@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sj@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sj.imageset/sj@2x.png b/Passepartout/App/macOS/Flags.xcassets/sj.imageset/sj@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c926520dcb509509dd63069b31adb0f19aa21aed GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O^81FzS1{ zIEHw1CfBTAyL(n+qhbpqf5O(y$q(k4wH`FhR60EGvAF~Yq?x)JFZnUcpvJ`T@bak^ z2Tp95)maq0g4s>Bi4TU^dYvO~6cFGN5>i#=VA2^WE z;jg%Qt}JtRtK~Ar{q@E*tJf{Op~%z2Q_k)yC0WX0B>}@Ge2fe|Azn6noljZ-1Czni L)z4*}Q$iB}qS~GO literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sj.imageset/sj@3x.png b/Passepartout/App/macOS/Flags.xcassets/sj.imageset/sj@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1fffa4731dd94245a0210ae33add64b7b14752a5 GIT binary patch literal 465 zcmV;?0WSWDP)|0LVV?~x*SLyRrn1|#4 z&y}m6{aU;BH96*!3RoBz80^W>$fT~uz{tbH@L<&ihNCy0qsaYJQsHM7;bUOr;uN5U zBZ+bky)2?N81=|t1EU@pY+%$QgAI&&WUzrzj|?_2Y&^okJ!v9Y8W}k_2&!QV3S?k0 zH6_b@QUMFAlOxRxXI52ZU{+P7nfb_oWyQ8L6d7>m5oUK|!`_Pw0=%3QnM*2QWYEa? zPgfgh1cps!AN9y!1B}bJo~9^|%vp1kVej!9C}PtaqUfI4St7hlC^F!{saqHx32@eD zkPzXc$XrqZ%kO>r$X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0$)i)K~zYI?bb_3R8btq@$b3!GR}ZHPC15RVpBedh$4Edq85QkCW*9( zRzX{pqE)LXA`wCqi)>Lr8;zo}mR9O$5w$SL9D8YEy2u&S<~lR?+}mRCq9T*cD7o;r zI_LjCi_bZS`=Hk!2wVR-{+_|G!WzjsWO3FZi=!oK#=8APZnWBS;c}sD^&y9bAQH9f z&T}oL#Qgk~Sa+{IS8}|#Z?_OC-Gvp_?Yg7-1f&XSZ|j?G>G|nes@dcW#|Ns4 z>p~sok5R0!j-#p)B`+7f{yG4`$r;YqcO{MRj(wlj`uj(sufK^U7c?D=*<*E^4>S!- ziL#{-B`??R$w-7p{^6t{2d0Ok39m+x5(%g!Md%HUSii$KD$0r6y^qMuKrJao4hB%A znKWW9i6N$e1RPbBILeM-O--R>ZzTO@Bf{e$()JKJ7(g)%AZ_&^Q7sJt=vN!iFJA+| z-S>j2@~Zd(RRv&HbEbrVzr07rvo^&CQpRCI<^8}ohENvNN7J)c7xF~p6U)e?HD^C> z(hE4V^(2RyKT=y*NmquCJKnum-fSMscv6NWyqf0D5ps{8<`L6 z2<8{HTTq>7p;B>-D`qjb##|Ue!C^^ieKG2SZ!tPwri1_xLbNaIqh~(t;Nq7KI?J4# zc8BObnnumLwiQ9xnB|we)xBvhE literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sk.imageset/sk@3x.png b/Passepartout/App/macOS/Flags.xcassets/sk.imageset/sk@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..58505d19a4bb85b418629c4e158fec5ce6efb7b9 GIT binary patch literal 998 zcmVeUV|C#S&&YoG0I5jYAvJ4PPDYeuloIqP@15Qy2Qf!oh6dR== z#fD*9nNE}Z_)uXFxp4#fl~)whYx@~?g=#9s%uBE3ta&?jp*7SK?|KUvj$ByZvvbjd z*xp(y7Mp*O+8SJ~EvRTT?_Q@cj-USBmatjQWX-kJtC15?u+qqI1ocN0HGOWjRvko+ zjApbdm11CUf~j*U=bZlwqve$^Yzcqdc@@4nbN5qE;NHFs86HOXeTaacz~@KMf>ogF zOkTh7yx25(^@D!CI(gPv_j9oQ8!40NthtKEu|nS=ha%`}8xdX)=80akU={jhmu5Gc z7G+-Hh~fFL9mG)CK@tZJX2zcO?P%3O;(NPt_A1lFW#|Q3wCT^TuuMwiKjXXZ#P!ev zqz8vk(Fu$VO$eV4ciR?(&xcl914=Q|`NnKRDn*&GxSuTBL3C+lf(XA4*TWA2pr)t6 zFc2;m-i}>}3Lh9c)`{Lsud=M-31W)#Qmg+IvAgdlJ@_kF7M^FG#=Z4Xrta7T%${gk zZFNR341;*ea?W)QYzG;4Rj}&svHb17Paioph8!Eq%(Y+@qtSRl2JK?|egA|X;qm0G zO{WFJlgW8|#pR9sGV*8s?()EPkWYUY$GH90%v_4uC0t`W4mwQwgYEKn(2ibE`q$y z#J3NhrftV&8q)Um`@UPs+5P4CqK5zwN3Y(L*S%JGU69Hh?L2buB*VHt_o68Fu1j+7 zB`Jowk2qpzX z{Lekh(I*?}+UQ}0Od?RUdMD_8@j6uz%ssI2007*qoM6N<$g1(UB$^ZZW literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sl.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sl.imageset/Contents.json new file mode 100644 index 00000000..d10c6c5a --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sl.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sl@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sl@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sl.imageset/sl@2x.png b/Passepartout/App/macOS/Flags.xcassets/sl.imageset/sl@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d4351924bdea1b8ff4575b636fb9b90444ce701b GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?XxYCT;X zLp(a)UfIam;2_{~F>>dH0E5lk8wG#wa$3hHyp>T|+40~91EKRF*O{&*)Uoojxfv)q zTsUOpc*2LVpW~w7B4wB7HBYBk96Kj8ad*wcDM1W9{Jb_>@>^bTT->?O{@S7wY~Dxq v#m~;3wUQ+$my^-pf0~q22~f6Dy@*+Fr{pfdjq##DhcI}$`njxgN@xNAEb~Zf literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sl.imageset/sl@3x.png b/Passepartout/App/macOS/Flags.xcassets/sl.imageset/sl@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d34606893827c1ee4656b7c3120be140b6cf8617 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv5>FS$ zkcif|*ADVF81Og;vRA#STf@zq!r<2vG_6Bq^{;%U|FfM}MoV)n4g21~<^H`vt7V7c z5njbSj>65pCuTga+3g?tn;c)I$ztaD0e0s#3jM2`Rf literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sm.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sm.imageset/Contents.json new file mode 100644 index 00000000..7b0e3341 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sm.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sm@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sm@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sm.imageset/sm@2x.png b/Passepartout/App/macOS/Flags.xcassets/sm.imageset/sm@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a4c6ee62062fac41efdb614f68822a1ab4fe5d48 GIT binary patch literal 874 zcmV-w1C{)VP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x10P95K~zYI?UqewTvZgufA`%t?^Zf*^h%v;3^LrcPovm;N<~dMAgf z)hdPT1%#0FYIQa;)7b6+jvr;m_}>2yB%jX{%`9P^zDOamj+#yr-tj7p*T=DK8%@(X z_PnFgSRsr2ud~?0-_Sks6WR;Q)I*<8E7hsERUFUh*t4UIr1NQ}u1@jg`7b!}yu-$z zNlP0+Dh}#HS;}2=9KANr-oEEJG`gRN*7x6l9Q*nhbBi-PyG>!mOVAoV#Z9vp-*?y* zuQ8Z=msjKg&MkkBlnQT;9SrOpxHQw3r%9P9cIgS;88K2r9sp%YbDCf7D5@IS*v1t zeN4h< zgdQdw*@7&kNi@!J+SwOQxm85BSmnr3b=FI#h+(HFU)R1NuO=FNbV}fLUg;fKh zeZSFC;vIpAZBxazgHg;bu~qdLF(e0vb*5KJyb%vk%=}I{mqRE($iR({k=H^z7VY7~ z>n&Wn#Z9#zOZn%YRsY4y837Q!hxA+=8QNSMRu)8K zf+PQ$z!h&4fU>vcZ}CAP{?z?57~L&B0J&X%0228>t}z8gSpWb407*qoM6N<$g1JMh AVgLXD literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sm.imageset/sm@3x.png b/Passepartout/App/macOS/Flags.xcassets/sm.imageset/sm@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..02dc0cd277b5d0969fabce4575e2b73d521a604d GIT binary patch literal 1461 zcmV;m1xosfP)>8AV~-zZghxxNWRel>ZKKs<)#&o z<)&*6QmquOwFPh;K+pO_9>oWZH`?R%6AO#Rkk@=ZPLOu(9bq|i?V3#r!+)v&rQRqU$<^@&?QU&!BxgioYAI`5;>G zDstf>)m{Be{Ow_Ge(?2r+5&Zawd{(`EAPL;&h0x%fAKVud>E_h;?cnsfRGTjj<@S= z&IARLBCnm}sak^RT_Gd4XyysWb4w%ch8TO5jh zNbhe>GuHes*7WWt-2Db8qsQpjHo#EhALw>Jni5G$!eUQiU#&4}19|Jyx9C~d zgB|qn#NB_UgBiY)wvhGQLCTVtcRYACm64)`Dhb9-m2ax|Axi?m4Bm~K@KrUYD#;rQ zayEUI17{AfU0u!IQ+tsSa1`lMnL*<+M-qcfpIN_Tkfk>wN#J#<+TRikMDe+C-buHy#vaBimFYk9 z5oICs?N`U}x;7eB&JUd;E)9^W1UaW}AuYFHb~jRSf+X$jOO67d1Rve~;!-c`O`FlQ z4P>vL=8=Gx57G%9ij~Q08l_x{Vqgt=@k`v&968;_z4R%)^1FO2Z)H&*M@Aur-;ebCjfWe@!4Yee7CnGm&j?qszbGALk98yJJ0x&<-w2Ex5WtQ+kSG z#6vKj!n0WBCWd)cd6o`sf>tHPcMa|2b4_T~*_t2#q}ajik_S;#E%GP-f|Wgt>nsq^ z4PIWenq#-Tzz(s8r1w_*i&rqiUZQg*hkbX^G&4-42S&pYkOZ=#FqV9P1?i_Xfz&vN zE^25!p5|YngqkUb*75i1U2GO}WQ_YTEE_kw8Z8rH*td8S zlnRmBVz9(Ud}Wi)(kwY6N&^*kcLiuMbly3iq7j>&_w+F|G(>-YKk;~+k&zMl`ugzs zeB5$dAHP2`!H&3xo1%@Jn9lK9+F+Ga#3&ay7wWivAi84{%UC~LkSoVimy&eOryd9C<7TRfk$Nf~7K!W$H5_`$ht zT9!wf1%I6I(kvFa>{)gFK$fFc{%b8at$-{yt$-{y{b)c`;OLDGQ4f6&F}y#sPm>`V P00000NkvXXu0mjf3?{%< literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sn.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sn.imageset/Contents.json new file mode 100644 index 00000000..f4b5a049 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sn.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sn@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sn@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sn.imageset/sn@2x.png b/Passepartout/App/macOS/Flags.xcassets/sn.imageset/sn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..7d9c580d34fed4f46732c5618de920f6cff63446 GIT binary patch literal 419 zcmV;U0bKrxP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0a!^yK~zYI?bE+Y0&y6}@%J5e_zR_>P$C>kh>(VcrpP6SXb}opTOuc+ zrLBL!siCPkY_KKzMT=3R5Cnpi4UuJ#VS{9PVqQa(VaxS3HR3+o9S;vLc)lOWy5x;X zk~E8s?1gSm{NB=pp4p2SNS=LNEZS6c{ zCu!&K+}1S2)a-)oq@AKF!%VKdki?Cdjf4|`%B#fXg95-p)P17O)l$bQO(Nrp)9k?8zA4s(rzlz4lDTXU6Dh=((b^r-+0yE3dE zb+;d~GL^?9YoFhPJryEB@d^u{<}2bOR^|J@mP39!2Ba|tq%nU6@&*WmSfYD|-zWe8 N002ovPDHLkV1mfpz&QW_ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sn.imageset/sn@3x.png b/Passepartout/App/macOS/Flags.xcassets/sn.imageset/sn@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1ff8ce74d32e3c683e055d6e22b179a9b19c7bed GIT binary patch literal 616 zcmV-u0+;=XP)ERw8(SOS zoor(!=e@plqs_?BBH&2RK?z7mz{O;VYw1nge%AKedvaxi2Qw{e#|O8saO1=m5*y?p zKw)V`4VUZ33*0-M|KsF@fK+mc^o0dFTWnSF>busdfeQUw>Kwb%MZV&-kAz+BpZ(0x zu4UD+dKUYR&N_|e`d-^;3i>vG(-El$Z--wZ8ZSKGNz75Js@M51V?vQd2wZ)!QK_R+ijj)%92Vh@%&?)YF&M-^2Kfy zBMcudaejZ856JJl|Ddd|hO*Ov`kN(NVDy$(j*dh8& z0f^refcQ-Th~MX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0Zd6mK~zYI?bFXI1YsP<@%J-!vx{O|*(4V2VG9R8j#4(<9OdSqoRo{) zIr{^YtAnDPwz#bW7ZRy0$;rj6*o4)hJPy+~)6CM$>@w1PE;G&dnWtCtd`66J$}K6G z!ovu`w&Eqg7$0Je4>9NeKw|Zvh(7?COu#_QV~7A!9Wc@5F{G~rS{q=b9qNLWK>~Ic zM#GSdLeM}T@6@ifH89f)7x(&1N;p>G<-N*~d=VlcnD2*BnYX5s`hBhdt4H<`;NWPa zg!C26?!syA>vj9rFt-OMs(pkbNGUhZu$Y1DoprWz2`h*2^yYL|mt_qHAQ7=XAFSXv zb_E%3(+a86mb~GKQp^K;_m9jd|lSvg9phDMk?B&c6IgQAJExL z5C|c3?HK5xQ@0M$$xGLW$Sx6NksidTpcGU@@P$-VP;;llgKWNKI?vChWj>dA|9zkD zJTuSl8OF*CyRQI?|C}(8qX>-H|2hCI0waDSFyc1?BYq<=;x~*NNtRzs+hE+ttww07 zG_4}NmNA?V+)RS&!lxyZN`^DiUI%dpvMDGDnN%`tB$t+DECL+~lS&4SlsS@-eR|TS zlmt)jNU9u44vk;~F$bLlo@lfh5ptk|;G($9Uwri(XVembC`*B|N0-npS3q1c0V+(Mv z4X)Lke$9Rso=nQR2A(r=U@#;*11(^mFyg`n+w1#%2A>3JiUKnKjw& zNXWZW8HG$eJQ^3HTBv5EGbIz=;|b^=DVP8lork^`QsLqbwAN}WD`v#9prRCRzm!?} zI5v0T;YS#mftDJ0H?O6xSboDc?77mi|Lyr&a|kGAX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0cuG^K~zYI?Ug@E!%!5(&ubplCTYP06bF%ZaB}G)xI_deaTGs*AVN2x zi<2Kg5F8vG9o(D*9lErj7A=B*inWU1Qj1ob*rd&MXsOUGuZ3jj86WQ+e(&6Sd2DWH z;fN8|;H&635MTgXqZtmy45wckcuqt~w4g8900722tpPBdvOvxD zoyu7l=99OCJcHCr5=QPNB+?eRO5O9x)dpH7@VqN~h7bY)fNCZTv&b=f@ZE)J{xIBb zM)CVD)@|WoC6|FK1adn@3V~cEY9~Idx?#ilWO&$CaFB0^JP$lM8xx6xO&cu_xg4ADbtl)flsl%--BTV^=LAk&r fG6d;WU_kx=OHb_}uQL+y00000NkvXXu0mjf5D34g literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sr.imageset/sr@3x.png b/Passepartout/App/macOS/Flags.xcassets/sr.imageset/sr@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..8ea5905cebfdd5925029dd47cc8fb647700d3d48 GIT binary patch literal 567 zcmV-70?7S|P)618n~=b>Zm93zsh_i{;B{;n+lM$NneAq7Rnf7RrcLCKdqG; z5WV@}F_8V%QqPZ_vsf#Zz;7q9qaE4B5^t^6@`TpXL^_Q;NV^x&?nTmR(2~LZhM{&g z1_iod*!wBBZlV=wE=8yri}Eb3McJyjsfdEvD{QmRFYZH#2IXFJ*&+zqG z01mvy4Ty!oT0nPY#O&3{R5veoV#=L;knNW~!xtqd5FlW`&BcgQcSiX2=`rJ7MgL)y z?Ki%&oFK4AzQ6a`xLG3{9u6H2J=U++oI`-nW{-a<{Knymluj7pT^WB7iQ2rlhZiIu z;Xn}%l1-yZ&|HvlFByh&BKK002ovPDHLk FV1hu>5D)+W literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ss.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ss.imageset/Contents.json new file mode 100644 index 00000000..b5a1e806 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ss.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ss@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ss@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ss.imageset/ss@2x.png b/Passepartout/App/macOS/Flags.xcassets/ss.imageset/ss@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f9e0b8f5e8c175749e33c35c5f911f3a2a3800 GIT binary patch literal 812 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 KMNUMnLSTZwQd*P% literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sv.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sv.imageset/Contents.json new file mode 100644 index 00000000..bf1d63a6 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sv.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sv@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sv@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sv.imageset/sv@2x.png b/Passepartout/App/macOS/Flags.xcassets/sv.imageset/sv@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a4848bd9c02c254dd4e66ec067616cfe120caea4 GIT binary patch literal 443 zcmV;s0Yv_ZP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0dPq~K~zYI?bORk0#O`*@$WceiA9=*SSc+cDF}%u2)e9V6txL@gL;it zy+P}!RjV%GHi{sj7H-lmk_ZZ2unR?6-g0JI6a=&L5Y=M7)!CdsKW5H3!Zo$Ci6Q3s z)5NCjZvo#~5OWs9oCPtbE-&_nf#>* zy-K4q2--6=1VC}uJt~@b^vL}hqedy8By-=&-GfH4^g<@*pjLVM1WF_asicWS6RdBf z2q*;{g=^L}(nJoUP&)lRNKG@?jomOZ6eIbv$I)GuzEF~b<18p%DTvewvk8Gpo{RSu zjxsIO%GY?E%`^!OM57c$>WkRyZssQY$lvM=x+e&`MtQz@V|Jz&Y<4M#+?})gnI4{? z-G9#Z{s}r&7N*AN?(714htx>1vXzPlea^7dW;6_xueFXLdG@bz#kjh(dX~ZvQjniZ lr2fqlZ$Zpi5OWs9+y`OmaY~PJqa*+T002ovPDHLkV1gGG#oYh^ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sv.imageset/sv@3x.png b/Passepartout/App/macOS/Flags.xcassets/sv.imageset/sv@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d3ccec7040fba3f4abf063d26000cedc92de2dc4 GIT binary patch literal 652 zcmV;70(1R|P)FhM}0fQUf{tx#+%h^4eMo#}Pazwp*hnmN0>xzBSZ z_no<;HH|!)rUo$3I9Kfw66n<~AcZgDHGC1T;fr_;U&L$FjEHe|ptaf^M9`E{s$#nr ze?f5*LS29YqjC?;sK~DFF63sxXu&O71VTVz74&t8^nqR{9w|Q~ZU*+}AbJMs2bo*z z#4g3k>u>_>bx^i=tgMJ~!7_QdrZax$8J3kN5u9W%d6RTH!;QPsEN$dr_o=vytcaU| zU^}ymQ!JSVsUIIW7&}c%V1SjC&t#HyJb&|`e7x+WXtb=z{sI$I51F0s#wh+F-mn5h zQQZcewI>^p$fszZcXppa&8KQ@l>4>JF)Chqlv1s`ZVs?sm$s*V9PY`d7GuU&U zJ$oB7^B!}<{aFNTK^H_^~c}U?jSX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0=r2>K~zYI#g$7)R8bsU0z_BUjv%r;i=wpP_kWCeb|TZV*8SXG0jE#sd7>Z?xWEgQO2kGT~}|F1$|yqggH95fXv^hVO~%$ zdR7r76*(XvsR0bKmYk=LAU7BM{z=!hJ4%EHV5esDO3lco!8(AbyH2G&4tr)HsX7gL zZ+gfvn?svIs(ii|t-Zd-&nqHDvgM5=n@kiQe8@Q^ox-dPiUUskicI{f7X)GR)`+)i z?M6I63$A4ssVg2#ZUD-6uTip}js{ zn+UL?l;DxHqkmDWUtp&n7GoUFLgr3?(&_M(V!t4Ojr#7KP%FCjMMZda`};<`75~e& z8;O>Re}Y6)MR?ZLL|sLAG?UX#TXpT*na?AOQB@J1KYv_6xFl)){r~^~07*qoM6N<$ Ef-d}G+5i9m literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sx.imageset/sx@3x.png b/Passepartout/App/macOS/Flags.xcassets/sx.imageset/sx@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..34f2fe34acac088069b19538f498414dc93dda7d GIT binary patch literal 1176 zcmV;J1ZVq+P)VC2aY}1A9gZO5awQWFp>T!T0dqK%nt#inV}Bu#GK zcYoAJdz)Gdeee04d(Pzwv6H9TBl`~2P~-@*EX!$^`&?-IdmCgaYRGp% zi$#!SSq31HaEErbrc(pg>hfIEqIeKw8c8~GtVjB)y*Y0cEfQrA0E$tytU-XHQ*Hhr z(-e(r3k3m+L$yZ=0u;Pzj~-;2f>rHtg8+r8+JZqOsUMy0GO1J}dVRx#3k9ZH)*!Mh zGx7IDrpCTNtG`0jYbF`hW2!F4Sn)ZQCmaZBH58C)syQt#7jiO*uB;QA{ZD+Cs|bzQ zNc!~{wCBn2Be8%FJRSg1eD|$p^Y6#c3F4ASu8W_^oEedK?BM3@ajc^rq9sO>B_)(a zCkTi(#9)9Wu?YU^I;xghQFZ+Gpktm@(BzCJe5f{8tu(EuG%lhE+rrO*f6%~~GLu`5S8=i_A+3KvPrKN>en$}Y-P0**eVGabrVwrbP zb$!hyYxn6fO~cyj|7Y5A2C<+L)-WDBO8K5Wy!qif^laTmU}-tQWtH?M^(=G!OX>I+=5a62cK(5S z?~sLGp4N*;2I9|0}`w@788$cSiFcAycc$-7EQ7WHA3kGIl7%srw!9I5SaZ z6PpSt1U$x!6q-s(<{aa*QHUxjSxBvdRY}RbY8ARlO0ud|3@Ry6s#P>9DY>s!v8kj) q1I4M565;5t*V=dQJyY~QL;nLfwRuwQ>&w>w00000fhdEP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0We8KK~zYI?Uuc20zni;kI90}8iPu*77B`3Xsw73l6Mgc8y`S?fo(0^ zw-CV?qD9h4u<|EjWndSPgqteOCL;?e)?yFbYQD=o++ko4a0Dde8eVZBL?V775kHZL z9|POo;JS~YTA1c0CL#{-5UL0`fv#roHu%?+ApM5!KoCaT5i55^ch<#H7WqV;N~#iQ zxFC$*$85bVo#zggvdATJR8!SI^V*HXh@q|(?WZ=2!-D>6pRCFTlKAO24U^Wi#qwiG z@1=LPU%L^2hSi{OQ=oiXrfD@v$J2pD0BUzNipe6SWQqEHolHEV4~vK+8jhbwneXQ! zA~M}gbulfcuanI7GZ7J)>?Y@;!;5(}hHcwx&+{f>S}3K~01hA_SM)LZMI_=U67h2} ZBHw1ZD2v8UZ$|(C002ovPDHLkV1jN7p-2D# literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sy.imageset/sy@3x.png b/Passepartout/App/macOS/Flags.xcassets/sy.imageset/sy@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9de4c98a9a07bea91c1691c4aa55e2c2272fe6ae GIT binary patch literal 514 zcmV+d0{#7oP)>#v9U=^bQp$d7nM6+_SCy-$K9dYsCM>-l0)n*?Xf+*-K#@~lky2^H_fa6 z+SwaS46?hhOJ*kXXT8=_tMpbPb)3R)`@}_@o2?sWM`n9V{tMoRN9rg=tyM!HC~Ov( z8=VVOt2Gbxb{)U%vof)QRPx)^3xlR?Qft*%o>)c*L8V>^T&pE=@o>Sx+5x$Z9H;B2 zpzr{MjyMynwk48#UH>!xgyj3xEbYV`lP?uLD{n}%>4 zrx10BFc8=ubY@{iOv8$ph7~alD`FabBa#5zs6&Lo7ja&o877fB*mh literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sz.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/sz.imageset/Contents.json new file mode 100644 index 00000000..1e8ba38a --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/sz.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "sz@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "sz@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/sz.imageset/sz@2x.png b/Passepartout/App/macOS/Flags.xcassets/sz.imageset/sz@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c46582ac6bf54d466f1242782c7c054cd7b050dd GIT binary patch literal 1006 zcmVX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1EWbqK~zYI?Ur3kn^hRcf9GvW_r5Kx&43A!Hb9YP12RZRw=u~Q;vK|A zAciZWVHXAiX7Ng6CdQb|dEt$LaO2cOKx3i?7e&E^h|usE!k7@kpg@_>(hl0Ue2mr$ zW>Y>ikQnR5{&(kj&-1*$^MCT398vnxk6#j@ns`d^l@wQi7(D^mFYSwtuPr9UA6E#! zYO-iA*!t58tz&To8JR0c*FJ3ZCH1-FxPok2d`a4E*OqS0sX10+P*E7p&1H0BgEME( z^2XJxgqD_A?eAx~qXQNej#W=)OQ$_fLRgZxbM749`HdLERu&e2j@ z&BjLVHa9bW;|4-ik6io6Q=`f>T3E)0eQOJVSm?8K2zxlu#%X-KSR+imqLw z`1Wl?TH3)vHXBlYK9POlLmi0-FqCW~J?@xCm(2T<1|nNqF)ZO zy1F`QYikigAcVkZG=g5wg&)3Q?A;f@GfNl=)mnr(^%BYnGqYYVI=B1pK{V-MI^E88o|&b2SU3Ai&o(SYH9kNqo96;{$V#r8RMQ7RRV8|I%zRxYk^Hc#5 z1m{O?VP9JWz-uz`o+L5ja_w;>D=Q0tmX;PWGc(D~&OX$U<;h9`xkdOetMj*i5rY7cZ-b9KS>sT4X z+dMb@)7}HcI&xI0io&Sf&dA0FZoeOd;Q5jg%FX88n{{#VIOUKX237p>a)w{;@|-+Y z=D(~>OY%eQ$r|%op>;m4AR}|;HErMYdG|fHJtLkVe%0jGwmU0bL^%8=`mZE#{coO% cPeAtTPfgKMpR7@8(EtDd07*qoM6N<$g8qQsumAu6 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/sz.imageset/sz@3x.png b/Passepartout/App/macOS/Flags.xcassets/sz.imageset/sz@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..ccc29cb8a7f962ddb726f068b93a2aa456ba1fa9 GIT binary patch literal 1554 zcmV+t2JQKYP)c8HyVM-yn$Mzlzls0J#NmK7mE z#m4w58d6nNr599OR#hb^MPeHlOl2UrC~LPXZnj3PNY!>Js>o_G5t`9Pfy8O7woZtR zW{zn zyJrFbvDPn)`+W2VgY;%HMB{O`ZQI6M2M;p!{r9Nj<0Qjju7CC!!q;EdbeyPJL=yG& zoDDoePu!%Wq{$>Bcw`r2V`Dg-&I_Th`sX{r9d<3nZs+)8kMY+pzeF`01Xi@O zEY?SUftNJL9eU$*QgZK;bFQwj#F%KvYTlvb6owdxh? zlg1+6zPO05`uYISN@*;q5p;_c#ZiYZKY^+w*}s23u~>{#r%oXVb5}($6vFn=`-I>A z9hUU)ELo}`U^YI^&I9LhxLka4_%PWMCsvKu9+eicyy@wi&n1&da=9F;s**?~D3{A*vspAvV`5?g zfWV3t*1z{p{(I;-(&;#L%>lftSEDNm%IGNB&d#cx?q)>HU+9RfI(glOfPsjP-8x%2 zDJyl1im8 zO%tEbhs9zcoleu*+IsVyu`8Fjba*qOlB{reth9i7QNeBny(nOI+YoMzh-pB-x}0w7 zX3Bz>oP7b$Dt}|OeV|&(^1*DaU+VN5DJCx`~3_K z4ib$4p{)v8tO-n|=96bS}{ba!{7X&PN!U6jjZHf-2{!{MN(r-x(5jsY+}FhK9` zcVivRpx-hNTyxZMzWqf6!G=rCGAwVz_thZJa0R%f{T8v{NJh{^35%(t+8lT^rD9in z=`^qDIxWr30Aw;5a=9F-REk6*!Q|v5*=&}nsVNeP1OR*Y?j;Zi;C8!_WtoPC1{xX~ zkYyRS+l|lXnoj3}SC zw(?#iLOPSFkgr*@hK`O7{CObSa5*=dj$bV|+EJOs9f$_e=mFME_(r=f$V)!&{X548o>8 z|1y{dxA9`O=)TuJ)CBV;wH^|=-!N~8hzNAehd)Dq0AfaC%Nf~~1poj507*qoM6N<$ Ef?5Lhq5uE@ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tc.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/tc.imageset/Contents.json new file mode 100644 index 00000000..f051f128 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/tc.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "tc@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "tc@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/tc.imageset/tc@2x.png b/Passepartout/App/macOS/Flags.xcassets/tc.imageset/tc@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..68df16ca80d17cd9ed8cab6d0d00d1ec290dc409 GIT binary patch literal 1274 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/td.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/td.imageset/Contents.json new file mode 100644 index 00000000..385ba7db --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/td.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "td@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "td@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/td.imageset/td@2x.png b/Passepartout/App/macOS/Flags.xcassets/td.imageset/td@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..45dee310c616a4ffcc2fcdb96fbdaa702930de47 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?XxLOop^ zLp(a)o?9r`;2?73fQi0 zp1SgilXUmP=Q5ssD(;h%PfmQ|QKVuy3Cz8e?-u7N$Z@;3m-!&j0tQc4KbLh*2~7Ya CBsoR^ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/td.imageset/td@3x.png b/Passepartout/App/macOS/Flags.xcassets/td.imageset/td@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..72d25e6569d6b288c649794f7d1cd255608d22b0 GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDvE>9Q7 zkcif|=WTfpJ1{suoGvfhy+EU3!j2-2?Nc15i#RBxSaHquTO}nBXY+$O;V16~S&po| zxAyH9Pip*zb#fj#5 YN7oDQz3_K}FVIyCp00i_>zopr07~*t=>Px# literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tf.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/tf.imageset/Contents.json new file mode 100644 index 00000000..ac0be50d --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/tf.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "tf@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "tf@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/tf.imageset/tf@2x.png b/Passepartout/App/macOS/Flags.xcassets/tf.imageset/tf@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3b7dc74e0909e92cee47c9c6d1147a6a3eb4ec3e GIT binary patch literal 711 zcmV;&0yzDNP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0(?nCK~zYI?UqYOR8bg!zjK{OgAO(-J{rV8k!c7srP67mQDz9)YieO+ zEkdFPAwgt8o2*T>iOI##Dh|BHboJbSPo`+>}*A!aULXQ91gS*+_w6$cweGx?gTV5)=^V67} zTO`A5#IWIC(TjGOi8t!Pl{kCCicT9+PGo))vv{nqqh~w4v=6+IZ7= z7_CO)@e2=Gd+O2aVt@#=?|eXJJ|J_lJe!5ZAV*6x$+ac{aN~SFeXdDr&gBzt)T1b& ze1I5CWycX%)s#utsOPz(6d?q%9HgvhGm<2*WSY>#NC*MBTasvQ^Zp&;j!f4e*n6rK zkJk^t>-utv3(VBq>!Gf}g;pbxV@X7k1i@gaZ6b2Ae)G@c@%q`hEg697+AiF~KAeqi zv>J)6*$MQyros{t69Fj5O`)^l5XA*%2HtH literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tf.imageset/tf@3x.png b/Passepartout/App/macOS/Flags.xcassets/tf.imageset/tf@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..88c2b3d3824fb79fc38012e3fb770036ce5cc911 GIT binary patch literal 1065 zcmV+^1lIeBP)Y_>OQb?szun9C4FSSui zUm9(Z&_qp|@KBo2G!Ze44^54i&}jQsELa~fc7d1>0qD~W=!_?GLt#yd~^Oe-k#feDiZdgvPbS97*>4S9lN~rUFGmj)-dlRBCt|H$^j{MeqBg=p z)J9l{+6W6#8(|@8BP>L12!}uTE+A)2G{uk@A1xc4U>}mTjR`s`Kl$n2vik=JJp8e& zkpC01XOXpJ_l_)f6r``px3%*ZzG@u_d9I3zn3H0;*0Ps4qxPWqM|wan~#*uYXNunjQeXPQ&N#KMTNt>UP{7>9lPhbq7T(#V(=9S1UFqk_{O~ zsw=I;8MO!kT<)Kw$##P#+YOq(wFiAOQuSn|8*qCUxZFR9AV8c^OLe7{4H-saW29Or zQjvILG-po~V|^ltzM(13HvcT^Tl3atd<%Z8FE#=Y2*7iN=~R_(V*AsnynL{Q**T9g z6&W4((AMSP_^B)OTy+7`R5@AmOo;D+>UN6vHB(WRjmaSOP|sBt$4_0Mt;@maxCczsw9Ns;Y#~*I#6Dx|svWkGT zek?9ZX&Ut!YEJw>-KRavd=y}{qQqsV@ zZxMhuUU{7K6g{FS1jT_0DzXxLN+02ilO@vqJ8d*xxc;{>iucG8JB!vMiUI(Q7p`-$ z$I1776ExW*5uzxtvuM3+yhwcMv9(B44ncs5vTTmNolE{xX8MP3@!RjW85)_UwbOya z>EY2#6Cc(Tuy6NcEd1%Gcfb`gj^Y&w1mJwj2nnWW=6#C{+ou7z)H}|l-f;ki?bFQr z7D+HgbG~JSzzWTviXK^)tiwCEz`A5TeS=c~BtIzq&2Uc60mx@j<2nY*F*)LMz&0TX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0d+}4K~zYI?Uv0-0#O)1&x}LPSY|0CVzdiF4XjOz5TbRsY2ikCgo3Dz zD}4(WJwh!aXjx!Hi-L+?AgC07N+q)_b=pNUO)X~35C`em#;s_5OlRl~5kWDvF;n~~GP=5omk?A=B^#)p50yv+Pa=UJ%h*F9Jjo=^903@#$M3Lg=rbeRE7~YZE?k>%2RvYK@zb5gmh&>oYbi28WM!8R=aK>W4 zDghu}HW-=I9SVxVbs#{iT&A|Sha;0gbh&6(tD3sC6F7ggE-~$9MtW7T=@Tz!XPUTv za9}u~@B-I0>mq&!a&Nq>-Q?eh2v^%2w%=GV)2vQ_I%HkKCa^Ds<|tYpWtpdcvzoq$ q9${&Vo8toGe<{)bvl`JC(en;n9%2MsSNVSc0000cjGiTtt!TVMJ*=%AtR+pF!hm)G}M@80kG zdG6l(z9-&1q=p9GJ*E2ov7XwEkPr6g(@{8kpT3>1Ix06N(7jjb#TPM+mPCYAB95G z`L|!f(2KV7DbsLAgp`D)rU=Gj5DX$hAqJ+WK?sIdR`|ZX4Z!u;8P$BA+Wvm`57SVBMm}X+|08l_1pDfWkCT&F#UcQQv$Nbok8YLdL5xNc;?gcMNGpNF%9`>7*F)A YpZ=|gW!U_%O?Xxwt2cZ zhIn))-;tc~=f~NT#YQ~L94%*i=Na%WVV-bsh4Tf*$IW-!%m4rUcsf-<_TZ6Y+uB{P zoceP3e`5(NGc&U?^Woo)!luo~6m`7C^QTn*e|WjU$|+z%eBaX(6E_DvKOZX@&@LgB z>CHcDg=8s*l>`Wz@Fh;1BJ%H7Y;dK6tfH#sx7LrZugkCgZ*0)Qv&30KQX&kb8mQ`L w&3nb?|M%CkUlHs%b7oG@;@)%B> zArY-_uN!hTI|#Hs^qFC&d6xIcghThd*6eXym%1`yndjWq949qHPO$B+=xnUyd2fC2 zcVcAO)2nx$J2UL^d%yWR2eYzywMtJOAhTcX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0kTO%K~zYI?UlbyR6!JnzjNna2pb8+KZ_e$OrWwf(Zm>HX<`m_G>1Yob$V1&P?XY z#^T*9UjH<~C1Mxv{fsVC;5;Ldenukw42_6<_*ie;sobs%9$||$9ynnm-E77>bKQ;4 z&4qPp7tOvRr3GC2765Z|<#Z1j3ybr+Zm^?Ki`{t%YBA+1rd;jW8-y?sb@=@{>N1k~ z8bl@3XQ!9vGiiknG4G<~By7=a6eDl@WBt(iD6BHeG!!*ZKUVtRU zM-!r}k4_~4B))c1qxo6g1qhmmOV@De+PNJ;^;a2w```OyZ9}W4E58-4yk0Wcnd8^#FBkG;dEf=k~(_5&gV2zU$0G-h@cnYa}iOT2fq*V%4uhc)F5bo?>yO7DYg@&I?6k!<0KhNwq`y&-JiChyAQV1_06$H_-4nc?T-Zdx? z>0jv9p^FK23IBsGN!Jb@M1u~7(3T;IZJWB_>i(LU_vtXwCTXC)%Pz})V3^^3=9%aF zW#)P3oss41SAALlSq5#i2pc$!7GR6Ek!GW9q}ga2X*OEMi0dSijn-fVQPujs*)=?< z6sv0)w=P%JDu@TBNVxeDfLQu5IH_99GM0NpG5L9dwJEf+4o(X7bEuz-jw|Z~Yg3r~ zJhqp3mhXt5{uWxwAo0Pdz|gZ=G(L!yGN``=h~3JzdPMyk(s2Py1w=qP_*blg`k)F< zyq04DE031$EfK6vUIQf~6ku(n#kx z;`JXI4mYQ9x^Lrj-y-}mb0{WWKhil4UfPO;x=z1Z{Dj$g3xLym4@r&HtCXcjYyabs zkUVg~`7|_dXCyPZArLvQfSc zvz7(~-<~4LD@bw_Ei3{C>AH!QGiY%IclZT}-9?2}BU;K3e13=qTS#IAiC+S@Ckh66 zwDKJ-e?iX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0+UHZK~zYI?UqYO6mb~9e>3}Xch$C1Hbr`2QWTkKMiF($2WdzLgP_PH z3ws(BbqG5}59}=!qIBtKhYmuL8bn|rnwlnL>e`_PYNhLIU$fi6TwI-5cT=*1zthZo z|Htq9=Hovj5L;LdWHYyvi*qdCWnN@5iXsNRX4W^;s-@sWlGn#jd^rkyytUG4Wt{-Hc0Ps0CjScogoZdM%BiCD-XpIB zKufoI+PNaY=J*(jE~X&}@}(=h^OAu4zl9{HZIJ6wtjn2a{AAE@C->N^zjAbOECFp++%|7?}W+SE=-eg$UJu-|b>vEKp{ z2^O73;>N*hPVK5wtinW+W52LGvY+l=lj4}5Pu95TAJkrZ%;}84Bme{fa#Nc8jtNR+ z|MnK@i^@n?@jaMn02E}_5fL^LoXF~x5u7=+1+{7{Y}7d^Jzl|+f@g$=IOL{GOSs<7 z{k+QHM2rS4f*|0M-0WEUnWoz%9NyXZR{|5+x9tPR(i>!Bvd!Ai`jw6@3lEOgke}8N za4!Txao%&Bl1N!~!t^30qm4`1uUTNQQ(Co=FoOfNIQ57hv1_n9RfOstQw}iz>!=P% z5~jpcXtkCU0y&bp;N)OV&USERYyOmhI=huP%+|3mxN%!^FsH>qI5E7}r1 Q+5i9m07*qoM6N<$f^H>Wg#Z8m literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tk.imageset/tk@3x.png b/Passepartout/App/macOS/Flags.xcassets/tk.imageset/tk@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..635e76abfb5b519ed30baa4453d18afaff0c260d GIT binary patch literal 1039 zcmV+q1n~QbP)X4hijU$ zSm|nF4cBrmU2U$?)v`H@`olGCDsKJ}thokrWH{Trv^Go8{Bib!tu)1KpuoIC4!C=s z{wQuT?wK5$EYp;8K1w1orlYXa}A9EeChl3p2Ufe=^Ezk zx^H>y=~Jjm1b`i_m6-W<35}!@S=On4@;vXa_AxU%7%lG)I`R37Otod&h$Km@sPW=< zskF3TK+}?&auwcgcD{6kMGxJWP&UdonMw3QDlvGo;yy*mX>knLNcs+!f&qcd+O~jO7i51LC2v*(q=G;eAn!!;t@ zsVEiRZdR0wtrbHfvkM+z^SVl^7Z;P6?ig3+ExgJ1JNDC1b2fRU0_<-1O6W~uXe2l| z!pn7wsIOf}VDO(WF3UQbmi<6yV-uwh_E@9VfSK7r_PyF3_c}9%M9J2;N4d==v%s5& zEX#CWyiRdmKl|6WQ}xInR_jg3u8uM`G%bx=Z@6nkA{u8e-N0_sc(e8-Tk1~WQp1*u z6k+|+PJ$tox0;v4e5csRse0F_fw}p89DL&o)>faxu4pNeDMsb|Yb>7E&DGv4219m+ zM(xo$!>N^%KE&(KoJ5v%BAQHK$Pq6ThZ1Hu9Djf%baY}*bWM}c0h=6KN@zsEu0+Pw zM>L5uzvV|CV1`p`cvN8^=t7ot+|CiQ+!HT;ZpUc!c{;A#8M{2qIf_G>I6Ylz7^gi( zxg&PDQw`JDRuMH~I3o8G|DPXp_Y2cTrW(^mrWy)xe6mGY!QWcIAuN~7Y?=T7002ov JPDHLkV1lX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0`y5lK~zYI#nW3zlVKRZ@&9+)oY{rClq|bQmV|V;sA5pk9)dgS3L!*<}!6#d7iu^$x3mgSMi0MTh^z7xY8 zj+S}1k_7{oqH7<$efUek@FN0%qTwo?&&et}kQByZ?`@`faBvChAb zMIit_zhKAdC=XvI08*gp&fJ1bqfu2AAw^cYrEZ^`tI^1*xelA%a6Geb9F-|NNH&)9*>8*x;on1+i7WO$*8~m zB-nZ)O3$xRPe7nU zX5^-Xh??v3!Yl3Dq()x6PuONN4u=Du&xh0LWPE&_+S*$B`}-Ll9!_-?Sm5djE6oSZ z4?&-Rv4=9j#~@AW~M3Oxj4Ju<;ZAg2Ex z@JEn(m&)z)R#p^9O9ogJl0FJO1fv~G2UrkNy)OAzY%G=;y}R^)tdM$_%8lbzBF_{) zNiq_@LWKYT002ov JPDHLkV1iw?gTVj* literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tl.imageset/tl@3x.png b/Passepartout/App/macOS/Flags.xcassets/tl.imageset/tl@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b202cd597a9b52ebd58658f2bfd31cc8e646b032 GIT binary patch literal 1062 zcmV+>1ljwEP)sPx84FlEsUMe`a~7*YFvT4l_wl>Ao8n3 z{na$P5uI0E3KmO#yKDt}A6$M@$6|+rhZ6eX zDOG+9(-{c_0*sE1vb(#Rcf7f|nM5K{(EkOe%+i+{9Yvxh$j#7QnasZ@EBrX7BEevg zcs$O~&=ApR6o;RMy+1}o! zr>BSY^>uc3cJO+==(-g0K}H1 z6A1`RMf&>s*xK4+W@d)Dxw*VHMNvqn3m>{@P4LwXl@H!7y_C-7=}`y>Os`y#NQ9}Wsfr}ZMJXq6Msq2AiS(1HLM{N)XhNv;Y7A07*qoM6N<$g7&-k(*OVf literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tm.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/tm.imageset/Contents.json new file mode 100644 index 00000000..23cb8c9b --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/tm.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "tm@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "tm@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/tm.imageset/tm@2x.png b/Passepartout/App/macOS/Flags.xcassets/tm.imageset/tm@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..634da5250a1a67e3d5b98ed617837dd0f6a8fa06 GIT binary patch literal 974 zcmV;<12O!GP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1A|FKK~zYIy_UUiTU8jwf9KqDe0_awCyw)B=c8^&qzXtxt3s&+6d~w< zgt~M>LTqg8UHAup0waQf5g{Q~D$2kR5U6~mB1#$}($-0p*oy5qzP7LLCqqOK1M1@5 zXMI1;PmdnGI^x4?SJp0X96i~uX@pWp%OLK#M4>?ELw;Yjc<=cc9;F0)se;Ie`!!AZ zjjQxBH5%OxgDIc+^)>3>81x6mBZc@!((zOvO-*d=^V{Yf@`DLFn@zgKB{G#!dY(FI zR?=W0R|cSD6^08kVtP9AJfc5ta(cNycVve%bBl~+m+9SaW1IeQqYwZLLZ8L_G~Hmp z)yi{215rvMGG(9oPd4h-7BZvhcz0=g9%j)elR9>!Vo!3xPD*QsGElhKq7z!RgVuvK~}5CGB-Wz;^>?3}aM zxKu!-Vs2k7(0)d+uTymT|7OHAG~K}ElRy6_gCZr&Igh(bmLQqsu^=ISl{$l$U4 zCUIKgq>Ynoz;Qlam|DV+k~ddApw>Se9*7}gQOvp6--p~@E@F)y((I3L>c=MIwny8v zPMV#-<;H_whW7Y>Kui@&A!EEaq`0}qcM~?*qdJ2qCS?e8GG_$k1u|;2(rnH4sm_%c z)0#$Sz<#gE@{Y!F)x)<8L9!Rf(9?oWInB5e^3(t>?1gkoCf$r;;LAinR8|M7h|j{W zE~{tLe47f<(;<)Fa+nEC4(voYP#{ScJ*KJ|F0Z;AWh9mtVR~t-l821Vq(CCk-Al23 zCdIvi$!@B{bdY1*^*FZ*;kr|>9t#UGsC;=ip?op{q3iA_)*%?HugMIS>=~93s zp^QX`xY^55c>g7qCN9zFY%{X{F$dQ#Q~hj>2qzH`*>+RDGo5E_Fvj8GI^Ne+4(!*- z_KI-6OskuWBQlO*GHlY+yX3Y%$9yG2PEFAr>0?!QAx?w?1yIPfIe2GsN!8<6{FeNJ8~od5s;07*qoM6N<$f;}V63IG5A literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tm.imageset/tm@3x.png b/Passepartout/App/macOS/Flags.xcassets/tm.imageset/tm@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7fdb400711cee255d1f869d16c40a597c8910f9f GIT binary patch literal 1823 zcmV+)2jKXLP)AVCNS z=!Q^1i$F*qBvwcuBsT0=vMOa&sX`zXR4PH*s+6XpNuW*Ykf1z>Qz!An&dVN;?HSMG zKF?t>sgu;U+D$$4Tb;T3=IH;|`M#s?yH`B_i?8Q~%GK=5v>isFP^^HRh%`GHYHx3D zx%JvW+ntr-8imo~%AU*^Bujq%LCPVudk0!DPH=aOg&Q_X)`L?$9&XJXL^0Sv&C6m$ z5d@$p*$HUH54>j^Rj5AY7Bt(r@w%_ zeVVf`ALFmNIl2oiyz-wiKi{^4sADTmw~vxg49q2)Y;-z_X~yF3hu5ox_R&J#dYxH) zhUbs2r_f?zg&yg0#4lewjg{SlXd7N}lay%_eUyK|-u8ZyhV|Jh{}|e1X%7SxK7iJH zBmAzIXXl`26g~o-s9KYKBomDkr z_<=^M+hgHooXIyb7}f%t&cB1XVHdM!=9oYACMpaOLg8$3sYVad=IF+Q{3Z7<9K%Mc zSzf*QZvcvZg&l3ZblI)ktIe&B5zCAKFq4v?q7k|p^P@J5UVbFdY7ePRnY3^97N5PE zs|$A{ANf#f0iKs9i*4P+R=UH5x$#vqViZboP$6#}>S8<7Y^_W&bgRmIJjS!P{)@~i zPJF2gYs_cYXlcpyyUFRKKfRu$Vev$EGf#K#LKkKJ11QY=)9oc!`;bVoxd@RUx=?IQa|rZHri+H{O?vuL#D zWicwAf%F4zbPDe7?8GiezLiVjK2}7(ROC+wvRpoxVskFW`aGx=Czi&d1wlPkO14fm z9w3FlOy`+SWQcclVi1wALJBSQ*2I%bi@g~zvMCRQV&IO?cv%q)z{P3;5mdNjDm-71 zJR7nltYJ72j^3oj?gcvOz6H2y6VH3ta+Y&_7Lf+RhlB4I=}0&a&@Jl|MX{Wd8>r@{hxV3{1GlwurC& zvy3(o#~EnO6VZy5dJ}l^^A6`b9pvsBskF|>ks-Eg1tveI@kU>kYa3(8K(G)lo!OfK zqb=owfUlk|QAr7Exg^T;dGgFvMt5za_ln08`ZR-AYxNezXwqBD4>VeOT^O_Y?kn>E z>>m}3_parc-%l+D3SE)xcb9D%n*l9hg(zQOChD_8HK7p>b+N(9QW|bU-tS1_*$}T_ z&|$d^l)Ey98|nmA4cFDF{%|`xpFBc5(Zj5F0_&|82%p{0*^@r)$8w~5Yus@Yjn=#@ z8cNl#))&6b-u^zE&UN_L-lll$F0_4-R=>cZAwlgY11wBfILnN>&44jqjsqb=ge)v5 zyvi7bck|fE6f=1XZFm>nWC62v2I-4s-!wJ@27t4{LliFJxIVE<;~4w)Gd*6TtFHs6 zV;inJPBdO1)zO@%0ry{-I_rGOzq!mvUZdhU=yR`;{Kn(VUaT>6i;h8Mcn~ffLxqy;bFY(?ip(LG+H`ZK72G%C&6uS7U4&5BIF>-E=A75zerf?!?wB|mT{8VH?ZXvxOA*!tk*5KQ+P&tj4*;W> zG_KuP6VC!%|IijOQ{o32G7?JDm59Zp@I771j`|;5Q%oYrH&XO+{2!jX-=c|KkaGY4 N002ovPDHLkV1o4|a4i4; literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tn.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/tn.imageset/Contents.json new file mode 100644 index 00000000..0488262b --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/tn.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "tn@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "tn@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/tn.imageset/tn@2x.png b/Passepartout/App/macOS/Flags.xcassets/tn.imageset/tn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8d5ca25a966a00c08d5492e92f2e9c336197aa3d GIT binary patch literal 691 zcmV;k0!;mhP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0%%D@K~zYI?bc056k#04@$WM`v#)OEuFwlam+~bmLPScUkRa?(VI*0r z9mLr1poG!eB_a~)l8^;~2puYMBMVLNB~S?y4LXE|Lbpgl#Wh^potW# zf2U#Q|Nrx0=3$;kOpx9JMhR;g5s=mv@Hg4PU z+&8bT5=2pOR#gBHs;ei`(Sz$s4X(@8LlXCMX^3j1T)%|7;Wl#SHqbPp14B!DRuZC( zjG<3W1K>PYj-jf|H#EkExKl`b)r@zz2g{C30F1d1(c$-|A(o3cOMsleR_Z#!;lNtB zAM4&cw2?99A2cCk8HevA(xwdn2)iAC`Fo8-I=W3V#HdK*JR)pXJpJt``MF>iMA|wD zw{;>E8E1_@_IUv9!zj}QM=<6>W+8!uAOO<(R8k+^$9AmfkI&WaUV=V)?2qgTA z*Mqan952IqumJn1V&q-fvAt$=oN(YJYIkp_@ zn26XE4540Fe{KkJWsHd-#*3OJ5H(SQ0sJfefJjOq8ZJyz5NKE}AR0(%Rd%;C^k=ub zvuC_$ojSG{(ld=K+4pL`oNwOmeRKAl@7qxZ2zCMr|8ppV1O>N&5%s?o;1;q*G7VWH znTD*9OoKL8#GXZ!cvr8&Q&A48O8VL$=Bcxo7cb9AJ=cxotY3%!zOmX|r!&7Uq3d#J$`Gp-!=f_K{-Cel~?(Kog5$NUhnx(0@KzQ)+@_YecW zIo{KjEv4|lJD|vqdeS>`$DLEXK^L!{1Q?$7XYnl3EGmyD1QG`j;7(gw|Y94WOI}< zA|}rR0E&WET?Ih;mn&GKV<`Cnd|R6+JhTr0ttNzLVFkuB&qFHZ;7a!o$Vibhk~(!3 z(rG*PJ-HqLE18@aLH;-!*OKN_C%>ks{wmiaS5EuUKn%gvjzb z(!X9oEeR6r?!0=gpwa{tefY~6RU4T=!Q)B z2@S4|@xC1L_q>U3^Tu1sPkeC%V@oTRaYME=;No9hE1tmE(n@UY29hUEf)F$2rM~ZB zsIdwC@n+Xdz#M)uRm)28)~>`;u>e#RG59;F?$a}#6E~3k_M2(Q8p$+djbs|KMlubW e1zp?*edJH;3_=q;E-N(v0000|gW!U_%O^81FsgaF zIEHw1zP++B>yQIO!$bR|rBirJ^^}}edLO*FaK}y!jz#(pn14w5Dg6*oYVu|;S9h0n z615WP61e5GTFB^#(+c000Xko1aW&2;+fjci_QYLxA-|2s9=Bh1Qta)|dtDmV+&JI; z+p+_pS6;UzOGGRd+?X=SWv$qaw%=V9zWdIk-7%H2DYIIrP}lm$^}gL%-=&AHnN)7p zVKDn_dHtsiL;6{@sGTx=DT`n4(VHHhe0|%-<-rWwUVl9(V6Pzl*Y15^v+c}+`&osP z&KBLvV_xvA=%M4IrI((!zGf;|lBu%lYBN(=<-aw8p-(L)D^BxjZDM%X`=(30J4R1z zp(4Yg)p6$y+MVOoSFe42(0SgjyXmSQQvZI>=QH6HoGf4nCpPl`O7ostYb$mE7={d< Lu6{1-oD!M*a$0l2LCB|)QY_#BTx!Vmy(U#~+g6jBd$4OEf0Mgzyg0RZr{Sis;^ z zG^2Xe?c%-NW}7f3;*OSGtHCIjqxx$y0e;8Js#c-q^U<23Q7^rlagpS4FgUAUaycA* z9{}L?`!L*0zIRlF87*N%s6+nHY=Q&<06?{@)B{}$RmAD_Zjs~PXu+D@Uw63QGwYQU zWd;!XHvSRjuuBo%kRrSxMR-Gs@P-uO4JpDKQiM082yaLc-VjDa12D@v1PguuT5U|i TPmy7500000NkvXXu0mjfHnzHS literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tr.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/tr.imageset/Contents.json new file mode 100644 index 00000000..a18ec00f --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/tr.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "tr@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "tr@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/tr.imageset/tr@2x.png b/Passepartout/App/macOS/Flags.xcassets/tr.imageset/tr@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..77e74c1c111589941161c12c95418eb974350691 GIT binary patch literal 693 zcmV;m0!safP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0%}P_K~zYI?Uvt5Q(+j#Kku14XPetJDIsUloi;@5hlquAlN5;wX7w+G zg@MqIi^!`Wx(K1VD(Ir13+YCwz(_(ODyfU|2O$z@%%PdvY&*K`yr+xBw2_`UDZTJ} zb$EH6=X~DpbKdj3V$xOI4WgBel%QMLP=ICH0?E`CNT%{~NwWENVz2ZgRF&k!Hxi$Q zz%>6Kh`PU;g6o}V^>yhr844q3=a}!hOZ35`oPn}#jkBeR9WQ#&>g$l^OdCCNDPl!evFFOi=*i{o{n?at12me*^4n1 zM25oa12N2pxOz(kBUv5#$cO+SIY_Pdnzz>9fZKPs}xsjGxptOEIjMW`sGVIU_`9thNcu2;ORJz>&!`P zr6noIXpDuvej+!!QZpwP3A)z=k_jc8PK@apFpS&)mVx9neIYgMu=qEuMVsb6vIUZ< bO#|`^;p@|g0y<8#00000NkvXXu0mjfSK>*F literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tr.imageset/tr@3x.png b/Passepartout/App/macOS/Flags.xcassets/tr.imageset/tr@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9b15cb086f6503a2b47d5f1524c9a4d730740f16 GIT binary patch literal 973 zcmV;;12X)HP)e>0tFr!956Hx>wJxTL9BSWpw6Fsw^NgK^aW zFN6@{1p*;~kod5Hgo`mGCO+v4_#h+-th$Mci*j4xX+xKV5JG}zyj3GCo!zb5?UdPQUN}<(!_*87UrYxx_<&6c4mGGu=cbkY~DqN>K|^ZPbEP z8?_+S#zPZCsg#f$3ZXsUfp67HJoDxv1%u@74Po8BgK_2@*&8=2Wi=&b|FcVejnJ+g z%-X#jITR{+pV=Q{bnhX|D_6_0E8RyqK|J&4(bRn$b;YuRx;b!-baxMCY!Ex4BL#z~ ztx^0hzJNJ+ow4_il->BhaUDc%sAu+fy(mi-f75^;W$_}iH*dMIo)TBPmbRv&AOyhhmhICD z0pO$!a=*nvk^t~N(T1e?+_aL%RghWRUMm=9&i9eIcu7dZPX2|br5ONqSu2n1?{d>h z9^vg*@@x3opDC!NU9NXKIW}>js)TlKCG+hCa`E5MR=0!ZBlW>iaHhBNg@bq=T~M?P z%z2JuKy$C?+$VX((^$~vW9pvUFAuaJ485`q4f2^S9U;m1z z%!GM(awfehsiVgj-P1+l)s5VH`dQ?LdND0G4U8W@SuhT)>qHft70Ktt(RBdK{sBhc z+L!;#)`zja|3OI4RgiRdPvO(7$3x@CA0jsvZv;~!NvLhDIFm~>bH1-=xr*ZMJYw7E z8(+sx==qYecpIiP#f;n*Am31k~diwP~wSva(V|eDy`KM@EjGz3R z^r;@q*j1dg0g8eejo|NGi`)<<*>w;no2^9udCESIc;>WFclZE-^)G{5Ji$&XHF3!L z^DfB)he?0(X*qT!sn{!1H5$Rct`py?l_(45BL)2A?kC9Jx=p6{EXL_GI7X%tR#Q@Y v_gih$f>ax|Ak{`KNVTCLae1bjs04olp;#DvX;AfH00000NkvXXu0mjfAPCm; literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tt.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/tt.imageset/Contents.json new file mode 100644 index 00000000..39c55a5a --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/tt.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "tt@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "tt@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/tt.imageset/tt@2x.png b/Passepartout/App/macOS/Flags.xcassets/tt.imageset/tt@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dccefb1d84b332e56a4ebc24a9108319c390f0a7 GIT binary patch literal 963 zcmV;!13dhRP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x19(Y9K~zYIwbV~Yn`Z#W@oy5vY-+2Bom#x7I!?irUlDqXH$@?RKl#?QM0(WKy?5$o=*B@n5tb zU%qTmoKBuRdW0lN6rZuNF{b@~j4LbX4j(S*|JTt1q=P~B&zhDRxg0}7LoB{|gK>EoZB30h z2*4i?AEKR{WMyTA*4EY%%;4Z4fk=b~zaLFil{g5%@AvLee)~3|P>7b6mV%beW*Hb5 zAh@@OF%UpgSt$+zki2`Biu?DGWtryY=7N^VWa#hjXIW8bSXx4(*NcMyD3g;Mn4c#c z4r4NzN-$2RlUF(&hnAMmR8)wA03^o8sd@YuS(a%m+L3fRjl<#K2fdzpuNTV7#6bW) zT))m2!62)vs~C%RB$Z0h+uO^J_4OR`dO@cX2SHVNf9VoU;V{8q5QD)`koWiZaX1|O zWHMoxodxZ`|N6f{{>HdmeEIq{vMf_uTU(Hm$s{(Lji1}vFg$nw8jT`hI0 zyJ$?b6D56p leI4t`ljx?W(H}b&{R`CYg$Ct@bp`+c002ovPDHLkV1lIz$uIx_ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tt.imageset/tt@3x.png b/Passepartout/App/macOS/Flags.xcassets/tt.imageset/tt@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2715925380b098ddc6610c5c3ca71c442dc1bcf3 GIT binary patch literal 1707 zcmV;c22}ZpP)mMl3jhqxujG-&2vY->TK48c)K z&tEJjM|n{`>h)LK-0%C`PoH1=yW3YXVK)C;u2zqoJ$p7>uh&N)V8ezD6AcXwcYUU( z8QHt{mFdAjnMm(VBm=8fc@*8<_$4HepP!FTrxPy7&CR8up@ErSf5pCS8`JmhdB^EI zNN1c*>}oZxzCO;MKTlRxmT*C1V58@LYjlychCqj5ddIjn11NZPSc9n{m{(kg&J?ZJ`!i74Wj-sL> z{9geB@y1)i6kIkS!0Y zZQ3NkUn#%1@TqCm=VMkV}_9B3Z28IeG54>9NJa@Xnn?Dil~O7S;%|*38Td`}gms zxw)Bu_unV@^UoJ$R>XqlJ=xX8$b0XxJ}Qcyo*p6uSXoY+=;d}hO@HR5FL%#Y$imIwcKtuIXOABx3?4Y@yEPeR<_WxbF!#U;6!UH_w(}j zXIvcJ-Q5HS2hXW>xm;vsW@0oNS#{zBt4d23Q~C)O{Z%sF*vS3-d^X0%V=|ct6lATb zsVTHtEhdwRm&?lu`t;Mqmj9b2`A!`F;tL)W6_J>jNLN=E0fMYG+lV^wE|<@#ot&H`BO`;}>(>dct0N#kf6?`q^e#1a`ZUhZ zK0~Ea(ca#UOb{F=CMHNvPv^#W-w|@|94oW47gc-7Z?~f-PT;JlK&@8O*4Bo5(a>Hn8DPvVtq@|@{Fc|O^WUaBWF*F(tH~absX=+0L z&N~aLxoiRGVMz&po;$~`UAr(C4EXr?%&B!cov77n`hNO}u+~=OJ9a#Gz2!@C9uE&b z{E+cWm)N~~H#(gTsUSFxj*gO+md1bj`w44pMW$3fSGnblq#h6VKlp%01_S%{?c?Ib zi%0~)ad>zbl}g3!pMNI2qXXI2t({TRx3`xFKR@ir$+&LceyYxE6Pd*`If)}ZoyRwBaO%`4jvP56)Ze*t z2c=Sp!|g_4vEUmW{ZyUTCo+pPC%90zMm`SJ z>-!&jJd*6}>{o_{hJ=3}CnY60&zw2)%cR8;^j{q&N?aXud?)|_002ovPDHLkV1jS# BIj8^t literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tv.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/tv.imageset/Contents.json new file mode 100644 index 00000000..a25b8ffe --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/tv.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "tv@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "tv@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/tv.imageset/tv@2x.png b/Passepartout/App/macOS/Flags.xcassets/tv.imageset/tv@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..20c6a43d5da7f886011acaa8569786e3ebabf3b8 GIT binary patch literal 1345 zcmV-H1-|-;P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1olZpK~zYIwUv8J)nypRKflX4NA4F~xY8WhmQq6vcjIiPJlY3`c5hi+I>M)N-Xs!Q;3nHn~+%S(?g* z4GU1I&v>7&22BO zOR?RE{TK;lzr3hVNufinMsjw>|K!O&b7qT`Hbb|quh3eDgh=qsVcWFhl)Y!GN;MWSn-^YkX(@IRtL0%6(NZ!mCe1AAbq*TMXX(eQA4Z_{s;i=BYsdR{f zg|W(3WWmgEn8dsHUV16?pOn6k<0Ko`s}LInCvVvp8D&4l4>i zWr-0=R2rZosJTSRXrJo3lVvfX5&LP6H zh{Ls!obHzk{*H|-^}0&vxDqn&zQ;}7RD$v{aaXk2){M%Hc&J(k8CyZPXA$A!i*b-U z`pnm~dlKPU$YQT+sP*1F?sTHtBGF`WwXG3IJ=;#ec>B=+O7zX(kGXw30IIrGY?I!)>YScu&Zn}pWI5uXjTFAKp;Gm%@O5Dw?*Rg{kde` zeIG-wQ-E*O%loW*R)`UU0GzlN_P;U90F`t|SrPsLj4k0D`noB}00000NkvXXu0mjf Dx;KqG literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tv.imageset/tv@3x.png b/Passepartout/App/macOS/Flags.xcassets/tv.imageset/tv@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6eb443af54bfeb1f50b8671716a776e975e337c6 GIT binary patch literal 2141 zcmV-j2%`6iP)37jm=415wt~nY=W&ZsS>f8mQU!C$fk| z^!wNR?tAy%_xb(ickk~#AuVQkweZ2>8qwKV%Dj~?-}mQ}+Oncbfo8NmKD5fPbF)Uc zl%{C3iIGt?r={K;+I>dTq?3R!dc0qGM1QHmnv~!y(`dwhPYSP!Hi`P?^0ZY7LvFUV zVpxE-Yg80NVq%z@G><)d&ah#_F^Y;RpK=)Bpmwe`-NStDjLqg5Hb;3`?8fDDnNQt6 zetbVR%<7HvKX)6dw)|jtZP6mSty)FGv3q(v+6x0@;RQo6uKO!B>FM0`@St?{au&@T zfYG>~jT@)o=-Bimx2Eyq`;nF~ksX?oC}ZZL9WVg@>}*Vv=QB0*09*f*(tZ?x?A$pc z)1!_Onj3_1eG*Ud^SSBc!=n#Z@cXa;jK=k>T=^DSt@7Cc4*Zr~&gW4?huQ;#9c09a zPx+K2wAQMFifb-{#OppGKu)HAhL3EEs`YE^9JS zKtK;J{%u+VK;#URZf*?B%)~T#KEIj1?}Y(0O1O0CzVu6@*=!*&us53gZ0gI)kwg)P z;9w9MYJf2$1oJoF*zR}VwF{R83#h$+A0!Ed!GPS!iK?nv($fn75Jidda*NF;@p>)? z^-k>vayu~aDUjAwYcx`CHrvK3cXt#nE^UgjJ7@;mhL3G)>Sm>=zI^%r4pNt$OXH&Q=T-fG76)7opE8sA4BpN@zHpNis`?NW) zr>+1&kXYiIOhJvFYvtY)*L0!Mszs3!I0pcYMrkXtdcBUZWBVcq0!Wf=6DwU^k?C|8 zLqhC8456X8%%5)?TW;LoNns&!oetTcK#r%}!fLgjK~qL?n?ZVLi`h496W+Q!z7Af? z7se1)TyIziMPy`>?M9tWO;prqR;`+VAP7{XrjomA71rWn^ea|#sK$$#vxYU9`*CPcP z5=*arfK`+O|J@@>rJRKeM{w_6EE_jYLviaW8Dqv^nmrq*=`*+!cZd;Na#*@78H=T^ z$t2m?rOcikkFW2??Af12mwEH?&&t9jA_CRAWo#%+;`Gi5j2h+JricHfN^70){MSL| zUtUUpQwQCNJIq76hnS$}{x6zFp$?Z+aj7faV%y$zpnM$51QC3z7 zk&#LG`F%p-flD}rN8q28g&`~q=h(&UQ6A^eXA|ksv*q)mufs!v4Yv`HnB$&m+uWPd zXHsodb0qh5t~~Pj8D!tSxwuy5VVpXZjB(@WGYI_g>3RuKYPrA)!`38A ziu^nzrHa~K?mWmUqvYYEW*z#!-iOYm`N*p(Y_>YL9uz$mcyK$vSwC%O4W5H~q1Gxv z6e%=Uk>}|Kz+8_Mt~~NVL|~ZyE(xZIgu0*Liy@!msHo;IQ8 z?X6(LZBC6^iUf@R;Ztr^co3vd$HyU;*nx@6`tc*`>Xn=+@qeljHcHW?wFBj;Dg=Mj;c~nlT-VRYiV{ z0RV-p-d18;(o0{F#s}VOnut}&RRFhz3j?qOIqst6$)9so$aNs z$g@g7;tiLZsO5G1&ie>8^(t;vxO2_yO>u3PS7$|9lZ1fziH^+yyXe)ah&cav`a0xL zQrqxy)?pwrK}0FD+Quqb%MGzn|9cF%QSQZ=5`S)2xMQhTvG@KYTRHA95K)p5AGDca z`n&8HvJFpNL90GK4!Nuwm|$nSV)h~6`*Bo%cppn@ z_Sn%~Tf(-%+X-?`r>C}r>*by#nkKN_7}9J*?2r|a3nG8$cYsj$69BlVD>xjy23Jkf zN1;563-c~6r?bL>QfB33(Gb2gPHh$fItZj*lCj~=ySNB^}ZKyt-E027TfFS1#(#rgBQa+~qi4MT- zcXR5n%`VU|UyTrrV*oE*9%siyb87Tb`Z+!TuzT>8dspl*FB<@*W#uvL$9jj#K`6RD)mdO$jP-B2z5_o>!9s)Ry2GzO)yO) z=BGteSUUkQx%-dks0QHt zxWz~-pSXT2qf z?Y>9cG^HHM8AG?DU-6UKn@);ayX!9i0(b@95Zg(j0)f;HNaP080i`b_x`gx}NkSsG T1U%-700000NkvXXu0mjfG=)0H literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tw.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/tw.imageset/Contents.json new file mode 100644 index 00000000..6cbb7236 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/tw.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "tw@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "tw@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/tw.imageset/tw@2x.png b/Passepartout/App/macOS/Flags.xcassets/tw.imageset/tw@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e67b370ac95b6ce5a5bfd3292f0f4888cb2bfc46 GIT binary patch literal 528 zcmV+r0`L8aP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0mVr~K~zYI?bXjqnqdII@vlFIrEP}Qp^<@;hDf=R9Xbd*1s+7(!9So& zhlCb_r}7Z&9}rL7z0^Eg9RiJY*n|-G1J-+}ToTokT5eRn=?-Iqy*Uec?DT#wFFX(L z!-t3G;nBR{)z=J92N2LlUgPAjm0#azo6Tx8zrUlSy*I{0*Ay~4>%wa7A`%(H~KxUayrz;tLi_2a}UeC=|}I+s(pvrXl3|y3Xe2OG>2+W@bi6 zrF^Wd`B+~skW6}+m>8g57Yorh8oauyvACEe7_|RA9|nVtSj>apzsk|kPq7Lb?1)~k zWqR6)$Mcw>A@hy7{(d9j@H5=*zV-@9Npw{C&c3)*xx^AYwM7?xwo92RtW@bXtiQbYr`|LyZfDJ^gRm;&nXsvkVx#1 z%^nkpj1dT=D3vaRBK`~c)AF)}B%Kio4UGu`CWcZ& SWV@~a0000)u!g0ffj2^?S@vs_jI2%8*|ZDE0^M<~9d|DF zT)pr;@5}Q!U*7Y+M{|_+FKi(<=$$&w%=c2SD~#f>mwHh-vgjI>SXW!jBvI7i@zj*s z<-aI6$eA;BSgnS&aVX>lK%;@y)_P^^{(*vnh@y^oJV0Gt70t~qf1i7MKuSJrU0T>-kqS0t@I(KmC(i8N0EqnKxsjW40@7~PX9J5(ZDkUjvy#ca8 zv|0^)eLkwH^xV8T$?4PmbaZ&Qf8U3}pkrw0Bkk?asIE2=iJZmZ*iInui0SEXTjl@9 zRj!!HeVB(wLK+~SW-l?5b}1!XcXw|^pH$m#P4^|*qHxwd+gXQY&Ma% zZ!Zvw`Ej{+C?YFI-i|CSWw~y)${AyLnj-=CB#>VE6q-7c!stJb=AxSwF7k_f#fQ{kd&$P7Eubu3P zM4H*zl3#2KqTnlv(`mu$eZb)02PP-KlFjCroBM&+8!4Oo-)wr0{O0!USFEh8j-%0c z2*T<+$YgSKb&V?`_b(LOk>4QzQYnc$ccwP1m5ZYOM?f9&f1_Cjl_?cR(H&76l^|-P z5=3oOf~bv35VcVWqBbf))J7$U+NcCk8v-y;Zi!Ox3xKWJwM~4VU;qFB07*qoM6N<$ Ef>;ig*#H0l literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tz.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/tz.imageset/Contents.json new file mode 100644 index 00000000..d903bbe9 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/tz.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "tz@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "tz@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/tz.imageset/tz@2x.png b/Passepartout/App/macOS/Flags.xcassets/tz.imageset/tz@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..39a1615e0a2103d0ea0d8a309459787f1017238d GIT binary patch literal 695 zcmV;o0!aOdP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0&Gb{K~zYIz18na6LB2C@%P=ff`SzxL}H<5y7hw)(P`@DeAuJP|KLX4 zvz+2BMt&%@)s z@aDzmz9(=m{0-hTP{WbDFxC$Jt)S~5%aF?zz0g+oQ>epsElImP7!o zA6|3UD#B8scz!jkIxZprO0x}xl5td|-g&NmtVl%if);?VRK7w}lc6v$0QzD(5&Z$#CEt8mA_AbaLh2H99kc&M z00;so3Zzod-RnV(-zGFZOLoZzl(DQ%DNHZ6A?pvf0?e@#5dg&psmt36p-?3XZq%6= z!STed2(S>5yr6YMxY1CEL?D~B4uBGcuji0w9_<-m&YmIyp!hcxj&3X1iP)tueT(3W zxqn8$9wLq@ESyD-Keh}oXG_E}g&sGmev{xt(sl%Fib!72dLVqFT7@&n@h4>km?K{C ze?O2Ogg_k(4;%M_od{8cp&`g*426-YJM>MYDvAJbUtqzTOjMyTe+qf_X~hBNhI7hBWuME d{-;9m`~_jR4QS$A!+`(*002ovPDHLkV1j}uIy3+P literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/tz.imageset/tz@3x.png b/Passepartout/App/macOS/Flags.xcassets/tz.imageset/tz@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a81ce85c6ded3cc843eb48a91df3122bd778991c GIT binary patch literal 885 zcmV-*1B(2KP)GK~z|U&Dq;a6k#03@$am&*=`1%8L|`6Dp96I1n%n60lF&aKZu$w z0uh2us4MSOh|U?LG~2n`4%g+j+rf%%Dk)G@f`o|D!Y(>E)5WXxhO6#j_T7E%elYX$ zK73||*;$Q?TRu~Snd=?XT58_=*4iVp_-Sjlt#R&#ckJE+-AQ%44$l{;-sDWFGr+2a zz+y4?_k(FdJpNms>Ku=%&7~8+4sDy@;Vx0aaiF6Es;eO$pZ?q_8>-IK3hA9+a1p-_ zZJXiY?#vbB6jY?n04oTAMPeQp5DHygnXgq4kuoowuZ6^JQNp(2%o$j}KD!c70FgQa ztPlhiia8erIm$%Jyl_4^uCUM@g^7g2ibS?9g-an=JzvayeXxH&B$K(VJ7*5Gwn9Tg zo{RW&Xx<1-HQ>?26REQkqEQ$f&28;q5MnW?s1S4Bil|WVc))f%wD&Z)U&N{$C#fG zu#!l^;=$1N|BlPKNXUR#Jp{(@1(gbNvM!=j;p<8w$;k?GvMN$63UV?kqE=xAkz{OI z1vzOK2^nD3Lq!oO$eFQ-N`=9%%Q2Ie(^il(ZINPEkdv~AT7_kp$tzhY$eC0mWPlZh zig{wruR?@q_sOgk9u73AokSmAAi=reZ|L=>>k4x8yefPt z$9!@a2O|%$ZZk7A6i&9vn6> zAK!5GiIh&V{v71@!|BuFH+W^GP-uU3kgD6g%1c0&ukn)`zH54>`<|{ zjH0nB^`D`8b`E|gW!U_%O?Xxl097< zLp(Z@x2%6tS@U7yKAyu2OzbMezkXZcvT*`$3rfr#Exdb&le?sxyaJw)Nnps$ILOboV_~DRP*X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0m?~4K~zYI?Uq4ER8bU$zw3Kb^I}A$#XPZMB8nD5=)$quR3Oq~Dh#wm z%UUR-7;f9xHW5K^rhS`fBc!--aIoIYXta!4Mbr#UCSlWz=%laXqD5c}nM?HE!XNJH z^8b97bGYXKqyX{wq#E#v4ng+IeD{Ji5#D$Sp%iQ8`Ll$9b}vDIx4tQjZ$QlTM4)5@ zB(G!MvLZnva=955{N;W~|FE_`ZtLW@JE~+>7mZfnV!dW{J5Jl+BN7uM^z~dJ+&f8e z<{```bXW>nrExFCh&*`Au7I=hiI(;l0qYp2$0l*3*L5QGdZg*rJph(6OIWr|?Pu-J zUEh5z5Oa3jEjF7h*JFyco#_USHijC>XY;JCEMvdUaA9N|PMq7$Y`ClS-2WSTi6_4s(s3L_gn@xO*f;KCUA;*%nbe5{ zG}nOP_^@nNHYMleB)yoHO1UCKgG1VDfQoi9^=*SLofm}dQ^9ETT9aWY$>!4KuU`ta zgI#~?cnhzTlt=;nIsyMs&wTU6`v%0^`P@)Nq~IxqQdP4UKN12?dI|y|-<0MMWWV+R Xn>y{XTpHDC00000NkvXXu0mjfu2%XO literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ug.imageset/ug@3x.png b/Passepartout/App/macOS/Flags.xcassets/ug.imageset/ug@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..bbed241397f63ea810e0020fcd044bfd80066668 GIT binary patch literal 691 zcmV;k0!;mhP)C=RACf{pV#gU9B6eSmK z62wJC;2)4KT4`ZAX;X{b6kaSBK|+3D3XOzi1Ts#+)TTlmXVEl?+Bo;L$OfeCE6!Zz z2M5lD!~MMvobz(eRlpRW$Z#pZ!UiBYhkXED%7UbuYy)DnHuCbY51~U!Rj#|vsutDD59$2b;zt_1>`K*? zv~*xx?bT@uXa?DKdns;e2S6!BT!b=r74_cweRU-*9c)$B>9p1hl6SEsm2Yfp5cseJ zM{=Lm%iVjm6>RA==kJCn zI%4kCoJdkq(bL@{rRAm4cBM_muC>Wh-6{D#@l+%!GCMP?#q(ciZLLr!wC}n5W;X+O z1{gQT3FZ~B<8blo#S;L6D?y#sdS_&GbTpN(t*_C4x1aFmFbxe2oU8SaTU3U#`aB|n zX_`8%0gbH%i2uG{Bq_4^W>FRb3lfjTW#rL_Boj$lo_H?1+rPy(=+oL(d!ZM^<#NgJ z(6C5SBpQiIUvHmuc6Lf+JtEewCB8wQIGs-IAP4q4$m8+Qdbt(LvZyGpAoMYWX_^EU z0=lgLP-72yhaEl|v#V~JDGQQrvJHq4z2}%mW&W@q$f|o7vQ2AcLDEgO0Wna_Aelex Ze*nN>Ud5G}U2p&Z002ovPDHLkV1m4sH--QJ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/um.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/um.imageset/Contents.json new file mode 100644 index 00000000..8771cd57 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/um.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "um@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "um@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/um.imageset/um@2x.png b/Passepartout/App/macOS/Flags.xcassets/um.imageset/um@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e286037a871da3d55e7bbb78bbbe47e5e9b277cc GIT binary patch literal 1229 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/un.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/un.imageset/Contents.json new file mode 100644 index 00000000..39ed99a8 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/un.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "un@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "un@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/un.imageset/un@2x.png b/Passepartout/App/macOS/Flags.xcassets/un.imageset/un@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4697d141c5c69306e78d46e37e374fb4d267e49 GIT binary patch literal 751 zcmVX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0;EYqK~zYI?bc08R8btq@$WhJd1mgYIiq1Jj%5}IRuI*u1Xs~2=tcBm zT11Q9M4NU&5L85~Kr13_j7m$L86TRtGk4}bo)$%g1YOCfg}?nd|Ic~)bHtTf)jPm7 z{%!8ae+>AZ1IX?iKz2vp>i|<1M6se^YvfFcr3>WW((qz7+c8P1h!cflN`wF@1f4M9;gZMMi98K2 zrq+s?KUvHS$#gUYOJW;>h8NQf({BL5)zf`!cM?YW4f-98g_SN(-?s6?l!g~mDVw;q zhSy7eTO-qsR7w`h^?+0Vl3!R47gjt!aId{Aep-s9A0j%GLENwv*JD`uyY@M$OF{A8ZB zX0(40O$uJEbvahH@OmkIj>ha*j;5b*ZX%CTUtdnq(a;50hG1&g;`MqDU5ZSQOn0Q# zifH-?mC{$p?S~CU`VHDa%8O4vc}p@;av8{J)LN3!0fS1(VxtvNYwhEX04#p=0hm5) zVH=Watw)?H)^;N9E`H|5{Tk0c_}GSIYS=~ySX}Y5PM;l8tpz-O<54Q;%uN@llx<8+ z5T_7CilvPnlVyv!=>la}=g}LFYCXsd*;8kI{;`V`g1Kpz`4cYN9f$W@Ap#g5G#Sk6 zbb^$7FI#)+s(Xe2EUfx0Hv)u!O3D0Q@YGn2cbfsJB2(Y^V+i~x^z*70SF_)TU**5~ h1{^?k=K!)hUjPc93j$J#22TJ0002ovPDHLkV1n1{SD^p^ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/un.imageset/un@3x.png b/Passepartout/App/macOS/Flags.xcassets/un.imageset/un@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..ce81e498b070e955c825b7aad2a10bde497289cf GIT binary patch literal 1396 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/uy.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/uy.imageset/Contents.json new file mode 100644 index 00000000..126bbc73 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/uy.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "uy@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "uy@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/uy.imageset/uy@2x.png b/Passepartout/App/macOS/Flags.xcassets/uy.imageset/uy@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ef2c2eadf06616aba16b86a08ff8640e90f5efbb GIT binary patch literal 730 zcmV<00ww*4P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0*^^VK~zYI&6Z1O6Hyd~|C^blu}PEWHF+4ONHMLCK1_>rp*9N@L=*)@ zP!PAeaU)&0=+=$y#HAZSkQBP8RMb)`vSYW_W{2e}oHx&`_ zd6|B>G@>YivAYouPe4l-kqF%bRa!uYhQo^|7hrcdu@PTWB=B~~8Hs%Ph_%2Y*g8uP zivg&s9QJ4h6v}y+_1*ZoJPxMk4je8I0N}>ieMn@=ibzYkeZ`}Q#2)zm!yqDwEkz_)N4tmo{h$egfSHM#uvko}W~V`j9)eJU+H?Z8uJhRWynO-HAF8#_k3H#A9Lf^`AyMD`8;t z8rDKfI6OF9w{hzJaqv}95eY)b3Tf19YPA|Dic%!lKk(Dv;#*otl9~~0M+hNW;=45) zoeQMgtrYQjnP|iA+f3-;UK3~QY-?#oSVue8@US+K#vh|*LO*!A%KqG}v{b@o(y;XN zg}7@jkZP%j&&#-WO=-x=DmPsdai*0LlnT@IpvR<4FaJNbc1>x11Dq!8T(l&#od5s; M07*qoM6N<$g5#7&P5=M^ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/uy.imageset/uy@3x.png b/Passepartout/App/macOS/Flags.xcassets/uy.imageset/uy@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..886bdb3ad55111916aa6af89d679f3055999837a GIT binary patch literal 1026 zcmV+d1pWJoP)MlM_cC zs{t4p>gUgvrn$Ac3B>gdHhgo4+p?>WWgVTCTDa$NPFFwAqc0qv^_uPh4;7!b#$5E@ zhzbb?gPf^7%&xu9vhj{w&euN3nxc0})3wsu^$W(-Ze&@Dcict&cPA*n_vvZZU$sq8 zb*dw70h2@xEg=MXdF!aD+Cl0qMaY3)>A3g~Ym6gUo8CaDH*mT0XFjehr(knQ+=XXj zTF77REdb=MD`92MX0HDJB+dyfI@;0eBKXJ5q%AYj+3*0{$`9h3aPaxjm$}qrRz&_< zroDd64JT=DJVM4Y56P+7sKY%3-4>*zB(&-fW8*SvX@Wq~N@V>CMn^7_zvBePtPN8) zRBDbyeMfvgFIGzpw)P4}$HrNzchNT(q-?8(GYvkB%Qg7ID^M@WVg1%ONzX9FU3w;_ zLfmdQUw!c&euo+3;(nIsuHg3v*_0<}>j`1X5wuu?h$PTzBnC&-c!HVq*)vJc+DX~& zr_g9L%7;wi@p$OzxPY_wBLd!jG8Q${I}oO&D@aL!2Cq*-C53THg)ConfYqj*sMX2^ zOcE91813iMxA!AL-Gssr4*1B)5)9kJ7#6FzG87`BD?svD2$4cSyPe|l3beXp0Gyrx zzqQ$w4f(0QmagWbY}{0gT5n{m^(9i%O>}p(kgW6LC5vRW1C4-;yN(eEYYF&0*lc!+ zOZEU@{=-J$Gj+;_OyYJ9bLwy@rh-SXSwBOs*RWLEg*}*$P)U$dOlxx;55M?*)UZ-2 zWX6B3W1qZ5>Hcc6O^+c<188r31?xZxnd@J}?Pw!w?LG>&y~^pD%6R+E%8b7#PaJp~ zAp|a$i-GZc_7~pAhvz(Am9noIL8vpX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0fR|IK~zYI?bOdJ!*LwP@#p93Bh6|iN!iqdHcX;W^P@;PI7m5i_7^zu z4{&o4Qm(X%12^Tcl)1V1aT&E`mN36-efRx17}a40K)bsvBgo@8nEY@uFw{4zhKTV$4^Qhmo3w5U>$T0uZ^n zBlh$Pz-F!s$C6}~d5*t;>|NflewJW9x2#>&ZsxoFCpLJ;EQ-#m>CF~^3OV?)e&16-i;AM>2eA^-pY07*qoM6N<$ Ef>TA-1poj5 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/uz.imageset/uz@3x.png b/Passepartout/App/macOS/Flags.xcassets/uz.imageset/uz@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..0c6f0fad1c9cd73be9a3dfb86391459a9afd3cc7 GIT binary patch literal 648 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 Z`T#;!WU207*eL)2002ovPDHLkV1k4G)SmzV literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/vc.imageset/vc@3x.png b/Passepartout/App/macOS/Flags.xcassets/vc.imageset/vc@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..0317c7e9c65b8082186fb6fe08fadf1da7035c96 GIT binary patch literal 745 zcmVj6a~?qMJjkG z>OmB$(nDK(VJU*3*n^5EJ&54Ji$@U@4BE8XYOxrpmC{=K3eCfk#>2EEF-=&TnUceP z5ZIahlYhS5o%wgO27l|#X*AN{2}kZ8@A;-Rz8Knq)DFyI*BWmQjntHD4R+Y($}zBY zbwm3<#$qrqr9IxLZYXPuE>ddfBBh2dQflZTE0IjWM-4@+ZwgW}6C+vV;SijA1Bqn* zn3)8$yoTrBWoDKr@?#$Ee1egAcrcVd?pg>Y9ZpV_)-IpB`O+x4U?7l}s5RS+gfdr9>7T9GnGn(M&3DcvqJ!$rT?einw{1lTNazCQbVC$@uE^J86Mq==Y}(6Kvx zWLtKCdjtH6!Hp1H?G?qcsRja-BF0e$XMHlV3#8SNJx)060gnw%c|~962blc>gER0n zEJWLP3Gvnjuv=th2eZ7Ng3EsRItS}b@N!gqmbujrhuq>)x*mX|)iN_nzD23D!rslI zVqfXa-Z!0q+XG_zShbu9o{5sX-}_%+e1*#Xcv#dO6(|vDs)lu@-2Q+wcL|n-5|Ju9 zoUF_4vlyYhQAIX^vIna(KCuKZ(_9DJHmb^|P{eA2OG`yDU-g%X)aCbI4!B{z3yxHY z%B~WnA|PspL(v4!M7fA_4J1JS7p3&jMM@1_q|`9`J>eOx!CNYRM@X?IFGF2cYJC;j bUxxk#+Zdadhg8$d00000NkvXXu0mjfF5XyW literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ve.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/ve.imageset/Contents.json new file mode 100644 index 00000000..1ccf5bc3 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/ve.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "ve@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "ve@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/ve.imageset/ve@2x.png b/Passepartout/App/macOS/Flags.xcassets/ve.imageset/ve@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..18053a4a22cdd8d887f25b4d5854eb98554c9aa1 GIT binary patch literal 466 zcmV;@0WJQCP)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0f$LMK~zYI?UcVu0$~`(zjxkU{)|9qkSOyHXigY2yD2|`hMT%`8>}HFO}Re z^HcUG4SGoO(%hhXDex0TM2aFJMG=ugto7PQ3!+TvIu1&lVzsHKgX#lBg z5#z211flgSBM2?nT@j>iiYO$4@Vl+VB19XZX&SM!N93QYsPWyWtnmUo!9zS0Dxhf^ zq9}InK_YUr>qTgN2JwqLNgMzWKQAD(HjU%xGEtsrBkAl5N)?`1;*0xy8I@{-C`);V z+?iLEc1(7cKg86oXP7|aHU|nl6#=N+zxm=75h;p@6h%bJC(K53ow6He=Kufz07*qo IM6N<$f(U!Wh5!Hn literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/ve.imageset/ve@3x.png b/Passepartout/App/macOS/Flags.xcassets/ve.imageset/ve@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..aae4602fe38fb85ed51abe1628cd772e33d84acf GIT binary patch literal 623 zcmV-#0+9WQP)o06?q0kj z+&4Xr_ul{a@&0$blV&qrIxT?IDABMxga~B21Bk*EaT>0O({M$chAZMUT1G^fu5{a- zK?o9uuQ%ncCCf7Pdi|fzM4>cgS77);AD`E2yexeLBx1)8vA<&%cPCyorJk@8iG~ld z@L`>fc0Y9*%;hfA)~4VOjREj&{svp$4Z_+zWF)?9ekB;_PuHJge^6Ca&pNHzqH3s^_qRLxuEmiek7!4+}Z#fz1 zrYEq6cZ+MJAD4cc_pI>#*EksHWPWjthuJc+EaUM==(=Gkho#mUPQ-|x>80;{8i4lQ zUN&o6J6gMaZYg_-Om2=l4~k}^SZl3Na4#o%4=^+s1=z8~_PIlYQH~w$BGj|bN)&4+ zqN*OWQ$Z&46-yz`ojyYD`GTePGJPV+cm!QHEK2}P<}2vBK{6gOy@x50)R;zkTw^2= zGhO&kMiMbn;~J@(nyK}szFLLZ75x4-rix3ZivEqM;u4uBWeRUrOs#L)73F`U+^@Z` zJA)9E$d9Vs8HCU>|0Ax5({M$chAZMUToI?yG9n5vZFdL}`~;qrpZ#no;NbuO002ov JPDHLkV1g%)8Xo`v literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/vg.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/vg.imageset/Contents.json new file mode 100644 index 00000000..257af5ff --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/vg.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "vg@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "vg@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/vg.imageset/vg@2x.png b/Passepartout/App/macOS/Flags.xcassets/vg.imageset/vg@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0fc071170ef03b2a43c2fa2cd2a5194cec996a82 GIT binary patch literal 1435 zcmV;M1!Ve(P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1yD&uK~zYIwU%pej8_=PfA9P5zMI{5ZL-;HvJpgzX)a2MsG=?{b(_Hq z5k(b)s!D~r)u>UUozZDci{6-as)`ZU%uqvB1fzqg`!%;(#pGg>-6Xr&?C!g7KPX8? zeTn#gd(NEaoZoq#|D1D#KiR>yJ@i9|XW=Q@FY~j(f|N(e9_8 zam+Z)Bbm(xKAPB>@xei;*zY&Nj^-IuxWw#HP8lZ4fua4>N=pM86#g%A%Vx!ox_d1opu`)lKA-_D9--)06R z$t>8EgJh6N*Huz`^eC1wW3k#TtWUj1hQ*70(IWP`9gLf@l^r|IQCsVO1`Oevuy567 zU$4XnC^B%G{Ty7~y zu5hyNkdX28QRx|u1Hiq3;}}z5YcYt%YgQJf9zCAA)D@=$ z1w}0c0df3BXJzWzGBP$+^MgMXdGd4sd_^T3*Ag)g90-7U_z3c%UZu^{X@tFAYD%2^ zQf{Z`*Dg}mmht`;XNw^KL_rXkJ^M8-{<)C%qDpZsUcjLWGyQ*yV%`^LA5YXYm@{V^ zseQg;cg!H-mn>$Ibc6h%4_G*%OEbT;M7m!$Wm$XQE}(kJUXI!Ourj|b<>e1eXR|3! zB;2`E#r*j@S+~x{^5vtMJhwg5HmoOUtiqHXZgRd$q_EnFLLHSM35_s%HHZNCRe^9Q zj3W7|7ff`l?#8Pg zp-~Z(!O)~NPlITwG)<#ZbcnDfkY*21Qs-dFtz zk##bvrc&m0GdRvmutB4^s`=Kf4ieVFoGUltZjgAxk;1<6Qq~yF=-eK1?_MX(WJVG- zT&f_n9u%{@9BC8KQqH8ostD9BR;LUb*e30%zlSKrn@fqvesXK2adzhK# zA>I^fme=YPiHWdrsMO3|mq>|MCf(O~{|rv)!}9G1h?E1=G#F65^78?ilo`jkL<>nu zEXkJ3e11_TIzrEd;(Y9uwv?0=F*T(chcS$-%p@Tg;>dnI_4OeHn4Jq`J}bn;@eV$n zxr=C1DJPxtI9z3A%auLIx(4b(VN$Ikmt7j^aVbno9>vJSZP<1BsB?1a zN=9j`Rm5o2W4D_bIn+$fgd>#PJc&Q3Bg)>Dpb$xNqDV>M1!663Dm)5qX*xNp6pTih z!orH&Rs(6OjvZ~RTog%^bO3$e5{jXgggE%SA`#K@I$QFR*}k*1$sa~|J|K^z*Gr_O p#bdVxsc+D6dSco>LfZT+EVP;_Nm;Hlu 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 Vsk`u>=Jx;q002ovPDHLkV1nvSt-b&N literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/vi.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/vi.imageset/Contents.json new file mode 100644 index 00000000..8c5e4610 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/vi.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "vi@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "vi@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/vi.imageset/vi@2x.png b/Passepartout/App/macOS/Flags.xcassets/vi.imageset/vi@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6f3bd1bc6f0f23a46960ddbb22650da15cceb063 GIT binary patch literal 1444 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 M07*qoM6N<$f&;M5xc~qF literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/vn.imageset/vn@3x.png b/Passepartout/App/macOS/Flags.xcassets/vn.imageset/vn@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d86b6896c7c71d40f9c2dd873f5714be9b3ef1ec GIT binary patch literal 668 zcmV;N0%QG&P)PqDborpYF|J04P+25Dk;XEZ7KpO&53d7j_Q zGxN;MiW>84AO#aHQDZ&^CLYB2-wvqK6lB~q1sON}6A=4SN4pK}Al5>NTW#t#qaVbn z1lTv)h>X-~M?c8zE`)uxt<{cJ5aW1+c`^jRxii5a&fT8#P9*?apDn#0m0Do)PjTf#Yv)aIYk}glg-wo>b3WOi6#BHPsE!h$@syX}zd1NEmk*58@;n$hN zsUSen90}gJcxOvQ8zVR)p}Cr&eyf1oOnVGArtCnmE{Kt9Z&%w<$U(L{2OE#(Zlk(-)Du;->LZTNjE%-^|^z zz1tThwpBLfEC(QV^2^g4{=;5=2|rnQ3nha0hXAmybP%)Z&M1mO+C*PXymLibFK7NJ zmvw=Ee-{5y9wM->sS7VAlw2X$mrKnu3g*4h)C|tRIA*p}zsQC#o^8*SUlM0000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x15-&vK~zYI#nfL&R9PIr@$b2FaheSKbB7VfXr^eI8J)~O+vJ#Rf9WNp zB8H&dgrIi&hbhIrskV`P|<*=Obz{h@ zM;q&>)(nY&G{Fwv&;kPkP+SZ)8#FXP)nj6$VwM)@X!{JWCm1sFPv5Q?y{r$AcuPTd`ro z=*cxTuw)5TRYCo;u_FNP-zR+t($WH1S#bS2Y}o=USE`4!vU2p~;T1{yLE>%aIC|b7 zPlh1DAne!y+qbLNwxa{Oy5Qcu@SGVlpr{D8ZiOR9;L;;Q^MV4K-Vq}yV|9G({W>M= z)&v6Z-~oL3qV|zHcfu3gZt!^2_tyOs6XR; zZxuphMiUSU&0X*Gq~OL3$&hJq3L$ipfe;Aaf8HngpWC>}X#fBK07*qoM6N<$g3TAP Ai2wiq literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/vu.imageset/vu@3x.png b/Passepartout/App/macOS/Flags.xcassets/vu.imageset/vu@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..de55b8b39664c251f826921987c4abe5611c66f6 GIT binary patch literal 1268 zcmVICSOx?qjsL3A8z|Bb*4l1Z<__II=v1){6Oewv4I7|4~ zLP6-2PjZrbdwNg4zw^7l-|w7rrLUm22oiK4v51k@u0>te$+H?zL&2i8pt&OV_2KCA z5Lx;=E6genQXmRYv=%m7BvnNPXla3c``}d*y-s*#f=sQ&%?7!-8Aom|SS+x2FUXNB zFK!@aXoSXWFiNmgYmtGVyLAiF(%|Gt@Ot6kL1<}(zHQ`u3A*R-r`93^K?3n=0VF3w zO$}__D(vj<+jgk8Jf@nbL-khTTP_u&t~ ztC7}enc$J}L_~nY0S69%P6xMdLuo0*{6+717!8H^;7XkyoxhGZZ{W}&*t{8BF4(>u zo;-msDp|cnChiAl2Hpoz>$Ldw$aoY5_V0&Nr(oGKc<=yF)x)l&=!3xms-!EA=cMvx@fv`J*H ziV7GR@iB-5yLZF6b0UW7>O`tu(@XzZ@ERaC=!RUo1~+bqs;(%a4G)V7Z?lPb@W=St zGdL)&o!>#Fm!3@!xuBLH3{e3!HWsy^L0rehp}Ov*9Sv^x!V3BjCb+1+9<``w;%@~7sO#6Gx?HG=64o(NmSf(ENlxgWvLSU^gEu78%5l7b@?B_S3&&guHs4kI`ye3 z)1+NN3>1Sw6v$)8AS6U2h9gJ7V2|laE=~^D$vV?KYn_&PTQvUGvSiqL+}deeW7K5P z=yzk~i`ZCE`ETA7*JsW^dIofv5?r}8xn8Y|fDhbQ_52;?wjQ^>)vwTNzOkCoBYAo7 z=n-7F0J1F7@MoV(>iZ4rn(b%p%RdGqU=D{5L*Ws<=@sdt@)G%@I((R7$mE(ZFd(wi z_cxT0ltU@4rYuvIgfy$z3I+ik(8(#$ZI&{NS(2rX_JB@-i8Vp5ht5tYDS=;_^n|gW!U_%O?Xx5M eG`?WL!Z1mKXa7E*nWjL?7(8A5T-G@yGywpH!bC~{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/wf.imageset/wf@3x.png b/Passepartout/App/macOS/Flags.xcassets/wf.imageset/wf@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b94a2263d0ae4c51f921f00255def0ba318d445 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv6`n4R zArY-_Z|ZU}C5p5@v_9-|n8Rp+K~I9v#-6LZ60!a34y2WMvk9^pM)N5B2yM3Sws^|> z{N?upv-7X5<6keJBVKwdKg>M!@!q?p^B?aFG3&bgRFBu^Rh^_@a_Zyn700&k))JoR zeO-ZXVIfDabB2u5V*#o53l=TM6iu)SY2Lc2p~-xB)pRANsX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0f|XOK~zYI?Uhd`gJB%UKbzO4g~&o#OxZ=I{22!q^5$hBn9a zt%5C(yhydRn3efHJnm-9rca?*Tp=8J z`;yrAdKe#ciWLckWx8E{?A#g%W(fr}?*miO=l9`Y`dF&ZVA!ach|n#@2*1x9*0 z>N)h^u(orOcL~T6*1N|D_m8icO-2I?6J3;8%t9m}OIX!Zlv#Lwk?EgY7bXEeeBUNV zCEi6hoy|5%i^aXh&ms+#3=cFiH|8QLCxnV+Z_p7;C{o5LR0&*d_81v91wz$RYv{ z)j=;2Bt?fxB9J_I2`qx3L$OIk;9(Du$ikMTMNqV$pi5S`VV01QWvMgH&U6d5-L?0o zee@3VotDRYGvBvwm^aeaO((yCGk52bqrC5-WZY^M%YxSCI`k*U8E<1n85c04&`#XA zz8Wo!VRU!I5Lz3+!0;p{vtM|+F+pf2PJNh1LwyL9J~x^gHXu7Q&(n(;>K)0MCZ=b< zqqpxlBni-0ay-45DH)>31V+xx8@q7z5j5R^*W)Ufe{^3x?mQSPzab?hAFYnVJFuq8 zmp7*A1^{45TlqZ}sSTp9=OB8|HKXU$Zd7=vH@U17gj9GGT4|(&xsHMIAR2X|9qq6b%`9^&SB5_+_@_!UIiPaJ+Rp zIxnX%`g)d&91GOv$e(yzG9tA>OwDlr!lAiyu5sDLmhJQL=4jpPot*VkGZF3ai)DIPcLSuL%OaFVQ}Ov z0H8lPj!W@p+@$P49YTnNg+&d~wm2-y;^|}y33XjmRx%+lEfbcN|C@&N$9wlR07*qoM6N<$g08(T!~g&Q literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/xk.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/xk.imageset/Contents.json new file mode 100644 index 00000000..9cc7c031 --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/xk.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "xk@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "xk@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/xk.imageset/xk@2x.png b/Passepartout/App/macOS/Flags.xcassets/xk.imageset/xk@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a66e0ac1e57d3e6a39819d93261080c3a2e94a37 GIT binary patch literal 749 zcmVX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0-{MoK~zYI-Ih&A6k!<0f3rKYtFBwC?Pe>4AFbsf!6j26iXaT7Yta`S z6fC5mF6B{=bt4W^3;5?8ofRbO;wBb!S(_@PB%l z=l}kn-^}|kyn^f0<8CzVG+V1~!xjT1wLL(L24ThZrh`bL0lO^=fbtR>*Dh4xbmZW4 zs`o^IC3P;xrQ?K z7u&E}B-&c4Xl-(1k_;G)0=YR-N)Ry>#LdP^LScoDt`WRbi_FZ02!s>{hJDmE_mD`a z0GzzsgV|&x5K{1b`av+PAP552FIJGZ!_1wBLj+|dGmubN!M_wG5{(myC3w<1k*qB& zMgZ7j4e~u`ArcdkjUGMoCVc@}K~=RiAyR?>baaiZT5C8kPUE2uw7)urcixVw{X4Lo zPd}$>0qB?!Rnt&4ZN=J@--f}U(q7j`=b7j1%lD_XKP`~eRO$3_>v;d45JAIgigDxU zdjuhM(+vSJi*ekAK2EqMv6^Ck)tuHKx9i_fWc!siNXi*mmfa$A$^DUC7MXI#!m7T~ zd_U#8=aChO`B2WrgZRVQ1fnL66i=_|69kRs>LEhPD4v-@?)O*g%GZ4~2~}Wd)=4a( zZ;M4z81Xsu#-}$Uo^MWGkC*E5PX5f}?L^7ufB^K4mC`@8cTG=16?iakIIUdWGqSAd z#hu)JSIg*}gDW+I$>;uXHep3Xj)~msuO%8cZZ62O`o0#^Tr)@@V&;XnjNY+Q3UXzv z<|w{EZrXVngTxX>JTrw1&ld3Viwl52)SPMD`YuLtOkydTwVsHiGX5d}9RvFQ5qh*e f?yMWB{|4kYYm4VX5Hj>G00000NkvXXu0mjf*CS!6 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/xk.imageset/xk@3x.png b/Passepartout/App/macOS/Flags.xcassets/xk.imageset/xk@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2499b6b766eecf5ecf589433b1d2b52b299ff7ff GIT binary patch literal 1181 zcmV;O1Y-M%P)Ku@gEA3O5b^e+AdG<SRK>3YSpgmsI9%Gm$Xez(&QxP z;=`a2+OlHf!T zW{vIHu{No(xop$HQc$`76|+tb?X9A{%MUMUC`NU0j+I;=z$6-_tD%eC?R6SX|jSk7i|5$~OBr*}xkKNY3GV<#XhjQFPk z2*?Tr9y|W2C}R^5?kI8d+@V?;>Pjdt&EwsV+X;qah=PFAArYF6r<7O9rS(AlYPPN~ z1|S%Y(b_hQC_ucyhm&mgX(&-m#XksVE)YlN5ODym|b0G+n3P7XqNWKS(ef zqq{#iV?WoJMHG1bqc+@5E5l>cJla&wJ1^eDgY{*on!(kMaf~E|2o<|dB|8_VL*m41 zjcA(A<1bxAHx@Qs;fOLBu_u>|04LwLAFEa5aLacol~+naJT4m%Ma3#v&<%q~RK4X~ zZ}B*LyXOW**ANtl*jVh`IK`=Oau8H2s{IqR%(p zeD4Vr5@- z*Q`0gXbz#6jgmZ>tAndJeq|G(m<>g>n2w*7Bg&W8D-+5ru37lzMmaBk)x@z24JfL_ z=|5`l$u2^QE$KfvA6Ys5PDJcX$85N4G0t6I#}}Pd_+;12_m=ZJ>6=QwIm|^?{)n!N zeBHGUfKS@jCx`&}XCfa}&ur+dJ|gW!U_%O?Xxnmk<` zLp(a)UfjsrV8G)N=sc-QbOz%_N1ecp2DV8IhqxSA^De74HL+DPF8?rnUHzrd!Vm6I z&%{_Z%bkxB`rxl<)A~W=(CSOu{3d+TSXGd>Y1!+=8jrNaihG?ZxE_i!Z&Ykid#=-E zaLlBkgPp-Q&Ef4gpbHp0UHx3vIVCg!03MP?Z~y=R literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/yt.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/yt.imageset/Contents.json new file mode 100644 index 00000000..ce85b9dd --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/yt.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "yt@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "yt@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/yt.imageset/yt@2x.png b/Passepartout/App/macOS/Flags.xcassets/yt.imageset/yt@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..62d74b4234bbd0e63fcc2d2c282acfe986a5e93d GIT binary patch literal 172 zcmeAS@N?(olHy`uVBq!ia0vp^N|gW!U_%O?Xx5M eG`?WL!Z1mKXa7E*nWjL?7(8A5T-G@yGywpH!bC~{ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/yt.imageset/yt@3x.png b/Passepartout/App/macOS/Flags.xcassets/yt.imageset/yt@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..5b94a2263d0ae4c51f921f00255def0ba318d445 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5_!3HGTDo)q{DYhhUcNd2LAh=-f^2tDv6`n4R zArY-_Z|ZU}C5p5@v_9-|n8Rp+K~I9v#-6LZ60!a34y2WMvk9^pM)N5B2yM3Sws^|> z{N?upv-7X5<6keJBVKwdKg>M!@!q?p^B?aFG3&bgRFBu^Rh^_@a_Zyn700&k))JoR zeO-ZXVIfDabB2u5V*#o53l=TM6iu)SY2Lc2p~-xB)pRANsX1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x1Pw_|8GB6O8F>l9SkZmfdz46=mrH!w+q&-GMRiN zBx1IBp%R0;@J5#yL~l-g8{U(q+xp6gMIrVi8P5R0ss!bOY!uj+P&|XJ~K1Ybb_l_dC=?c zK`c&;$mtxrLqHfiTR{6*mny&O6~8Ow8AfB{HaHwk?BDN=yU1G#SC+TrhD?{@GXS7t z1x+r@ZhPvx1G`TSpEoiRi5UI;5_ERngishik=H-MeNL4A^XGi4rsrAf5T7v9u>u(| zcY$Q^X`Cm3@t51a5|@T_`DG*DRP)hGF-Xx8w7&rlZX%ikK4DV9AiDFAQtlR%%yqh&}(;dv!WoG zY=?JA3#N>9-v%XoaS@i5rl8dVCR5%fJoKwX06-)};QLQt(N&_#8|C`769pp{f0CN* z1|Ek?b!a{`x8&=}001`IFeoZ!t+C>E53Uhe=0G_{e>w$;kdNH6bF!f~rYA#%36 z$`r+Se${;)O%^1vW{`~tP4%*h0IRa2o~O7An%jlrV?j~nMnCi)h&@@C34|be={Pip z+AyBXM7^WW-K_jlIb-Gk^YJ!WS7e!A%y>Sp4kDU?t4;1ynF?>Y0R;bdkwX<2o$5xA zLm+Q=Da;kOcgO&2iKhr}y_YL%#1rK%s&5q-*Xy8!h^*)u%{jMh=ncD4Ni&31;ze1} zo&Lk8!^!-l?2Sr9XezWuH(^#|9F6&@}Jz_HoFe^6BHoyCUR9rmme zsVT#F&*w-I@}XHVSy?4^q~+R8M>;&|0*NLNpsiZ%M8s%ZD%*&}BW8I3utk9251-<9 zT_vh~6!+nyEL7p|6|e>Z!hF2v?Q8GvK2{1KtFO;%sIR|U9tzQ$UdOznwYY!g1RO#E zG(8KcgALa0^2j>1ke`|}V>;3?CljWrgF$BU;K7NI!LX>=tiUpa8H7GSb99Z9c>{e5 zscNva^l}#7D>+(92oV_!i`TSTYuS@zVFh~LH!iv3_-xKxm?o@$wLK;Ko~iDfQz6Pw zhr^7$p~33u?e$g1LEtf*R=YAYOp_e8fVSdh^F;HHVudK9#A5LqrP7g%-d^9XcuD~4 z%#kdy+-ZKf!={vMRYfAqOjFa8t-ITkkYNU})I(cwvw8N_KAuvtb&tj3H)dqqkal-_ eN)jaj0Dl4OJf~SUkqJ%!0000I#=Hk#O z#_W>0Te4)E^UI7bPGdBS+cHd?vW=n9c$vn{f$;`bD>yHkGAujpP@27^<&DIZaR7jxo)A=3$*^hDL-h36+{H{3 z1f?l-tOwT2&aW$bd20-hFi`-2t}YXbizTS4dM*Ol!gzY1yz!Tmh_Xe2YTch#000pY z5>!@Fl$9AFmHJ&ETRa*8fL=>qi1Ot6>`m1>Z#t+$4}f6ZIw@LO49LxO_*o+>7yx4~ zt)YB#?`U#N`7(#b*nS-V5FQ?a^XCaFD!LF9BtoYuIQVdyG%D3O zL~-m`2TDp}U^4kZu6qcrg&oel@}oZdT8Sn;&JILzN%Hah_39nUcjgk1!S!V{cA~H_ z02eNV_+Ikpki}`ZdwMSZc0>c!}Av?;;>#=d; zJebWs7d{dKfCh^2^w=(_mt`Uw&gy*EBddA+;q+M!ib(d!2>m>DQ}rhc)+ZA}Bme+| zp%wZ0BB)fX^Na_AA*a^Tblg3)2U4K`aRAV1<9BD?mp3(AL}^@-&JLNXy;^WkFAEHv z?;Nt>=+WC)yH){5CZ`1RzYX_eR-?aDophhJCqbzV$;Rt z`)xsjK>0ZJx`mYy00;?!@wcyVYheZ zjktJi3F>~>hG-sxDFD!97PV#Emv?vB`3rn4jtiWP06?e|edqS!_QE7&V=w{T(l(`f zM`v_0I8?`%jLV3N;(XM8zZEe&2GIb}@H9Z1-XPcOZM^xOVttKQFDC*J(81FT00;vx zgpT`%@luQLmev=Y(aBskzAy25vp1VX?HToQozBKrc#8EW-W6yiLm2zlnIBzzYwjyq07PD^9tF2X@-uPg^a^mbl%W_{wl`T@~PT$0WT zj@7DG9O{;dLR}}B?d;jdH7i$Y(#&Ru|CZKhRVdR>y0K9cH_Z<3THS#G+PrjWqxsS$ zqt7?^u(^Hp=R>R{vR%ERtSwqBb2VNLwc1pZlhcsW-|rCnT=@t_{vC9^L=!j74ie2J z$-7CbRbOU&m`FfE0l;FR+M=Rn{h2d{=XU4f17Hj`o-wa!&Mmb`oCW-Mck)EESf*30 zIHZ{_iAr}4QMKAsotxX3Y%~%ilo!^tuQ_XX znXuVtTTxN-Ev2$Pdm>E$gL}jyVZva;ugmt`SvYx~>m;LUwW)gX;zmVZpFP%(`dH(! zu_~UOU)#05>Z!|w!-38X8#J{_Wqo#EpM7FKiVT4dP`4igzs>se!JBi7W&n5$;E#?D nYo|hSU#ipD!~pqUeMI~Rt@L090(k~=00000NkvXXu0mjf$?z0m literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/zm.imageset/Contents.json b/Passepartout/App/macOS/Flags.xcassets/zm.imageset/Contents.json new file mode 100644 index 00000000..5def39bf --- /dev/null +++ b/Passepartout/App/macOS/Flags.xcassets/zm.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "zm@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "zm@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Flags.xcassets/zm.imageset/zm@2x.png b/Passepartout/App/macOS/Flags.xcassets/zm.imageset/zm@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8f314bb098d7a7310f7d049c805101b26eeb6198 GIT binary patch literal 402 zcmV;D0d4+?P)X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x0Y^zhK~zYI?bbg_TTvLm;pgP9UIRkV#cG985GMyGajb(7ousqQeuP5D zE)IT!?nReQf>Y;q(M7vC2t^`DqNqtoygCG{y=|A0D3tr#&f$goz~Nj@7~8OQ%UjP_ zU_0}ifXDS5Qo5${gV}RlTzB_E%tDRP*27$c*D;G7hGV&0uOWHNT(Q=s+2X87waD@S zn^#QTGTEZkV7kO{;AD ze4b#p!&IH=CY4LhI}8qTIK=yiqilCRpf8a78aehy*hi=`68Kc+H2QtEuaL(dsg*g% zaQ2t$@g$J;4LkRMn2^yukA6bleTh`Q7k;i!hGO#v7r)GWSY`d?!}?p+-2eMS``1!P wvJ{dmg(OQM$x=wN6q4*o-XqDkNBG0Y9ZoJt9ui`SMF0Q*07*qoM6N<$g0JDc$N&HU literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/zm.imageset/zm@3x.png b/Passepartout/App/macOS/Flags.xcassets/zm.imageset/zm@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1deb600d648618c9685d68270d1a6326b3fc73cf GIT binary patch literal 600 zcmV-e0;m0nP)A{VbFJt?qAmhLkdQ@i!YOE!Bz8=CNOxZsy--Q3pu)Y#{g+keoT{HX6h$S*uDR$F}JkIf@%}kZ|L;d-a zYh0>xBjC~gZ+Sxvj;u4BWonsjl3UdfMH&T0Rwx8aqrS<-Hp^+2%ADv>$dV7Zu*%^U zU^F8@ChgR9ssK6Xu)9XH!`py|dw(4tS&=um)8S=_kCorYM^>a&V&*4pG>FhdjxVL9 zdfUf01?C#vfjN_-{VRD8p^03*U9zK@*fzenqig!f`oNs&^IShRxL*8dj2f{>)QCl* zMl2FFVv(p3n#lIY$=?y5NYsc$qDCwdHDZyd5sO5P|3)N@dtog6tlB+V*h*~sj(VN# mwlm|h1Cxpx^C^WvQ(pld-HEytoZ0380000X1^@s6RQmj^00006VoOIv0RI60 z0RN!9r;`8x16xT%K~zYI#g$!1n^zcspYO}3OB16tRi{;i4s3-o2VuJPLJZy5RXe>I ztwk?_rKTzDqEJZ_I$`}`zg;?oQFgToC79Z{ZZbNG#EcE04U1#aveKbzt($30<7`aK z&)J1bFl)M-B>KR)IDg;wob#S@Udh^TU2%TxRL|_10Uevgu-sy3QKlxQ=q&1ldz&VL zjEpEPE#>miWiFX6p`Fx1Y~w`~6+%u`y1Tn+ZfWN5k%R1PouaC4V3N^X51t3q%h@{AYBispcd%oRn*%5HJbqGG5rC{B04q0d z@^*U%=P&v(eb|cES6C56j*)fa7fzj`+TozCv5~8zs1qxEYcm=d_WQZGZy(q5C;}jTJK_?1x7RV((?fiI9)QR@OVqrTAn-9Lzm@+xQbKRB zP}$!PDiwnR0}S`|(HV_WoTEg^%S3QraS0)Whz9~i`)1$={=+Y%`nL zam+LAJm43(GaoJ6?E+Ip$<4$;Kb0h%%0k5A%tl3`ISpWb407*qo IM6N<$g54p;UjP6A literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Flags.xcassets/zw.imageset/zw@3x.png b/Passepartout/App/macOS/Flags.xcassets/zw.imageset/zw@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..97d93cee372bde942d0d07f9b2458e40ea63f469 GIT binary patch literal 1319 zcmV+?1=#wDP)~p8^3jj8 z3o`_5p(V7{Cu!20^S&p~FaQ7PdHYIR6kF`)Th90M5go+h;`KyG9*;*$-y1pLi(2=iwLz_07z2=0T>w>Vc))eT)kAm z$zKF1uV{6I@X=Z?Qe9n*wkV&Ui~3Q177De%@H+@VPfrhOwVGuM8~JrV%$*Z#J^v8` zWYb>;?tuZ4lar~huP5b$Qa)5i&~hi(dV%3rMS8byC+X->ke(eb4Gj(CX>uw0s+Xd# z$A`m)U#;b`Sh$;*$nwTU=A@^Ok6W!)^78U<)YftUh!3{yR7lgb*64@>%jw?{E*Cbv ze$t#=E~loZhOOo0>e1{4H;$4)HV+oIO1Z8w_5rO-)V3U^Eh?)shc94wmo~NJ0oP zcK<$ohYlf}&PkI`V;YIdy3LbXkdDE^_tS}8wd$os-pJ2qPFflOdcB_F9Xlu<7~tbj zBmj^mwAQf6!~?aOvAcK2=dGJz^^Xug4|=b|zhw~H{rvvOB}+&=a)kL?w@zBOtE&r@ zO2xygS6M-bT1`yA?Qn=kyLXFQAZ~$Z*C0C2BD!i3j?0LliwINZv$?M9Y~k$f6~1sf zouag~RLEp90R;6Ufxw%D?aUc*TP_zja}oE?BHY&yM@tcZmOl%1v22s@xZOTOOyt6a z3nC#QA?QK8R(*j&fh+B8JfA{zB%Hep8{UJYrOr;7mL44^VT^!@KVUOD%Bx z4q`T&QK?j%et z2FsH|r4=|nH+x%K8%kvko`pAG-&dwOosNRN1vt_i@CsL90+WN-Y&Lf8+{x*t)36DM z38PwIJP%?p7*MK}bS~|L)Np$RjF5Re9x5s-$oM>i&Q-5v2mqwaFEWSf+Uok*KnKyd d!!0yJ#D7^?vO+1Q_lW=i002ovPDHLkV1lZdZDIfb literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Global/AppConstants+App.swift b/Passepartout/App/macOS/Global/AppConstants+App.swift new file mode 100644 index 00000000..c328ea99 --- /dev/null +++ b/Passepartout/App/macOS/Global/AppConstants+App.swift @@ -0,0 +1,46 @@ +// +// AppConstants+App.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 11/4/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import PassepartoutCore + +extension AppConstants { + struct Rating { + static let eventCount = 10 + } + + struct InApp { + static var isBetaFullVersion: Bool { + guard !ProcessInfo.processInfo.arguments.contains("FULL_VERSION") else { + return true + } + return false + } + + static let lastFullVersionBuild = 0 + + static let limitedNumberOfHosts = 2 + } +} diff --git a/Passepartout/App/macOS/Global/Credits.html b/Passepartout/App/macOS/Global/Credits.html new file mode 100644 index 00000000..233c1b05 --- /dev/null +++ b/Passepartout/App/macOS/Global/Credits.html @@ -0,0 +1,24 @@ + + + + + + README · + CHANGELOG · + FAQ +
+ Disclaimer · + Privacy policy + + diff --git a/Passepartout/App/macOS/Global/Donation.swift b/Passepartout/App/macOS/Global/Donation.swift new file mode 100644 index 00000000..aaa664f5 --- /dev/null +++ b/Passepartout/App/macOS/Global/Donation.swift @@ -0,0 +1,49 @@ +// +// InApp.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 8/16/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation + +enum Donation: String { + case tiny = "com.algoritmico.macos.Passepartout.donations.Tiny" + + case small = "com.algoritmico.macos.Passepartout.donations.Small" + + case medium = "com.algoritmico.macos.Passepartout.donations.Medium" + + case big = "com.algoritmico.macos.Passepartout.donations.Big" + + case huge = "com.algoritmico.macos.Passepartout.donations.Huge" + + case maxi = "com.algoritmico.macos.Passepartout.donations.Maxi" + + static let all: [Donation] = [ + .tiny, + .small, + .medium, + .big, + .huge, + .maxi + ] +} diff --git a/Passepartout/App/macOS/Global/HostImporter.swift b/Passepartout/App/macOS/Global/HostImporter.swift new file mode 100644 index 00000000..433dcca6 --- /dev/null +++ b/Passepartout/App/macOS/Global/HostImporter.swift @@ -0,0 +1,239 @@ +// +// HostImporter.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 8/18/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import PassepartoutCore +import TunnelKit +import SwiftyBeaver + +private let log = SwiftyBeaver.self + +class HostImporter { + private let service = TransientStore.shared.service + + private let windowController: NSWindowController? + + private let viewController: NSViewController? + + private weak var accountDelegate: AccountViewControllerDelegate? + + private let configurationURL: URL + + private var createdTitle: String? + + private var replacedProfile: ConnectionProfile? + + init(withConfigurationURL configurationURL: URL) { + self.configurationURL = configurationURL + log.debug("Parsing configuration URL: \(configurationURL)") + + windowController = WindowManager.shared.showOrganizer() + viewController = windowController?.contentViewController + accountDelegate = viewController as? AccountViewControllerDelegate + } + + func importHost(withPassphrase passphrase: String?) { + let result: OpenVPN.ConfigurationParser.Result + do { + result = try OpenVPN.ConfigurationParser.parsed(fromURL: configurationURL, passphrase: passphrase) + } catch let e as ConfigurationError { + switch e { + case .encryptionPassphrase, .unableToDecrypt(_): + enterPassphraseForHost(at: configurationURL) + + default: + let message = HostImporter.localizedMessage(forError: e) + let alert = Macros.warning(configurationURL.normalizedFilename, message) + _ = alert.presentModally(withOK: L10n.Core.Global.ok, cancel: nil) + } + return + } catch let e { + let message = HostImporter.localizedMessage(forError: e) + let alert = Macros.warning(configurationURL.normalizedFilename, message) + _ = alert.presentModally(withOK: L10n.Core.Global.ok, cancel: nil) + return + } + + if let warning = result.warning { + let message = HostImporter.localizedDetailsMessage(forWarning: warning) + let alert = Macros.warning(configurationURL.normalizedFilename, L10n.Core.ParsedFile.Alerts.PotentiallyUnsupported.message(message)) + + if alert.presentModally(withOK: L10n.Core.Global.ok, cancel: L10n.Core.Global.cancel) { + enterProfileName(forHostWithResult: result) + } + + return + } + + enterProfileName(forHostWithResult: result) + } + + private func enterPassphraseForHost(at url: URL) { + let vc = StoryboardScene.Main.textInputViewController.instantiate() + vc.caption = L10n.Core.ParsedFile.Alerts.EncryptionPassphrase.message + vc.isSecure = true + vc.object = url + vc.delegate = self + present(vc) + } + + private func enterProfileName(forHostWithResult result: OpenVPN.ConfigurationParser.Result) { + guard let title = result.url?.normalizedFilename, let hostname = result.configuration.hostname else { + return + } + + let vc = StoryboardScene.Main.textInputViewController.instantiate() + vc.caption = L10n.Core.Service.Alerts.Rename.title.asCaption + let profile = HostConnectionProfile(hostname: hostname) + let builder = OpenVPNTunnelProvider.ConfigurationBuilder(sessionConfiguration: result.configuration) + profile.parameters = builder.build() + vc.text = title + vc.placeholder = L10n.Core.Global.Host.TitleInput.placeholder + vc.object = profile + vc.delegate = self + present(vc) + } + + private func enterCredentials(forProfile profile: ConnectionProfile) { + let vc = StoryboardScene.Service.accountViewController.instantiate() + vc.profile = profile + vc.delegate = self + present(vc) + } + + // MARK: Helpers + + private func present(_ presentedViewController: NSViewController) { + viewController?.presentAsSheet(presentedViewController) + } + + private func dismiss(_ presentedViewController: NSViewController) { + viewController?.dismiss(presentedViewController) + } + + // XXX: copy/paste from iOS + private static func localizedMessage(forError error: Error) -> String { + if let appError = error as? ConfigurationError { + switch appError { + case .malformed(let option): + log.error("Could not parse configuration URL: malformed option, \(option)") + return L10n.Core.ParsedFile.Alerts.Malformed.message(option) + + case .missingConfiguration(let option): + log.error("Could not parse configuration URL: missing configuration, \(option)") + return L10n.Core.ParsedFile.Alerts.Missing.message(option) + + case .unsupportedConfiguration(let option): + log.error("Could not parse configuration URL: unsupported configuration, \(option)") + return L10n.Core.ParsedFile.Alerts.Unsupported.message(option) + + default: + break + } + } + log.error("Could not parse configuration URL: \(error)") + return L10n.Core.ParsedFile.Alerts.Parsing.message(error.localizedDescription) + } + + // XXX: copy/paste from iOS + private static func localizedDetailsMessage(forWarning warning: ConfigurationError) -> String { + switch warning { + case .malformed(let option): + return option + + case .missingConfiguration(let option): + return option + + case .unsupportedConfiguration(let option): + return option + + default: + return "" // XXX: should never get here + } + } +} + +extension HostImporter: TextInputViewControllerDelegate { + func textInputController(_ textInputController: TextInputViewController, shouldEnterText text: String) -> Bool { + + // rename profile + guard let _ = textInputController.object as? ConnectionProfile else { + return true + } + return true//text.rangeOfCharacter(from: CharacterSet.filename.inverted) == nil + } + + func textInputController(_ textInputController: TextInputViewController, didEnterText text: String) { + + // rename profile + if let profile = textInputController.object as? ConnectionProfile { + createdTitle = text + + // overwrite host with existing name? + replacedProfile = nil + if let existingHostId = service.existingHostId(withTitle: text) { + dismiss(textInputController) + + let alert = Macros.warning(text, L10n.Core.Wizards.Host.Alerts.Existing.message) + if alert.presentModally(withOK: L10n.Core.Global.ok, cancel: L10n.Core.Global.cancel) { + guard let existingProfile = service.profile(withContext: profile.context, id: existingHostId) else { + fatalError("ConnectionService.existingHostId() returned a non-existing host profile?") + } + replacedProfile = existingProfile + enterCredentials(forProfile: profile) + } + return + } + enterCredentials(forProfile: profile) + } + // enter passphrase + else { + importHost(withPassphrase: text) + } + + dismiss(textInputController) + } +} + +// enrich delegate +extension HostImporter : AccountViewControllerDelegate { + func accountController(_ accountController: AccountViewController, shouldUpdateCredentials credentials: Credentials, forProfile profile: ConnectionProfile) -> Bool { + return accountDelegate?.accountController(accountController, shouldUpdateCredentials: credentials, forProfile: profile) ?? true + } + + func accountController(_ accountController: AccountViewController, didUpdateCredentials credentials: Credentials, forProfile profile: ConnectionProfile) { + if let replacedProfile = replacedProfile { + service.removeProfile(ProfileKey(replacedProfile)) + } + service.addOrReplaceProfile(profile, credentials: credentials, title: createdTitle) + _ = try? service.save(configurationURL: configurationURL, for: profile) + + accountDelegate?.accountController(accountController, didUpdateCredentials: credentials, forProfile: profile) + } + + func accountControllerDidCancel(_ accountController: AccountViewController) { + accountDelegate?.accountControllerDidCancel(accountController) + } +} diff --git a/Passepartout/App/macOS/Global/IssueReporter.swift b/Passepartout/App/macOS/Global/IssueReporter.swift new file mode 100644 index 00000000..fca18879 --- /dev/null +++ b/Passepartout/App/macOS/Global/IssueReporter.swift @@ -0,0 +1,122 @@ +// +// IssueReporter.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 9/5/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit +import PassepartoutCore + +class IssueReporter: NSObject { + static let shared = IssueReporter() + + override private init() { + super.init() + } + + func present(withIssue issue: Issue) { + if issue.debugLog { + let alert = Macros.warning(L10n.Core.IssueReporter.title, L10n.Core.IssueReporter.message) + alert.present(in: nil, withOK: L10n.Core.IssueReporter.Buttons.accept, cancel: L10n.Core.Global.cancel, handler: { + VPN.shared.requestDebugLog(fallback: AppConstants.Log.debugSnapshot) { + self.composeEmail(withDebugLog: $0, issue: issue) + } + }, cancelHandler: nil) + } else { + composeEmail(withDebugLog: nil, issue: issue) + } + } + + private func composeEmail(withDebugLog debugLog: String?, issue: Issue) { + guard let sharing = NSSharingService(named: .composeEmail) else { + // TODO: show error alert + return + } + sharing.recipients = [AppConstants.IssueReporter.Email.recipient] + sharing.subject = AppConstants.IssueReporter.Email.subject + + var items: [Any] = [] + + // delete temporary files on exit + // NO, they're needed until NSSharingService is dismissed (who knows when?) +// defer { +// for item in items { +// guard let url = item as? URL else { +// continue +// } +// try? FileManager.default.removeItem(at: url) +// } +// } + + let bodyContent = AppConstants.IssueReporter.Email.template + var bodyMetadata = "--\n\n" + bodyMetadata += DebugLog(raw: "").decoratedString() + if let metadata = issue.infrastructureMetadata { + bodyMetadata += "Provider: \(metadata.description)\n" + if let lastUpdated = InfrastructureFactory.shared.modificationDate(forName: metadata.name) { + bodyMetadata += "Last updated: \(lastUpdated)\n" + } + bodyMetadata += "\n" + } + bodyMetadata += "--" + let body = AppConstants.IssueReporter.Email.body(bodyContent, bodyMetadata) + items.append(body) + + if let raw = debugLog { + let attachment = DebugLog(raw: raw).decoratedData() + if let item = attachment.temporaryURL(withFileName: AppConstants.IssueReporter.Filenames.debugLog) { + items.append(item) + } + } + if let url = issue.configurationURL { + do { + let parsedFile = try OpenVPN.ConfigurationParser.parsed(fromURL: url, returnsStripped: true) + if let attachment = parsedFile.strippedLines?.joined(separator: "\n").data(using: .utf8), + let item = attachment.temporaryURL(withFileName: AppConstants.IssueReporter.Filenames.configuration) { + + items.append(item) + } + } catch { + } + } + + guard sharing.canPerform(withItems: items) else { + // TODO: show error alert + return + } + sharing.perform(withItems: items) + } +} + +private extension Data { + func temporaryURL(withFileName fileName: String) -> URL? { + let tempURL = URL(fileURLWithPath: NSTemporaryDirectory()) + let dest = tempURL.appendingPathComponent(fileName) + do { + try write(to: dest) + } catch { + return nil + } + return dest + } +} diff --git a/Passepartout/App/macOS/Global/Macros.swift b/Passepartout/App/macOS/Global/Macros.swift new file mode 100644 index 00000000..fc1a7a7d --- /dev/null +++ b/Passepartout/App/macOS/Global/Macros.swift @@ -0,0 +1,139 @@ +// +// Macros.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 7/30/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa + +class Macros { + static func warning(_ title: String, _ message: String) -> NSAlert { + return genericAlert(.warning, title, message) + } + + private static func genericAlert(_ style: NSAlert.Style, _ title: String, _ message: String) -> NSAlert { + let alert = NSAlert() + alert.alertStyle = style + alert.messageText = title + alert.informativeText = message + return alert + } +} + +extension NSAlert { + func present(in window: NSWindow?, withOK okTitle: String, handler: (() -> Void)?) { + present(in: window, withOK: okTitle, cancel: nil, handler: handler, cancelHandler: nil) + } + + func present(in window: NSWindow?, withOK okTitle: String, cancel cancelTitle: String?, dummy dummyTitle: String? = nil, handler: (() -> Void)?, cancelHandler: (() -> Void)?) { + guard let window = window else { + if presentModally(withOK: okTitle, cancel: cancelTitle, dummy: dummyTitle) { + handler?() + } else { + cancelHandler?() + } + return + } + + addButton(withTitle: okTitle) + if let cancelTitle = cancelTitle { + addButton(withTitle: cancelTitle) + } + if let dummyTitle = dummyTitle { + addButton(withTitle: dummyTitle) + } + + beginSheetModal(for: window) { + switch $0 { + case .alertFirstButtonReturn: + handler?() + + default: + cancelHandler?() + } + } + } + + func presentModally(withOK okTitle: String, cancel cancelTitle: String?, dummy dummyTitle: String? = nil) -> Bool { + addButton(withTitle: okTitle) + if let cancelTitle = cancelTitle { + addButton(withTitle: cancelTitle) + } + if let dummyTitle = dummyTitle { + addButton(withTitle: dummyTitle) + } + return runModal() == .alertFirstButtonReturn + } +} + +extension NSView { + static func get() -> T { + let name = String(describing: T.self) + guard let nib = NSNib(nibNamed: name, bundle: nil) else { + fatalError() + } + var objects: NSArray? + guard nib.instantiate(withOwner: nil, topLevelObjects: &objects) else { + fatalError() + } + guard let nonOptionalObjects = objects else { + fatalError() + } + for o in nonOptionalObjects { + if let view = o as? T { + return view + } + } + fatalError() + } +} + +extension NSView { + func endEditing() { + window?.makeFirstResponder(nil) + } +} + +extension NSImage { + func tinted(withColor color: NSColor) -> NSImage { + let image = copy() as! NSImage + image.lockFocus() + + color.set() + + let imageRect = NSRect(origin: NSZeroPoint, size: image.size) + imageRect.fill(using: .sourceAtop) + image.unlockFocus() + + return image + } +} + +extension String { + var asCaption: String { + return "\(self):" + } + + var asContinuation: String { + return "\(self)..." + } +} diff --git a/Passepartout/App/macOS/Global/NSTextView+Search.swift b/Passepartout/App/macOS/Global/NSTextView+Search.swift new file mode 100644 index 00000000..70f11a1e --- /dev/null +++ b/Passepartout/App/macOS/Global/NSTextView+Search.swift @@ -0,0 +1,32 @@ +// +// NSTextView+Search.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 8/1/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa + +extension NSTextView { + func scrollToEnd() { + scrollRangeToVisible(NSMakeRange(string.count - 1, 1)) + } +} diff --git a/Passepartout/App/macOS/Global/ProductManager+App.swift b/Passepartout/App/macOS/Global/ProductManager+App.swift new file mode 100644 index 00000000..8724481e --- /dev/null +++ b/Passepartout/App/macOS/Global/ProductManager+App.swift @@ -0,0 +1,36 @@ +// +// ProductManager+App.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 12/25/20. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import PassepartoutCore + +extension ProductManager { + static let shared = ProductManager( + Configuration( + isBetaFullVersion: AppConstants.InApp.isBetaFullVersion, + lastFullVersionBuild: AppConstants.InApp.lastFullVersionBuild + ) + ) +} diff --git a/Passepartout/App/macOS/Global/SwiftGen+Assets.swift b/Passepartout/App/macOS/Global/SwiftGen+Assets.swift new file mode 100644 index 00000000..b66117ed --- /dev/null +++ b/Passepartout/App/macOS/Global/SwiftGen+Assets.swift @@ -0,0 +1,348 @@ +// swiftlint:disable all +// Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen + +#if os(macOS) + import AppKit +#elseif os(iOS) + import UIKit +#elseif os(tvOS) || os(watchOS) + import UIKit +#endif + +// Deprecated typealiases +@available(*, deprecated, renamed: "ImageAsset.Image", message: "This typealias will be removed in SwiftGen 7.0") +internal typealias AssetImageTypeAlias = ImageAsset.Image + +// swiftlint:disable superfluous_disable_command file_length implicit_return + +// MARK: - Asset Catalogs + +// swiftlint:disable identifier_name line_length nesting type_body_length type_name +internal enum Asset { + internal enum Assets { + internal static let statusBarButtonImage = ImageAsset(name: "StatusBarButtonImage") + } + internal enum Flags { + internal static let ad = ImageAsset(name: "ad") + internal static let ae = ImageAsset(name: "ae") + internal static let af = ImageAsset(name: "af") + internal static let ag = ImageAsset(name: "ag") + internal static let ai = ImageAsset(name: "ai") + internal static let al = ImageAsset(name: "al") + internal static let am = ImageAsset(name: "am") + internal static let ao = ImageAsset(name: "ao") + internal static let aq = ImageAsset(name: "aq") + internal static let ar = ImageAsset(name: "ar") + internal static let `as` = ImageAsset(name: "as") + internal static let at = ImageAsset(name: "at") + internal static let au = ImageAsset(name: "au") + internal static let aw = ImageAsset(name: "aw") + internal static let ax = ImageAsset(name: "ax") + internal static let az = ImageAsset(name: "az") + internal static let ba = ImageAsset(name: "ba") + internal static let bb = ImageAsset(name: "bb") + internal static let bd = ImageAsset(name: "bd") + internal static let be = ImageAsset(name: "be") + internal static let bf = ImageAsset(name: "bf") + internal static let bg = ImageAsset(name: "bg") + internal static let bh = ImageAsset(name: "bh") + internal static let bi = ImageAsset(name: "bi") + internal static let bj = ImageAsset(name: "bj") + internal static let bl = ImageAsset(name: "bl") + internal static let bm = ImageAsset(name: "bm") + internal static let bn = ImageAsset(name: "bn") + internal static let bo = ImageAsset(name: "bo") + internal static let bq = ImageAsset(name: "bq") + internal static let br = ImageAsset(name: "br") + internal static let bs = ImageAsset(name: "bs") + internal static let bt = ImageAsset(name: "bt") + internal static let bv = ImageAsset(name: "bv") + internal static let bw = ImageAsset(name: "bw") + internal static let by = ImageAsset(name: "by") + internal static let bz = ImageAsset(name: "bz") + internal static let ca = ImageAsset(name: "ca") + internal static let cc = ImageAsset(name: "cc") + internal static let cd = ImageAsset(name: "cd") + internal static let cf = ImageAsset(name: "cf") + internal static let cg = ImageAsset(name: "cg") + internal static let ch = ImageAsset(name: "ch") + internal static let ci = ImageAsset(name: "ci") + internal static let ck = ImageAsset(name: "ck") + internal static let cl = ImageAsset(name: "cl") + internal static let cm = ImageAsset(name: "cm") + internal static let cn = ImageAsset(name: "cn") + internal static let co = ImageAsset(name: "co") + internal static let cr = ImageAsset(name: "cr") + internal static let cu = ImageAsset(name: "cu") + internal static let cv = ImageAsset(name: "cv") + internal static let cw = ImageAsset(name: "cw") + internal static let cx = ImageAsset(name: "cx") + internal static let cy = ImageAsset(name: "cy") + internal static let cz = ImageAsset(name: "cz") + internal static let de = ImageAsset(name: "de") + internal static let dj = ImageAsset(name: "dj") + internal static let dk = ImageAsset(name: "dk") + internal static let dm = ImageAsset(name: "dm") + internal static let `do` = ImageAsset(name: "do") + internal static let dz = ImageAsset(name: "dz") + internal static let ec = ImageAsset(name: "ec") + internal static let ee = ImageAsset(name: "ee") + internal static let eg = ImageAsset(name: "eg") + internal static let eh = ImageAsset(name: "eh") + internal static let er = ImageAsset(name: "er") + internal static let esCt = ImageAsset(name: "es-ct") + internal static let es = ImageAsset(name: "es") + internal static let et = ImageAsset(name: "et") + internal static let eu = ImageAsset(name: "eu") + internal static let fi = ImageAsset(name: "fi") + internal static let fj = ImageAsset(name: "fj") + internal static let fk = ImageAsset(name: "fk") + internal static let fm = ImageAsset(name: "fm") + internal static let fo = ImageAsset(name: "fo") + internal static let fr = ImageAsset(name: "fr") + internal static let ga = ImageAsset(name: "ga") + internal static let gbEng = ImageAsset(name: "gb-eng") + internal static let gbNir = ImageAsset(name: "gb-nir") + internal static let gbSct = ImageAsset(name: "gb-sct") + internal static let gbWls = ImageAsset(name: "gb-wls") + internal static let gb = ImageAsset(name: "gb") + internal static let gd = ImageAsset(name: "gd") + internal static let ge = ImageAsset(name: "ge") + internal static let gf = ImageAsset(name: "gf") + internal static let gg = ImageAsset(name: "gg") + internal static let gh = ImageAsset(name: "gh") + internal static let gi = ImageAsset(name: "gi") + internal static let gl = ImageAsset(name: "gl") + internal static let gm = ImageAsset(name: "gm") + internal static let gn = ImageAsset(name: "gn") + internal static let gp = ImageAsset(name: "gp") + internal static let gq = ImageAsset(name: "gq") + internal static let gr = ImageAsset(name: "gr") + internal static let gs = ImageAsset(name: "gs") + internal static let gt = ImageAsset(name: "gt") + internal static let gu = ImageAsset(name: "gu") + internal static let gw = ImageAsset(name: "gw") + internal static let gy = ImageAsset(name: "gy") + internal static let hk = ImageAsset(name: "hk") + internal static let hm = ImageAsset(name: "hm") + internal static let hn = ImageAsset(name: "hn") + internal static let hr = ImageAsset(name: "hr") + internal static let ht = ImageAsset(name: "ht") + internal static let hu = ImageAsset(name: "hu") + internal static let id = ImageAsset(name: "id") + internal static let ie = ImageAsset(name: "ie") + internal static let il = ImageAsset(name: "il") + internal static let im = ImageAsset(name: "im") + internal static let `in` = ImageAsset(name: "in") + internal static let io = ImageAsset(name: "io") + internal static let iq = ImageAsset(name: "iq") + internal static let ir = ImageAsset(name: "ir") + internal static let `is` = ImageAsset(name: "is") + internal static let it = ImageAsset(name: "it") + internal static let je = ImageAsset(name: "je") + internal static let jm = ImageAsset(name: "jm") + internal static let jo = ImageAsset(name: "jo") + internal static let jp = ImageAsset(name: "jp") + internal static let ke = ImageAsset(name: "ke") + internal static let kg = ImageAsset(name: "kg") + internal static let kh = ImageAsset(name: "kh") + internal static let ki = ImageAsset(name: "ki") + internal static let km = ImageAsset(name: "km") + internal static let kn = ImageAsset(name: "kn") + internal static let kp = ImageAsset(name: "kp") + internal static let kr = ImageAsset(name: "kr") + internal static let kw = ImageAsset(name: "kw") + internal static let ky = ImageAsset(name: "ky") + internal static let kz = ImageAsset(name: "kz") + internal static let la = ImageAsset(name: "la") + internal static let lb = ImageAsset(name: "lb") + internal static let lc = ImageAsset(name: "lc") + internal static let li = ImageAsset(name: "li") + internal static let lk = ImageAsset(name: "lk") + internal static let lr = ImageAsset(name: "lr") + internal static let ls = ImageAsset(name: "ls") + internal static let lt = ImageAsset(name: "lt") + internal static let lu = ImageAsset(name: "lu") + internal static let lv = ImageAsset(name: "lv") + internal static let ly = ImageAsset(name: "ly") + internal static let ma = ImageAsset(name: "ma") + internal static let mc = ImageAsset(name: "mc") + internal static let md = ImageAsset(name: "md") + internal static let me = ImageAsset(name: "me") + internal static let mf = ImageAsset(name: "mf") + internal static let mg = ImageAsset(name: "mg") + internal static let mh = ImageAsset(name: "mh") + internal static let mk = ImageAsset(name: "mk") + internal static let ml = ImageAsset(name: "ml") + internal static let mm = ImageAsset(name: "mm") + internal static let mn = ImageAsset(name: "mn") + internal static let mo = ImageAsset(name: "mo") + internal static let mp = ImageAsset(name: "mp") + internal static let mq = ImageAsset(name: "mq") + internal static let mr = ImageAsset(name: "mr") + internal static let ms = ImageAsset(name: "ms") + internal static let mt = ImageAsset(name: "mt") + internal static let mu = ImageAsset(name: "mu") + internal static let mv = ImageAsset(name: "mv") + internal static let mw = ImageAsset(name: "mw") + internal static let mx = ImageAsset(name: "mx") + internal static let my = ImageAsset(name: "my") + internal static let mz = ImageAsset(name: "mz") + internal static let na = ImageAsset(name: "na") + internal static let nc = ImageAsset(name: "nc") + internal static let ne = ImageAsset(name: "ne") + internal static let nf = ImageAsset(name: "nf") + internal static let ng = ImageAsset(name: "ng") + internal static let ni = ImageAsset(name: "ni") + internal static let nl = ImageAsset(name: "nl") + internal static let no = ImageAsset(name: "no") + internal static let np = ImageAsset(name: "np") + internal static let nr = ImageAsset(name: "nr") + internal static let nu = ImageAsset(name: "nu") + internal static let nz = ImageAsset(name: "nz") + internal static let om = ImageAsset(name: "om") + internal static let pa = ImageAsset(name: "pa") + internal static let pe = ImageAsset(name: "pe") + internal static let pf = ImageAsset(name: "pf") + internal static let pg = ImageAsset(name: "pg") + internal static let ph = ImageAsset(name: "ph") + internal static let pk = ImageAsset(name: "pk") + internal static let pl = ImageAsset(name: "pl") + internal static let pm = ImageAsset(name: "pm") + internal static let pn = ImageAsset(name: "pn") + internal static let pr = ImageAsset(name: "pr") + internal static let ps = ImageAsset(name: "ps") + internal static let pt = ImageAsset(name: "pt") + internal static let pw = ImageAsset(name: "pw") + internal static let py = ImageAsset(name: "py") + internal static let qa = ImageAsset(name: "qa") + internal static let re = ImageAsset(name: "re") + internal static let ro = ImageAsset(name: "ro") + internal static let rs = ImageAsset(name: "rs") + internal static let ru = ImageAsset(name: "ru") + internal static let rw = ImageAsset(name: "rw") + internal static let sa = ImageAsset(name: "sa") + internal static let sb = ImageAsset(name: "sb") + internal static let sc = ImageAsset(name: "sc") + internal static let sd = ImageAsset(name: "sd") + internal static let se = ImageAsset(name: "se") + internal static let sg = ImageAsset(name: "sg") + internal static let sh = ImageAsset(name: "sh") + internal static let si = ImageAsset(name: "si") + internal static let sj = ImageAsset(name: "sj") + internal static let sk = ImageAsset(name: "sk") + internal static let sl = ImageAsset(name: "sl") + internal static let sm = ImageAsset(name: "sm") + internal static let sn = ImageAsset(name: "sn") + internal static let so = ImageAsset(name: "so") + internal static let sr = ImageAsset(name: "sr") + internal static let ss = ImageAsset(name: "ss") + internal static let st = ImageAsset(name: "st") + internal static let sv = ImageAsset(name: "sv") + internal static let sx = ImageAsset(name: "sx") + internal static let sy = ImageAsset(name: "sy") + internal static let sz = ImageAsset(name: "sz") + internal static let tc = ImageAsset(name: "tc") + internal static let td = ImageAsset(name: "td") + internal static let tf = ImageAsset(name: "tf") + internal static let tg = ImageAsset(name: "tg") + internal static let th = ImageAsset(name: "th") + internal static let tj = ImageAsset(name: "tj") + internal static let tk = ImageAsset(name: "tk") + internal static let tl = ImageAsset(name: "tl") + internal static let tm = ImageAsset(name: "tm") + internal static let tn = ImageAsset(name: "tn") + internal static let to = ImageAsset(name: "to") + internal static let tr = ImageAsset(name: "tr") + internal static let tt = ImageAsset(name: "tt") + internal static let tv = ImageAsset(name: "tv") + internal static let tw = ImageAsset(name: "tw") + internal static let tz = ImageAsset(name: "tz") + internal static let ua = ImageAsset(name: "ua") + internal static let ug = ImageAsset(name: "ug") + internal static let um = ImageAsset(name: "um") + internal static let un = ImageAsset(name: "un") + internal static let us = ImageAsset(name: "us") + internal static let uy = ImageAsset(name: "uy") + internal static let uz = ImageAsset(name: "uz") + internal static let va = ImageAsset(name: "va") + internal static let vc = ImageAsset(name: "vc") + internal static let ve = ImageAsset(name: "ve") + internal static let vg = ImageAsset(name: "vg") + internal static let vi = ImageAsset(name: "vi") + internal static let vn = ImageAsset(name: "vn") + internal static let vu = ImageAsset(name: "vu") + internal static let wf = ImageAsset(name: "wf") + internal static let ws = ImageAsset(name: "ws") + internal static let xk = ImageAsset(name: "xk") + internal static let ye = ImageAsset(name: "ye") + internal static let yt = ImageAsset(name: "yt") + internal static let za = ImageAsset(name: "za") + internal static let zm = ImageAsset(name: "zm") + internal static let zw = ImageAsset(name: "zw") + } + internal enum Providers { + internal static let csv = ImageAsset(name: "csv") + internal static let hideme = ImageAsset(name: "hideme") + internal static let mullvad = ImageAsset(name: "mullvad") + internal static let nordvpn = ImageAsset(name: "nordvpn") + internal static let pia = ImageAsset(name: "pia") + internal static let placeholder = ImageAsset(name: "placeholder") + internal static let protonvpn = ImageAsset(name: "protonvpn") + internal static let torguard = ImageAsset(name: "torguard") + internal static let tunnelbear = ImageAsset(name: "tunnelbear") + internal static let vyprvpn = ImageAsset(name: "vyprvpn") + internal static let windscribe = ImageAsset(name: "windscribe") + } +} +// swiftlint:enable identifier_name line_length nesting type_body_length type_name + +// MARK: - Implementation Details + +internal struct ImageAsset { + internal fileprivate(set) var name: String + + #if os(macOS) + internal typealias Image = NSImage + #elseif os(iOS) || os(tvOS) || os(watchOS) + internal typealias Image = UIImage + #endif + + internal var image: Image { + let bundle = BundleToken.bundle + #if os(iOS) || os(tvOS) + let image = Image(named: name, in: bundle, compatibleWith: nil) + #elseif os(macOS) + let image = bundle.image(forResource: NSImage.Name(name)) + #elseif os(watchOS) + let image = Image(named: name) + #endif + guard let result = image else { + fatalError("Unable to load image named \(name).") + } + return result + } +} + +internal extension ImageAsset.Image { + @available(macOS, deprecated, + message: "This initializer is unsafe on macOS, please use the ImageAsset.image property") + convenience init!(asset: ImageAsset) { + #if os(iOS) || os(tvOS) + let bundle = BundleToken.bundle + self.init(named: asset.name, in: bundle, compatibleWith: nil) + #elseif os(macOS) + self.init(named: NSImage.Name(asset.name)) + #elseif os(watchOS) + self.init(named: asset.name) + #endif + } +} + +// swiftlint:disable convenience_type +private final class BundleToken { + static let bundle: Bundle = { + Bundle(for: BundleToken.self) + }() +} +// swiftlint:enable convenience_type diff --git a/Passepartout/App/macOS/Global/SwiftGen+Scenes.swift b/Passepartout/App/macOS/Global/SwiftGen+Scenes.swift new file mode 100644 index 00000000..ba32d10b --- /dev/null +++ b/Passepartout/App/macOS/Global/SwiftGen+Scenes.swift @@ -0,0 +1,82 @@ +// swiftlint:disable all +// Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen + +// swiftlint:disable sorted_imports +import Foundation +import AppKit + +// swiftlint:disable superfluous_disable_command +// swiftlint:disable file_length + +// MARK: - Storyboard Scenes + +// swiftlint:disable explicit_type_interface identifier_name line_length type_body_length type_name +internal enum StoryboardScene { + internal enum Main: StoryboardType { + internal static let storyboardName = "Main" + + internal static let organizerWindowController = SceneType(storyboard: Main.self, identifier: "OrganizerWindowController") + + internal static let textInputViewController = SceneType(storyboard: Main.self, identifier: "TextInputViewController") + } + internal enum Preferences: StoryboardType { + internal static let storyboardName = "Preferences" + + internal static let initialScene = InitialSceneType(storyboard: Preferences.self) + } + internal enum Service: StoryboardType { + internal static let storyboardName = "Service" + + internal static let initialScene = InitialSceneType(storyboard: Service.self) + + internal static let accountViewController = SceneType(storyboard: Service.self, identifier: "AccountViewController") + + internal static let profileCustomizationContainerViewController = SceneType(storyboard: Service.self, identifier: "ProfileCustomizationContainerViewController") + } +} +// swiftlint:enable explicit_type_interface identifier_name line_length type_body_length type_name + +// MARK: - Implementation Details + +internal protocol StoryboardType { + static var storyboardName: String { get } +} + +internal extension StoryboardType { + static var storyboard: NSStoryboard { + let name = NSStoryboard.Name(self.storyboardName) + return NSStoryboard(name: name, bundle: BundleToken.bundle) + } +} + +internal struct SceneType { + internal let storyboard: StoryboardType.Type + internal let identifier: String + + internal func instantiate() -> T { + let identifier = NSStoryboard.SceneIdentifier(self.identifier) + guard let controller = storyboard.storyboard.instantiateController(withIdentifier: identifier) as? T else { + fatalError("Controller '\(identifier)' is not of the expected class \(T.self).") + } + return controller + } +} + +internal struct InitialSceneType { + internal let storyboard: StoryboardType.Type + + internal func instantiate() -> T { + guard let controller = storyboard.storyboard.instantiateInitialController() as? T else { + fatalError("Controller is not of the expected class \(T.self).") + } + return controller + } +} + +// swiftlint:disable convenience_type +private final class BundleToken { + static let bundle: Bundle = { + Bundle(for: BundleToken.self) + }() +} +// swiftlint:enable convenience_type diff --git a/Passepartout/App/macOS/Global/SwiftGen+Segues.swift b/Passepartout/App/macOS/Global/SwiftGen+Segues.swift new file mode 100644 index 00000000..49a2ca52 --- /dev/null +++ b/Passepartout/App/macOS/Global/SwiftGen+Segues.swift @@ -0,0 +1,54 @@ +// swiftlint:disable all +// Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen + +// swiftlint:disable sorted_imports +import Foundation +import AppKit + +// swiftlint:disable superfluous_disable_command +// swiftlint:disable file_length + +// MARK: - Storyboard Segues + +// swiftlint:disable explicit_type_interface identifier_name line_length type_body_length type_name +internal enum StoryboardSegue { + internal enum Main: String, SegueType { + case enterAccountSegueIdentifier = "EnterAccountSegueIdentifier" + case renameProfileSegueIdentifier = "RenameProfileSegueIdentifier" + } + internal enum Service: String, SegueType { + case accountSegueIdentifier = "AccountSegueIdentifier" + case customizeSegueIdentifier = "CustomizeSegueIdentifier" + } +} +// swiftlint:enable explicit_type_interface identifier_name line_length type_body_length type_name + +// MARK: - Implementation Details + +internal protocol SegueType: RawRepresentable {} + +internal extension NSSeguePerforming { + func perform(segue: S, sender: Any? = nil) where S.RawValue == String { + let identifier = NSStoryboardSegue.Identifier(segue.rawValue) + performSegue?(withIdentifier: identifier, sender: sender) + } +} + +internal extension SegueType where RawValue == String { + init?(_ segue: NSStoryboardSegue) { + #if swift(>=4.2) + guard let identifier = segue.identifier else { return nil } + #else + guard let identifier = segue.identifier?.rawValue else { return nil } + #endif + self.init(rawValue: identifier) + } +} + +// swiftlint:disable convenience_type +private final class BundleToken { + static let bundle: Bundle = { + Bundle(for: BundleToken.self) + }() +} +// swiftlint:enable convenience_type diff --git a/Passepartout/App/macOS/Global/SwiftGen+Strings.swift b/Passepartout/App/macOS/Global/SwiftGen+Strings.swift new file mode 100644 index 00000000..fea51209 --- /dev/null +++ b/Passepartout/App/macOS/Global/SwiftGen+Strings.swift @@ -0,0 +1,1114 @@ +// swiftlint:disable all +// Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen + +import Foundation + +// swiftlint:disable superfluous_disable_command file_length implicit_return + +// MARK: - Strings + +// swiftlint:disable explicit_type_interface function_parameter_count identifier_name line_length +// swiftlint:disable nesting type_body_length type_name +internal enum L10n { + internal enum App { + internal enum Configuration { + /// Configuration + internal static let title = L10n.tr("App", "configuration.title") + internal enum Alerts { + internal enum Commit { + /// New parameters will not be effective until you reconnect manually. Changes in trusted networks will apply immediately. + internal static let message = L10n.tr("App", "configuration.alerts.commit.message") + internal enum Buttons { + /// Reconnect now + internal static let reconnect = L10n.tr("App", "configuration.alerts.commit.buttons.reconnect") + /// Skip + internal static let skip = L10n.tr("App", "configuration.alerts.commit.buttons.skip") + } + } + } + } + internal enum Endpoint { + internal enum Cells { + /// Address + internal static let address = L10n.tr("App", "endpoint.cells.address") + /// Protocol + internal static let `protocol` = L10n.tr("App", "endpoint.cells.protocol") + } + } + internal enum Global { + internal enum Values { + /// Default + internal static let `default` = L10n.tr("App", "global.values.default") + } + } + internal enum Menu { + internal enum ActiveProfile { + internal enum Items { + internal enum Customize { + /// Customize... + internal static let title = L10n.tr("App", "menu.active_profile.items.customize.title") + } + } + internal enum Messages { + /// No account configured + internal static let missingCredentials = L10n.tr("App", "menu.active_profile.messages.missing_credentials") + } + internal enum Title { + /// No active profile + internal static let `none` = L10n.tr("App", "menu.active_profile.title.none") + } + } + internal enum Organizer { + /// Organizer + internal static let title = L10n.tr("App", "menu.organizer.title") + } + internal enum Preferences { + /// Preferences + internal static let title = L10n.tr("App", "menu.preferences.title") + } + internal enum Quit { + /// Quit %@ + internal static func title(_ p1: Any) -> String { + return L10n.tr("App", "menu.quit.title", String(describing: p1)) + } + internal enum Messages { + /// The VPN, if enabled, will still run in the background. Do you want to quit? + internal static let confirm = L10n.tr("App", "menu.quit.messages.confirm") + } + } + internal enum Support { + /// Support + internal static let title = L10n.tr("App", "menu.support.title") + } + internal enum SwitchProfile { + /// Active profile + internal static let title = L10n.tr("App", "menu.switch_profile.title") + } + } + internal enum NetworkSettings { + internal enum Dns { + internal enum Cells { + internal enum Addresses { + /// Servers + internal static let title = L10n.tr("App", "network_settings.dns.cells.addresses.title") + } + internal enum Domains { + /// Domains + internal static let title = L10n.tr("App", "network_settings.dns.cells.domains.title") + } + } + } + internal enum Proxy { + internal enum Cells { + internal enum BypassDomains { + /// Bypass domains + internal static let title = L10n.tr("App", "network_settings.proxy.cells.bypass_domains.title") + } + } + } + } + internal enum Organizer { + /// %@ + internal static func title(_ p1: Any) -> String { + return L10n.tr("App", "organizer.title", String(describing: p1)) + } + internal enum Alerts { + internal enum OpenHostFile { + /// Select an .ovpn file + internal static let title = L10n.tr("App", "organizer.alerts.open_host_file.title") + } + internal enum RemoveProfile { + /// Are you sure you want to delete profile %@? + internal static func message(_ p1: Any) -> String { + return L10n.tr("App", "organizer.alerts.remove_profile.message", String(describing: p1)) + } + /// Remove profile + internal static let title = L10n.tr("App", "organizer.alerts.remove_profile.title") + } + } + internal enum Menus { + /// Host + internal static let host = L10n.tr("App", "organizer.menus.host") + /// Provider + internal static let provider = L10n.tr("App", "organizer.menus.provider") + internal enum Provider { + /// No providers left + internal static let unavailable = L10n.tr("App", "organizer.menus.provider.unavailable") + } + } + } + internal enum Preferences { + /// %@ Preferences + internal static func title(_ p1: Any) -> String { + return L10n.tr("App", "preferences.title", String(describing: p1)) + } + internal enum Cells { + internal enum LaunchesOnLogin { + /// Launch on login + internal static let caption = L10n.tr("App", "preferences.cells.launches_on_login.caption") + /// Check to automatically launch the app on boot or login. + internal static let footer = L10n.tr("App", "preferences.cells.launches_on_login.footer") + } + } + internal enum Sections { + internal enum General { + /// General + internal static let header = L10n.tr("App", "preferences.sections.general.header") + } + } + } + internal enum Service { + internal enum Cells { + internal enum Addresses { + /// Addresses + internal static let caption = L10n.tr("App", "service.cells.addresses.caption") + } + internal enum Category { + /// Category + internal static let caption = L10n.tr("App", "service.cells.category.caption") + } + internal enum Vpn { + internal enum TurnOff { + /// Disable VPN + internal static let caption = L10n.tr("App", "service.cells.vpn.turn_off.caption") + } + internal enum TurnOn { + /// Enable VPN + internal static let caption = L10n.tr("App", "service.cells.vpn.turn_on.caption") + } + } + } + } + internal enum Trusted { + internal enum Columns { + internal enum Trust { + /// Trust + internal static let title = L10n.tr("App", "trusted.columns.trust.title") + } + } + internal enum Ethernet { + /// Check to trust any wired cable connection. + internal static let description = L10n.tr("App", "trusted.ethernet.description") + /// Trust wired connections + internal static let title = L10n.tr("App", "trusted.ethernet.title") + } + } + internal enum Vpn { + /// Off + internal static let unused = L10n.tr("App", "vpn.unused") + } + } + internal enum Core { + internal enum About { + /// About + internal static let title = L10n.tr("Core", "about.title") + internal enum Cells { + internal enum Credits { + /// Credits + internal static let caption = L10n.tr("Core", "about.cells.credits.caption") + } + internal enum Disclaimer { + /// Disclaimer + internal static let caption = L10n.tr("Core", "about.cells.disclaimer.caption") + } + internal enum Faq { + /// FAQ + internal static let caption = L10n.tr("Core", "about.cells.faq.caption") + } + internal enum PrivacyPolicy { + /// Privacy policy + internal static let caption = L10n.tr("Core", "about.cells.privacy_policy.caption") + } + internal enum ShareGeneric { + /// Invite a friend + internal static let caption = L10n.tr("Core", "about.cells.share_generic.caption") + } + internal enum ShareTwitter { + /// Tweet about it! + internal static let caption = L10n.tr("Core", "about.cells.share_twitter.caption") + } + internal enum Website { + /// Home page + internal static let caption = L10n.tr("Core", "about.cells.website.caption") + } + } + internal enum Sections { + internal enum Share { + /// Share + internal static let header = L10n.tr("Core", "about.sections.share.header") + } + internal enum Web { + /// Web + internal static let header = L10n.tr("Core", "about.sections.web.header") + } + } + } + internal enum Account { + /// Account + internal static let title = L10n.tr("Core", "account.title") + internal enum Cells { + internal enum OpenGuide { + /// See your credentials + internal static let caption = L10n.tr("Core", "account.cells.open_guide.caption") + } + internal enum Password { + /// Password + internal static let caption = L10n.tr("Core", "account.cells.password.caption") + /// secret + internal static let placeholder = L10n.tr("Core", "account.cells.password.placeholder") + } + internal enum Signup { + /// Register with %@ + internal static func caption(_ p1: Any) -> String { + return L10n.tr("Core", "account.cells.signup.caption", String(describing: p1)) + } + } + internal enum Username { + /// Username + internal static let caption = L10n.tr("Core", "account.cells.username.caption") + /// username + internal static let placeholder = L10n.tr("Core", "account.cells.username.placeholder") + } + } + internal enum Sections { + internal enum Guidance { + internal enum Footer { + internal enum Infrastructure { + /// Use your %@ website credentials. + internal static func hideme(_ p1: Any) -> String { + return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.hideme", String(describing: p1)) + } + /// Use your %@ website credentials. Your username is usually numeric (without spaces). + internal static func mullvad(_ p1: Any) -> String { + return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.mullvad", String(describing: p1)) + } + /// Use your %@ website credentials. Your username is usually your e-mail. + internal static func nordvpn(_ p1: Any) -> String { + return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.nordvpn", String(describing: p1)) + } + /// Use your %@ website credentials. Your username is usually numeric with a "p" prefix. + internal static func pia(_ p1: Any) -> String { + return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.pia", String(describing: p1)) + } + /// Find your %@ credentials in the "Account > OpenVPN / IKEv2 Username" section of the website. + internal static func protonvpn(_ p1: Any) -> String { + return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.protonvpn", String(describing: p1)) + } + /// Use your %@ service credentials, which may differ from website credentials. + internal static func torguard(_ p1: Any) -> String { + return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.torguard", String(describing: p1)) + } + /// Use your %@ website credentials. Your username is usually your e-mail. + internal static func tunnelbear(_ p1: Any) -> String { + return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.tunnelbear", String(describing: p1)) + } + /// Use your %@ website credentials. Your username is usually your e-mail. + internal static func vyprvpn(_ p1: Any) -> String { + return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.vyprvpn", String(describing: p1)) + } + /// Find your %@ credentials in the OpenVPN Config Generator on the website. + internal static func windscribe(_ p1: Any) -> String { + return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.windscribe", String(describing: p1)) + } + } + } + } + internal enum Registration { + /// Go get an account on the %@ website. + internal static func footer(_ p1: Any) -> String { + return L10n.tr("Core", "account.sections.registration.footer", String(describing: p1)) + } + } + } + } + internal enum Configuration { + internal enum Cells { + internal enum Cipher { + /// Cipher + internal static let caption = L10n.tr("Core", "configuration.cells.cipher.caption") + } + internal enum Client { + /// Client certificate + internal static let caption = L10n.tr("Core", "configuration.cells.client.caption") + internal enum Value { + /// Not verified + internal static let disabled = L10n.tr("Core", "configuration.cells.client.value.disabled") + /// Verified + internal static let enabled = L10n.tr("Core", "configuration.cells.client.value.enabled") + } + } + internal enum CompressionAlgorithm { + /// Algorithm + internal static let caption = L10n.tr("Core", "configuration.cells.compression_algorithm.caption") + internal enum Value { + /// LZO + internal static let lzo = L10n.tr("Core", "configuration.cells.compression_algorithm.value.lzo") + /// Unsupported + internal static let other = L10n.tr("Core", "configuration.cells.compression_algorithm.value.other") + } + } + internal enum CompressionFraming { + /// Framing + internal static let caption = L10n.tr("Core", "configuration.cells.compression_framing.caption") + internal enum Value { + /// --compress + internal static let compress = L10n.tr("Core", "configuration.cells.compression_framing.value.compress") + /// --comp-lzo + internal static let lzo = L10n.tr("Core", "configuration.cells.compression_framing.value.lzo") + } + } + internal enum Digest { + /// Authentication + internal static let caption = L10n.tr("Core", "configuration.cells.digest.caption") + internal enum Value { + /// Embedded + internal static let embedded = L10n.tr("Core", "configuration.cells.digest.value.embedded") + } + } + internal enum Eku { + /// Extended verification + internal static let caption = L10n.tr("Core", "configuration.cells.eku.caption") + } + internal enum KeepAlive { + /// Keep-alive + internal static let caption = L10n.tr("Core", "configuration.cells.keep_alive.caption") + internal enum Value { + /// %d seconds + internal static func seconds(_ p1: Int) -> String { + return L10n.tr("Core", "configuration.cells.keep_alive.value.seconds", p1) + } + } + } + internal enum RandomEndpoint { + /// Randomize endpoint + internal static let caption = L10n.tr("Core", "configuration.cells.random_endpoint.caption") + } + internal enum RenegotiationSeconds { + /// Renegotiation + internal static let caption = L10n.tr("Core", "configuration.cells.renegotiation_seconds.caption") + internal enum Value { + /// after %@ + internal static func after(_ p1: Any) -> String { + return L10n.tr("Core", "configuration.cells.renegotiation_seconds.value.after", String(describing: p1)) + } + } + } + internal enum ResetOriginal { + /// Reset configuration + internal static let caption = L10n.tr("Core", "configuration.cells.reset_original.caption") + } + internal enum TlsWrapping { + /// Wrapping + internal static let caption = L10n.tr("Core", "configuration.cells.tls_wrapping.caption") + internal enum Value { + /// Authentication + internal static let auth = L10n.tr("Core", "configuration.cells.tls_wrapping.value.auth") + /// Encryption + internal static let crypt = L10n.tr("Core", "configuration.cells.tls_wrapping.value.crypt") + } + } + } + internal enum Sections { + internal enum Communication { + /// Communication + internal static let header = L10n.tr("Core", "configuration.sections.communication.header") + } + internal enum Compression { + /// Compression + internal static let header = L10n.tr("Core", "configuration.sections.compression.header") + } + internal enum Network { + /// Network + internal static let header = L10n.tr("Core", "configuration.sections.network.header") + } + internal enum Other { + /// Other + internal static let header = L10n.tr("Core", "configuration.sections.other.header") + } + internal enum Reset { + /// If you ended up with broken connectivity after changing the communication parameters, tap to revert to the original configuration. + internal static let footer = L10n.tr("Core", "configuration.sections.reset.footer") + } + internal enum Tls { + /// TLS + internal static let header = L10n.tr("Core", "configuration.sections.tls.header") + } + } + } + internal enum Credits { + /// Credits + internal static let title = L10n.tr("Core", "credits.title") + internal enum Sections { + internal enum Licenses { + /// Licenses + internal static let header = L10n.tr("Core", "credits.sections.licenses.header") + } + internal enum Notices { + /// Notices + internal static let header = L10n.tr("Core", "credits.sections.notices.header") + } + internal enum Translations { + /// Translations + internal static let header = L10n.tr("Core", "credits.sections.translations.header") + } + } + } + internal enum DebugLog { + internal enum Alerts { + internal enum EmptyLog { + /// The debug log is empty. + internal static let message = L10n.tr("Core", "debug_log.alerts.empty_log.message") + } + } + internal enum Buttons { + /// Next + internal static let next = L10n.tr("Core", "debug_log.buttons.next") + /// Previous + internal static let previous = L10n.tr("Core", "debug_log.buttons.previous") + } + } + internal enum Donation { + /// Donate + internal static let title = L10n.tr("Core", "donation.title") + internal enum Alerts { + internal enum Purchase { + internal enum Failure { + /// Unable to perform the donation. %@ + internal static func message(_ p1: Any) -> String { + return L10n.tr("Core", "donation.alerts.purchase.failure.message", String(describing: p1)) + } + } + internal enum Success { + /// This means a lot to me and I really hope you keep using and promoting this app. + internal static let message = L10n.tr("Core", "donation.alerts.purchase.success.message") + /// Thank you + internal static let title = L10n.tr("Core", "donation.alerts.purchase.success.title") + } + } + } + internal enum Cells { + internal enum Loading { + /// Loading donations + internal static let caption = L10n.tr("Core", "donation.cells.loading.caption") + } + internal enum Purchasing { + /// Performing donation + internal static let caption = L10n.tr("Core", "donation.cells.purchasing.caption") + } + } + internal enum Sections { + internal enum OneTime { + /// If you want to display gratitude for my free work, here are a couple amounts you can donate instantly.\n\nYou will only be charged once per donation, and you can donate multiple times. + internal static let footer = L10n.tr("Core", "donation.sections.one_time.footer") + /// One time + internal static let header = L10n.tr("Core", "donation.sections.one_time.header") + } + } + } + internal enum Endpoint { + /// Endpoint + internal static let title = L10n.tr("Core", "endpoint.title") + internal enum Cells { + internal enum AnyAddress { + /// Automatic + internal static let caption = L10n.tr("Core", "endpoint.cells.any_address.caption") + } + internal enum AnyProtocol { + /// Automatic + internal static let caption = L10n.tr("Core", "endpoint.cells.any_protocol.caption") + } + } + } + internal enum Global { + /// Cancel + internal static let cancel = L10n.tr("Core", "global.cancel") + /// Close + internal static let close = L10n.tr("Core", "global.close") + /// No e-mail account is configured. + internal static let emailNotConfigured = L10n.tr("Core", "global.email_not_configured") + /// Next + internal static let next = L10n.tr("Core", "global.next") + /// OK + internal static let ok = L10n.tr("Core", "global.ok") + internal enum Captions { + /// Address + internal static let address = L10n.tr("Core", "global.captions.address") + /// Port + internal static let port = L10n.tr("Core", "global.captions.port") + } + internal enum Host { + internal enum TitleInput { + /// Acceptable characters are alphanumerics plus dash "-", underscore "_" and dot ".". + internal static let message = L10n.tr("Core", "global.host.title_input.message") + /// My profile + internal static let placeholder = L10n.tr("Core", "global.host.title_input.placeholder") + } + } + internal enum Values { + /// Automatic + internal static let automatic = L10n.tr("Core", "global.values.automatic") + /// Disabled + internal static let disabled = L10n.tr("Core", "global.values.disabled") + /// Enabled + internal static let enabled = L10n.tr("Core", "global.values.enabled") + /// Manual + internal static let manual = L10n.tr("Core", "global.values.manual") + /// None + internal static let `none` = L10n.tr("Core", "global.values.none") + } + } + internal enum IssueReporter { + /// The debug log of your latest connections is crucial to resolve your connectivity issues and is completely anonymous.\n\nThe .ovpn configuration file, if any, is attached stripped of any sensitive data.\n\nPlease double check the e-mail attachments if unsure. + internal static let message = L10n.tr("Core", "issue_reporter.message") + /// Report issue + internal static let title = L10n.tr("Core", "issue_reporter.title") + internal enum Buttons { + /// I understand + internal static let accept = L10n.tr("Core", "issue_reporter.buttons.accept") + } + } + internal enum Label { + internal enum License { + /// Unable to download full license content. + internal static let error = L10n.tr("Core", "label.license.error") + } + } + internal enum NetworkChoice { + /// Read .ovpn + internal static let client = L10n.tr("Core", "network_choice.client") + /// Pull from server + internal static let server = L10n.tr("Core", "network_choice.server") + } + internal enum NetworkSettings { + /// Network settings + internal static let title = L10n.tr("Core", "network_settings.title") + internal enum Dns { + /// DNS + internal static let title = L10n.tr("Core", "network_settings.dns.title") + internal enum Cells { + internal enum Domain { + /// Domain + internal static let caption = L10n.tr("Core", "network_settings.dns.cells.domain.caption") + } + } + } + internal enum Gateway { + /// Default gateway + internal static let title = L10n.tr("Core", "network_settings.gateway.title") + } + internal enum Mtu { + /// MTU + internal static let title = L10n.tr("Core", "network_settings.mtu.title") + internal enum Cells { + internal enum Bytes { + /// Bytes + internal static let caption = L10n.tr("Core", "network_settings.mtu.cells.bytes.caption") + } + } + } + internal enum Proxy { + /// Proxy + internal static let title = L10n.tr("Core", "network_settings.proxy.title") + } + } + internal enum Organizer { + internal enum Alerts { + internal enum AddHost { + /// Open an URL to an .ovpn configuration file from Safari, Mail or another app to set up a host profile.\n\nYou can also import an .ovpn with iTunes File Sharing. + internal static let message = L10n.tr("Core", "organizer.alerts.add_host.message") + } + internal enum CannotDonate { + /// There is no payment method configured on this device. + internal static let message = L10n.tr("Core", "organizer.alerts.cannot_donate.message") + } + internal enum DeleteVpnProfile { + /// Do you really want to erase the VPN configuration from your device settings? This may fix some broken VPN states and will not affect your provider and host profiles. + internal static let message = L10n.tr("Core", "organizer.alerts.delete_vpn_profile.message") + } + internal enum ExhaustedProviders { + /// You have created profiles for any available provider. + internal static let message = L10n.tr("Core", "organizer.alerts.exhausted_providers.message") + } + } + internal enum Cells { + internal enum About { + /// About %@ + internal static func caption(_ p1: Any) -> String { + return L10n.tr("Core", "organizer.cells.about.caption", String(describing: p1)) + } + } + internal enum Donate { + /// Make a donation + internal static let caption = L10n.tr("Core", "organizer.cells.donate.caption") + } + internal enum FollowTwitch { + /// Watch Passepartout on Twitch + internal static let caption = L10n.tr("Core", "organizer.cells.follow_twitch.caption") + } + internal enum GithubSponsors { + /// Support me on GitHub + internal static let caption = L10n.tr("Core", "organizer.cells.github_sponsors.caption") + } + internal enum JoinCommunity { + /// Join community + internal static let caption = L10n.tr("Core", "organizer.cells.join_community.caption") + } + internal enum Profile { + internal enum Value { + /// In use + internal static let current = L10n.tr("Core", "organizer.cells.profile.value.current") + } + } + internal enum SiriShortcuts { + /// Manage shortcuts + internal static let caption = L10n.tr("Core", "organizer.cells.siri_shortcuts.caption") + } + internal enum Translate { + /// Offer to translate + internal static let caption = L10n.tr("Core", "organizer.cells.translate.caption") + } + internal enum Uninstall { + /// Remove VPN configuration + internal static let caption = L10n.tr("Core", "organizer.cells.uninstall.caption") + } + internal enum WriteReview { + /// Write a review + internal static let caption = L10n.tr("Core", "organizer.cells.write_review.caption") + } + } + internal enum Sections { + internal enum Feedback { + /// Feedback + internal static let header = L10n.tr("Core", "organizer.sections.feedback.header") + } + internal enum Hosts { + /// Import hosts from raw .ovpn configuration files. + internal static let footer = L10n.tr("Core", "organizer.sections.hosts.footer") + /// Hosts + internal static let header = L10n.tr("Core", "organizer.sections.hosts.header") + } + internal enum Providers { + /// Here you find a few providers with preset configuration profiles. + internal static let footer = L10n.tr("Core", "organizer.sections.providers.footer") + /// Providers + internal static let header = L10n.tr("Core", "organizer.sections.providers.header") + } + internal enum Siri { + /// Get help from Siri to speed up your most common interactions with the app. + internal static let footer = L10n.tr("Core", "organizer.sections.siri.footer") + /// Siri + internal static let header = L10n.tr("Core", "organizer.sections.siri.header") + } + internal enum Support { + /// Support + internal static let header = L10n.tr("Core", "organizer.sections.support.header") + } + internal enum Twitch { + /// Come watch me make Passepartout live on Twitch, join the chat to interact and contribute! + internal static let footer = L10n.tr("Core", "organizer.sections.twitch.footer") + /// Twitch + internal static let header = L10n.tr("Core", "organizer.sections.twitch.header") + } + } + } + internal enum ParsedFile { + internal enum Alerts { + internal enum Buttons { + /// Report an issue + internal static let report = L10n.tr("Core", "parsed_file.alerts.buttons.report") + } + internal enum Decryption { + /// The configuration contains an encrypted private key and it could not be decrypted. Double check your entered passphrase. + internal static let message = L10n.tr("Core", "parsed_file.alerts.decryption.message") + } + internal enum EncryptionPassphrase { + /// Please enter the encryption passphrase. + internal static let message = L10n.tr("Core", "parsed_file.alerts.encryption_passphrase.message") + } + internal enum Malformed { + /// The configuration file contains a malformed option (%@). + internal static func message(_ p1: Any) -> String { + return L10n.tr("Core", "parsed_file.alerts.malformed.message", String(describing: p1)) + } + } + internal enum Missing { + /// The configuration file lacks a required option (%@). + internal static func message(_ p1: Any) -> String { + return L10n.tr("Core", "parsed_file.alerts.missing.message", String(describing: p1)) + } + } + internal enum Parsing { + /// Unable to parse the provided configuration file (%@). + internal static func message(_ p1: Any) -> String { + return L10n.tr("Core", "parsed_file.alerts.parsing.message", String(describing: p1)) + } + } + internal enum PotentiallyUnsupported { + /// The configuration file is correct but contains a potentially unsupported option (%@).\n\nConnectivity may break depending on server settings. + internal static func message(_ p1: Any) -> String { + return L10n.tr("Core", "parsed_file.alerts.potentially_unsupported.message", String(describing: p1)) + } + } + internal enum Unsupported { + /// The configuration file contains an unsupported option (%@). + internal static func message(_ p1: Any) -> String { + return L10n.tr("Core", "parsed_file.alerts.unsupported.message", String(describing: p1)) + } + } + } + } + internal enum Reddit { + /// Did you know that Passepartout has a subreddit? Subscribe for updates or to discuss issues, features, new platforms or whatever you like.\n\nIt's also a great way to show you care about this project. + internal static let message = L10n.tr("Core", "reddit.message") + /// Reddit + internal static let title = L10n.tr("Core", "reddit.title") + internal enum Buttons { + /// Don't ask again + internal static let never = L10n.tr("Core", "reddit.buttons.never") + /// Remind me later + internal static let remind = L10n.tr("Core", "reddit.buttons.remind") + /// Subscribe now! + internal static let subscribe = L10n.tr("Core", "reddit.buttons.subscribe") + } + } + internal enum ServerNetwork { + internal enum Cells { + internal enum Route { + /// Route + internal static let caption = L10n.tr("Core", "server_network.cells.route.caption") + } + } + } + internal enum Service { + internal enum Alerts { + internal enum Buttons { + /// Reconnect + internal static let reconnect = L10n.tr("Core", "service.alerts.buttons.reconnect") + } + internal enum Configuration { + /// Configuration unavailable, make sure you are connected to the VPN. + internal static let disconnected = L10n.tr("Core", "service.alerts.configuration.disconnected") + } + internal enum CredentialsNeeded { + /// You need to enter account credentials first. + internal static let message = L10n.tr("Core", "service.alerts.credentials_needed.message") + } + internal enum Download { + /// Failed to download configuration files. %@ + internal static func failed(_ p1: Any) -> String { + return L10n.tr("Core", "service.alerts.download.failed", String(describing: p1)) + } + /// %@ requires the download of additional configuration files.\n\nConfirm to start the download. + internal static func message(_ p1: Any) -> String { + return L10n.tr("Core", "service.alerts.download.message", String(describing: p1)) + } + /// Download required + internal static let title = L10n.tr("Core", "service.alerts.download.title") + internal enum Hud { + /// Extracting files, please be patient... + internal static let extracting = L10n.tr("Core", "service.alerts.download.hud.extracting") + } + } + internal enum MasksPrivateData { + internal enum Messages { + /// In order to safely reset the current debug log and apply the new masking preference, you must reconnect to the VPN now. + internal static let mustReconnect = L10n.tr("Core", "service.alerts.masks_private_data.messages.must_reconnect") + } + } + internal enum ReconnectVpn { + /// Do you want to reconnect to the VPN? + internal static let message = L10n.tr("Core", "service.alerts.reconnect_vpn.message") + } + internal enum Rename { + /// Rename profile + internal static let title = L10n.tr("Core", "service.alerts.rename.title") + } + internal enum TestConnectivity { + /// Connectivity + internal static let title = L10n.tr("Core", "service.alerts.test_connectivity.title") + internal enum Messages { + /// Your device has no Internet connectivity, please review your profile parameters. + internal static let failure = L10n.tr("Core", "service.alerts.test_connectivity.messages.failure") + /// Your device is connected to the Internet! + internal static let success = L10n.tr("Core", "service.alerts.test_connectivity.messages.success") + } + } + internal enum Trusted { + internal enum NoNetwork { + /// You are not connected to any Wi-Fi network. + internal static let message = L10n.tr("Core", "service.alerts.trusted.no_network.message") + } + internal enum WillDisconnectPolicy { + /// By changing the trust policy, the VPN may be disconnected. Continue? + internal static let message = L10n.tr("Core", "service.alerts.trusted.will_disconnect_policy.message") + } + internal enum WillDisconnectTrusted { + /// By trusting this network, the VPN may be disconnected. Continue? + internal static let message = L10n.tr("Core", "service.alerts.trusted.will_disconnect_trusted.message") + } + } + } + internal enum Cells { + internal enum ConnectionStatus { + /// Status + internal static let caption = L10n.tr("Core", "service.cells.connection_status.caption") + } + internal enum DataCount { + /// Exchanged data + internal static let caption = L10n.tr("Core", "service.cells.data_count.caption") + /// Unavailable + internal static let `none` = L10n.tr("Core", "service.cells.data_count.none") + } + internal enum DebugLog { + /// Debug log + internal static let caption = L10n.tr("Core", "service.cells.debug_log.caption") + } + internal enum MasksPrivateData { + /// Mask network data + internal static let caption = L10n.tr("Core", "service.cells.masks_private_data.caption") + } + internal enum Provider { + internal enum Pool { + /// Location + internal static let caption = L10n.tr("Core", "service.cells.provider.pool.caption") + } + internal enum Preset { + /// Preset + internal static let caption = L10n.tr("Core", "service.cells.provider.preset.caption") + } + } + internal enum Reconnect { + /// Reconnect + internal static let caption = L10n.tr("Core", "service.cells.reconnect.caption") + } + internal enum ReportIssue { + /// Report connectivity issue + internal static let caption = L10n.tr("Core", "service.cells.report_issue.caption") + } + internal enum ServerConfiguration { + /// Server configuration + internal static let caption = L10n.tr("Core", "service.cells.server_configuration.caption") + } + internal enum ServerNetwork { + /// Server network + internal static let caption = L10n.tr("Core", "service.cells.server_network.caption") + } + internal enum TestConnectivity { + /// Test connectivity + internal static let caption = L10n.tr("Core", "service.cells.test_connectivity.caption") + } + internal enum TrustedMobile { + /// Cellular network + internal static let caption = L10n.tr("Core", "service.cells.trusted_mobile.caption") + } + internal enum TrustedPolicy { + /// Trust disables VPN + internal static let caption = L10n.tr("Core", "service.cells.trusted_policy.caption") + } + internal enum UseProfile { + /// Use this profile + internal static let caption = L10n.tr("Core", "service.cells.use_profile.caption") + } + internal enum VpnResolvesHostname { + /// Resolve provider hostname + internal static let caption = L10n.tr("Core", "service.cells.vpn_resolves_hostname.caption") + } + internal enum VpnSurvivesSleep { + /// Keep alive on sleep + internal static let caption = L10n.tr("Core", "service.cells.vpn_survives_sleep.caption") + } + } + internal enum Sections { + internal enum Diagnostics { + /// Masking status will be effective after reconnecting. Network data are hostnames, IP addresses, routing, SSID. Credentials and private keys are not logged regardless. + internal static let footer = L10n.tr("Core", "service.sections.diagnostics.footer") + /// Diagnostics + internal static let header = L10n.tr("Core", "service.sections.diagnostics.header") + } + internal enum ProviderInfrastructure { + /// Last updated on %@. + internal static func footer(_ p1: Any) -> String { + return L10n.tr("Core", "service.sections.provider_infrastructure.footer", String(describing: p1)) + } + } + internal enum Trusted { + /// When entering a trusted network, the VPN is normally shut down and kept disconnected. Disable this option to not enforce such behavior. + internal static let footer = L10n.tr("Core", "service.sections.trusted.footer") + /// Trusted networks + internal static let header = L10n.tr("Core", "service.sections.trusted.header") + } + internal enum Vpn { + /// The connection will be established whenever necessary. + internal static let footer = L10n.tr("Core", "service.sections.vpn.footer") + } + internal enum VpnResolvesHostname { + /// Preferred in most networks and required in some IPv6 networks. Disable where DNS is blocked, or to speed up negotiation when DNS is slow to respond. + internal static let footer = L10n.tr("Core", "service.sections.vpn_resolves_hostname.footer") + } + internal enum VpnSurvivesSleep { + /// Disable to improve battery usage, at the expense of occasional slowdowns due to wake-up reconnections. + internal static let footer = L10n.tr("Core", "service.sections.vpn_survives_sleep.footer") + } + } + internal enum Welcome { + /// Welcome to Passepartout!\n\nUse the organizer to add a new profile. + internal static let message = L10n.tr("Core", "service.welcome.message") + } + } + internal enum Share { + /// Passepartout is an user-friendly, open source OpenVPN client for iOS and macOS + internal static let message = L10n.tr("Core", "share.message") + } + internal enum Shortcuts { + internal enum Add { + internal enum Alerts { + internal enum NoProfiles { + /// There is no profile to connect to. + internal static let message = L10n.tr("Core", "shortcuts.add.alerts.no_profiles.message") + } + } + internal enum Cells { + internal enum Connect { + /// Connect to + internal static let caption = L10n.tr("Core", "shortcuts.add.cells.connect.caption") + } + internal enum DisableVpn { + /// Disable VPN + internal static let caption = L10n.tr("Core", "shortcuts.add.cells.disable_vpn.caption") + } + internal enum EnableVpn { + /// Enable VPN + internal static let caption = L10n.tr("Core", "shortcuts.add.cells.enable_vpn.caption") + } + internal enum TrustCellular { + /// Trust cellular network + internal static let caption = L10n.tr("Core", "shortcuts.add.cells.trust_cellular.caption") + } + internal enum TrustCurrentWifi { + /// Trust current Wi-Fi + internal static let caption = L10n.tr("Core", "shortcuts.add.cells.trust_current_wifi.caption") + } + internal enum UntrustCellular { + /// Untrust cellular network + internal static let caption = L10n.tr("Core", "shortcuts.add.cells.untrust_cellular.caption") + } + internal enum UntrustCurrentWifi { + /// Untrust current Wi-Fi + internal static let caption = L10n.tr("Core", "shortcuts.add.cells.untrust_current_wifi.caption") + } + } + internal enum Sections { + internal enum Cellular { + /// Cellular + internal static let header = L10n.tr("Core", "shortcuts.add.sections.cellular.header") + } + internal enum Vpn { + /// VPN + internal static let header = L10n.tr("Core", "shortcuts.add.sections.vpn.header") + } + internal enum Wifi { + /// Wi-Fi + internal static let header = L10n.tr("Core", "shortcuts.add.sections.wifi.header") + } + } + } + internal enum Edit { + internal enum Sections { + internal enum All { + /// Existing shortcuts + internal static let header = L10n.tr("Core", "shortcuts.edit.sections.all.header") + } + } + } + } + internal enum Translations { + /// Translations + internal static let title = L10n.tr("Core", "translations.title") + } + internal enum Version { + /// Version + internal static let title = L10n.tr("Core", "version.title") + internal enum Labels { + /// Passepartout and TunnelKit are written and maintained by Davide De Rosa (keeshux).\n\nSource code for Passepartout and TunnelKit is publicly available on GitHub under the GPLv3, you can find links in the home page.\n\nPassepartout is a non-official client and is in no way affiliated with OpenVPN Inc. + internal static let intro = L10n.tr("Core", "version.labels.intro") + } + } + internal enum Vpn { + /// Active + internal static let active = L10n.tr("Core", "vpn.active") + /// Connecting + internal static let connecting = L10n.tr("Core", "vpn.connecting") + /// Disabled + internal static let disabled = L10n.tr("Core", "vpn.disabled") + /// Disconnecting + internal static let disconnecting = L10n.tr("Core", "vpn.disconnecting") + /// Inactive + internal static let inactive = L10n.tr("Core", "vpn.inactive") + internal enum Errors { + /// Auth failed + internal static let auth = L10n.tr("Core", "vpn.errors.auth") + /// Compression unsupported + internal static let compression = L10n.tr("Core", "vpn.errors.compression") + /// DNS failed + internal static let dns = L10n.tr("Core", "vpn.errors.dns") + /// Encryption failed + internal static let encryption = L10n.tr("Core", "vpn.errors.encryption") + /// No gateway + internal static let gateway = L10n.tr("Core", "vpn.errors.gateway") + /// Network changed + internal static let network = L10n.tr("Core", "vpn.errors.network") + /// Missing routing + internal static let routing = L10n.tr("Core", "vpn.errors.routing") + /// Server shutdown + internal static let shutdown = L10n.tr("Core", "vpn.errors.shutdown") + /// Timeout + internal static let timeout = L10n.tr("Core", "vpn.errors.timeout") + /// TLS failed + internal static let tls = L10n.tr("Core", "vpn.errors.tls") + } + } + internal enum Wizards { + internal enum Host { + internal enum Alerts { + internal enum Existing { + /// A host profile with the same title already exists. Replace it? + internal static let message = L10n.tr("Core", "wizards.host.alerts.existing.message") + } + } + } + internal enum Provider { + internal enum Alerts { + internal enum Unavailable { + /// Could not download provider infrastructure, please retry later. + internal static let message = L10n.tr("Core", "wizards.provider.alerts.unavailable.message") + } + } + internal enum Cells { + internal enum UpdateList { + /// Update list + internal static let caption = L10n.tr("Core", "wizards.provider.cells.update_list.caption") + } + } + } + } + } +} +// swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length +// swiftlint:enable nesting type_body_length type_name + +// MARK: - Implementation Details + +extension L10n { + private static func tr(_ table: String, _ key: String, _ args: CVarArg...) -> String { + let format = BundleToken.bundle.localizedString(forKey: key, value: nil, table: table) + return String(format: format, locale: Locale.current, arguments: args) + } +} + +// swiftlint:disable convenience_type +private final class BundleToken { + static let bundle: Bundle = { + Bundle(for: BundleToken.self) + }() +} +// swiftlint:enable convenience_type diff --git a/Passepartout/App/macOS/Global/TextInputViewController.swift b/Passepartout/App/macOS/Global/TextInputViewController.swift new file mode 100644 index 00000000..c91c29db --- /dev/null +++ b/Passepartout/App/macOS/Global/TextInputViewController.swift @@ -0,0 +1,92 @@ +// +// TextInputViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 7/3/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore + +protocol TextInputViewControllerDelegate: class { + func textInputController(_ textInputController: TextInputViewController, shouldEnterText text: String) -> Bool + + func textInputController(_ textInputController: TextInputViewController, didEnterText text: String) +} + +class TextInputViewController: NSViewController { + @IBOutlet private weak var labelTextCaption: NSTextField! + + @IBOutlet private weak var textPlain: NSTextField! + + @IBOutlet private weak var textSecure: NSSecureTextField! + + private var textField: NSTextField { + guard !isSecure else { + return textSecure + } + return textPlain + } + + @IBOutlet private weak var buttonOK: NSButton! + + @IBOutlet private weak var buttonCancel: NSButton! + + var caption = "" + + var text = "" + + var placeholder: String? + + var isSecure = false + + var object: Any? + + weak var delegate: TextInputViewControllerDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + + labelTextCaption.stringValue = caption + textField.stringValue = text + textField.placeholderString = placeholder + buttonOK.title = L10n.Core.Global.ok + buttonCancel.title = L10n.Core.Global.cancel + + textPlain.isHidden = isSecure + textSecure.isHidden = !isSecure + } + + @IBAction private func confirm(_ sender: Any?) { + let text = textField.stringValue + if let delegate = delegate { + guard delegate.textInputController(self, shouldEnterText: text) else { + textField.becomeFirstResponder() + return + } + } + delegate?.textInputController(self, didEnterText: text) + } + + override func cancelOperation(_ sender: Any?) { + dismiss(sender) + } +} diff --git a/Passepartout/App/macOS/Global/Theme+Views.swift b/Passepartout/App/macOS/Global/Theme+Views.swift new file mode 100644 index 00000000..1338de37 --- /dev/null +++ b/Passepartout/App/macOS/Global/Theme+Views.swift @@ -0,0 +1,99 @@ +// +// Theme+Views.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 7/29/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import TunnelKit + +extension NSTextField { + func applyVPN(_ theme: Theme, isActive: Bool, with vpnStatus: VPNStatus?, error: OpenVPNTunnelProvider.ProviderError?) { + guard isActive else { + stringValue = L10n.App.Vpn.unused + textColor = theme.palette.colorSecondaryText + return + } + guard let vpnStatus = vpnStatus else { + stringValue = L10n.Core.Vpn.disabled + textColor = theme.palette.colorSecondaryText + return + } + + switch vpnStatus { + case .connecting: + stringValue = L10n.Core.Vpn.connecting + textColor = theme.palette.colorIndeterminate + + case .connected: + stringValue = L10n.Core.Vpn.active + textColor = theme.palette.colorOn + + case .disconnecting: + stringValue = disconnectionReason(for: error) ?? L10n.Core.Vpn.disconnecting + textColor = theme.palette.colorIndeterminate + + case .disconnected: + stringValue = disconnectionReason(for: error) ?? L10n.Core.Vpn.inactive + textColor = theme.palette.colorOff + } + } + + private func disconnectionReason(for error: OpenVPNTunnelProvider.ProviderError?) -> String? { + guard let error = error else { + return nil + } + let V = L10n.Core.Vpn.Errors.self + switch error { + case .socketActivity, .timeout: + return V.timeout + + case .dnsFailure: + return V.dns + + case .tlsInitialization, .tlsServerVerification, .tlsHandshake: + return V.tls + + case .authentication: + return V.auth + + case .encryptionInitialization, .encryptionData: + return V.encryption + + case .serverCompression, .lzo: + return V.compression + + case .networkChanged: + return V.network + + case .routing: + return V.routing + + case .gatewayUnattainable: + return V.gateway + + default: + return nil + } + } +} diff --git a/Passepartout/App/macOS/Global/Theme.swift b/Passepartout/App/macOS/Global/Theme.swift new file mode 100644 index 00000000..80cf5c1c --- /dev/null +++ b/Passepartout/App/macOS/Global/Theme.swift @@ -0,0 +1,99 @@ +// +// Theme.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 7/29/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore + +struct Theme { + struct Palette { + var colorPrimaryText: NSColor = .labelColor + + var colorSecondaryText: NSColor = .secondaryLabelColor + + var colorOff: NSColor = .red + + var colorOn = NSColor(red: 0.0, green: 0.8, blue: 0.0, alpha: 1.0) + + var colorIndeterminate: NSColor = .orange + + var colorInline = NSColor(red: 0, green: 0.478431, blue: 1, alpha: 1) + } + + static let current = Theme() + + var palette: Palette + + private init() { + palette = Palette() + } +} + +// FIXME: load from index JSON +extension Infrastructure.Metadata { + var logo: NSImage? { + guard let image = ImageAsset.Image(named: name) else { + return Asset.Providers.placeholder.image + } + return image + } +} + +extension ConnectionProfile { + var image: NSImage? { + if let profile = self as? ProviderConnectionProfile { + return profile.infrastructure.metadata?.logo + } else { +// return NSImage(named: NSImage.applicationIconName)//smartBadgeTemplateName) + return nil + } + } +} + +extension PoolGroup { + var logo: NSImage? { + return ImageAsset(name: country.lowercased()).image + } +} + +extension NetworkChoice: CustomStringConvertible { + public var description: String { + switch self { + case .client: + return L10n.Core.NetworkChoice.client + + case .server: + return L10n.Core.NetworkChoice.server + + case .manual: + return L10n.Core.Global.Values.manual + } + } +} + +extension String { + var image: NSImage? { + return ImageAsset(name: lowercased()).image + } +} diff --git a/Passepartout/App/macOS/Global/WindowManager.swift b/Passepartout/App/macOS/Global/WindowManager.swift new file mode 100644 index 00000000..bac36ad2 --- /dev/null +++ b/Passepartout/App/macOS/Global/WindowManager.swift @@ -0,0 +1,93 @@ +// +// WindowManager.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 8/12/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore + +class WindowManager: NSObject { + static let shared = WindowManager() + + private var organizer: NSWindowController? + +// private var preferences: NSWindowController? + + private override init() { + } + + @discardableResult func showOrganizer() -> NSWindowController? { + organizer = presentWindowController( + StoryboardScene.Main.organizerWindowController, + existing: organizer, + title: L10n.App.Organizer.title(GroupConstants.App.name) + ) + return organizer + } + +// @discardableResult func showPreferences() -> NSWindowController? { +// preferences = presentWindowController( +// StoryboardScene.Preferences.initialScene.instantiate(), +// existing: preferences, +// title: L10n.App.Preferences.title(GroupConstants.App.name) +// ) +// return preferences +// } + + func showAbout() { + NSApp.orderFrontStandardAboutPanel(nil) + NSApp.activate(ignoringOtherApps: true) + } + + // MARK: Helpers + + private func presentWindowController(_ wcScene: SceneType, existing: NSWindowController?, title: String) -> NSWindowController? { + var wc: NSWindowController? + if existing == nil { + wc = wcScene.instantiate() + wc?.window?.title = title + wc?.window?.delegate = self + wc?.window?.center() + wc?.showWindow(nil) + } else { + existing?.window?.makeKeyAndOrderFront(self) + } + NSApp.activate(ignoringOtherApps: true) + return existing ?? wc + } +} + +extension WindowManager: NSWindowDelegate { + func windowWillClose(_ notification: Notification) { + switch notification.object as? NSWindowController { + case organizer: + organizer = nil + +// case preferences: +// preferences = nil + + default: + break + } + } +} diff --git a/Passepartout/App/macOS/Info.plist b/Passepartout/App/macOS/Info.plist new file mode 100644 index 00000000..19b236f1 --- /dev/null +++ b/Passepartout/App/macOS/Info.plist @@ -0,0 +1,75 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + ovpn + + CFBundleTypeName + OpenVPN Configuration + CFBundleTypeRole + Viewer + LSHandlerRank + Alternate + + + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(CFG_APP_VERSION) + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + ITSAppUsesNonExemptEncryption + + LSApplicationCategoryType + public.app-category.utilities + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + LSUIElement + + NSHumanReadableCopyright + $(CFG_COPYRIGHT) + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + NSUserActivityTypes + + ConnectVPNIntent + DisableVPNIntent + EnableVPNIntent + MoveToLocationIntent + TrustCellularNetworkIntent + TrustCurrentNetworkIntent + UntrustCellularNetworkIntent + UntrustCurrentNetworkIntent + + com.algoritmico.Passepartout.config + + app_launcher_id + $(CFG_APP_LAUNCHER_ID) + appcenter_secret + $(CFG_APPCENTER_SECRET) + appstore_id + $(CFG_APPSTORE_MACOS_ID) + group_id + $(CFG_TEAM_ID).group.$(CFG_GROUP_ID) + + + diff --git a/Passepartout/App/macOS/Launcher/AppDelegate.swift b/Passepartout/App/macOS/Launcher/AppDelegate.swift new file mode 100644 index 00000000..7f514e7f --- /dev/null +++ b/Passepartout/App/macOS/Launcher/AppDelegate.swift @@ -0,0 +1,63 @@ +// +// AppDelegate.swift +// PassepartoutLauncher +// +// Created by Davide De Rosa on 12/16/20. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa + +extension Notification.Name { + static let killLauncher = Notification.Name("killLauncher") +} + +@NSApplicationMain +class AppDelegate: NSObject { + @objc func terminate() { + NSApp.terminate(nil) + } +} + +extension AppDelegate: NSApplicationDelegate { + func applicationDidFinishLaunching(_ aNotification: Notification) { + let mainAppIdentifier = "com.algoritmico.macos.Passepartout" // XXX: hardcoded + let runningApps = NSWorkspace.shared.runningApplications + let isRunning = !runningApps.filter { $0.bundleIdentifier == mainAppIdentifier }.isEmpty + + if !isRunning { + DistributedNotificationCenter.default().addObserver(self, selector: #selector(terminate), name: .killLauncher, object: mainAppIdentifier) + + let path = Bundle.main.bundlePath as NSString + var components = path.pathComponents + components.removeLast() + components.removeLast() + components.removeLast() + components.append("MacOS") + components.append("Passepartout") // XXX: hardcoded + + let newPath = NSString.path(withComponents: components) + + NSWorkspace.shared.launchApplication(newPath) + } else { + terminate() + } + } +} diff --git a/Passepartout/App/macOS/Launcher/Assets.xcassets/AccentColor.colorset/Contents.json b/Passepartout/App/macOS/Launcher/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 00000000..eb878970 --- /dev/null +++ b/Passepartout/App/macOS/Launcher/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Passepartout/App/macOS/Launcher/Assets.xcassets/AppIcon.appiconset/Contents.json b/Passepartout/App/macOS/Launcher/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..3f00db43 --- /dev/null +++ b/Passepartout/App/macOS/Launcher/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,58 @@ +{ + "images" : [ + { + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Passepartout/App/macOS/Launcher/Assets.xcassets/Contents.json b/Passepartout/App/macOS/Launcher/Assets.xcassets/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/Passepartout/App/macOS/Launcher/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Passepartout/App/macOS/Launcher/Base.lproj/Main.storyboard b/Passepartout/App/macOS/Launcher/Base.lproj/Main.storyboard new file mode 100644 index 00000000..bb76ffca --- /dev/null +++ b/Passepartout/App/macOS/Launcher/Base.lproj/Main.storyboard @@ -0,0 +1,684 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout/App/macOS/Launcher/Info.plist b/Passepartout/App/macOS/Launcher/Info.plist new file mode 100644 index 00000000..d75166c3 --- /dev/null +++ b/Passepartout/App/macOS/Launcher/Info.plist @@ -0,0 +1,38 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + $(CFG_APP_VERSION) + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + LSApplicationCategoryType + public.app-category.utilities + LSBackgroundOnly + + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(CFG_COPYRIGHT) + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + + diff --git a/Passepartout/App/macOS/Launcher/Launcher.entitlements b/Passepartout/App/macOS/Launcher/Launcher.entitlements new file mode 100644 index 00000000..f2ef3ae0 --- /dev/null +++ b/Passepartout/App/macOS/Launcher/Launcher.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/Passepartout/App/macOS/Menu/MainMenu.swift b/Passepartout/App/macOS/Menu/MainMenu.swift new file mode 100644 index 00000000..9baba858 --- /dev/null +++ b/Passepartout/App/macOS/Menu/MainMenu.swift @@ -0,0 +1,35 @@ +// +// MainMenu.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 8/13/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa + +class MainMenu: NSObject { + @IBAction private func showPreferences(_ sender: Any?) { + guard let vc = NSApp.mainWindow?.contentViewController else { + return + } + vc.presentAsModalWindow(StoryboardScene.Preferences.initialScene.instantiate()) + } +} diff --git a/Passepartout/App/macOS/Menu/MainMenu.xib b/Passepartout/App/macOS/Menu/MainMenu.xib new file mode 100644 index 00000000..ac8696b0 --- /dev/null +++ b/Passepartout/App/macOS/Menu/MainMenu.xib @@ -0,0 +1,678 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout/App/macOS/Menu/StatusMenu.swift b/Passepartout/App/macOS/Menu/StatusMenu.swift new file mode 100644 index 00000000..53014a2f --- /dev/null +++ b/Passepartout/App/macOS/Menu/StatusMenu.swift @@ -0,0 +1,586 @@ +// +// StatusMenu.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 8/14/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import TunnelKit +import Convenience + +class StatusMenu: NSObject { + static let didAddProfile = Notification.Name("didAddProfile") + + static let didRenameProfile = Notification.Name("didRenameProfile") + + static let didRemoveProfile = Notification.Name("didRemoveProfile") + + static let willDeactivateProfile = Notification.Name("willDeactivateProfile") + + static let didActivateProfile = Notification.Name("didActivateProfile") + + static let didUpdateProfile = Notification.Name("didUpdateProfile") + + static let shared = StatusMenu() + + private let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength) + + private let service = TransientStore.shared.service + + private var vpn: GracefulVPN { + return GracefulVPN(service: service) + } + + // MARK: Button images + + private let imageStatus = Asset.Assets.statusBarButtonImage.image + + private lazy var imageStatusActive: NSImage = imageStatus.tinted(withColor: Theme.current.palette.colorOn) + + private lazy var imageStatusInactive: NSImage = imageStatus.tinted(withColor: Theme.current.palette.colorPrimaryText) + + private lazy var imageStatusInProgress: NSImage = imageStatus.tinted(withColor: Theme.current.palette.colorIndeterminate) + + // MARK: Menu references + + private let menu = NSMenu() + + private let menuAllProfiles = NSMenu() + + private var itemSwitchProfile: NSMenuItem? + + private var itemsAllProfiles: [NSMenuItem] = [] + + private var itemProfileName: NSMenuItem? + + private var itemsProfile: [NSMenuItem] = [] + + private var itemPool: NSMenuItem? + + private var itemToggleVPN: NSMenuItem? + + private var itemReconnectVPN: NSMenuItem? + + private override init() { + super.init() + + service.delegate = self + + let nc = NotificationCenter.default + nc.addObserver(self, selector: #selector(vpnDidUpdate), name: VPN.didChangeStatus, object: nil) + } + + deinit { + NotificationCenter.default.removeObserver(self) + } + + func install() { + guard let button = statusItem.button else { + return + } + button.image = imageStatus + + VPN.shared.prepare { + self.rebuild() + self.statusItem.menu = self.menu + } + } + + private func rebuild() { + menu.removeAllItems() + + // main windows + + let itemAbout = NSMenuItem(title: L10n.Core.Organizer.Cells.About.caption(GroupConstants.App.name), action: #selector(showAbout), keyEquivalent: "") + let itemOrganizer = NSMenuItem(title: L10n.App.Menu.Organizer.title.asContinuation, action: #selector(showOrganizer), keyEquivalent: "o") + let itemPreferences = NSMenuItem(title: L10n.App.Menu.Preferences.title.asContinuation, action: #selector(showPreferences), keyEquivalent: ",") + itemAbout.target = self + itemOrganizer.target = self + itemPreferences.target = self + menu.addItem(itemAbout) + menu.addItem(itemOrganizer) + menu.addItem(itemPreferences) + menu.addItem(.separator()) + + // profiles + + itemSwitchProfile = NSMenuItem(title: L10n.App.Menu.SwitchProfile.title, action: nil, keyEquivalent: "") + menu.addItem(itemSwitchProfile!) + reloadProfiles() + menu.addItem(.separator()) + + // active profile + + itemProfileName = NSMenuItem(title: "", action: nil, keyEquivalent: "") + menu.addItem(itemProfileName!) + setActiveProfile(service.activeProfile) + menu.addItem(.separator()) + + // support + + let menuSupport = NSMenu() + let itemCommunity = NSMenuItem(title: L10n.Core.Organizer.Cells.JoinCommunity.caption.asContinuation, action: #selector(joinCommunity), keyEquivalent: "") + let itemReview = NSMenuItem(title: L10n.Core.Organizer.Cells.WriteReview.caption.asContinuation, action: #selector(writeReview), keyEquivalent: "") +// let itemDonate = NSMenuItem(title: L10n.Core.Organizer.Cells.Donate.caption.asContinuation, action: #selector(showDonations), keyEquivalent: "") +// let itemGitHubSponsors = NSMenuItem(title: L10n.Core.Organizer.Cells.GithubSponsors.caption.asContinuation, action: #selector(seeGitHubSponsors), keyEquivalent: "") +// let itemTranslate = NSMenuItem(title: L10n.Core.Organizer.Cells.Translate.caption.asContinuation, action: #selector(offerToTranslate), keyEquivalent: "") + let itemFAQ = NSMenuItem(title: L10n.Core.About.Cells.Faq.caption.asContinuation, action: #selector(visitFAQ), keyEquivalent: "") + let itemReport = NSMenuItem(title: L10n.Core.Service.Cells.ReportIssue.caption.asContinuation, action: #selector(reportConnectivityIssue), keyEquivalent: "") + itemCommunity.target = self + itemReview.target = self +// itemDonate.target = self +// itemGitHubSponsors.target = self +// itemTranslate.target = self + itemFAQ.target = self + itemReport.target = self +// menuSupport.addItem(itemDonate) + menuSupport.addItem(itemCommunity) +// menuSupport.addItem(.separator()) +// menuSupport.addItem(itemGitHubSponsors) +// menuSupport.addItem(itemTranslate) + menuSupport.addItem(itemReview) + menuSupport.addItem(.separator()) + menuSupport.addItem(itemFAQ) + menuSupport.addItem(itemReport) + let itemSupport = NSMenuItem(title: L10n.App.Menu.Support.title, action: nil, keyEquivalent: "") + menu.setSubmenu(menuSupport, for: itemSupport) + menu.addItem(itemSupport) + menu.addItem(.separator()) + + // quit + + let itemQuit = NSMenuItem(title: L10n.App.Menu.Quit.title(GroupConstants.App.name), action: #selector(quit), keyEquivalent: "q") + itemQuit.target = self + menu.addItem(itemQuit) + } + + private func reloadProfiles() { + for item in itemsAllProfiles { + menuAllProfiles.removeItem(item) + } + itemsAllProfiles.removeAll() + + let sortedProfileKeys = service.allProfileKeys().sorted { + service.screenTitle($0).lowercased() < service.screenTitle($1).lowercased() + } + + for profileKey in sortedProfileKeys { + let title = service.screenTitle(profileKey) + let item = NSMenuItem(title: title, action: #selector(switchActiveProfile(_:)), keyEquivalent: "") + item.representedObject = profileKey + item.target = self + item.state = service.isActiveProfile(profileKey) ? .on : .off + menuAllProfiles.addItem(item) + itemsAllProfiles.append(item) + } + menu.setSubmenu(menuAllProfiles, for: itemSwitchProfile!) + } + + func refreshWithCurrentProfile() { + setActiveProfile(service.activeProfile) + } + + func setActiveProfile(_ profile: ConnectionProfile?) { + let startIndex = menu.index(of: itemProfileName!) + var i = startIndex + 1 + + for item in itemsProfile { + menu.removeItem(item) + } + itemsProfile.removeAll() + + guard let profile = profile else { + itemProfileName?.title = L10n.App.Menu.ActiveProfile.Title.none +// itemProfileName?.image = nil + itemToggleVPN = nil + itemReconnectVPN = nil + statusItem.button?.image = imageStatusInactive + return + } + + itemProfileName?.title = service.screenTitle(ProfileKey(profile)) +// itemProfileName?.image = profile.image + + let needsCredentials = service.needsCredentials(for: profile) + if !needsCredentials { + itemToggleVPN = NSMenuItem(title: L10n.App.Service.Cells.Vpn.TurnOn.caption, action: nil, keyEquivalent: "") + itemReconnectVPN = NSMenuItem(title: L10n.Core.Service.Cells.Reconnect.caption, action: #selector(reconnectVPN), keyEquivalent: "") + itemToggleVPN?.indentationLevel = 1 + itemReconnectVPN?.indentationLevel = 1 + itemToggleVPN?.target = self + itemReconnectVPN?.target = self + menu.insertItem(itemToggleVPN!, at: i) + i += 1 + menu.insertItem(itemReconnectVPN!, at: i) + i += 1 + + itemsProfile.append(itemToggleVPN!) + itemsProfile.append(itemReconnectVPN!) + } else { + let itemMissingCredentials = NSMenuItem(title: L10n.App.Menu.ActiveProfile.Messages.missingCredentials, action: nil, keyEquivalent: "") + itemMissingCredentials.indentationLevel = 1 + menu.insertItem(itemMissingCredentials, at: i) + i += 1 + itemsProfile.append(itemMissingCredentials) + } + + updateUIWithVPNStatus() + + if !needsCredentials, let providerProfile = profile as? ProviderConnectionProfile { + + // endpoint (port only) + let itemEndpoint = NSMenuItem(title: L10n.Core.Endpoint.title, action: nil, keyEquivalent: "") + itemEndpoint.indentationLevel = 1 + let menuEndpoint = NSMenu() + + // automatic + let itemEndpointAutomatic = NSMenuItem(title: L10n.Core.Endpoint.Cells.AnyProtocol.caption, action: #selector(connectToEndpoint(_:)), keyEquivalent: "") + itemEndpointAutomatic.target = self + if providerProfile.customProtocol == nil { + itemEndpointAutomatic.state = .on + } + menuEndpoint.addItem(itemEndpointAutomatic) + + for proto in profile.protocols { + let item = NSMenuItem(title: proto.description, action: #selector(connectToEndpoint(_:)), keyEquivalent: "") + item.representedObject = proto + item.target = self + if providerProfile.customProtocol == proto { + item.state = .on + } + menuEndpoint.addItem(item) + } + menu.setSubmenu(menuEndpoint, for: itemEndpoint) + menu.insertItem(itemEndpoint, at: i) + i += 1 + itemsProfile.append(itemEndpoint) + + // account + let itemAccount = NSMenuItem(title: L10n.Core.Account.title.asContinuation, action: #selector(editAccountCredentials(_:)), keyEquivalent: "") + menu.insertItem(itemAccount, at: i) + i += 1 + itemAccount.target = self + itemAccount.indentationLevel = 1 + itemsProfile.append(itemAccount) + + // customize + let itemCustomize = NSMenuItem(title: L10n.App.Menu.ActiveProfile.Items.Customize.title, action: #selector(customizeProfile(_:)), keyEquivalent: "") + menu.insertItem(itemCustomize, at: i) + i += 1 + itemCustomize.target = self + itemCustomize.indentationLevel = 1 + itemsProfile.append(itemCustomize) + + let itemSep1: NSMenuItem = .separator() + menu.insertItem(itemSep1, at: i) + i += 1 + itemsProfile.append(itemSep1) + +// guard poolDescription = providerProfile.pool?.localizedId else { +// fatalError("No pool selected?") +// } + itemPool = NSMenuItem(title: providerProfile.pool?.localizedId ?? "", action: nil, keyEquivalent: "") + menu.insertItem(itemPool!, at: i) + i += 1 + itemsProfile.append(itemPool!) + + let infrastructure = providerProfile.infrastructure + for category in infrastructure.categories { + let title = category.name.isEmpty ? L10n.App.Global.Values.default : category.name.capitalized + let submenu = NSMenu() + let item = NSMenuItem(title: title, action: nil, keyEquivalent: "") + item.indentationLevel = 1 + + for group in category.groups.sorted() { + var title = group.localizedCountry + if let area = group.area?.uppercased() { + title = "\(title) - \(area)" + } + + let itemGroup = NSMenuItem(title: title, action: #selector(connectToPool(_:)), keyEquivalent: "") + itemGroup.target = self + itemGroup.representedObject = group + + for pool in group.pools { + if pool.id == providerProfile.poolId { + itemGroup.state = .on + break + } + } + submenu.addItem(itemGroup) + } + menu.setSubmenu(submenu, for: item) + menu.insertItem(item, at: i) + i += 1 + itemsProfile.append(item) + } + } else { + + // account + let itemAccount = NSMenuItem(title: L10n.Core.Account.title.asContinuation, action: #selector(editAccountCredentials(_:)), keyEquivalent: "") + menu.insertItem(itemAccount, at: i) + i += 1 + itemAccount.target = self + itemAccount.indentationLevel = 1 + itemsProfile.append(itemAccount) + + // customize + let itemCustomize = NSMenuItem(title: L10n.App.Menu.ActiveProfile.Items.Customize.title, action: #selector(customizeProfile(_:)), keyEquivalent: "") + menu.insertItem(itemCustomize, at: i) + i += 1 + itemCustomize.target = self + itemCustomize.indentationLevel = 1 + itemsProfile.append(itemCustomize) + + let itemSep1: NSMenuItem = .separator() + menu.insertItem(itemSep1, at: i) + i += 1 + itemsProfile.append(itemSep1) + } + } + + // MARK: Actions + + @objc private func showAbout() { + WindowManager.shared.showAbout() + } + + @objc private func showOrganizer() { + WindowManager.shared.showOrganizer() + } + + @objc private func showPreferences() { + let organizer = WindowManager.shared.showOrganizer() + let preferences = StoryboardScene.Preferences.initialScene.instantiate() + organizer?.contentViewController?.presentAsModalWindow(preferences) + } + + @objc private func switchActiveProfile(_ sender: Any?) { + guard let item = sender as? NSMenuItem else { + return + } + guard let profileKey = item.representedObject as? ProfileKey, let profile = service.profile(withKey: profileKey) else { + return + } + + let wasConnected = (vpn.status == .connected) || (vpn.status == .connecting) + + // XXX: copy/paste from ServiceViewController.activateProfile() + service.activateProfile(profile) + vpn.disconnect(completionHandler: nil) + if wasConnected { + DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2)) { [weak self] in + self?.vpn.reconnect(completionHandler: nil) + } + } + } + + @objc private func enableVPN() { + vpn.reconnect(completionHandler: nil) + } + + @objc private func disableVPN() { + vpn.disconnect(completionHandler: nil) + } + + @objc private func reconnectVPN() { + vpn.reconnect(completionHandler: nil) + } + + @objc private func connectToPool(_ sender: Any?) { + guard let item = sender as? NSMenuItem else { + return + } + guard let group = item.representedObject as? PoolGroup else { + return + } + guard let profile = service.activeProfile as? ProviderConnectionProfile else { + return + } + assert(!group.pools.isEmpty) + service.setPoolId(group.pools.randomElement()!.id, forProviderProfile: profile) + vpn.reconnect(completionHandler: nil) + + // update menu + setActiveProfile(profile) + } + + @objc private func connectToEndpoint(_ sender: Any?) { + guard let item = sender as? NSMenuItem else { + return + } + guard let profile = service.activeProfile as? ProviderConnectionProfile else { + return + } + profile.customProtocol = item.representedObject as? EndpointProtocol + vpn.reconnect(completionHandler: nil) + + // update menu + setActiveProfile(profile) + } + + @objc private func editAccountCredentials(_ sender: Any?) { + let organizer = WindowManager.shared.showOrganizer() + let accountController = StoryboardScene.Service.accountViewController.instantiate() + accountController.profile = service.activeProfile + organizer?.contentViewController?.presentAsSheet(accountController) + } + + @objc private func customizeProfile(_ sender: Any?) { + let organizer = WindowManager.shared.showOrganizer() + let profileCustomization = StoryboardScene.Service.profileCustomizationContainerViewController.instantiate() + profileCustomization.profile = service.activeProfile + organizer?.contentViewController?.presentAsSheet(profileCustomization) + } + + @objc private func joinCommunity() { + NSWorkspace.shared.open(AppConstants.URLs.subreddit) + } + + @objc private func writeReview() { + let url = Reviewer.urlForReview(withAppId: AppConstants.App.appStoreId) + NSWorkspace.shared.open(url) + } + + @objc private func showDonations() { + NSWorkspace.shared.open(AppConstants.URLs.donate) + } + + @objc private func seeGitHubSponsors() { + NSWorkspace.shared.open(AppConstants.URLs.githubSponsors) + } + + @objc private func offerToTranslate() { + let V = AppConstants.Translations.Email.self + let recipient = V.recipient + let subject = V.subject + let body = V.body(V.template) + + guard let url = URL.mailto(to: recipient, subject: subject, body: body) else { + return + } + NSWorkspace.shared.open(url) + } + + @objc private func visitFAQ() { + NSWorkspace.shared.open(AppConstants.URLs.faq) + } + + @objc private func reportConnectivityIssue() { + let issue = Issue(debugLog: true, profile: TransientStore.shared.service.activeProfile) + IssueReporter.shared.present(withIssue: issue) + } + + @objc private func quit() { + NSApp.terminate(self) + } + + // MARK: Notifications + + @objc private func vpnDidUpdate() { + reloadVpnStatus() + } + + // MARK: Helpers + + private func reloadVpnStatus() { + guard service.hasActiveProfile() else { + return + } + updateUIWithVPNStatus() + } + + private func updateUIWithVPNStatus() { + if vpn.isEnabled { + itemToggleVPN?.title = L10n.App.Service.Cells.Vpn.TurnOff.caption + itemToggleVPN?.action = #selector(disableVPN) + } else { + itemToggleVPN?.title = L10n.App.Service.Cells.Vpn.TurnOn.caption + itemToggleVPN?.action = #selector(enableVPN) + } + + switch vpn.status ?? .disconnected { + case .connected: + statusItem.button?.image = imageStatusActive + + Reviewer.shared.reportEvent() + + case .connecting: + statusItem.button?.image = imageStatusInProgress + + case .disconnected: + statusItem.button?.image = imageStatusInactive + + case .disconnecting: + statusItem.button?.image = imageStatusInProgress + } + } +} + +extension StatusMenu: ConnectionServiceDelegate { + func connectionService(didAdd profile: ConnectionProfile) { + TransientStore.shared.serialize(withProfiles: false) // add + reloadProfiles() + + NotificationCenter.default.post(name: StatusMenu.didAddProfile, object: profile) + } + + func connectionService(didRename profile: ConnectionProfile, to newTitle: String) { + TransientStore.shared.serialize(withProfiles: false) // rename + reloadProfiles() + + NotificationCenter.default.post(name: StatusMenu.didRenameProfile, object: profile) + } + + func connectionService(didRemoveProfileWithKey key: ProfileKey) { + TransientStore.shared.serialize(withProfiles: false) // delete + reloadProfiles() + + NotificationCenter.default.post(name: StatusMenu.didRemoveProfile, object: key) + } + + func connectionService(willDeactivate profile: ConnectionProfile) { + TransientStore.shared.serialize(withProfiles: false) // deactivate + reloadProfiles() + setActiveProfile(nil) + + NotificationCenter.default.post(name: StatusMenu.willDeactivateProfile, object: profile) + } + + func connectionService(didActivate profile: ConnectionProfile) { + TransientStore.shared.serialize(withProfiles: false) // activate + reloadProfiles() + setActiveProfile(profile) + + NotificationCenter.default.post(name: StatusMenu.didActivateProfile, object: profile) + } + + func connectionService(didUpdate profile: ConnectionProfile) { + guard let providerProfile = profile as? ProviderConnectionProfile else { + return + } + itemPool?.title = providerProfile.pool?.localizedId ?? "" + + NotificationCenter.default.post(name: StatusMenu.didUpdateProfile, object: profile) + } +} diff --git a/Passepartout/App/macOS/Providers.xcassets/Contents.json b/Passepartout/App/macOS/Providers.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/Passepartout/App/macOS/Providers.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Providers.xcassets/csv.imageset/Contents.json b/Passepartout/App/macOS/Providers.xcassets/csv.imageset/Contents.json new file mode 100644 index 00000000..68bb32b9 --- /dev/null +++ b/Passepartout/App/macOS/Providers.xcassets/csv.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "csv@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "csv@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Passepartout/App/macOS/Providers.xcassets/csv.imageset/csv@2x.png b/Passepartout/App/macOS/Providers.xcassets/csv.imageset/csv@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1c79287bd13300eb97ba9a1e90c6cf8cca02c16e GIT binary patch literal 3435 zcmV-x4V3bUP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 F^*_8i=R^Pi literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Providers.xcassets/mullvad.imageset/Contents.json b/Passepartout/App/macOS/Providers.xcassets/mullvad.imageset/Contents.json new file mode 100644 index 00000000..89ebd272 --- /dev/null +++ b/Passepartout/App/macOS/Providers.xcassets/mullvad.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "mullvad@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "mullvad@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Providers.xcassets/mullvad.imageset/mullvad@2x.png b/Passepartout/App/macOS/Providers.xcassets/mullvad.imageset/mullvad@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ede91d9c0e52ab99a0a2cdbeff572e9f96f4b4b GIT binary patch literal 3282 zcmV;@3@!7CP)W1R~)P2!Zg*AOb-GSrd_{n4p4M zVHFo;MOR?){lFLOYIF-lQL%Ja1bjbA)N)0^09CrKwejqSnL7?~lH5rGZk3#>^I@iv zKKD2O)2GkvZh$j(#(tZIh&>Up=db-7r^OKQEJW;$h<(F;*023cr_{pgo{fm-AYy++ zOhClmaSYJ|QjNag^7Kz0DiRZEUUK4)yyT=*BMDN*Ccxm_a{!E9rwkw-3#;2JtZct9 zY%(I+5b?Y=|50K69GcJLpuWo-y7-f#^T&wJUn08rP@&?4Ld6e+ibF)_uPM6Np-{2e zq48_%nlTPsuKob<>ts+l5z&r_JwktN^y-^xq$)aJLn!~8P=SPs zCkYb`L>C6pg<;oZmN_;_H&V^-RVJzlm0J}mjw@80Ai96EZI~|`QjNZ+6V_C>PYiVx zL>z>OLzYf`eR?+GXoW5wq;@qOSpBK(pvVHUY zkNFXCBqE-lHg+OYsJNLhc{m1O2QI!>skqOf%YgYTNm)h`VWNRh@tK42YXDAx+F^Cg zr6^im`;j9@1_jC%Uq5F2?5}55UU@kp4oAd{n$@>dT{L_7eq+i496Dw~oS-qBibI6T z73MS9HJL@2_|&2K?*yBte|H17RyPR|ZQp$Jjha7c{+67=^5b=DZ!1DX=j;34zFb{U#bae^>D&3r~eDi? z;M|n%R5t+;Q}QPTugUb69bdbC^VsI*=G3C{s=M41DlmWId@Pu<0R2-Jo}})?xz#wi z;xe4J;BqWmcmy_aIs37 zcJT_X`%1s7TzP{)#NSobt($gX(cB+B#TA%8Y5qy-jxS$|6J{@qs9U<=a-6YfCC*xM z70#_%g+|FGI7ayJf!i2X^ti#!tUWNB; zuEyPeTaG8*Em1{Ps zSz^W~7Z%M$Q(Ys5x|8NrpQLVi<(0Ve(PjAR%TFO9;ybUb!j^Zk+l6j9kcJQ3#yVWH z%~n-qa=k<2j{s!H^HOuN^&d250HOR}L>C4C0AZp*WfBKv6{5>C8Alh+j;LEWBUG%S z)t!FH3Y@ukC0@091^)BJ8_=}R58R9`@8@+0+;SidSFOltUuh%{vu6#leWWQ-UX}d(Y--Y-)Nm0vu8}#}aVMfixV= z+b?Q_$_i5uhtBWqoXR#=e?s|3(J5mFaOUusfd^+5BJ)kh>e@M2e_b`MUUL~Pue$=D z-o6ZXKD8MU5#Rd9v-rdNGcCim97w}WjaeP2Ecco!6Ux6zPWRHdc~dgDBvc#%07#^H z$tn}yn*mCSedx^LnCXrUKAIc&(8f$`d3P+fd{m4rp9b;7dyDYn*X!^?Wo+UQ2%xD^7d48akt9k`tTqXDwB9YegK;`&c{u40jyu-#X!K1wG{<1 zy<~z9M{@%oyq#jp!C~0)?ig%&cXV8!rtjZ5!oo5o?*IUBP(GPZaR3HppKF=ct{LYM z$`6{qn##m8DwFuh6U!0bSc_jhUV-~IxI6TwHEx_U)j(ISKLp+hSj!4Cc^I;@dxwgb z_$g6$53>xMobIKBisJwP;2htFFmX&}5)VGO1o4fv_|Bc&5^yxQ$H%d8^{7q(|8
  • tHV3>QKY$NiUlbRt>3i0>F;M8kU@#Y(_YR8- zxTB>hYKf`@2vuuE=XY2JCX`=GsC)qcK+*V&=;~ZKvjCgc#t&?IWx0W(*o*sjS}R=5 zdxu$SHKXTo2v{_Mrk!nt_bj{Szl$)@5K>rN9Ss~P^kJquzLak5jZ3|Ff!DxIjaeN6 zH?AIK`K5wT@pk|Kq6>pizTaZuD(&f@;$9P&P;q0d!E1vBU4m{}6H4)tG7s)~IHS`| zN38WYyc7DNT{GI=M*i8ddn?rcqzSB0c}H6THrC{K3EEUU)6G#7dvQ}^)=Bf*N_9TT zsd&!>R;V}(HkXxcAfuN<EjXo7TGH2WH~IkVvvZ(Z#EfnriLT!mja4&9|h`F-XV3GTrf|_qMt` ztPK{l`9tkl=Z;(DNLDh@pipri09ZTTO&MMwRVw!Z0HiQuu+@Oh9FC1u?H979wV`%% z&Qznr)UFK{#GBHk0FljrYb?P603;5{OIDaTM$(N`fY3%+Jb_~=x4prGbEX>T%;DIu z&}+GnS%(!rB@Y#eVTC^(kRgO+U~rD_Lv-;>k&X z1~x9W25Ndqu`iwq{Te{%L{g#Rc;b+}Wb42H;26nkR4SeTh@9qG4&G6^TJ`u+T2ups z4&Oq1TXAmNCS|zKSE%^W{7k5LJ|5_9snl!SZSJnLDptoL=}g6o4xP`A3pQ-M70usd z{&H5Ub$2SfZ-cc;ZSGNr8;--^>f}M&0L||wOdK=Me9eu3_B_+wy=!v)qV@|HVe)W_ zb9{oCg@p2JI|UmuXCFo9JAdx01tm=Wx2@pL9FE)T^STYz^f^=8d4bU7;wW{$gkf$+ z7k~khG$Tu){0no5Qm9zjR`Bk4nP|&n&Sff}1%Ms^p{3KN`4@Bv)-;>$uUDCT)BH@R z+!718q}bQ(EoNH^6DszbsjM=&UeWnZ0E?|;hc-C(974qlgvu?UFN|J@s{$J#1fT}|(8b$PM(y{ULl z&G4TOU|xZcn3C?B+O4pr*{R=4s5okNU;v?w@3!W2pwNdKYw|5CzGs~q8>{j$P}oL? zMdcd~J#@_>d}4UiPW?+y39M;_1Rrm}qur{IXLDYubR3K2E6o_UAbbK%Dt@LdD%y zn-i-}nAoMTfF6lMWrd>ipA_b=J}t1OC8gzMDwMyXGWn*tWB~x!HN&Y=abK4~seHja z`2a8v%H$S8#b?S$-=xzD8?jWQuU+%6Bvc$#skkNj7M{Waj?n!{u~TKD*&3*Li7?S% z%j6@X!w@Fw6(*V$DmK|%o`I(yw3Q`fc!xVQ{}zRbX2L{$>+6RA0CvqFMB}4XU6d#~ zUq+~0p)fhqp-Im`O$>=OE@6BgVd7Jw^JnZCelJ+v!8lFUYrt@ChF$mnkx+3&W%5mh z$>q_vXFD>IZln^%=c!aYPN+bIiu-NpzJk+wqqY;)BPrELa*X6Piq3ZsDn3(~XeN~J zHk%j1L_J}mUZvueaKpcwP;rP*aa5uFdAlZVw7EPk0Bc7j|3_x@vbj9{6NY++J9J~V zP4nHP=zP7R^IH|&cdMfFTOA{Pe^97zp)JEdD#bZA!RmR?89QTV?6+zE16(fj)05Qc QlK=n!07*qoM6N<$f*dSK-T(jq literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Providers.xcassets/mullvad.imageset/mullvad@3x.png b/Passepartout/App/macOS/Providers.xcassets/mullvad.imageset/mullvad@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4fc64944674e69da9db5157d92d946d032223c4a GIT binary patch literal 5168 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Providers.xcassets/nordvpn.imageset/nordvpn@2x.png b/Passepartout/App/macOS/Providers.xcassets/nordvpn.imageset/nordvpn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a8db1e304d361dabc2f9bae38573d0a22f0db4c9 GIT binary patch literal 2211 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Providers.xcassets/pia.imageset/Contents.json b/Passepartout/App/macOS/Providers.xcassets/pia.imageset/Contents.json new file mode 100644 index 00000000..8a2923a3 --- /dev/null +++ b/Passepartout/App/macOS/Providers.xcassets/pia.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "pia@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "pia@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Providers.xcassets/pia.imageset/pia@2x.png b/Passepartout/App/macOS/Providers.xcassets/pia.imageset/pia@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..92ce04c66b72c37510160afa2d1b378e352d0761 GIT binary patch literal 6709 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Providers.xcassets/placeholder.imageset/placeholder@3x.png b/Passepartout/App/macOS/Providers.xcassets/placeholder.imageset/placeholder@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1dc8aed71d220bc60830ad8a04efaa44ce362982 GIT binary patch literal 3468 zcmZ`+cRbXO|9_t|&OUp@8E12{$C(#$&N#b_sXwb_pe? z^7$Cy$_&-l=g;3CzsKwGd_7<5`FQ>H`s0;iYh%vNBFq8+0J{a+)c%ZJ{{w{a% zIa`>b9B(del>}vpIPneNIgC8)IpDg`Z0Ti;hDez4W{ErXU`#P&l1yAyxj3j_+beI| z%Y}dSYr<_5hDcLdinO`tbh1)`P9+ zt?jpj$?pv(&o^owZ1*j-|Gjlm95LB@D1st4;T(*TYe-0E;|l=R$YPqxrhoHJSuK1)xo03sKs* zIi*XNB1coE@zc~AXa5@5-wv-uXXdW4w;vJ(dXnf~vryrbeah2-=JDi5>gh7afmC_w z4RN{5xFnj4m$28MX zY3tU@M*eHI&Ie<*W28x@z=!^67m$`L1Yq`&A@s7Q+!h(C!p0*9;^3)Xkb>vrOH z4LUr2aC6sFVRRv=qM!(7x?r2z+&b*@>CWYKy;QY>?Zt(?!E>+fjsJ##Fp9m>#zuI7 z#;T>Xq{KVGA#&tpVZcX6$@$M^a)DK5OslFi5J9mIjBYI|f&MV0B2&VNcR(3*a~}9W zlltzE@;B%|IyBZ+UsbVex(3D=;!Cg#ls)BsSF&nRoN6F*_Xkgh|A*v%q8{7>iHq5l-XUT7`*2dStbyd86oMuarhTf{| zj-frecOw~nAE0b@3$&fA0+6LBd=D?yU>it!DL%k;(eb=Z(ww9={{+$%~CT^66(6P z#;}b#F;{TCVJF1MK`7Gv8 z=KV*fZt_#!gPV-!L$S@z#6yJY*0xH!+?B}%Z^r9R_&JoB8cYriQfX%9P2872ms)Es z4q^)LZ%^oyUu?JTOvRae;q%77**XWA@q&3e(3cEzyjiIJ#x39Q2m--{mJV zb}IuEmMPQWY1eSj%2&c(yzR+7+xN zdZe5;;fD&v5DzW)6sj0ZNj9END4_}ODy>ev)MSvqh2KCk31U#_r$Bs=ta<10Klpp2 z8ZCLQbWd$dFU|Vb^_1x~^c2%!%sotT^Og{M#TfLSvW#}FOzby$9gbj1pxyJGBG?5_ ze;L7rsEz|&%t~5;?oJX#XfpeAR6zJk`^#74&qS$x!4eD?KS{obV}6z8v#h(A@l5~e zZ&UDCSkvr-YHZESV%{b$)6a6kVo&*^VDpAR*5zhMYyf>;$S-u?+x!6(G|e|2C9J0kx3o8LJ(GroT9R^Uc3^nhDr}h_)I@m znswFI{u4$l*E2|6%~enxRWy^?w^vv@U#9zQD`NtT^l_)wWp;J}#Zi?La^ne%bH$pY7N=CT~pkS2F?SKS?FBUF05#-^zn;=Xpl zp2(^vyK~4hkoCM?Bfv7Qe{xAygrmd*u5?M5_WIU(ak>ARsv3bi);*74;OB)nHye(b#qEkW@PMG^mF77ey^14^XhtzlDD5b9BN(xH!?vjbx8946TL_GNcuP-2- z%G=%3YvbeWS_AHeCb{JFFr8rMgrBFP36A}La_;t+&)hL%{L!%Rm2nRu8^{Rh|s(%U<$G27@#(_>9Dsuviabymw2ARn$TuJqTM+O zdbmrGx6okC;1nM??iSy=3hy?nftLD6ihTG?a73O}UObl!pz7S>aImnHM=gK2=scw|W(}J#N z7fpvBMimK8W}zeFVYk+qZj&aorg_=kyuw@kQUB7oW!+z{Ll|2G6_2K_k5Q9#bzOUNp`S0|8T18faI^h zR(BXZw5DxD&T!YN!Bx8M$E`I=jD+#8h@mIfKD=uGd4b1f5*$@tuSV}cPNVbNi?MXm zdj8m3_9{wF_4f<=v~bq!Z~jw(SPtIEw;DG_(q29hUl?1}l+aD%@K^sZ6R(jf8W0u+ z-I#ptR6tS4+9J3gG8NNssY5V{MXzYQ;C-%Lr~e0=xjMzM>q(__r&5bf9rvcJDESl< za=&5g?(Gh|cv^)|cEv)@*Z@z2^7!Y00BsZ1@lq%ZtN+teP8*^f_AU6<;7F1oOA6eG z%&*uYkIJwN{4zqM_PZ46s3oTtos0?mDO^KqCplIH1%xWRD_M&cAUamj*+#(muIbi5 zIgt7bbr#!hlwzxGw+#6ir$-svG}F9>7;R+s&Kt*yTK@RqjQahLuhYv`!I*Q}habYl z@?<@)CTv3xCjPW_pJV#(C)04z7G==MUqFc-d&79XkM->7kS3U2Civh8zDVzI-!lT# zR8(~lswxOoRYz5Iq>2VoT|-et4XL7nbMKP;KZ4*;pFqFp|6c$F(UqPFg#O#$5b8&W o!iD<+QBhIKfgwQ=-Z;Fka%i}J(YC(u*$`l1W@FlL!Sn9_05H`kPXGV_ literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Providers.xcassets/protonvpn.imageset/Contents.json b/Passepartout/App/macOS/Providers.xcassets/protonvpn.imageset/Contents.json new file mode 100644 index 00000000..148aaa0a --- /dev/null +++ b/Passepartout/App/macOS/Providers.xcassets/protonvpn.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "protonvpn@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "protonvpn@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Providers.xcassets/protonvpn.imageset/protonvpn@2x.png b/Passepartout/App/macOS/Providers.xcassets/protonvpn.imageset/protonvpn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f5b035227f227d92da6d12d6baa8a430913afb4a GIT binary patch literal 3179 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Providers.xcassets/torguard.imageset/Contents.json b/Passepartout/App/macOS/Providers.xcassets/torguard.imageset/Contents.json new file mode 100644 index 00000000..69d95d66 --- /dev/null +++ b/Passepartout/App/macOS/Providers.xcassets/torguard.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "torguard@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "torguard@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Passepartout/App/macOS/Providers.xcassets/torguard.imageset/torguard@2x.png b/Passepartout/App/macOS/Providers.xcassets/torguard.imageset/torguard@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..32710a2d7e55a9bbceab654d0b2ba069e6cdf1d6 GIT binary patch literal 4448 zcmV-m5ufgfP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@3x.png b/Passepartout/App/macOS/Providers.xcassets/tunnelbear.imageset/tunnelbear@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..973baf5ced89f9a8d94501d2f194a12f45f4b1b3 GIT binary patch literal 4755 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Providers.xcassets/vyprvpn.imageset/Contents.json b/Passepartout/App/macOS/Providers.xcassets/vyprvpn.imageset/Contents.json new file mode 100644 index 00000000..34292c4b --- /dev/null +++ b/Passepartout/App/macOS/Providers.xcassets/vyprvpn.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "vyprvpn@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "vyprvpn@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Passepartout/App/macOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@2x.png b/Passepartout/App/macOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..07db8402ca4c3e0974c55426264d695296b681cb GIT binary patch literal 3955 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 literal 0 HcmV?d00001 diff --git a/Passepartout/App/macOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@3x.png b/Passepartout/App/macOS/Providers.xcassets/vyprvpn.imageset/vyprvpn@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee302b25ac93b225c5558b40358ad55e4747336 GIT binary patch literal 6758 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. +// + +import Cocoa +import PassepartoutCore + +protocol OrganizerProfileTableViewDelegate: class { + func profileTableViewDidRequestAdd(_ profileTableView: OrganizerProfileTableView, sender: NSView) + + func profileTableView(_ profileTableView: OrganizerProfileTableView, didRequestRemove profile: ConnectionProfile) + + func profileTableView(_ profileTableView: OrganizerProfileTableView, didRequestRename profile: HostConnectionProfile) +} + +class OrganizerProfileTableView: NSView { + @IBOutlet private weak var tableView: NSTableView! + + @IBOutlet private weak var buttonAdd: NSButton! + + @IBOutlet private weak var buttonRemove: NSButton! + + @IBOutlet private weak var buttonRename: NSButton! + + private let service = TransientStore.shared.service + + var rows: [ConnectionProfile] = [] + + var selectedRow: Int? + + var selectionBlock: ((ConnectionProfile) -> Void)? + + var deselectionBlock: (() -> Void)? + + private var isAddEnabled: Bool { + get { + return buttonAdd.isEnabled + } + set { + buttonAdd.isEnabled = newValue + } + } + + private var isRemoveEnabled: Bool { + get { + return buttonRemove.isEnabled + } + set { + buttonRemove.isEnabled = newValue + } + } + + private var isRenameEnabled: Bool { + get { + return buttonRename.isEnabled + } + set { + buttonRename.isEnabled = newValue + } + } + + weak var delegate: OrganizerProfileTableViewDelegate? + + override func viewWillMove(toSuperview newSuperview: NSView?) { + super.viewWillMove(toSuperview: newSuperview) + + buttonAdd.image = NSImage(named: NSImage.addTemplateName) + buttonRemove.image = NSImage(named: NSImage.removeTemplateName) + buttonRename.image = NSImage(named: NSImage.actionTemplateName) + } + + func reloadData() { + tableView.reloadData() + if let i = selectedRow { + tableView.selectRowIndexes(IndexSet(integer: i), byExtendingSelection: false) + } + updateButtonsStatus() + } + + // MARK: Actions + + @IBAction private func addProfile(_ sender: Any?) { + delegate?.profileTableViewDidRequestAdd(self, sender: sender as! NSButton) + } + + @IBAction private func removeProfile(_ sender: Any?) { + let index = tableView.selectedRow + guard index != -1 else { + return + } + delegate?.profileTableView(self, didRequestRemove: rows[index]) + } + + @IBAction private func renameProfile(_ sender: Any?) { + let index = tableView.selectedRow + guard index != -1 else { + return + } + guard let hostProfile = rows[index] as? HostConnectionProfile else { + return + } + delegate?.profileTableView(self, didRequestRename: hostProfile) + } + + // MARK: Helpers + + private func updateButtonsStatus() { + let index = tableView.selectedRow + guard index != -1 else { + isRemoveEnabled = false + isRenameEnabled = false + deselectionBlock?() + return + } + isRemoveEnabled = true + isRenameEnabled = (rows[index] as? HostConnectionProfile != nil) + } +} + +class OrganizerProfileTableViewCell: NSTableCellView { + @IBOutlet private weak var imageActive: NSImageView? + + override var objectValue: Any? { + didSet { + guard let objectValue = objectValue else { + return + } + guard let pair = objectValue as? (ConnectionService, ConnectionProfile) else { + fatalError("objectValue is not a (ConnectionService, ConnectionProfile)") + } + imageView?.image = pair.1.image + textField?.stringValue = pair.0.screenTitle(ProfileKey(pair.1)) + + // FIXME: active profile icon + imageActive?.image = NSImage(named: NSImage.menuOnStateTemplateName) + imageActive?.isHidden = !TransientStore.shared.service.isActiveProfile(pair.1) + } + } +} + +extension OrganizerProfileTableView: NSTableViewDataSource, NSTableViewDelegate { + func numberOfRows(in tableView: NSTableView) -> Int { + return rows.count + } + + func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? { + return (service, rows[row]) + } + + func tableViewSelectionDidChange(_ notification: Notification) { + updateButtonsStatus() + + let index = tableView.selectedRow + if index != -1 { + selectionBlock?(rows[index]) + } + } +} diff --git a/Passepartout/App/macOS/Scenes/OrganizerProfileTableView.xib b/Passepartout/App/macOS/Scenes/OrganizerProfileTableView.xib new file mode 100644 index 00000000..a6ada462 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/OrganizerProfileTableView.xib @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout/App/macOS/Scenes/OrganizerViewController.swift b/Passepartout/App/macOS/Scenes/OrganizerViewController.swift new file mode 100644 index 00000000..83e13e64 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/OrganizerViewController.swift @@ -0,0 +1,358 @@ +// +// OrganizerViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/6/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import TunnelKit +import SwiftyBeaver + +private let log = SwiftyBeaver.self + +class OrganizerViewController: NSViewController { + @IBOutlet private weak var viewProfiles: NSView! + + private lazy var tableProfiles: OrganizerProfileTableView = .get() + + @IBOutlet private weak var buttonRemoveConfiguration: NSButton! + + @IBOutlet private weak var serviceController: ServiceViewController? + + private let service = TransientStore.shared.service + + private var profiles: [ConnectionProfile] = [] + + private var importer: HostImporter? + + private var profilePendingRemoval: ConnectionProfile? + + deinit { + NotificationCenter.default.removeObserver(self) + } + + override func viewDidLoad() { + super.viewDidLoad() + + viewProfiles.addSubview(tableProfiles) + tableProfiles.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + tableProfiles.topAnchor.constraint(equalTo: viewProfiles.topAnchor), + tableProfiles.bottomAnchor.constraint(equalTo: viewProfiles.bottomAnchor), + tableProfiles.leftAnchor.constraint(equalTo: viewProfiles.leftAnchor), + tableProfiles.rightAnchor.constraint(equalTo: viewProfiles.rightAnchor), + ]) + + buttonRemoveConfiguration.title = L10n.Core.Organizer.Cells.Uninstall.caption + + tableProfiles.selectionBlock = { [weak self] in + self?.serviceController?.setProfile($0) + } + tableProfiles.deselectionBlock = { [weak self] in + self?.serviceController?.setProfile(nil) + } + tableProfiles.delegate = self + reloadProfiles() + tableProfiles.reloadData() + + let nc = NotificationCenter.default + nc.addObserver(self, selector: #selector(menuDidAddProfile(_:)), name: StatusMenu.didAddProfile, object: nil) + nc.addObserver(self, selector: #selector(menuDidRenameProfile(_:)), name: StatusMenu.didRenameProfile, object: nil) + nc.addObserver(self, selector: #selector(menuDidRemoveProfile(_:)), name: StatusMenu.didRemoveProfile, object: nil) + nc.addObserver(self, selector: #selector(menuDidActivateProfile(_:)), name: StatusMenu.didActivateProfile, object: nil) + } + + // MARK: Actions + + @objc private func addProvider(_ sender: Any?) { + guard let item = sender as? NSMenuItem, let metadata = item.representedObject as? Infrastructure.Metadata else { + return + } + perform(segue: StoryboardSegue.Main.enterAccountSegueIdentifier, sender: metadata.name) + } + + @objc private func addHost() { + let panel = NSOpenPanel() + + panel.title = L10n.App.Organizer.Alerts.OpenHostFile.title + panel.allowsMultipleSelection = false + panel.canChooseDirectories = false + panel.canChooseFiles = true + panel.canCreateDirectories = false + panel.allowedFileTypes = ["ovpn"] + + guard panel.runModal() == .OK, let url = panel.url else { + return + } + + importer = HostImporter(withConfigurationURL: url) + importer?.importHost(withPassphrase: nil) + } + + @objc private func updateProvidersList() { + InfrastructureFactory.shared.updateIndex { + if let error = $0 { + log.error("Unable to update providers list: \(error)") + return + } + +// ProductManager.shared.listProducts { (products, error) in +// if let error = error { +// log.error("Unable to list products: \(error)") +// return +// } +// } + } + } + + private func confirmRenameProfile(_ profile: ConnectionProfile, to newTitle: String) { + + // rename to existing title -> confirm overwrite existing + if let existingProfile = service.hostProfile(withTitle: newTitle) { + let alert = Macros.warning( + L10n.Core.Service.Alerts.Rename.title, + L10n.Core.Wizards.Host.Alerts.Existing.message + ) + alert.present(in: view.window, withOK: L10n.Core.Global.ok, cancel: L10n.Core.Global.cancel, handler: { + self.doReplaceProfile(profile, to: newTitle, existingProfile: existingProfile) + }, cancelHandler: nil) + return + } + + // do nothing if same title + if newTitle != service.screenTitle(forHostId: profile.id) { + service.renameProfile(profile, to: newTitle) + } + } + + private func doReplaceProfile(_ profile: ConnectionProfile, to newTitle: String, existingProfile: ConnectionProfile) { + let wasActive = service.isActiveProfile(existingProfile) + service.removeProfile(ProfileKey(existingProfile)) + service.renameProfile(profile, to: newTitle) + if wasActive { + service.activateProfile(profile) + } + serviceController?.setProfile(profile) + } + + @IBAction private func confirmVpnProfileDeletion(_ sender: Any?) { + let alert = Macros.warning( + L10n.Core.Organizer.Cells.Uninstall.caption, + L10n.Core.Organizer.Alerts.DeleteVpnProfile.message + ) + alert.present(in: view.window, withOK: L10n.Core.Global.ok, cancel: L10n.Core.Global.cancel, handler: { + VPN.shared.uninstall(completionHandler: nil) + }, cancelHandler: nil) + } + + override func prepare(for segue: NSStoryboardSegue, sender: Any?) { + if let vc = segue.destinationController as? ServiceViewController { + serviceController = vc + } else if let vc = segue.destinationController as? AccountViewController { + + // add provider -> account + if let name = sender as? Infrastructure.Name { + vc.profile = ProviderConnectionProfile(name: name) + } + // add host -> rename -> account + else { + vc.profile = sender as? ConnectionProfile + } + vc.delegate = self + } else if let vc = segue.destinationController as? TextInputViewController { + guard let profile = sender as? ConnectionProfile else { + return + } + + // rename host + vc.caption = L10n.Core.Service.Alerts.Rename.title.asCaption + vc.text = service.screenTitle(forHostId: profile.id) + vc.placeholder = L10n.Core.Global.Host.TitleInput.placeholder + vc.object = profile + vc.delegate = self + } + } + + // MARK: Notifications + + @objc private func menuDidAddProfile(_ notification: Notification) { + reloadProfiles() + tableProfiles.reloadData() + } + + @objc private func menuDidRenameProfile(_ notification: Notification) { + reloadProfiles() + tableProfiles.reloadData() + } + + @objc private func menuDidRemoveProfile(_ notification: Notification) { + reloadProfiles() + tableProfiles.selectedRow = nil + tableProfiles.reloadData() + } + + @objc private func menuDidActivateProfile(_ notification: Notification) { + guard let profile = notification.object as? ConnectionProfile else { + return + } + for (i, p) in profiles.enumerated() { + if p.id == profile.id { + tableProfiles.selectedRow = i + break + } + } + tableProfiles.reloadData() + } + + // MARK: Helpers + + private func removePendingProfile() { + guard let profile = profilePendingRemoval else { + return + } + + service.removeProfile(ProfileKey(profile)) + profilePendingRemoval = nil + + if profiles.isEmpty || !service.hasActiveProfile() { + serviceController?.setProfile(nil) + VPN.shared.uninstall(completionHandler: nil) + } + } + + private func reloadProfiles() { + let providerIds = service.ids(forContext: .provider) + let hostIds = service.ids(forContext: .host) + profiles.removeAll() + for id in providerIds { + guard let profile = service.profile(withContext: .provider, id: id) else { + continue + } + profiles.append(profile) + } + for id in hostIds { + guard let profile = service.profile(withContext: .host, id: id) else { + continue + } + profiles.append(profile) + } + profiles.sort { + service.screenTitle(ProfileKey($0)).lowercased() < service.screenTitle(ProfileKey($1)).lowercased() + } + + tableProfiles.rows = profiles + for (i, p) in profiles.enumerated() { + if service.isActiveProfile(p) { + tableProfiles.selectedRow = i + break + } + } + } +} + +extension OrganizerViewController: OrganizerProfileTableViewDelegate { + func profileTableViewDidRequestAdd(_ profileTableView: OrganizerProfileTableView, sender: NSView) { + guard let event = NSApp.currentEvent else { + return + } + + let menu = NSMenu() + + let itemProvider = NSMenuItem(title: L10n.App.Organizer.Menus.provider, action: nil, keyEquivalent: "") + let menuProvider = NSMenu() + let availableMetadata = service.availableProviders() + if !availableMetadata.isEmpty { + for metadata in availableMetadata { + let item = NSMenuItem(title: metadata.description, action: #selector(addProvider(_:)), keyEquivalent: "") +// item.image = metadata.logo + item.representedObject = metadata + menuProvider.addItem(item) + } + } else { + let item = NSMenuItem(title: L10n.App.Organizer.Menus.Provider.unavailable, action: nil, keyEquivalent: "") + item.isEnabled = false + menuProvider.addItem(item) + } + menuProvider.addItem(.separator()) + let itemProviderUpdateList = NSMenuItem(title: L10n.Core.Wizards.Provider.Cells.UpdateList.caption, action: #selector(updateProvidersList), keyEquivalent: "") + menuProvider.addItem(itemProviderUpdateList) + menu.setSubmenu(menuProvider, for: itemProvider) + menu.addItem(itemProvider) + + let menuHost = NSMenuItem(title: L10n.App.Organizer.Menus.host.asContinuation, action: #selector(addHost), keyEquivalent: "") + menu.addItem(menuHost) + + NSMenu.popUpContextMenu(menu, with: event, for: sender) + } + + func profileTableView(_ profileTableView: OrganizerProfileTableView, didRequestRemove profile: ConnectionProfile) { + profilePendingRemoval = profile + + let alert = Macros.warning( + L10n.App.Organizer.Alerts.RemoveProfile.title, + L10n.App.Organizer.Alerts.RemoveProfile.message(service.screenTitle(ProfileKey(profile))) + ) + alert.present(in: view.window, withOK: L10n.Core.Global.ok, cancel: L10n.Core.Global.cancel, handler: { + self.removePendingProfile() + }, cancelHandler: nil) + } + + func profileTableView(_ profileTableView: OrganizerProfileTableView, didRequestRename profile: HostConnectionProfile) { + perform(segue: StoryboardSegue.Main.renameProfileSegueIdentifier, sender: profile) + } +} + +extension OrganizerViewController: AccountViewControllerDelegate { + func accountController(_ accountController: AccountViewController, shouldUpdateCredentials credentials: Credentials, forProfile profile: ConnectionProfile) -> Bool { + guard profile.requiresCredentials else { + return true + } + return credentials.isValid + } + + func accountController(_ accountController: AccountViewController, didUpdateCredentials credentials: Credentials, forProfile profile: ConnectionProfile) { + + // finish adding provider (host adding is done by HostImporter) + if profile.context == .provider { + service.addOrReplaceProfile(profile, credentials: credentials) + } + } + + func accountControllerDidCancel(_ accountController: AccountViewController) { + } +} + +// rename existing host profile +extension OrganizerViewController: TextInputViewControllerDelegate { + func textInputController(_ textInputController: TextInputViewController, shouldEnterText text: String) -> Bool { + return true//text.rangeOfCharacter(from: CharacterSet.filename.inverted) == nil + } + + func textInputController(_ textInputController: TextInputViewController, didEnterText text: String) { + guard let profile = textInputController.object as? ConnectionProfile else { + return + } + confirmRenameProfile(profile, to: text) + dismiss(textInputController) + } +} diff --git a/Passepartout/App/macOS/Scenes/Preferences/DebugLogViewController.swift b/Passepartout/App/macOS/Scenes/Preferences/DebugLogViewController.swift new file mode 100644 index 00000000..08248f2e --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Preferences/DebugLogViewController.swift @@ -0,0 +1,226 @@ +// +// DebugLogViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 7/31/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import TunnelKit + +class DebugLogViewController: NSViewController { + @IBOutlet private weak var labelExchangedCaption: NSTextField! + + @IBOutlet private weak var labelExchanged: NSTextField! + + @IBOutlet private weak var checkMasking: NSButton! + + @IBOutlet private weak var labelLog: NSTextField! + + @IBOutlet private weak var scrollTextLog: NSScrollView! + + @IBOutlet private var textLog: NSTextView! + + @IBOutlet private weak var textFinderLog: NSTextFinder! + + @IBOutlet private weak var buttonPrevious: NSButton! + + @IBOutlet private weak var buttonNext: NSButton! + + @IBOutlet private weak var buttonShare: NSButton! + + private let service = TransientStore.shared.service + + private let vpn = VPN.shared + + private var tmpDebugURL: URL? + + private var shouldDeleteLogOnDisconnection = false + + deinit { + NotificationCenter.default.removeObserver(self) + } + + override func viewDidLoad() { + super.viewDidLoad() + + title = L10n.Core.Service.Cells.DebugLog.caption + + checkMasking.title = L10n.Core.Service.Cells.MasksPrivateData.caption + checkMasking.state = (TransientStore.masksPrivateData ? .on : .off) + + labelExchangedCaption.stringValue = L10n.Core.Service.Cells.DataCount.caption.asCaption + labelLog.stringValue = L10n.Core.Service.Cells.DebugLog.caption.asCaption +// scrollTextLog.scrollerStyle = .overlay +// scrollTextLog.autohidesScrollers = false + textLog.font = NSFont(name: "Courier New", size: NSFont.systemFontSize(for: .regular)) + if #available(macOS 10.12.2, *) { + buttonPrevious.image = NSImage(named: NSImage.touchBarRewindTemplateName) + buttonNext.image = NSImage(named: NSImage.touchBarFastForwardTemplateName) + } else { + buttonPrevious.title = L10n.Core.DebugLog.Buttons.previous + buttonNext.title = L10n.Core.DebugLog.Buttons.next + } + buttonShare.image = NSImage(named: NSImage.shareTemplateName) + + let nc = NotificationCenter.default + nc.addObserver(self, selector: #selector(vpnDidPrepare), name: VPN.didPrepare, object: nil) + nc.addObserver(self, selector: #selector(vpnDidUpdate), name: VPN.didChangeStatus, object: nil) + nc.addObserver(self, selector: #selector(serviceDidUpdateDataCount), name: ConnectionService.didUpdateDataCount, object: nil) + + if vpn.isPrepared { + startRefreshingLog() + } + refreshDataCount() + } + + @IBAction private func toggleMasking(_ sender: Any?) { + let isOn = (self.checkMasking.state == .on) + let handler = { + TransientStore.masksPrivateData = isOn + self.service.baseConfiguration = TransientStore.baseVPNConfiguration.build() + } + + guard vpn.status == .disconnected else { + let alert = Macros.warning( + L10n.Core.Service.Cells.MasksPrivateData.caption, + L10n.Core.Service.Alerts.MasksPrivateData.Messages.mustReconnect + ) + alert.present(in: view.window, withOK: L10n.Core.Service.Alerts.Buttons.reconnect, cancel: L10n.Core.Global.cancel, handler: { + handler() + self.shouldDeleteLogOnDisconnection = true + + do { + self.vpn.reconnect(configuration: try self.service.vpnConfiguration(), completionHandler: nil) + } catch { + } + }, cancelHandler: { + self.checkMasking.state = (isOn ? .off : .on) + }) + return + } + + handler() + service.eraseVpnLog() + shouldDeleteLogOnDisconnection = false + } + + @IBAction private func share(_ sender: Any?) { + let text = textLog.string + guard !text.isEmpty else { + let alert = Macros.warning( + L10n.Core.Service.Cells.DebugLog.caption, + L10n.Core.DebugLog.Alerts.EmptyLog.message + ) + alert.present(in: view.window, withOK: L10n.Core.Global.ok, handler: nil) + return + } + let log = DebugLog(raw: text) + let logString = log.decoratedString() + let picker = NSSharingServicePicker(items: [logString]) + picker.show(relativeTo: buttonShare.bounds, of: buttonShare, preferredEdge: .minY) + } + + @IBAction private func previousSession(_ sender: Any?) { + textFinderLog.performAction(.previousMatch) +// textLog.findPrevious(string: GroupConstants.Log.sessionMarker) + } + + @IBAction private func nextSession(_ sender: Any?) { + textFinderLog.performAction(.previousMatch) +// textLog.findNext(string: GroupConstants.Log.sessionMarker) + } + + private func startRefreshingLog() { + let fallback: () -> String = { self.service.vpnLog } + + vpn.requestDebugLog(fallback: fallback) { + self.textLog.string = $0 + + DispatchQueue.main.async { + self.textLog.scrollToEnd() + self.refreshLogInBackground() + } + } + } + + private func refreshLogInBackground() { + let fallback: () -> String = { self.service.vpnLog } + let updateBlock = { + DispatchQueue.main.asyncAfter(deadline: .now() + AppConstants.Log.viewerRefreshInterval) { [weak self] in + self?.refreshLogInBackground() + } + } + + // only update if screen is visible + guard let _ = view.window else { + updateBlock() + return + } + + vpn.requestDebugLog(fallback: fallback) { + let wasEmpty = self.textLog.string.isEmpty + self.textLog.string = $0 + updateBlock() + if wasEmpty { + self.textLog.scrollToEnd() + } + } + } + + // MARK: Notifications + + @objc private func vpnDidPrepare() { + startRefreshingLog() + } + + @objc private func vpnDidUpdate() { + switch vpn.status { + case .disconnected: + if shouldDeleteLogOnDisconnection { + service.eraseVpnLog() + shouldDeleteLogOnDisconnection = false + } + + default: + break + } + + refreshDataCount() + } + + @objc private func serviceDidUpdateDataCount() { + refreshDataCount() + } + + // MARK: Helpers + + private func refreshDataCount() { + if let count = service.vpnDataCount, vpn.status == .connected { + let down = count.0.dataUnitDescription + let up = count.1.dataUnitDescription + labelExchanged.stringValue = "↓\(down) / ↑\(up)" + } else { + labelExchanged.stringValue = L10n.Core.Service.Cells.DataCount.none + } + } +} diff --git a/Passepartout/App/macOS/Scenes/Preferences/PreferencesGeneralViewController.swift b/Passepartout/App/macOS/Scenes/Preferences/PreferencesGeneralViewController.swift new file mode 100644 index 00000000..3452a95a --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Preferences/PreferencesGeneralViewController.swift @@ -0,0 +1,80 @@ +// +// PreferencesGeneralViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 5/31/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import ServiceManagement + +class PreferencesGeneralViewController: NSViewController { + @IBOutlet private weak var checkLaunchOnLogin: NSButton! + + @IBOutlet private weak var labelLaunchOnLogin: NSTextField! + + @IBOutlet private weak var checkResolveHostname: NSButton! + + @IBOutlet private weak var labelResolveHostname: NSTextField! + + private let service = TransientStore.shared.service + + override func viewDidLoad() { + super.viewDidLoad() + + checkLaunchOnLogin.title = L10n.App.Preferences.Cells.LaunchesOnLogin.caption + labelLaunchOnLogin.stringValue = L10n.App.Preferences.Cells.LaunchesOnLogin.footer + checkResolveHostname.title = L10n.Core.Service.Cells.VpnResolvesHostname.caption + labelResolveHostname.stringValue = L10n.Core.Service.Sections.VpnResolvesHostname.footer + + checkLaunchOnLogin.state = (service.preferences.launchesOnLogin ?? true) ? .on : .off + checkResolveHostname.state = service.preferences.resolvesHostname ? .on : .off + } + + override func viewWillDisappear() { + super.viewWillDisappear() + + TransientStore.shared.serialize(withProfiles: false) // close preferences + } + + @IBAction private func toggleLaunchesOnLogin(_ sender: Any?) { + service.preferences.launchesOnLogin = (checkLaunchOnLogin.state == .on) + SMLoginItemSetEnabled(AppConstants.App.appLauncherId as CFString, service.preferences.launchesOnLogin ?? true) + } + + @IBAction private func toggleResolvesHostname(_ sender: Any?) { + service.preferences.resolvesHostname = (checkResolveHostname.state == .on) + cycleVPNIfNeeded() + } + + private func cycleVPNIfNeeded() { + let vpn = GracefulVPN(service: service) + guard vpn.isEnabled else { + return + } +// guard vpn.status == .disconnected else { +// confirmVpnReconnection() +// return +// } + vpn.reinstall(completionHandler: nil) + } +} diff --git a/Passepartout/App/macOS/Scenes/Preferences/PreferencesViewController.swift b/Passepartout/App/macOS/Scenes/Preferences/PreferencesViewController.swift new file mode 100644 index 00000000..69413539 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Preferences/PreferencesViewController.swift @@ -0,0 +1,44 @@ +// +// PreferencesViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 5/31/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore + +class PreferencesViewController: NSViewController { + @IBOutlet private weak var tabView: NSTabView! + + override func viewDidLoad() { + super.viewDidLoad() + + title = L10n.App.Preferences.title(GroupConstants.App.name) + let labels = [ + L10n.App.Preferences.Sections.General.header, + L10n.Core.Service.Sections.Diagnostics.header + ] + tabView.tabViewItems.enumerated().forEach { + $1.label = labels[$0] + } + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/AccountViewController.swift b/Passepartout/App/macOS/Scenes/Service/AccountViewController.swift new file mode 100644 index 00000000..6df312c1 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/AccountViewController.swift @@ -0,0 +1,106 @@ +// +// AccountViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 7/29/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import TunnelKit +import PassepartoutCore + +protocol AccountViewControllerDelegate: class { + func accountController(_ accountController: AccountViewController, shouldUpdateCredentials credentials: Credentials, forProfile profile: ConnectionProfile) -> Bool + + func accountController(_ accountController: AccountViewController, didUpdateCredentials credentials: Credentials, forProfile profile: ConnectionProfile) + + func accountControllerDidCancel(_ accountController: AccountViewController) +} + +class AccountViewController: NSViewController { + @IBOutlet private weak var labelUsernameCaption: NSTextField! + + @IBOutlet private weak var textUsername: NSTextField! + + @IBOutlet private weak var labelPasswordCaption: NSTextField! + + @IBOutlet private weak var textPassword: NSSecureTextField! + + @IBOutlet private weak var buttonOK: NSButton! + + @IBOutlet private weak var buttonCancel: NSButton! + + private let service = TransientStore.shared.service + + var profile: ConnectionProfile! + + weak var delegate: AccountViewControllerDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + + assert(profile != nil, "Profile not set") + + labelUsernameCaption.stringValue = L10n.Core.Account.Cells.Username.caption.asCaption + if let providerProfile = profile as? ProviderConnectionProfile { + textUsername.placeholderString = providerProfile.infrastructure.defaults.username + } else { + textUsername.placeholderString = L10n.Core.Account.Cells.Username.placeholder + } + labelPasswordCaption.stringValue = L10n.Core.Account.Cells.Password.caption.asCaption + textPassword.placeholderString = L10n.Core.Account.Cells.Password.placeholder + buttonOK.title = L10n.Core.Global.ok + buttonCancel.title = L10n.Core.Global.cancel + + let credentials = service.credentials(for: profile) + textUsername.stringValue = credentials?.username ?? "" + textPassword.stringValue = credentials?.password ?? "" + } + + @IBAction private func confirm(_ sender: Any?) { + let username = textUsername.stringValue + let password = textPassword.stringValue + let credentials = Credentials(username, password) + if let delegate = delegate { + guard delegate.accountController(self, shouldUpdateCredentials: credentials, forProfile: profile) else { + return + } + } + + do { + try service.setCredentials(credentials, for: profile) + } catch { + return + } + + delegate?.accountController(self, didUpdateCredentials: credentials, forProfile: profile) + dismiss(self) + } + + @IBAction private func delegateAndDismiss(_ sender: Any?) { + delegate?.accountControllerDidCancel(self) + dismiss(self) + } + + override func cancelOperation(_ sender: Any?) { + delegateAndDismiss(sender) + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/Customization/ConfigurationViewController.swift b/Passepartout/App/macOS/Scenes/Service/Customization/ConfigurationViewController.swift new file mode 100644 index 00000000..c130e303 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/Customization/ConfigurationViewController.swift @@ -0,0 +1,300 @@ +// +// ConfigurationViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 5/31/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import TunnelKit + +class ConfigurationViewController: NSViewController, ProfileCustomization { + @IBOutlet private weak var labelPresetCaption: NSTextField! + + @IBOutlet private weak var popupPreset: NSPopUpButton! + + @IBOutlet private weak var boxCommunication: NSBox! + + @IBOutlet private weak var labelCipherCaption: NSTextField! + + @IBOutlet private weak var popupCipher: NSPopUpButton! + + @IBOutlet private weak var labelDigestCaption: NSTextField! + + @IBOutlet private weak var popupDigest: NSPopUpButton! + + @IBOutlet private weak var boxCompression: NSBox! + + @IBOutlet private weak var labelCompressionFramingCaption: NSTextField! + + @IBOutlet private weak var popupCompressionFraming: NSPopUpButton! + + @IBOutlet private weak var labelCompressionAlgorithmCaption: NSTextField! + + @IBOutlet private weak var popupCompressionAlgorithm: NSPopUpButton! + + @IBOutlet private weak var boxTLS: NSBox! + + @IBOutlet private weak var labelClientCertificateCaption: NSTextField! + + @IBOutlet private weak var labelClientCertificate: NSTextField! + + @IBOutlet private weak var labelWrappingCaption: NSTextField! + + @IBOutlet private weak var labelWrapping: NSTextField! + + @IBOutlet private weak var labelExtendedVerificationCaption: NSTextField! + + @IBOutlet private weak var labelExtendedVerification: NSTextField! + + @IBOutlet private weak var boxOther: NSBox! + + @IBOutlet private weak var labelKeepAliveCaption: NSTextField! + + @IBOutlet private weak var labelKeepAlive: NSTextField! + + @IBOutlet private weak var labelRenegotiationCaption: NSTextField! + + @IBOutlet private weak var labelRenegotiation: NSTextField! + + @IBOutlet private weak var labelRandomizeEndpointCaption: NSTextField! + + @IBOutlet private weak var labelRandomizeEndpoint: NSTextField! + + private lazy var allPresets: [InfrastructurePreset] = { + guard let providerProfile = profile as? ProviderConnectionProfile else { + return [] + } + let infra = providerProfile.infrastructure + return providerProfile.pool?.supportedPresetIds(in: infra).map { + return infra.preset(for: $0)! + } ?? [] + }() + + private var preset: InfrastructurePreset? { + didSet { + guard let preset = preset else { + return + } + configuration = preset.configuration.sessionConfiguration.builder() + } + } + + private var configuration = OpenVPN.ConfigurationBuilder() + + // MARK: ProfileCustomization + + var profile: ConnectionProfile? { + didSet { + if let providerProfile = profile as? ProviderConnectionProfile { + preset = providerProfile.preset + } else if let hostProfile = profile as? HostConnectionProfile { + configuration = hostProfile.parameters.sessionConfiguration.builder() + } + } + } + + weak var delegate: ProfileCustomizationDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + + let V = L10n.Core.Configuration.Cells.self + + labelPresetCaption.stringValue = L10n.Core.Service.Cells.Provider.Preset.caption.asCaption + popupPreset.removeAllItems() + if !allPresets.isEmpty { + for preset in allPresets { + popupPreset.addItem(withTitle: preset.name) + } + popupCipher.isEnabled = false + popupDigest.isEnabled = false + popupCompressionFraming.isEnabled = false + popupCompressionAlgorithm.isEnabled = false + } else { + popupPreset.addItem(withTitle: L10n.App.Global.Values.default) + popupPreset.isEnabled = false + } + + boxCommunication.title = L10n.Core.Configuration.Sections.Communication.header + boxCompression.title = L10n.Core.Configuration.Sections.Compression.header + boxTLS.title = L10n.Core.Configuration.Sections.Tls.header + boxOther.title = L10n.Core.Configuration.Sections.Other.header + + labelCipherCaption.stringValue = V.Cipher.caption.asCaption + labelDigestCaption.stringValue = V.Digest.caption.asCaption + labelCompressionFramingCaption.stringValue = V.CompressionFraming.caption.asCaption + labelCompressionAlgorithmCaption.stringValue = V.CompressionAlgorithm.caption.asCaption + labelClientCertificateCaption.stringValue = V.Client.caption.asCaption + labelWrappingCaption.stringValue = V.TlsWrapping.caption.asCaption + labelExtendedVerificationCaption.stringValue = V.Eku.caption.asCaption + labelKeepAliveCaption.stringValue = V.KeepAlive.caption.asCaption + labelRenegotiationCaption.stringValue = V.RenegotiationSeconds.caption.asCaption + labelRandomizeEndpointCaption.stringValue = V.RandomEndpoint.caption.asCaption + + popupCipher.removeAllItems() + popupDigest.removeAllItems() + popupCompressionFraming.removeAllItems() + popupCompressionAlgorithm.removeAllItems() + for cipher in OpenVPN.Cipher.available { + popupCipher.addItem(withTitle: cipher.rawValue) + } + for digest in OpenVPN.Digest.available { + popupDigest.addItem(withTitle: digest.rawValue) + } + for framing in OpenVPN.CompressionFraming.available { + popupCompressionFraming.addItem(withTitle: framing.itemDescription) + } + for algorithm in OpenVPN.CompressionAlgorithm.available { + popupCompressionAlgorithm.addItem(withTitle: algorithm.itemDescription) + } + + reloadModel() + } + + private func reloadModel() { + let V = L10n.Core.Configuration.Cells.self + + if let index = allPresets.firstIndex(where: { $0.id == preset?.id }) { + popupPreset.selectItem(at: index) + } + if let index = OpenVPN.Cipher.available.firstIndex(of: configuration.fallbackCipher) { + popupCipher.selectItem(at: index) + } + if let index = OpenVPN.Digest.available.firstIndex(of: configuration.fallbackDigest) { + popupDigest.selectItem(at: index) + } + if let index = OpenVPN.CompressionFraming.available.firstIndex(of: configuration.compressionFraming ?? .disabled) { + popupCompressionFraming.selectItem(at: index) + } + if let index = OpenVPN.CompressionAlgorithm.available.firstIndex(of: configuration.compressionAlgorithm ?? .disabled) { + popupCompressionAlgorithm.selectItem(at: index) + } + + // enforce item constraints + selectCompressionFraming(nil) + selectCompressionAlgorithm(nil) + + labelClientCertificate.stringValue = (configuration.clientCertificate != nil) ? V.Client.Value.enabled : V.Client.Value.disabled + if let strategy = configuration.tlsWrap?.strategy { + switch strategy { + case .auth: + labelWrapping.stringValue = V.TlsWrapping.Value.auth + + case .crypt: + labelWrapping.stringValue = V.TlsWrapping.Value.crypt + } + } else { + labelWrapping.stringValue = L10n.Core.Global.Values.disabled + } + labelExtendedVerification.stringValue = (configuration.checksEKU ?? false) ? L10n.Core.Global.Values.enabled : L10n.Core.Global.Values.disabled + + if let keepAlive = configuration.keepAliveInterval, keepAlive > 0 { + labelKeepAlive.stringValue = V.KeepAlive.Value.seconds(Int(keepAlive)) + } else { + labelKeepAlive.stringValue = L10n.Core.Global.Values.disabled + } + if let reneg = configuration.renegotiatesAfter, reneg > 0 { + labelRenegotiation.stringValue = V.RenegotiationSeconds.Value.after(TimeInterval(reneg).localized) + } else { + labelRenegotiation.stringValue = L10n.Core.Global.Values.disabled + } + labelRandomizeEndpoint.stringValue = (configuration.randomizeEndpoint ?? false) ? L10n.Core.Global.Values.enabled : L10n.Core.Global.Values.disabled + } + + // MARK: Actions + + @IBAction private func selectPreset(_ sender: Any?) { + let preset = allPresets[popupPreset.indexOfSelectedItem] + self.preset = preset + reloadModel() + delegate?.profileCustomization(self, didUpdatePreset: preset) + } + + @IBAction private func selectCipher(_ sender: Any?) { + configuration.cipher = OpenVPN.Cipher.available[popupCipher.indexOfSelectedItem] + delegate?.profileCustomization(self, didUpdateConfiguration: configuration) + } + + @IBAction private func selectDigest(_ sender: Any?) { + configuration.digest = OpenVPN.Digest.available[popupDigest.indexOfSelectedItem] + delegate?.profileCustomization(self, didUpdateConfiguration: configuration) + } + + @IBAction private func selectCompressionFraming(_ sender: Any?) { + + // if framing is disabled, disable algorithm + if popupCompressionFraming.indexOfSelectedItem == 0 { + popupCompressionAlgorithm.selectItem(at: 0) + } + + configuration.compressionFraming = OpenVPN.CompressionFraming.available[popupCompressionFraming.indexOfSelectedItem] + configuration.compressionAlgorithm = OpenVPN.CompressionAlgorithm.available[popupCompressionAlgorithm.indexOfSelectedItem] + delegate?.profileCustomization(self, didUpdateConfiguration: configuration) + } + + @IBAction private func selectCompressionAlgorithm(_ sender: Any?) { + + // if framing is disabled and algorithm is not disabled, enable --comp-lzo framing + if popupCompressionFraming.indexOfSelectedItem == 0 && popupCompressionAlgorithm.indexOfSelectedItem != 0 { + popupCompressionFraming.selectItem(at: 1) + } + + configuration.compressionFraming = OpenVPN.CompressionFraming.available[popupCompressionFraming.indexOfSelectedItem] + configuration.compressionAlgorithm = OpenVPN.CompressionAlgorithm.available[popupCompressionAlgorithm.indexOfSelectedItem] + delegate?.profileCustomization(self, didUpdateConfiguration: configuration) + } +} + +// MARK: - + +private extension OpenVPN.CompressionFraming { + var itemDescription: String { + let V = L10n.Core.Configuration.Cells.self + switch self { + case .disabled: + return L10n.Core.Global.Values.disabled + + case .compLZO: + return V.CompressionFraming.Value.lzo + + case .compress: + return V.CompressionFraming.Value.compress + } + } +} + +private extension OpenVPN.CompressionAlgorithm { + var itemDescription: String { + let V = L10n.Core.Configuration.Cells.self + switch self { + case .disabled: + return L10n.Core.Global.Values.disabled + + case .LZO: + return V.CompressionAlgorithm.Value.lzo + + case .other: + return V.CompressionAlgorithm.Value.other + } + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/Customization/DNSViewController.swift b/Passepartout/App/macOS/Scenes/Service/Customization/DNSViewController.swift new file mode 100644 index 00000000..cb1e38b1 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/Customization/DNSViewController.swift @@ -0,0 +1,157 @@ +// +// DNSViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/21/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore + +class DNSViewController: NSViewController, ProfileCustomization { + private struct Templates { + static let domain = "" + + static let server = "0.0.0.0" + } + + @IBOutlet private weak var popupChoice: NSPopUpButton! + + @IBOutlet private weak var viewSettings: NSView! + + @IBOutlet private weak var viewDNSDomains: NSView! + + @IBOutlet private weak var viewDNSAddresses: NSView! + + @IBOutlet private var constraintChoiceBottom: NSLayoutConstraint! + + @IBOutlet private var constraintSettingsTop: NSLayoutConstraint! + + private lazy var tableDNSDomains: TextTableView = .get() + + private lazy var tableDNSAddresses: TextTableView = .get() + + private lazy var choices = NetworkChoice.choices(for: profile) + + private lazy var currentChoice = profile?.networkChoices?.dns ?? ProfileNetworkChoices.with(profile: profile).dns + + private lazy var clientNetworkSettings = profile?.clientNetworkSettings + + private let networkSettings = ProfileNetworkSettings() + + // MARK: ProfileCustomization + + var profile: ConnectionProfile? + + weak var delegate: ProfileCustomizationDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + + tableDNSDomains.title = L10n.App.NetworkSettings.Dns.Cells.Domains.title.asCaption + viewDNSDomains.addSubview(tableDNSDomains) + tableDNSDomains.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + tableDNSDomains.topAnchor.constraint(equalTo: viewDNSDomains.topAnchor), + tableDNSDomains.bottomAnchor.constraint(equalTo: viewDNSDomains.bottomAnchor), + tableDNSDomains.leftAnchor.constraint(equalTo: viewDNSDomains.leftAnchor), + tableDNSDomains.rightAnchor.constraint(equalTo: viewDNSDomains.rightAnchor), + ]) + + tableDNSAddresses.title = L10n.App.NetworkSettings.Dns.Cells.Addresses.title.asCaption + viewDNSAddresses.addSubview(tableDNSAddresses) + tableDNSAddresses.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + tableDNSAddresses.topAnchor.constraint(equalTo: viewDNSAddresses.topAnchor), + tableDNSAddresses.bottomAnchor.constraint(equalTo: viewDNSAddresses.bottomAnchor), + tableDNSAddresses.leftAnchor.constraint(equalTo: viewDNSAddresses.leftAnchor), + tableDNSAddresses.rightAnchor.constraint(equalTo: viewDNSAddresses.rightAnchor), + ]) + + popupChoice.removeAllItems() + for choice in choices { + popupChoice.addItem(withTitle: choice.description) + if choice == currentChoice { + popupChoice.selectItem(at: popupChoice.numberOfItems - 1) + } + } + tableDNSDomains.rowTemplate = Templates.domain + tableDNSAddresses.rowTemplate = Templates.server + loadSettings(from: currentChoice) + } + + // MARK: Actions + + @IBAction private func pickChoice(_ sender: Any?) { + let choice = choices[popupChoice.indexOfSelectedItem] + loadSettings(from: choice) + + delegate?.profileCustomization(self, didUpdateDNS: choice, withManualSettings: networkSettings) + } + + func commitManualSettings() { + guard currentChoice == .manual else { + return + } + view.endEditing() + networkSettings.dnsSearchDomains = tableDNSDomains.rows + networkSettings.dnsServers = tableDNSAddresses.rows + + delegate?.profileCustomization(self, didUpdateDNS: .manual, withManualSettings: networkSettings) + } + + // MARK: Helpers + + private func loadSettings(from choice: NetworkChoice) { + currentChoice = choice + switch currentChoice { + case .client: + if let settings = clientNetworkSettings { + networkSettings.copyDNS(from: settings) + } + + case .server: + break + + case .manual: + if let settings = profile?.manualNetworkSettings { + networkSettings.copyDNS(from: settings) + } + } + + tableDNSDomains.isEnabled = (currentChoice == .manual) + tableDNSDomains.rows = networkSettings.dnsSearchDomains ?? [] + tableDNSDomains.isRemoveEnabled = false + tableDNSDomains.selectedRow = nil + tableDNSDomains.reloadData() + + tableDNSAddresses.isAddEnabled = (currentChoice == .manual) + tableDNSAddresses.rows = networkSettings.dnsServers ?? [] + tableDNSAddresses.isRemoveEnabled = false + tableDNSAddresses.selectedRow = nil + tableDNSAddresses.reloadData() + + let isServer = (currentChoice == .server) + constraintChoiceBottom.priority = isServer ? .defaultHigh : .defaultLow + constraintSettingsTop.priority = isServer ? .defaultLow : .defaultHigh + viewSettings.isHidden = isServer + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/Customization/DefaultGatewayViewController.swift b/Passepartout/App/macOS/Scenes/Service/Customization/DefaultGatewayViewController.swift new file mode 100644 index 00000000..b279335c --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/Customization/DefaultGatewayViewController.swift @@ -0,0 +1,137 @@ +// +// DefaultGatewayViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/21/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import TunnelKit + +class DefaultGatewayViewController: NSViewController, ProfileCustomization { + @IBOutlet private weak var popupChoice: NSPopUpButton! + + @IBOutlet private weak var viewSettings: NSView! + + @IBOutlet private weak var checkIPv4: NSButton! + + @IBOutlet private weak var checkIPv6: NSButton! + + @IBOutlet private var constraintChoiceBottom: NSLayoutConstraint! + + @IBOutlet private var constraintSettingsTop: NSLayoutConstraint! + + private lazy var choices = NetworkChoice.choices(for: profile) + + private lazy var currentChoice = profile?.networkChoices?.gateway ?? ProfileNetworkChoices.with(profile: profile).gateway + + private lazy var clientNetworkSettings = profile?.clientNetworkSettings + + private let networkSettings = ProfileNetworkSettings() + + // MARK: ProfileCustomization + + var profile: ConnectionProfile? + + weak var delegate: ProfileCustomizationDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + + checkIPv4.title = "IPv4" + checkIPv6.title = "IPv6" + + popupChoice.removeAllItems() + for choice in choices { + popupChoice.addItem(withTitle: choice.description) + if choice == currentChoice { + popupChoice.selectItem(at: popupChoice.numberOfItems - 1) + } + } + loadSettings(from: currentChoice) + } + + // MARK: Actions + + @IBAction private func pickChoice(_ sender: Any?) { + let choice = choices[popupChoice.indexOfSelectedItem] + loadSettings(from: choice) + + delegate?.profileCustomization(self, didUpdateGateway: choice, withManualSettings: networkSettings) + } + + @IBAction private func checkPolicy(_ sender: Any?) { + guard let button = sender as? NSButton else { + return + } + var policies = Set(networkSettings.gatewayPolicies ?? []) + let policy: OpenVPN.RoutingPolicy + switch button { + case checkIPv4: + policy = .IPv4 + + case checkIPv6: + policy = .IPv6 + + default: + return + } + if button.state == .on { + policies.insert(policy) + } else { + policies.remove(policy) + } + networkSettings.gatewayPolicies = Array(policies) + + delegate?.profileCustomization(self, didUpdateGateway: .manual, withManualSettings: networkSettings) + } + + private func loadSettings(from choice: NetworkChoice) { + currentChoice = choice + switch currentChoice { + case .client: + if let settings = clientNetworkSettings { + networkSettings.copyGateway(from: settings) + } + + case .server: + break + + case .manual: + if let settings = profile?.manualNetworkSettings { + networkSettings.copyGateway(from: settings) + } + } + + let policies = networkSettings.gatewayPolicies ?? [] + + checkIPv4.isEnabled = (currentChoice == .manual) + checkIPv4.state = policies.contains(.IPv4) ? .on : .off + checkIPv6.isEnabled = (currentChoice == .manual) + checkIPv6.state = policies.contains(.IPv6) ? .on : .off + + let isServer = (currentChoice == .server) + constraintChoiceBottom.priority = isServer ? .defaultHigh : .defaultLow + constraintSettingsTop.priority = isServer ? .defaultLow : .defaultHigh + viewSettings.isHidden = isServer + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/Customization/EndpointViewController.swift b/Passepartout/App/macOS/Scenes/Service/Customization/EndpointViewController.swift new file mode 100644 index 00000000..67935a33 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/Customization/EndpointViewController.swift @@ -0,0 +1,120 @@ +// +// EndpointViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/19/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import TunnelKit + +class EndpointViewController: NSViewController, ProfileCustomization { + @IBOutlet private weak var labelAddressCaption: NSTextField! + + @IBOutlet private weak var popupAddress: NSPopUpButton! + + @IBOutlet private weak var labelProtocolCaption: NSTextField! + + @IBOutlet private weak var popupProtocol: NSPopUpButton! + + // MARK: ProfileCustomization + + var profile: ConnectionProfile? + + weak var delegate: ProfileCustomizationDelegate? + + private lazy var dataSource: EndpointDataSource = { + guard let profile = profile else { + fatalError("No profile set") + } + return profile as EndpointDataSource + }() + + override func viewDidLoad() { + super.viewDidLoad() + + labelAddressCaption.stringValue = L10n.App.Endpoint.Cells.address.asCaption + labelProtocolCaption.stringValue = L10n.App.Endpoint.Cells.protocol.asCaption + + popupAddress.removeAllItems() + for address in dataSource.addresses { + popupAddress.addItem(withTitle: address) + if address == dataSource.customAddress { + popupAddress.selectItem(at: popupAddress.numberOfItems - 1) + } + } + popupProtocol.removeAllItems() + for proto in dataSource.protocols { + popupProtocol.addItem(withTitle: proto.rawValue) + if proto == dataSource.customProtocol { + popupProtocol.selectItem(at: popupProtocol.numberOfItems - 1) + } + } + + if dataSource.canCustomizeEndpoint { + popupAddress.insertItem(withTitle: L10n.Core.Endpoint.Cells.AnyAddress.caption, at: 0) + popupProtocol.insertItem(withTitle: L10n.Core.Endpoint.Cells.AnyProtocol.caption, at: 0) + + if dataSource.customAddress == nil { + popupAddress.selectItem(at: 0) + } + if dataSource.customProtocol == nil { + popupProtocol.selectItem(at: 0) + } +// } else { +// popupAddress.isEnabled = false +// popupProtocol.isEnabled = false + } + } + + // MARK: Actions + + @IBAction private func selectAddress(_ sender: Any?) { + guard dataSource.canCustomizeEndpoint else { + return + } + let customAddress: String? + if popupAddress.indexOfSelectedItem == 0 { + customAddress = nil + } else { + customAddress = popupAddress.selectedItem?.title + } + delegate?.profileCustomization(self, didUpdateEndpointWithAddress: customAddress) + } + + @IBAction private func selectProtocol(_ sender: Any?) { + guard dataSource.canCustomizeEndpoint else { + return + } + let customProtocol: EndpointProtocol? + if popupProtocol.indexOfSelectedItem == 0 { + customProtocol = nil + } else { + if let title = popupProtocol.selectedItem?.title { + customProtocol = EndpointProtocol(rawValue: title) + } else { + customProtocol = nil + } + } + delegate?.profileCustomization(self, didUpdateEndpointWithProtocol: customProtocol) + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/Customization/MTUViewController.swift b/Passepartout/App/macOS/Scenes/Service/Customization/MTUViewController.swift new file mode 100644 index 00000000..adde80de --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/Customization/MTUViewController.swift @@ -0,0 +1,139 @@ +// +// MTUViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 12/28/20. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import TunnelKit + +class MTUViewController: NSViewController, ProfileCustomization { + @IBOutlet private weak var popupChoice: NSPopUpButton! + + @IBOutlet private weak var viewSettings: NSView! + + @IBOutlet private weak var labelMTUCaption: NSTextField! + + @IBOutlet private weak var popupMTU: NSPopUpButton! + + @IBOutlet private var constraintChoiceBottom: NSLayoutConstraint! + + @IBOutlet private var constraintSettingsTop: NSLayoutConstraint! + + private lazy var choices = NetworkChoice.choices(for: profile) + + private lazy var currentChoice = profile?.networkChoices?.mtu ?? ProfileNetworkChoices.with(profile: profile).mtu + + private lazy var clientNetworkSettings = profile?.clientNetworkSettings + + private let networkSettings = ProfileNetworkSettings() + + // MARK: ProfileCustomization + + var profile: ConnectionProfile? + + weak var delegate: ProfileCustomizationDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + + popupChoice.removeAllItems() + for choice in choices { + popupChoice.addItem(withTitle: choice.description) + if choice == currentChoice { + popupChoice.selectItem(at: popupChoice.numberOfItems - 1) + } + } + labelMTUCaption.stringValue = L10n.Core.NetworkSettings.Mtu.Cells.Bytes.caption.asCaption + popupMTU.removeAllItems() + for opt in ProfileNetworkSettings.mtuOptions { + popupMTU.addItem(withTitle: (opt != 0) ? opt.description : "Default") + } + loadSettings(from: currentChoice ?? ProfileNetworkChoices.defaultChoice) + } + + // MARK: Actions + + @IBAction private func pickChoice(_ sender: Any?) { + let choice = choices[popupChoice.indexOfSelectedItem] + loadSettings(from: choice) + + delegate?.profileCustomization(self, didUpdateMTU: choice, withManualSettings: networkSettings) + } + + @IBAction private func pickBytes(_ sender: Any?) { + guard let popup = sender as? NSPopUpButton, let title = popup.titleOfSelectedItem else { + return + } + guard let bytes = Int(title) else { + networkSettings.mtuBytes = nil + return + } + networkSettings.mtuBytes = bytes + + delegate?.profileCustomization(self, didUpdateMTU: .manual, withManualSettings: networkSettings) + } + + private func loadSettings(from choice: NetworkChoice) { + currentChoice = choice + switch choice { + case .client: + if let settings = clientNetworkSettings { + networkSettings.copyMTU(from: settings) + } + + case .server: + break + + case .manual: + if let settings = profile?.manualNetworkSettings { + networkSettings.copyMTU(from: settings) + } + } + + let bytes = networkSettings.mtuBytes + + popupMTU.isEnabled = (currentChoice == .manual) + for (i, opt) in popupMTU.itemTitles.enumerated() { + if opt == "Default" { + if bytes == nil { + popupMTU.selectItem(at: i) + break + } + continue + } + guard let optValue = Int(opt) else { + continue + } + if optValue == bytes { + popupMTU.selectItem(at: i) + break + } + } + + let isServer = (currentChoice == .server) + constraintChoiceBottom.priority = isServer ? .defaultHigh : .defaultLow + constraintSettingsTop.priority = isServer ? .defaultLow : .defaultHigh + viewSettings.isHidden = isServer + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/Customization/ProfileCustomizationViewController.swift b/Passepartout/App/macOS/Scenes/Service/Customization/ProfileCustomizationViewController.swift new file mode 100644 index 00000000..d935c248 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/Customization/ProfileCustomizationViewController.swift @@ -0,0 +1,258 @@ +// +// ProfileCustomizationViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/19/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import TunnelKit + +protocol ProfileCustomization: class { + var profile: ConnectionProfile? { get set } + + var delegate: ProfileCustomizationDelegate? { get set } +} + +protocol ProfileCustomizationDelegate: class { + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateEndpointWithAddress newAddress: String?) + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateEndpointWithProtocol newEndpointProtocol: EndpointProtocol?) + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdatePreset newPreset: InfrastructurePreset) + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateConfiguration newConfiguration: OpenVPN.ConfigurationBuilder) + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateTrustedNetworks newTrustedNetworks: TrustedNetworks) + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateGateway choice: NetworkChoice, withManualSettings newSettings: ProfileNetworkSettings) + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateDNS choice: NetworkChoice, withManualSettings newSettings: ProfileNetworkSettings) + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateProxy choice: NetworkChoice, withManualSettings newSettings: ProfileNetworkSettings) + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateMTU choice: NetworkChoice, withManualSettings newSettings: ProfileNetworkSettings) +} + +class ProfileCustomizationContainerViewController: NSViewController { + @IBOutlet private weak var buttonOK: NSButton! + + @IBOutlet private weak var buttonCancel: NSButton! + + fileprivate weak var dnsController: DNSViewController? + + fileprivate weak var proxyController: ProxyViewController? + + var profile: ConnectionProfile? + + // MARK: Pending (provider) + + private var pendingAddress: String? + + private var pendingProtocol: EndpointProtocol? + + private var pendingPreset: InfrastructurePreset? + + // MARK: Pending (host) + + private var pendingParameters: OpenVPN.ConfigurationBuilder? + + // MARK: Pending + + private var pendingTrustedNetworks: TrustedNetworks? + + private var pendingChoices: ProfileNetworkChoices? + + private let pendingManualNetworkSettings = ProfileNetworkSettings() + + override func viewDidLoad() { + super.viewDidLoad() + + buttonOK.title = L10n.Core.Global.ok + buttonCancel.title = L10n.Core.Global.cancel + + pendingAddress = (profile as? ProviderConnectionProfile)?.customAddress + pendingProtocol = (profile as? ProviderConnectionProfile)?.customProtocol + pendingPreset = (profile as? ProviderConnectionProfile)?.preset + pendingTrustedNetworks = profile?.trustedNetworks + pendingParameters = (profile as? HostConnectionProfile)?.parameters.sessionConfiguration.builder() + pendingChoices = ProfileNetworkChoices.with(profile: profile) + } + + override func prepare(for segue: NSStoryboardSegue, sender: Any?) { + guard let customVC = segue.destinationController as? ProfileCustomizationViewController else { + return + } + customVC.containerController = self + customVC.profile = profile + } + + // MARK: Actions + + @IBAction private func commitChanges(_ sender: Any?) { + dnsController?.commitManualSettings() + proxyController?.commitManualSettings() + + if let providerProfile = profile as? ProviderConnectionProfile { + if let pending = pendingPreset { + providerProfile.presetId = pending.id + } + } else if let hostProfile = profile as? HostConnectionProfile, let pendingParameters = pendingParameters { + var builder = hostProfile.parameters.builder() + builder.sessionConfiguration = pendingParameters.build() + hostProfile.parameters = builder.build() + } + profile?.customAddress = pendingAddress + profile?.customProtocol = pendingProtocol + profile?.trustedNetworks = pendingTrustedNetworks + + if let choices = pendingChoices { + let settings = profile?.manualNetworkSettings ?? ProfileNetworkSettings() + if choices.gateway == .manual { + settings.copyGateway(from: pendingManualNetworkSettings) + } + if choices.dns == .manual { + settings.copyDNS(from: pendingManualNetworkSettings) + } + if choices.proxy == .manual { + settings.copyProxy(from: pendingManualNetworkSettings) + } + if choices.mtu == .manual { + settings.copyMTU(from: pendingManualNetworkSettings) + } + profile?.networkChoices = choices + profile?.manualNetworkSettings = settings + } + + TransientStore.shared.serialize(withProfiles: true) // customize + + if let profile = profile, TransientStore.shared.service.isActiveProfile(ProfileKey(profile)) { + let vpn = GracefulVPN(service: TransientStore.shared.service) + if vpn.isEnabled { + switch vpn.status { + case .connected, .connecting: + let alert = Macros.warning( + L10n.App.Configuration.title, + L10n.App.Configuration.Alerts.Commit.message + ) + if alert.presentModally( + withOK: L10n.App.Configuration.Alerts.Commit.Buttons.reconnect, + cancel: L10n.App.Configuration.Alerts.Commit.Buttons.skip) { + + vpn.reconnect(completionHandler: nil) + } else { + vpn.reinstall(completionHandler: nil) + } + + default: + vpn.reinstall(completionHandler: nil) + } + } + } + + dismiss(self) + } +} + +extension ProfileCustomizationContainerViewController: ProfileCustomizationDelegate { + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateEndpointWithAddress newAddress: String?) { + pendingAddress = newAddress + } + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateEndpointWithProtocol newEndpointProtocol: EndpointProtocol?) { + pendingProtocol = newEndpointProtocol + } + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdatePreset newPreset: InfrastructurePreset) { + pendingPreset = newPreset + } + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateConfiguration newConfiguration: OpenVPN.ConfigurationBuilder) { + pendingParameters = newConfiguration + } + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateTrustedNetworks newTrustedNetworks: TrustedNetworks) { + pendingTrustedNetworks = newTrustedNetworks + } + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateGateway choice: NetworkChoice, withManualSettings newSettings: ProfileNetworkSettings) { + pendingChoices?.gateway = choice + pendingManualNetworkSettings.gatewayPolicies = newSettings.gatewayPolicies + } + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateDNS choice: NetworkChoice, withManualSettings newSettings: ProfileNetworkSettings) { + pendingChoices?.dns = choice + pendingManualNetworkSettings.dnsSearchDomains = newSettings.dnsSearchDomains + pendingManualNetworkSettings.dnsServers = newSettings.dnsServers + } + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateProxy choice: NetworkChoice, withManualSettings newSettings: ProfileNetworkSettings) { + pendingChoices?.proxy = choice + pendingManualNetworkSettings.proxyAddress = newSettings.proxyAddress + pendingManualNetworkSettings.proxyPort = newSettings.proxyPort + pendingManualNetworkSettings.proxyBypassDomains = newSettings.proxyBypassDomains + } + + func profileCustomization(_ profileCustomization: ProfileCustomization, didUpdateMTU choice: NetworkChoice, withManualSettings newSettings: ProfileNetworkSettings) { + pendingChoices?.mtu = choice + pendingManualNetworkSettings.mtuBytes = newSettings.mtuBytes + } +} + +// + +class ProfileCustomizationViewController: NSTabViewController { + fileprivate weak var containerController: ProfileCustomizationContainerViewController? + + fileprivate var profile: ConnectionProfile? { + didSet { + for item in tabViewItems { + guard let custom = item.viewController as? ProfileCustomization else { + continue + } + custom.profile = profile + custom.delegate = containerController + + if let vc = custom as? DNSViewController { + containerController?.dnsController = vc + } else if let vc = custom as? ProxyViewController { + containerController?.proxyController = vc + } + } + } + } + + override func viewDidLoad() { + super.viewDidLoad() + + let expectedTabs = 7 + assert(tabViewItems.count == expectedTabs, "Customization tabs misconfigured (expected \(expectedTabs))") + + tabViewItems[0].label = L10n.Core.Endpoint.title + tabViewItems[1].label = L10n.App.Configuration.title + tabViewItems[2].label = L10n.Core.Service.Sections.Trusted.header + tabViewItems[3].label = L10n.Core.NetworkSettings.Gateway.title + tabViewItems[4].label = L10n.Core.NetworkSettings.Dns.title + tabViewItems[5].label = L10n.Core.NetworkSettings.Proxy.title + tabViewItems[6].label = L10n.Core.NetworkSettings.Mtu.title + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/Customization/ProxyViewController.swift b/Passepartout/App/macOS/Scenes/Service/Customization/ProxyViewController.swift new file mode 100644 index 00000000..58f7ac23 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/Customization/ProxyViewController.swift @@ -0,0 +1,149 @@ +// +// ProxyViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/21/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore + +class ProxyViewController: NSViewController, ProfileCustomization { + private struct Templates { + static let bypass = "domain.com" + } + + @IBOutlet private weak var popupChoice: NSPopUpButton! + + @IBOutlet private weak var viewSettings: NSView! + + @IBOutlet private weak var labelProxyCaption: NSTextField! + + @IBOutlet private weak var textProxyAddress: NSTextField! + + @IBOutlet private weak var textProxyPort: NSTextField! + + @IBOutlet private weak var viewProxyBypass: NSView! + + @IBOutlet private var constraintChoiceBottom: NSLayoutConstraint! + + @IBOutlet private var constraintSettingsTop: NSLayoutConstraint! + + private lazy var tableProxyBypass: TextTableView = .get() + + private lazy var choices = NetworkChoice.choices(for: profile) + + private lazy var currentChoice = profile?.networkChoices?.proxy ?? ProfileNetworkChoices.with(profile: profile).proxy + + private lazy var clientNetworkSettings = profile?.clientNetworkSettings + + private let networkSettings = ProfileNetworkSettings() + + // MARK: ProfileCustomization + + var profile: ConnectionProfile? + + weak var delegate: ProfileCustomizationDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + + labelProxyCaption.stringValue = L10n.Core.Global.Captions.address.asCaption + textProxyAddress.placeholderString = L10n.Core.Global.Values.none + textProxyPort.placeholderString = L10n.Core.Global.Values.none + + tableProxyBypass.title = L10n.App.NetworkSettings.Proxy.Cells.BypassDomains.title.asCaption + viewProxyBypass.addSubview(tableProxyBypass) + tableProxyBypass.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + tableProxyBypass.topAnchor.constraint(equalTo: viewProxyBypass.topAnchor), + tableProxyBypass.bottomAnchor.constraint(equalTo: viewProxyBypass.bottomAnchor), + tableProxyBypass.leftAnchor.constraint(equalTo: viewProxyBypass.leftAnchor), + tableProxyBypass.rightAnchor.constraint(equalTo: viewProxyBypass.rightAnchor), + ]) + + popupChoice.removeAllItems() + for choice in choices { + popupChoice.addItem(withTitle: choice.description) + if choice == currentChoice { + popupChoice.selectItem(at: popupChoice.numberOfItems - 1) + } + } + tableProxyBypass.rowTemplate = Templates.bypass + loadSettings(from: currentChoice) + } + + // MARK: Actions + + @IBAction private func pickChoice(_ sender: Any?) { + let choice = choices[popupChoice.indexOfSelectedItem] + loadSettings(from: choice) + + delegate?.profileCustomization(self, didUpdateProxy: choice, withManualSettings: networkSettings) + } + + func commitManualSettings() { + guard currentChoice == .manual else { + return + } + view.endEditing() + networkSettings.proxyAddress = textProxyAddress.stringValue + networkSettings.proxyPort = UInt16(textProxyPort.stringValue) + networkSettings.proxyBypassDomains = tableProxyBypass.rows + + delegate?.profileCustomization(self, didUpdateProxy: .manual, withManualSettings: networkSettings) + } + + // MARK: Helpers + + private func loadSettings(from choice: NetworkChoice) { + currentChoice = choice + switch currentChoice { + case .client: + if let settings = clientNetworkSettings { + networkSettings.copyProxy(from: settings) + } + + case .server: + break + + case .manual: + if let settings = profile?.manualNetworkSettings { + networkSettings.copyProxy(from: settings) + } + } + + textProxyAddress.isEnabled = (currentChoice == .manual) + textProxyAddress.stringValue = networkSettings.proxyAddress ?? "" + textProxyPort.isEnabled = (currentChoice == .manual) + textProxyPort.stringValue = networkSettings.proxyPort?.description ?? "" + tableProxyBypass.rows = networkSettings.proxyBypassDomains ?? [] + tableProxyBypass.isAddEnabled = (currentChoice == .manual) + tableProxyBypass.isRemoveEnabled = false + tableProxyBypass.selectedRow = nil + tableProxyBypass.reloadData() + + let isServer = (currentChoice == .server) + constraintChoiceBottom.priority = isServer ? .defaultHigh : .defaultLow + constraintSettingsTop.priority = isServer ? .defaultLow : .defaultHigh + viewSettings.isHidden = isServer + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/Customization/TrustedNetworksAddViewController.swift b/Passepartout/App/macOS/Scenes/Service/Customization/TrustedNetworksAddViewController.swift new file mode 100644 index 00000000..6351482f --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/Customization/TrustedNetworksAddViewController.swift @@ -0,0 +1,59 @@ +// +// TrustedNetworksAddViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 7/30/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore + +protocol TrustedNetworksAddViewControllerDelegate: class { + func trustedController(_ trustedController: TrustedNetworksAddViewController, didEnterSSID ssid: String) +} + +class TrustedNetworksAddViewController: NSViewController { + @IBOutlet private weak var textSSID: NSTextField! + + @IBOutlet private weak var buttonOK: NSButton! + + @IBOutlet private weak var buttonCancel: NSButton! + + weak var delegate: TrustedNetworksAddViewControllerDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + + buttonOK.title = L10n.Core.Global.ok + buttonCancel.title = L10n.Core.Global.cancel + + textSSID.stringValue = Utils.currentWifiNetworkName() ?? "" + } + + @IBAction private func confirm(_ sender: Any?) { + let ssid = textSSID.stringValue.trimmingCharacters(in: .whitespaces) + guard !ssid.isEmpty else { + return + } + delegate?.trustedController(self, didEnterSSID: ssid) + dismiss(self) + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/Customization/TrustedNetworksViewController.swift b/Passepartout/App/macOS/Scenes/Service/Customization/TrustedNetworksViewController.swift new file mode 100644 index 00000000..951deac6 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/Customization/TrustedNetworksViewController.swift @@ -0,0 +1,235 @@ +// +// TrustedNetworksViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 7/29/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore + +class TrustedNetworksViewController: NSViewController, ProfileCustomization { + private struct Columns { + static let ssid = NSUserInterfaceItemIdentifier("SSID") + + static let trust = NSUserInterfaceItemIdentifier("Trust") + } + + @IBOutlet private weak var labelTitle: NSTextField! + + @IBOutlet private weak var tableView: NSTableView! + + @IBOutlet private weak var buttonAdd: NSButton! + + @IBOutlet private weak var buttonRemove: NSButton! + + @IBOutlet private weak var checkTrustEthernet: NSButton! + + @IBOutlet private weak var labelTrustEthernetDescription: NSTextField! + + @IBOutlet private weak var checkDisableConnection: NSButton! + + @IBOutlet private weak var labelDisableConnectionDescription: NSTextField! + + private let service = TransientStore.shared.service + + private let model = TrustedNetworksUI() + + // MARK: ProfileCustomization + + var profile: ConnectionProfile? + + private lazy var trustedNetworks = profile?.trustedNetworks ?? TrustedNetworks() + + weak var delegate: ProfileCustomizationDelegate? + + override func viewDidLoad() { + super.viewDidLoad() + + labelTitle.stringValue = L10n.Core.Service.Sections.Trusted.header.asCaption + buttonAdd.image = NSImage(named: NSImage.addTemplateName) + buttonRemove.image = NSImage(named: NSImage.removeTemplateName) + checkTrustEthernet.title = L10n.App.Trusted.Ethernet.title + labelTrustEthernetDescription.stringValue = L10n.App.Trusted.Ethernet.description + checkDisableConnection.title = L10n.Core.Service.Cells.TrustedPolicy.caption + labelDisableConnectionDescription.stringValue = L10n.Core.Service.Sections.Trusted.footer + + checkTrustEthernet.state = trustedNetworks.includesEthernet ? .on : .off + checkDisableConnection.state = (trustedNetworks.policy == .disconnect) ? .on : .off + model.delegate = self + model.load(from: trustedNetworks) + updateButtons() + + tableView.reloadData() + for column in tableView.tableColumns { + switch column.identifier { + case Columns.ssid: + column.title = "SSID" + + case Columns.trust: + column.title = L10n.App.Trusted.Columns.Trust.title + + default: + break + } + } + if tableView.numberOfRows > 0 { + tableView.selectRowIndexes(IndexSet(integer: 0), byExtendingSelection: false) + } + } + + // MARK: Actions + + @IBAction private func remove(_ sender: Any?) { + let index = tableView.selectedRow + guard index != -1 else { + return + } + model.removeWifi(at: index) + } + + @IBAction private func toggleTrustEthernet(_ sender: Any?) { + trustedNetworks.includesEthernet = (checkTrustEthernet.state == .on) + + delegate?.profileCustomization(self, didUpdateTrustedNetworks: trustedNetworks) + } + + @IBAction private func toggleRetainConnection(_ sender: Any?) { + let isOn = (checkDisableConnection.state == .on) + let completionHandler: () -> Void = { + self.trustedNetworks.policy = isOn ? .disconnect : .ignore + } + completionHandler() + + delegate?.profileCustomization(self, didUpdateTrustedNetworks: trustedNetworks) + } + + override func prepare(for segue: NSStoryboardSegue, sender: Any?) { + if let addVC = segue.destinationController as? TrustedNetworksAddViewController { + addVC.delegate = self + } + } + + // MARK: Helpers + + private func updateButtons() { + buttonRemove.isEnabled = !model.sortedWifis.isEmpty && (tableView.selectedRow != -1) + } +} + +extension TrustedNetworksViewController: NSTableViewDataSource, NSTableViewDelegate { + func numberOfRows(in tableView: NSTableView) -> Int { + return model.sortedWifis.count + } + + func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? { + guard row < model.sortedWifis.count else { // XXX + return nil + } + + let wifi = model.sortedWifis[row] + switch tableColumn?.identifier { + case Columns.ssid: + return wifi + + case Columns.trust: + return model.isTrusted(wifi: wifi) + + default: + return nil + } + } + + func tableView(_ tableView: NSTableView, setObjectValue object: Any?, for tableColumn: NSTableColumn?, row: Int) { + guard row < model.sortedWifis.count else { // XXX + return + } + + switch tableColumn?.identifier { + case Columns.trust: + guard let checkTrust = object as? Bool else { + fatalError("Expected a Bool for trust checkbox state") + } + if checkTrust { + model.enableWifi(at: row) + } else { + model.disableWifi(at: row) + } + + default: + break + } + } + + func tableViewSelectionDidChange(_ notification: Notification) { + updateButtons() + } +} + +extension TrustedNetworksViewController: TrustedNetworksUIDelegate { + func trustedNetworksCouldDisconnect(_: TrustedNetworksUI) -> Bool { + + // VPN untouched + return false + } + + func trustedNetworksShouldConfirmDisconnection(_: TrustedNetworksUI, triggeredAt rowIndex: Int, completionHandler: @escaping () -> Void) { + let alert = Macros.warning( + L10n.Core.Service.Sections.Trusted.header, + L10n.Core.Service.Alerts.Trusted.WillDisconnectTrusted.message + ) + alert.present(in: view.window, withOK: L10n.Core.Global.ok, cancel: L10n.Core.Global.cancel, handler: completionHandler, cancelHandler: nil) + } + + func trustedNetworks(_: TrustedNetworksUI, shouldInsertWifiAt rowIndex: Int) { +// tableView.beginUpdates() +// tableView.insertRows(at: IndexSet(integer: rowIndex), withAnimation: .slideDown) +// tableView.endUpdates() + tableView.reloadData() + + updateButtons() + } + + func trustedNetworks(_: TrustedNetworksUI, shouldReloadWifiAt rowIndex: Int, isTrusted: Bool) { + // + } + + func trustedNetworks(_: TrustedNetworksUI, shouldDeleteWifiAt rowIndex: Int) { +// tableView.beginUpdates() +// tableView.removeRows(at: IndexSet(integer: rowIndex), withAnimation: .slideUp) +// tableView.endUpdates() + tableView.reloadData() + + updateButtons() + } + + func trustedNetworksShouldReinstall(_: TrustedNetworksUI) { + trustedNetworks.includedWiFis = model.trustedWifis + + delegate?.profileCustomization(self, didUpdateTrustedNetworks: trustedNetworks) + } +} + +extension TrustedNetworksViewController: TrustedNetworksAddViewControllerDelegate { + func trustedController(_ trustedController: TrustedNetworksAddViewController, didEnterSSID ssid: String) { + model.addWifi(ssid) + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/HostServiceView.swift b/Passepartout/App/macOS/Scenes/Service/HostServiceView.swift new file mode 100644 index 00000000..f67caeb0 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/HostServiceView.swift @@ -0,0 +1,77 @@ +// +// HostServiceView.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/13/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore + +protocol HostServiceViewDelegate: class { +} + +class HostServiceView: NSView { + @IBOutlet private weak var labelAddressesCaption: NSTextField! + + @IBOutlet private weak var tableAddresses: NSTableView! + + var isEnabled: Bool = true { + didSet { + } + } + + var profile: HostConnectionProfile? { + didSet { + tableAddresses.reloadData() + } + } + + weak var delegate: HostServiceViewDelegate? + + override func viewWillMove(toSuperview newSuperview: NSView?) { + super.viewWillMove(toSuperview: newSuperview) + + labelAddressesCaption.stringValue = L10n.App.Service.Cells.Addresses.caption.asCaption + } + + func reloadData() { + } +} + +extension HostServiceView: NSTableViewDataSource, NSTableViewDelegate { + func numberOfRows(in tableView: NSTableView) -> Int { + guard let profile = profile else { + return 0 + } + return profile.addresses.count + } + + func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? { + guard let profile = profile else { + return nil + } + return profile.addresses[row] + } + + func tableView(_ tableView: NSTableView, setObjectValue object: Any?, for tableColumn: NSTableColumn?, row: Int) { + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/HostServiceView.xib b/Passepartout/App/macOS/Scenes/Service/HostServiceView.xib new file mode 100644 index 00000000..44a6a5c6 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/HostServiceView.xib @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout/App/macOS/Scenes/Service/ProviderServiceView.swift b/Passepartout/App/macOS/Scenes/Service/ProviderServiceView.swift new file mode 100644 index 00000000..a8d43820 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/ProviderServiceView.swift @@ -0,0 +1,249 @@ +// +// ProviderServiceView.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/13/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore + +protocol ProviderServiceViewDelegate: class { + func providerView(_ providerView: ProviderServiceView, didSelectPool pool: Pool) + + func providerViewDidRequestInfrastructureRefresh(_ providerView: ProviderServiceView) +} + +class ProviderServiceView: NSView { + @IBOutlet private weak var labelCategoryCaption: NSTextField! + + @IBOutlet private weak var popupCategory: NSPopUpButton! + + @IBOutlet private weak var labelLocationCaption: NSTextField! + + @IBOutlet private weak var popupLocation: NSPopUpButton! + + @IBOutlet private weak var popupArea: NSPopUpButton! + + @IBOutlet private weak var labelLastInfrastructureUpdate: NSTextField! + + @IBOutlet private weak var buttonRefreshInfrastructure: NSButton! + + var isEnabled: Bool = true { + didSet { + popupCategory.isEnabled = isEnabled + popupLocation.isEnabled = isEnabled + popupArea.isEnabled = isEnabled + } + } + + private var categories: [PoolCategory] = [] + + private var sortedGroupsByCategory: [String: [PoolGroup]] = [:] + + private var currentCategoryIndex = -1 + + private var currentLocationIndex = -1 + + private var currentSortedPools: [Pool] = [] + + var profile: ProviderConnectionProfile? { + didSet { + guard let profile = profile else { + categories = [] + sortedGroupsByCategory = [:] + currentSortedPools = [] + popupCategory.removeAllItems() + popupLocation.removeAllItems() + popupArea.removeAllItems() + return + } + reloadData(withProfile: profile) + } + } + + var isRefreshingInfrastructure: Bool = false { + didSet { + buttonRefreshInfrastructure.isEnabled = !isRefreshingInfrastructure + } + } + + weak var delegate: ProviderServiceViewDelegate? + + override func viewWillMove(toSuperview newSuperview: NSView?) { + super.viewWillMove(toSuperview: newSuperview) + + labelCategoryCaption.stringValue = L10n.App.Service.Cells.Category.caption.asCaption + labelLocationCaption.stringValue = L10n.Core.Service.Cells.Provider.Pool.caption.asCaption + buttonRefreshInfrastructure.image = NSImage(named: NSImage.refreshTemplateName) + } + + // MARK: Actions + + @IBAction private func selectCategory(_ sender: Any?) { + let index = popupCategory.indexOfSelectedItem + guard index != currentCategoryIndex else { + return + } + currentCategoryIndex = index + + loadLocations(withCategory: index) + loadAreas(withLocation: 0) + if let pool = currentSortedPools.first { + delegate?.providerView(self, didSelectPool: pool) + } + } + + @IBAction private func selectLocation(_ sender: Any?) { + let index = popupLocation.indexOfSelectedItem + guard index != currentLocationIndex else { + return + } + currentLocationIndex = index + + loadAreas(withLocation: index) + if let pool = currentSortedPools.first { + delegate?.providerView(self, didSelectPool: pool) + } + } + + @IBAction private func selectArea(_ sender: Any?) { + let pool = currentSortedPools[popupArea.indexOfSelectedItem] + delegate?.providerView(self, didSelectPool: pool) + } + + @IBAction private func refreshInfrastructure(_ sender: Any?) { + delegate?.providerViewDidRequestInfrastructureRefresh(self) + } + + // MARK: Helpers + + func reloadData() { + guard let profile = profile else { + return + } + reloadData(withProfile: profile) + } + + private func reloadData(withProfile profile: ProviderConnectionProfile) { + categories = profile.infrastructure.categories.sorted { $0.name.lowercased() < $1.name.lowercased() } + for c in categories { + sortedGroupsByCategory[c.name] = c.groups.sorted() + } + + popupCategory.removeAllItems() + categories.forEach { + let categoryTitle: String + if $0.name.isEmpty { + categoryTitle = L10n.App.Global.Values.default + } else { + categoryTitle = $0.name.capitalized + } + popupCategory.addItem(withTitle: categoryTitle) + } + + if let (a, b, c) = selectPopupsFromCurrentProfile() { + popupCategory.selectItem(at: a) + loadLocations(withCategory: a) + popupLocation.selectItem(at: b) + loadAreas(withLocation: b) + popupArea.selectItem(at: c) + + currentCategoryIndex = a + currentLocationIndex = b + } + if let lastInfrastructureUpdate = InfrastructureFactory.shared.modificationDate(forName: profile.name) { + labelLastInfrastructureUpdate.stringValue = L10n.Core.Service.Sections.ProviderInfrastructure.footer(lastInfrastructureUpdate.timestamp) + } + } + + private func selectPopupsFromCurrentProfile() -> (Int, Int, Int)? { + for (a, category) in categories.enumerated() { + guard let groups = sortedGroupsByCategory[category.name] else { + continue + } + for (b, group) in groups.enumerated() { + + // FIXME: inefficient, cache sorted pools + for (c, pool) in group.pools.sortedPools().enumerated() { + if pool.id == profile?.poolId { + return (a, b, c) + } + } + } + } + return nil + } + + private func loadLocations(withCategory index: Int) { + let category = categories[index] + let menu = NSMenu() + + popupLocation.removeAllItems() + sortedGroupsByCategory[category.name]?.forEach { + guard let pool = $0.pools.first else { + return + } + + var title = $0.localizedCountry + let subtitle: String? + if $0.pools.count > 1 { + subtitle = pool.area?.uppercased() + } else { + subtitle = pool.secondaryId + } + if !(subtitle?.isEmpty ?? true) { + title.append(" - \(subtitle!)") + } + + let item = NSMenuItem(title: title, action: nil, keyEquivalent: "") + item.image = $0.logo + menu.addItem(item) + } + popupLocation.menu = menu + } + + private func loadAreas(withLocation index: Int) { + let categoryIndex = popupCategory.indexOfSelectedItem + let category = categories[categoryIndex] + guard let sortedGroups = sortedGroupsByCategory[category.name] else { + fatalError("No groups in category \(category.name)") + } + let group = sortedGroups[index] + let menu = NSMenu() + + popupArea.removeAllItems() + // FIXME: inefficient, cache sorted pools + currentSortedPools = group.pools.sortedPools() + currentSortedPools.forEach { + guard !$0.secondaryId.isEmpty else { + return + } + let item = NSMenuItem(title: $0.secondaryId, action: nil, keyEquivalent: "") + if let extraCountry = $0.extraCountries?.first { + item.image = extraCountry.image + } + menu.addItem(item) + } + popupArea.menu = menu + popupArea.isHidden = menu.items.isEmpty + } +} diff --git a/Passepartout/App/macOS/Scenes/Service/ProviderServiceView.xib b/Passepartout/App/macOS/Scenes/Service/ProviderServiceView.xib new file mode 100644 index 00000000..1fc62476 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/ProviderServiceView.xib @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout/App/macOS/Scenes/Service/ServiceViewController.swift b/Passepartout/App/macOS/Scenes/Service/ServiceViewController.swift new file mode 100644 index 00000000..159d05c6 --- /dev/null +++ b/Passepartout/App/macOS/Scenes/Service/ServiceViewController.swift @@ -0,0 +1,386 @@ +// +// ServiceViewController.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 7/29/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa +import PassepartoutCore +import TunnelKit +import SwiftyBeaver +import Convenience + +private let log = SwiftyBeaver.self + +class ServiceViewController: NSViewController { + @IBOutlet private weak var labelWelcome: NSTextField! + + @IBOutlet private weak var viewVPN: NSView! + + @IBOutlet private weak var viewProfile: NSView! + + @IBOutlet private weak var viewFooter: NSView! + + @IBOutlet private weak var labelStatusCaption: NSTextField! + + @IBOutlet private weak var labelStatus: NSTextField! + + @IBOutlet private weak var activityVPN: NSProgressIndicator! + + @IBOutlet private weak var labelServiceDescription: NSTextField! + + @IBOutlet private weak var viewInactive: NSView! + + @IBOutlet private weak var buttonUse: NSButton! + + @IBOutlet private weak var viewActive: NSView! + + @IBOutlet private weak var buttonToggle: NSButton! + + @IBOutlet private weak var buttonReconnect: NSButton! + + @IBOutlet private weak var labelConnectedLocation: NSTextField! + + @IBOutlet private weak var buttonCustomize: NSButton! + + @IBOutlet private weak var buttonAccount: NSButton! + + @IBOutlet private weak var viewProfileContainer: NSView! + + private lazy var viewProvider: ProviderServiceView = .get() + + private lazy var viewHost: HostServiceView = .get() + + private var profile: ConnectionProfile? + + private let service = TransientStore.shared.service + + private lazy var vpn = GracefulVPN(service: service) + + private var isPendingConnection = false + + deinit { + NotificationCenter.default.removeObserver(self) + } + + func setProfile(_ profile: ConnectionProfile?) { + defer { + let hasProfile = (self.profile != nil) + labelWelcome.isHidden = hasProfile + viewProfile.isHidden = !hasProfile + viewProfileContainer.isHidden = !hasProfile + viewFooter.isHidden = !hasProfile + reloadVpnStatus() + + if let profile = self.profile, service.isActiveProfile(profile) { + viewInactive.isHidden = true + viewActive.isHidden = false + buttonToggle.isEnabled = true + } else { + viewActive.isHidden = true + viewInactive.isHidden = false + buttonUse.isEnabled = true + } + } + + if let profile = profile, let currentProfile = self.profile { + guard (profile.context != currentProfile.context) || (profile.id != currentProfile.id) else { + return + } + } + + self.profile = profile + guard let _ = profile else { + return + } + + let view: NSView + if let providerProfile = profile as? ProviderConnectionProfile { + viewProvider.profile = providerProfile + viewProvider.delegate = self + view = viewProvider + } else if let hostProfile = profile as? HostConnectionProfile { + viewHost.profile = hostProfile + viewHost.delegate = self + view = viewHost + } else { + fatalError("Unexpected profile type") + } + + view.translatesAutoresizingMaskIntoConstraints = false + viewProfileContainer.subviews.forEach { + $0.removeFromSuperview() + } + viewProfileContainer.addSubview(view) + NSLayoutConstraint.activate([ + view.topAnchor.constraint(equalTo: viewProfileContainer.topAnchor), +// view.bottomAnchor.constraint(equalTo: viewProfileContainer.bottomAnchor), +// view.centerYAnchor.constraint(equalTo: viewProfileContainer.centerYAnchor), + view.rightAnchor.constraint(equalTo: viewProfileContainer.rightAnchor), + view.leftAnchor.constraint(equalTo: viewProfileContainer.leftAnchor), + ]) + } + + override func viewDidLoad() { + super.viewDidLoad() + + if profile == nil { + setProfile(service.activeProfile) + } + + // enforce on macOS + service.preferences.disconnectsOnSleep = true + + labelWelcome.stringValue = L10n.Core.Service.Welcome.message + labelStatusCaption.stringValue = L10n.Core.Service.Cells.ConnectionStatus.caption.asCaption + labelServiceDescription.stringValue = L10n.Core.Service.Sections.Vpn.footer + buttonUse.title = L10n.Core.Service.Cells.UseProfile.caption + buttonToggle.title = L10n.App.Service.Cells.Vpn.TurnOn.caption + buttonReconnect.title = L10n.Core.Service.Cells.Reconnect.caption + buttonCustomize.image = NSImage(named: NSImage.actionTemplateName) + buttonAccount.title = L10n.Core.Account.title.asContinuation + + let nc = NotificationCenter.default + nc.addObserver(self, selector: #selector(vpnDidUpdate), name: VPN.didChangeStatus, object: nil) + nc.addObserver(self, selector: #selector(vpnDidReinstall), name: VPN.didReinstall, object: nil) + + vpn.prepare { + self.reloadVpnStatus() + } + } + + // MARK: Actions + + @IBAction private func activateProfile(_ sender: Any?) { + service.activateProfile(uncheckedProfile) + vpn.disconnect(completionHandler: nil) + } + + @IBAction private func toggleVpnService(_ sender: Any?) { + guard let profile = profile else { + return + } + + let status: VPNStatus + if service.isActiveProfile(profile) { + status = vpn.status ?? .disconnected + } else { + + // force reconnection when activating a different profile + status = .disconnected + } + service.activateProfile(profile) + reloadVpnStatus() + + switch status { + case .disconnected: + guard !service.needsCredentials(for: uncheckedProfile) else { + isPendingConnection = true + perform(segue: StoryboardSegue.Service.accountSegueIdentifier) + return + } + vpn.reconnect(completionHandler: nil) + + default: + vpn.disconnect(completionHandler: nil) + } + } + + @IBAction private func reconnectVPN(_ sender: Any?) { + GracefulVPN(service: service).reconnect(completionHandler: nil) + } + +// @IBAction private func cycleConnection(_ sender: Any?) { +// guard vpn.isEnabled else { +// return +// } +//// guard vpn.status == .disconnected else { +//// let alert = Macros.alert( +//// L10n.Core.Service.Cells.ConnectionStatus.caption, +//// L10n.Core.Service.Alerts.ReconnectVpn.message +//// ) +//// alert.addDefaultAction(L10n.Core.Global.ok) { +//// self.vpn.reconnect(configuration: self.currentVpnConfiguration(), completionHandler: nil) +//// } +//// alert.addCancelAction(L10n.Core.Global.cancel) +//// present(alert, animated: true, completion: nil) +//// return +//// } +// vpn.reconnect(completionHandler: nil) +// } + + @IBAction private func customizeProfile(_ sender: Any?) { + perform(segue: StoryboardSegue.Service.customizeSegueIdentifier) + } + + override func prepare(for segue: NSStoryboardSegue, sender: Any?) { + if let accountVC = segue.destinationController as? AccountViewController { + accountVC.profile = profile + accountVC.delegate = self + } else if let customVC = segue.destinationController as? ProfileCustomizationContainerViewController { + customVC.profile = profile + } + } + + // MARK: Notifications + + @objc private func vpnDidUpdate() { + reloadVpnStatus() + + guard let status = vpn.status else { + return + } + log.debug("VPN.status: \(status)") + switch status { + case .connected: + Reviewer.shared.reportEvent() + + default: + break + } + } + + @objc private func vpnDidReinstall() { + viewProvider.reloadData() + viewHost.reloadData() + } + + // MARK: Helpers + + private func reloadVpnStatus() { + labelConnectedLocation.stringValue = "" + guard let profile = profile else { + return + } + let isActive = service.isActiveProfile(profile) + guard isActive && vpn.isEnabled else { + labelStatus.applyVPN(Theme.current, isActive: isActive, with: nil, error: nil) + activityVPN.stopAnimation(nil) + buttonToggle.title = L10n.App.Service.Cells.Vpn.TurnOn.caption + buttonToggle.isEnabled = true + buttonReconnect.isEnabled = false + return + } + + labelStatus.applyVPN(Theme.current, isActive: isActive, with: vpn.status, error: service.vpnLastError) + buttonToggle.title = vpn.isEnabled ? L10n.App.Service.Cells.Vpn.TurnOff.caption : L10n.App.Service.Cells.Vpn.TurnOn.caption + buttonReconnect.isEnabled = true + + // append connected location for providers + if vpn.status == .connected, let providerProfile = profile as? ProviderConnectionProfile { + labelConnectedLocation.stringValue = "(\(providerProfile.pool?.localizedCountry ?? ""))" + } + + switch vpn.status ?? .disconnected { + case .connected: + activityVPN.stopAnimation(nil) + + case .disconnected: + activityVPN.stopAnimation(nil) + + case .connecting: + activityVPN.startAnimation(nil) + + case .disconnecting: + activityVPN.startAnimation(nil) + } + } +} + +extension ServiceViewController: AccountViewControllerDelegate { + func accountController(_ accountController: AccountViewController, shouldUpdateCredentials credentials: Credentials, forProfile profile: ConnectionProfile) -> Bool { + guard profile.requiresCredentials else { + return true + } + return credentials.isValid + } + + func accountController(_ accountController: AccountViewController, didUpdateCredentials credentials: Credentials, forProfile profile: ConnectionProfile) { + if isPendingConnection { + isPendingConnection = false + vpn.reconnect(completionHandler: nil) + } + StatusMenu.shared.refreshWithCurrentProfile() + } + + func accountControllerDidCancel(_ accountController: AccountViewController) { + isPendingConnection = false + } +} + +extension ServiceViewController: ProviderServiceViewDelegate { + func providerView(_ providerView: ProviderServiceView, didSelectPool pool: Pool) { + + // fall back to a supported preset + let supportedPresets = pool.supportedPresetIds(in: uncheckedProviderProfile.infrastructure) + if let presetId = uncheckedProviderProfile.preset?.id, !supportedPresets.contains(presetId), + let fallback = supportedPresets.first { + + uncheckedProviderProfile.presetId = fallback + } + + service.setPoolId(pool.id, forProviderProfile: uncheckedProviderProfile) +// vpn.reinstallIfEnabled() + } + + func providerViewDidRequestInfrastructureRefresh(_ providerView: ProviderServiceView) { + let name = uncheckedProviderProfile.name + + viewProvider.isRefreshingInfrastructure = true + let isUpdating = InfrastructureFactory.shared.update(name, notBeforeInterval: AppConstants.Services.minimumUpdateInterval) { (response, error) in + self.viewProvider.isRefreshingInfrastructure = false + guard let _ = response else { + return + } + self.viewProvider.reloadData() + } + if !isUpdating { + viewProvider.isRefreshingInfrastructure = false + } + } +} + +extension ServiceViewController: HostServiceViewDelegate { +} + +private extension ServiceViewController { + private var uncheckedProfile: ConnectionProfile { + guard let profile = profile else { + fatalError("Expected non-nil profile here") + } + return profile + } + + private var uncheckedProviderProfile: ProviderConnectionProfile { + guard let profile = profile as? ProviderConnectionProfile else { + fatalError("Expected ProviderConnectionProfile (found: \(type(of: self.profile)))") + } + return profile + } + + private var uncheckedHostProfile: HostConnectionProfile { + guard let profile = profile as? HostConnectionProfile else { + fatalError("Expected HostConnectionProfile (found: \(type(of: self.profile)))") + } + return profile + } +} diff --git a/Passepartout/App/macOS/Tables/TextTableView.swift b/Passepartout/App/macOS/Tables/TextTableView.swift new file mode 100644 index 00000000..98eab5f8 --- /dev/null +++ b/Passepartout/App/macOS/Tables/TextTableView.swift @@ -0,0 +1,150 @@ +// +// TextTableView.swift +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/20/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Cocoa + +class TextTableView: NSView { + @IBOutlet private weak var labelTitle: NSTextField! + + @IBOutlet private weak var tableView: NSTableView! + + @IBOutlet private weak var buttonAdd: NSButton! + + @IBOutlet private weak var buttonRemove: NSButton! + + var title = "" + + var rows: [String] = [] + + var selectedRow: Int? { + didSet { + guard let _ = selectedRow else { + tableView.deselectColumn(0) + return + } + } + } + + var selectionBlock: ((String) -> Void)? + + var deselectionBlock: (() -> Void)? + + var updateBlock: (() -> Void)? + + var rowTemplate = "" + + var isEnabled: Bool = true { + didSet { + isAddEnabled = isEnabled + isRemoveEnabled = isEnabled + } + } + + var isAddEnabled: Bool { + get { + return buttonAdd.isEnabled + } + set { + buttonAdd.isEnabled = newValue + } + } + + var isRemoveEnabled: Bool { + get { + return buttonRemove.isEnabled + } + set { + buttonRemove.isEnabled = newValue + } + } + + override func viewWillMove(toSuperview newSuperview: NSView?) { + super.viewWillMove(toSuperview: newSuperview) + + labelTitle.stringValue = title + buttonAdd.image = NSImage(named: NSImage.addTemplateName) + buttonRemove.image = NSImage(named: NSImage.removeTemplateName) + + if let i = selectedRow { + tableView.reloadData() + tableView.selectRowIndexes(IndexSet(integer: i), byExtendingSelection: true) + } + } + + // MARK: Actions + + func reloadData() { + tableView.reloadData() + } + + @IBAction private func addElement(_ sender: Any?) { + rows.append(rowTemplate) + tableView.reloadData() + tableView.editColumn(0, row: rows.count - 1, with: nil, select: true) + updateBlock?() + } + + @IBAction private func removeElement(_ sender: Any?) { + let index = tableView.selectedRow + guard index != -1 else { + return + } + rows.remove(at: index) + tableView.reloadData() + updateBlock?() + } +} + +extension TextTableView: NSTableViewDataSource, NSTableViewDelegate { + func numberOfRows(in tableView: NSTableView) -> Int { + return rows.count + } + + func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? { + return rows[row] + } + + func tableView(_ tableView: NSTableView, setObjectValue object: Any?, for tableColumn: NSTableColumn?, row: Int) { + defer { + tableView.reloadData() + } + guard let string = object as? String, !string.isEmpty else { + rows.remove(at: row) + return + } + rows[row] = string + } + + func tableViewSelectionDidChange(_ notification: Notification) { + let index = tableView.selectedRow + guard index != -1 else { + isRemoveEnabled = false + deselectionBlock?() + return + } + isRemoveEnabled = true + selectionBlock?(rows[index]) + } +} diff --git a/Passepartout/App/macOS/Tables/TextTableView.xib b/Passepartout/App/macOS/Tables/TextTableView.xib new file mode 100644 index 00000000..4545e3aa --- /dev/null +++ b/Passepartout/App/macOS/Tables/TextTableView.xib @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Passepartout/App/macOS/en.lproj/App.strings b/Passepartout/App/macOS/en.lproj/App.strings new file mode 100644 index 00000000..1de504d2 --- /dev/null +++ b/Passepartout/App/macOS/en.lproj/App.strings @@ -0,0 +1,72 @@ +// +// App.strings +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/21/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.values.default" = "Default"; + +"vpn.unused" = "Off"; + +"organizer.title" = "%@"; +"organizer.menus.provider" = "Provider"; +"organizer.menus.provider.unavailable" = "No providers left"; +"organizer.menus.host" = "Host"; +"organizer.alerts.remove_profile.title" = "Remove profile"; +"organizer.alerts.remove_profile.message" = "Are you sure you want to delete profile %@?"; +"organizer.alerts.open_host_file.title" = "Select an .ovpn file"; + +"service.cells.vpn.turn_on.caption" = "Enable VPN"; +"service.cells.vpn.turn_off.caption" = "Disable VPN"; +"service.cells.category.caption" = "Category"; +"service.cells.addresses.caption" = "Addresses"; + +"endpoint.cells.address" = "Address"; +"endpoint.cells.protocol" = "Protocol"; + +"configuration.title" = "Configuration"; +"configuration.alerts.commit.message" = "New parameters will not be effective until you reconnect manually. Changes in trusted networks will apply immediately."; +"configuration.alerts.commit.buttons.reconnect" = "Reconnect now"; +"configuration.alerts.commit.buttons.skip" = "Skip"; + +"network_settings.dns.cells.domains.title" = "Domains"; +"network_settings.dns.cells.addresses.title" = "Servers"; +"network_settings.proxy.cells.bypass_domains.title" = "Bypass domains"; + +"preferences.title" = "%@ Preferences"; +"preferences.sections.general.header" = "General"; +"preferences.cells.launches_on_login.caption" = "Launch on login"; +"preferences.cells.launches_on_login.footer" = "Check to automatically launch the app on boot or login."; + +"trusted.columns.trust.title" = "Trust"; +"trusted.ethernet.title" = "Trust wired connections"; +"trusted.ethernet.description" = "Check to trust any wired cable connection."; + +"menu.switch_profile.title" = "Active profile"; +"menu.active_profile.title.none" = "No active profile"; +"menu.active_profile.items.customize.title" = "Customize..."; +"menu.active_profile.messages.missing_credentials" = "No account configured"; +"menu.organizer.title" = "Organizer"; +"menu.preferences.title" = "Preferences"; +"menu.support.title" = "Support"; +"menu.quit.title" = "Quit %@"; +"menu.quit.messages.confirm" = "The VPN, if enabled, will still run in the background. Do you want to quit?"; diff --git a/Passepartout/App/macOS/it.lproj/App.strings b/Passepartout/App/macOS/it.lproj/App.strings new file mode 100644 index 00000000..4a087c22 --- /dev/null +++ b/Passepartout/App/macOS/it.lproj/App.strings @@ -0,0 +1,53 @@ +// +// App.strings +// Passepartout-macOS +// +// Created by Davide De Rosa on 6/21/19. +// Copyright (c) 2019 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.values.default" = "Default"; + +"vpn.unused" = "Spento"; + +"organizer.menus.provider" = "Provider"; +"organizer.menus.provider.unavailable" = "Nessun altro provider disponibile"; +"organizer.menus.host" = "Host"; +"organizer.alerts.remove_profile.title" = "Cancella profilo"; +"organizer.alerts.remove_profile.message" = "Sei sicuro di voler cancellare il profilo %@?"; +"organizer.alerts.open_host_file.title" = "Seleziona un file .ovpn"; + +"service.cells.vpn.turn_on.caption" = "Abilita VPN"; +"service.cells.vpn.turn_off.caption" = "Disabilita VPN"; +"service.cells.category.caption" = "Categoria"; +"service.cells.addresses.caption" = "Indirizzi"; + +"endpoint.cells.address" = "Indirizzo"; +"endpoint.cells.protocol" = "Protocollo"; + +"configuration.title" = "Configurazione"; + +"network_settings.dns.cells.addresses.title" = "Server"; +"network_settings.proxy.cells.bypass_domains.title" = "Dominii ignorati"; + +"preferences.title" = "Preferenze"; +"preferences.sections.general.header" = "Generale"; + +"trusted.columns.trust.title" = "Sicura"; diff --git a/Passepartout/App/macOS/swiftgen.yml b/Passepartout/App/macOS/swiftgen.yml new file mode 100644 index 00000000..a3d8a603 --- /dev/null +++ b/Passepartout/App/macOS/swiftgen.yml @@ -0,0 +1,29 @@ +strings: + inputs: + - ../../Core/Resources/en.lproj/Core.strings + - en.lproj/App.strings + outputs: + - templateName: structured-swift4 + output: Global/SwiftGen+Strings.swift + +ib: + inputs: + #- Base.lproj/About.storyboard + - Base.lproj/Main.storyboard + - Base.lproj/Preferences.storyboard + - Base.lproj/Service.storyboard + #- Base.lproj/Shortcuts.storyboard + outputs: + - templateName: scenes-swift4 + output: Global/SwiftGen+Scenes.swift + - templateName: segues-swift4 + output: Global/SwiftGen+Segues.swift + +xcassets: + inputs: + - Assets.xcassets + - Flags.xcassets + - Providers.xcassets + outputs: + - templateName: swift4 + output: Global/SwiftGen+Assets.swift diff --git a/Passepartout/Core/Info.plist b/Passepartout/Core/Info.plist new file mode 100644 index 00000000..5dabe51b --- /dev/null +++ b/Passepartout/Core/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + $(CFG_APP_VERSION) + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSHumanReadableCopyright + $(CFG_COPYRIGHT) + + diff --git a/PassepartoutCore-iOS/PassepartoutCore.h b/Passepartout/Core/PassepartoutCore.h similarity index 100% rename from PassepartoutCore-iOS/PassepartoutCore.h rename to Passepartout/Core/PassepartoutCore.h diff --git a/Passepartout/Core/README.md b/Passepartout/Core/README.md new file mode 100644 index 00000000..49be4156 --- /dev/null +++ b/Passepartout/Core/README.md @@ -0,0 +1,56 @@ +

    + +# [Passepartout][about-website] + +[![TunnelKit 3.1](https://img.shields.io/badge/tunnelkit-3.1-d69c68.svg)][dep-tunnelkit] +[![License GPLv3](https://img.shields.io/badge/license-GPLv3-lightgray.svg)](LICENSE) +[![Travis-CI](https://api.travis-ci.org/passepartoutvpn/passepartout-core-apple.svg?branch=master)](https://travis-ci.org/passepartoutvpn/passepartout-core-apple) + +Passepartout is a non-official, user-friendly [OpenVPN®][openvpn] client. + +## Core + +The repository merely hosts code, resources and translations shared across Passepartout for [iOS][git-ios] and [macOS][git-macos]. + +## License + +This project is licensed under the [GPLv3][license-content]. + +### Contributing + +By contributing to this project you are agreeing to the terms stated in the [Contributor License Agreement (CLA)][contrib-cla]. For more details please see [CONTRIBUTING][contrib-readme]. + +## Credits + +The logo is taken from the awesome Circle Icons set by Nick Roach. + +- lzo - © 1996-2017 Markus F.X.J. Oberhumer +- PIATunnel - © 2018-Present Private Internet Access +- SSZipArchive - © 2010-2012 Sam Soffes +- SwiftGen - © 2018 SwiftGen +- SwiftyBeaver - © 2015 Sebastian Kreutzberger + +This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. ([https://www.openssl.org/][dep-openssl]) + +© 2002-2018 OpenVPN Inc. - OpenVPN is a registered trademark of OpenVPN Inc. + +## Contacts + +Twitter: [@keeshux][about-twitter] + +Website: [passepartoutvpn.app][about-website] + +[openvpn]: https://openvpn.net/index.php/open-source/overview.html + +[git-ios]: https://github.com/passepartoutvpn/passepartout-ios +[git-macos]: https://github.com/passepartoutvpn/passepartout-macos + +[dep-tunnelkit]: https://github.com/passepartoutvpn/tunnelkit +[dep-openssl]: https://www.openssl.org/ + +[license-content]: LICENSE +[contrib-cla]: CLA.rst +[contrib-readme]: CONTRIBUTING.md + +[about-twitter]: https://twitter.com/keeshux +[about-website]: https://passepartoutvpn.app diff --git a/Passepartout/Core/Resources/Base.lproj/Intents.intentdefinition b/Passepartout/Core/Resources/Base.lproj/Intents.intentdefinition new file mode 100644 index 00000000..58ceccf9 --- /dev/null +++ b/Passepartout/Core/Resources/Base.lproj/Intents.intentdefinition @@ -0,0 +1,513 @@ + + + + + INEnums + + INIntentDefinitionModelVersion + 1.1 + INIntentDefinitionNamespace + CM6KGi + INIntentDefinitionSystemVersion + 19D76 + INIntentDefinitionToolsBuildVersion + 11C504 + INIntentDefinitionToolsVersion + 11.3.1 + INIntents + + + INIntentCategory + generic + INIntentDescription + Connects to a host profile + INIntentDescriptionID + eXXb2z + INIntentLastParameterTag + 6 + INIntentName + ConnectVPN + INIntentParameterCombinations + + profileId,profileTitle,context + + INIntentParameterCombinationIsPrimary + + INIntentParameterCombinationSupportsBackgroundExecution + + INIntentParameterCombinationTitle + Connect to ${profileTitle} + INIntentParameterCombinationTitleID + U6o81V + + + INIntentParameters + + + INIntentParameterDisplayPriority + 1 + INIntentParameterMetadata + + INIntentParameterMetadataCapitalization + Sentences + + INIntentParameterName + context + INIntentParameterTag + 5 + INIntentParameterType + String + + + INIntentParameterDisplayPriority + 2 + INIntentParameterMetadata + + INIntentParameterMetadataCapitalization + Sentences + + INIntentParameterName + profileId + INIntentParameterTag + 4 + INIntentParameterType + String + + + INIntentParameterDisplayPriority + 3 + INIntentParameterMetadata + + INIntentParameterMetadataCapitalization + Sentences + + INIntentParameterName + profileTitle + INIntentParameterTag + 6 + INIntentParameterType + String + + + INIntentResponse + + INIntentResponseCodes + + + INIntentResponseCodeName + success + INIntentResponseCodeSuccess + + + + INIntentResponseCodeName + failure + + + + INIntentTitle + Connect to VPN + INIntentTitleID + LA99yM + INIntentType + Custom + INIntentVerb + Do + + + INIntentCategory + generic + INIntentDescription + Adds current Wi-Fi to trusted networks + INIntentDescriptionID + BKxs8X + INIntentName + TrustCurrentNetwork + INIntentParameterCombinations + + + + INIntentParameterCombinationIsPrimary + + INIntentParameterCombinationSupportsBackgroundExecution + + INIntentParameterCombinationTitle + Trust current Wi-Fi + INIntentParameterCombinationTitleID + POyDPM + + + INIntentResponse + + INIntentResponseCodes + + + INIntentResponseCodeName + success + INIntentResponseCodeSuccess + + + + INIntentResponseCodeName + failure + + + + INIntentTitle + Trust current Wi-Fi + INIntentTitleID + m2E7SI + INIntentType + Custom + INIntentVerb + Do + + + INIntentCategory + generic + INIntentDescription + Disables the VPN service + INIntentDescriptionID + eQ1yzr + INIntentName + DisableVPN + INIntentParameterCombinations + + + + INIntentParameterCombinationIsPrimary + + INIntentParameterCombinationSupportsBackgroundExecution + + INIntentParameterCombinationTitle + Disable VPN + INIntentParameterCombinationTitleID + IeGsEq + + + INIntentResponse + + INIntentResponseCodes + + + INIntentResponseCodeName + success + INIntentResponseCodeSuccess + + + + INIntentResponseCodeName + failure + + + + INIntentTitle + Disable VPN + INIntentTitleID + 1ZRTCZ + INIntentType + Custom + INIntentVerb + Do + + + INIntentCategory + generic + INIntentDescription + Removes current Wi-Fi from trusted networks + INIntentDescriptionID + 7eoAss + INIntentName + UntrustCurrentNetwork + INIntentParameterCombinations + + + + INIntentParameterCombinationIsPrimary + + INIntentParameterCombinationSupportsBackgroundExecution + + INIntentParameterCombinationTitle + Untrust current Wi-Fi + INIntentParameterCombinationTitleID + 0Wu9nb + + + INIntentResponse + + INIntentResponseCodes + + + INIntentResponseCodeName + success + INIntentResponseCodeSuccess + + + + INIntentResponseCodeName + failure + + + + INIntentTitle + Untrust current Wi-Fi + INIntentTitleID + rd1T8p + INIntentType + Custom + INIntentVerb + Do + + + INIntentCategory + generic + INIntentDescription + Adds cellular to trusted networks + INIntentDescriptionID + 9GpJt5 + INIntentName + TrustCellularNetwork + INIntentParameterCombinations + + + + INIntentParameterCombinationIsPrimary + + INIntentParameterCombinationSupportsBackgroundExecution + + INIntentParameterCombinationTitle + Trust cellular network + INIntentParameterCombinationTitleID + NWWgCl + + + INIntentResponse + + INIntentResponseCodes + + + INIntentResponseCodeName + success + INIntentResponseCodeSuccess + + + + INIntentResponseCodeName + failure + + + + INIntentTitle + Trust cellular network + INIntentTitleID + H4taev + INIntentType + Custom + INIntentVerb + Do + + + INIntentCategory + generic + INIntentDescription + Removes cellular from trusted networks + INIntentDescriptionID + 0jRWn5 + INIntentName + UntrustCellularNetwork + INIntentParameterCombinations + + + + INIntentParameterCombinationIsPrimary + + INIntentParameterCombinationSupportsBackgroundExecution + + INIntentParameterCombinationTitle + Untrust cellular network + INIntentParameterCombinationTitleID + ggzKA2 + + + INIntentResponse + + INIntentResponseCodes + + + INIntentResponseCodeName + success + INIntentResponseCodeSuccess + + + + INIntentResponseCodeName + failure + + + + INIntentTitle + Untrust cellular network + INIntentTitleID + wB1iYX + INIntentType + Custom + INIntentVerb + Do + + + INIntentCategory + generic + INIntentDescription + Connects to a specific location of a provider profile + INIntentDescriptionID + KjkCfU + INIntentLastParameterTag + 3 + INIntentName + MoveToLocation + INIntentParameterCombinations + + providerId,poolName,poolId + + INIntentParameterCombinationSubtitle + With ${providerId} provider + INIntentParameterCombinationSubtitleID + 66bZBE + INIntentParameterCombinationSupportsBackgroundExecution + + INIntentParameterCombinationTitle + Connect to ${poolName} + INIntentParameterCombinationTitleID + WnTPFg + + + INIntentParameters + + + INIntentParameterDisplayPriority + 1 + INIntentParameterMetadata + + INIntentParameterMetadataCapitalization + Sentences + + INIntentParameterName + providerId + INIntentParameterTag + 2 + INIntentParameterType + String + + + INIntentParameterDisplayPriority + 2 + INIntentParameterMetadata + + INIntentParameterMetadataCapitalization + Sentences + + INIntentParameterName + poolId + INIntentParameterTag + 3 + INIntentParameterType + String + + + INIntentParameterDisplayPriority + 3 + INIntentParameterMetadata + + INIntentParameterMetadataCapitalization + Sentences + + INIntentParameterName + poolName + INIntentParameterTag + 1 + INIntentParameterType + String + + + INIntentResponse + + INIntentResponseCodes + + + INIntentResponseCodeName + success + INIntentResponseCodeSuccess + + + + INIntentResponseCodeName + failure + + + + INIntentTitle + Connect to provider location + INIntentTitleID + qo3Szz + INIntentType + Custom + INIntentVerb + Go + + + INIntentCategory + generic + INIntentDescription + Enables the VPN service with the profile currently in use + INIntentDescriptionID + xY97Vu + INIntentName + EnableVPN + INIntentParameterCombinations + + + + INIntentParameterCombinationIsPrimary + + INIntentParameterCombinationSubtitle + With profile in use + INIntentParameterCombinationSubtitleID + NCoK9B + INIntentParameterCombinationSupportsBackgroundExecution + + INIntentParameterCombinationTitle + Enable VPN + INIntentParameterCombinationTitleID + yesvFP + + + INIntentResponse + + INIntentResponseCodes + + + INIntentResponseCodeName + success + INIntentResponseCodeSuccess + + + + INIntentResponseCodeName + failure + + + + INIntentTitle + Enable VPN + INIntentTitleID + lQ6ziK + INIntentType + Custom + INIntentVerb + Do + + + INTypes + + + diff --git a/Passepartout/Core/Resources/de.lproj/Core.strings b/Passepartout/Core/Resources/de.lproj/Core.strings new file mode 100644 index 00000000..f5d11a3b --- /dev/null +++ b/Passepartout/Core/Resources/de.lproj/Core.strings @@ -0,0 +1,240 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 4/23/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "OK"; +"global.cancel" = "Abbrechen"; +"global.next" = "Weiter"; +"global.close" = "Schließen"; +"global.host.title_input.message" = "Gültige Zeichen beinhalten Buchstaben und Zahlen sowie Bindestrich \"-\", Unterstrich \"_\" und Punkt \".\"."; +"global.host.title_input.placeholder" = "Mein Profil"; +"global.email_not_configured" = "Es wurde kein Email-Account konfiguriert."; +"global.values.enabled" = "Aktiviert"; +"global.values.disabled" = "Deaktiviert"; +"global.values.none" = "Keine"; +"global.values.automatic" = "Automatisch"; +"global.values.manual" = "Manuell"; +"reddit.title" = "Reddit"; +"reddit.message" = "Wusstest du, daß Passepartout einen Subreddit hat? Abonniere ihn für Updates oder um Features, Probleme, neue Plattformen zu diskutieren - oder was auch immer du möchtest.\n\nDies ist auch ein guter Weg zu zeigen dass dir dieses Projekt etwas bedeutet."; +"reddit.buttons.subscribe" = "Jetzt abbonnieren!"; +"reddit.buttons.remind" = "Später erinnern"; +"reddit.buttons.never" = "Nicht erneut fragen"; +"organizer.sections.providers.header" = "Anbieter"; +"organizer.sections.providers.footer" = "Hier findest du einige Anbieter mit voreingestellten Konfigurationsprofilen."; +"organizer.sections.hosts.header" = "Hosts"; +"organizer.sections.hosts.footer" = "Importiere Hosts aus .ovpn Konfigurationsdateien."; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "Erhalte Hilfe von Siri um deine üblichen Interaktionen mit der App zu beschleunigen."; +"organizer.sections.support.header" = "Support"; +"organizer.sections.feedback.header" = "Feedback"; +"organizer.cells.siri_shortcuts.caption" = "Kurzbefehle verwalten"; +"organizer.cells.join_community.caption" = "Community beitreten"; +"organizer.cells.write_review.caption" = "Rezension schreiben"; +"organizer.cells.donate.caption" = "Spenden"; +"organizer.cells.github_sponsors.caption" = "Unterstütze mich bei GitHub"; +"organizer.cells.translate.caption" = "Übersetzung anbieten"; +"organizer.cells.about.caption" = "Über %@"; +"organizer.cells.uninstall.caption" = "VPN-Konfiguration entfernen"; +"organizer.alerts.exhausted_providers.message" = "Du hast Profile für alle verfügbaren Anbieter erstellt."; +"organizer.alerts.add_host.message" = "Öffne eine URL zu einer .ovpn-Konfigurationsdatei aus Safari, Mail oder anderen App um ein Host-Profil einzurichten.\n\nDu kannst auch eine .ovpn-Datei mit iTunes Dateifreigabe importieren."; +"organizer.alerts.cannot_donate.message" = "Auf diesem Gerät ist keine Bezahlmethode konfiguriert."; +"organizer.alerts.delete_vpn_profile.message" = "Möchtest du wirklich die VPN-Konfiguration aus deinen Geräte-Einstellungen löschen? Dies behebt möglicherweise manche kaputten VPN-Zustände und beeinflusst nicht deine Anbieter und Hosts-Profile."; +"wizards.host.alerts.existing.message" = "Ein Host-Profil mit identischem Titel existiert bereits. Ersetzen?"; +"parsed_file.alerts.malformed.message" = "Die Konfigurations-Datei enthält eine ungültige Option (%@)."; +"parsed_file.alerts.missing.message" = "Die Konfigurations-Datei enthält eine benötigte Option nicht (%@)."; +"parsed_file.alerts.unsupported.message" = "Die Konfigurations-Datei enthält eine nicht unterstützte Option (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "Die Konfigurations-Datei ist korrekt, enthält aber möglicherweise eine nicht unterstützte Option (%@).\n\nDie Verbindung kann, abhängig von den Server-Einstellungen, unterbrochen werden."; +"parsed_file.alerts.encryption_passphrase.message" = "Bitte die Verschlüsselungs-Passphrase eingeben."; +"parsed_file.alerts.decryption.message" = "Die Konfiguration enthält einen verschlüsselten Private Key und konnte nicht entschlüsselt werden. Bitte überprüfe ob du die Passphrase eingegeben hast."; +"parsed_file.alerts.parsing.message" = "Fehler beim Verarbeiten der Konfigurationsdatei (%@)."; +"parsed_file.alerts.buttons.report" = "Ein Problem melden"; +"service.sections.vpn.footer" = "Die Verbindung wird immer aufgebaut wenn notwendig."; +"service.sections.provider_infrastructure.footer" = "Zuletzt aktualisiert am %@."; +"service.sections.vpn_survives_sleep.footer" = "Deaktivieren um die Batterielaufzeit zu verbessern, allerdings verzögert sich der Verbindungsaufbau beim Aufwachen."; +"service.sections.vpn_resolves_hostname.footer" = "Bevorzugt in den meisten Netzwerken und benötigt in manchen IPv6 Netzwerken. Deaktivieren wo DNS geblockt ist oder um die Aushandlung zu beschleunigen bei langsam antwortenden DNS."; +"service.sections.trusted.header" = "Vertrauenswürdige Netzwerke"; +"service.sections.trusted.footer" = "Wenn ein vertrauenswürdiges Netzwerk verbunden wird, wird normalerweise die VPN-Verbindung beendet und bleibt deaktiviert. Deaktiviere diese Option um dieses Verhalten zu unterbinden."; +"service.sections.diagnostics.header" = "Diagnose"; +"service.sections.diagnostics.footer" = "Zensier-Status wird aktiv nach erneutem Verbinden. Netzwerk-Daten sind Hostnamen, IP-Adressen, Routingtabellen, SSID. Zugangsdaten und Private Keys werden nie gelogged."; +"service.cells.connection_status.caption" = "Status"; +"account.title" = "Account"; +"endpoint.title" = "Endpoint"; +"service.cells.provider.pool.caption" = "Ort"; +"service.cells.provider.preset.caption" = "Voreinstellung"; +"network_settings.title" = "Netzwerk-Einstellungen"; +"service.cells.vpn_survives_sleep.caption" = "Verbindung aktiv halten trotz Schlafmodus"; +"service.cells.vpn_resolves_hostname.caption" = "Server Hostname auflösen"; +"service.cells.trusted_mobile.caption" = "Mobilfunknetz"; +"service.cells.trusted_policy.caption" = "Vertrauen deaktiviert VPN"; +"service.cells.test_connectivity.caption" = "Verbindung testen"; +"service.cells.data_count.caption" = "Ausgetauschte Datenmenge"; +"service.cells.data_count.none" = "Nicht verfügbar"; +"service.cells.debug_log.caption" = "Debug log"; +"service.cells.masks_private_data.caption" = "Netzwerkdaten zensieren"; +"service.cells.reconnect.caption" = "Erneut verbinden"; +"service.cells.report_issue.caption" = "Verbindungsproblem melden"; +"service.alerts.rename.title" = "Profil umbenennen"; +"service.alerts.credentials_needed.message" = "Du musst zuerst die Account-Zugangsdaten eingeben."; +"service.alerts.reconnect_vpn.message" = "Möchtest du erneut zum VPN verbinden?"; +"service.alerts.trusted.no_network.message" = "Du bist mit keinem WLAN verbunden."; +"service.alerts.trusted.will_disconnect_trusted.message" = "In dem du diesem Netzwerk vertraust, wird das VPN getrennt. Weiter?"; +"service.alerts.trusted.will_disconnect_policy.message" = "Durch das Ändern der Vertrauens-Policy könnte das VPN deaktiviert werden. Weiter?"; +"service.alerts.test_connectivity.title" = "Konnektivität"; +"service.alerts.test_connectivity.messages.success" = "Dein Gerät ist mit dem Internet verbunden!"; +"service.alerts.test_connectivity.messages.failure" = "Dein Gerät hat keine Verbindung mit dem Internet, bitte prüfe deine Profil-Parameter."; +"service.alerts.masks_private_data.messages.must_reconnect" = "Um das aktuelle Debug-Log sicher zurückzusetzen und die neuen Zensier-Paramenter anzuwenden, musst du das VPN jetzt erneut verbinden."; +"service.alerts.buttons.reconnect" = "Erneut verbinden"; +"service.alerts.download.title" = "Download benötigt"; +"service.alerts.download.message" = "%@ benötigt den Download von zusätzlichen Konfigurationsdateien.\n\nBestätige um mit dem Download zu beginnen."; +"service.alerts.download.failed" = "Herunterladen der Konfigurationsdateien fehlgeschlagen. %@"; +"service.alerts.download.hud.extracting" = "Extrahiere Dateien, bitte warten..."; +"account.sections.guidance.footer.infrastructure.hideme" = "Benutze deine %@ Web-Zugangsdaten."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise numerischt (ohne Zwischenraum)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise deine Email."; +"account.sections.guidance.footer.infrastructure.pia" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise numerischt mit einem \"p\" Präfix."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Deine Zugangsdaten für %@ findest du unter \"Account > OpenVPN / IKEv2 Username\" auf der Webseite."; +"account.sections.guidance.footer.infrastructure.torguard" = "Verwenden Sie Ihre %@ service-Anmeldeinformationen, die von den Website-Anmeldeinformationen abweichen können."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise deine Email."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise deine Email."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Deine Zugangsdaten für %@ findest du im OpenVPN Config Generator auf der Webseite."; +"account.sections.registration.footer" = "Beantrage einen Account auf der %@ Webseite."; +"account.cells.username.caption" = "Benutzername"; +"account.cells.username.placeholder" = "Benutzername"; +"account.cells.password.caption" = "Passwort"; +"account.cells.password.placeholder" = "Geheim"; +"account.cells.open_guide.caption" = "Siehe deine Zugangsdaten"; +"account.cells.signup.caption" = "Registrieren bei %@"; +"endpoint.cells.any_address.caption" = "Automatisch"; +"endpoint.cells.any_protocol.caption" = "Automatisch"; +"configuration.sections.communication.header" = "Kommunikation"; +"configuration.sections.reset.footer" = "Wenn du nach einer Änderung der Kommunikations-Parameter dich nicht mehr verbinden kannst, hier tippen um zur originalen Konfiguration zurückzukehren."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Komprimierung"; +"configuration.sections.network.header" = "Netzwerk"; +"configuration.sections.other.header" = "Andere"; +"configuration.cells.cipher.caption" = "Chiffre"; +"configuration.cells.digest.caption" = "Authentifizierung"; +"configuration.cells.digest.value.embedded" = "Eingebettet"; +"configuration.cells.reset_original.caption" = "Konfiguration zurücksetzen"; +"configuration.cells.client.caption" = "Client Zertifikat"; +"configuration.cells.client.value.enabled" = "Geprüft"; +"configuration.cells.client.value.disabled" = "Nicht geprüft"; +"configuration.cells.tls_wrapping.caption" = "Wrapping"; +"configuration.cells.tls_wrapping.value.auth" = "Authentifizierung"; +"configuration.cells.tls_wrapping.value.crypt" = "Verschlüsselung"; +"configuration.cells.eku.caption" = "Erweiterte Verifizierung"; +"network_settings.gateway.title" = "Standard-Gateway"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Domäne"; +"network_settings.proxy.title" = "Proxy"; +"configuration.cells.proxy_https.caption" = "Proxy (HTTPS)"; +"configuration.cells.compression_framing.caption" = "Framing"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Algorithmus"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Nicht unterstützt"; +"configuration.cells.keep_alive.caption" = "Keep-alive"; +"configuration.cells.keep_alive.value.seconds" = "%d Sekunden"; +"configuration.cells.renegotiation_seconds.caption" = "erneute Aushandlung"; +"configuration.cells.renegotiation_seconds.value.after" = "nach %@"; +"configuration.cells.random_endpoint.caption" = "Endpunkt zufällig wählen"; +"network_choice.client" = ".ovpn-Datei einlesen"; +"network_choice.server" = "Vom Server holen"; +"global.captions.address" = "Adresse"; +"global.captions.port" = "Port"; +"debug_log.buttons.previous" = "Zurück"; +"debug_log.buttons.next" = "Weiter"; +"debug_log.alerts.empty_log.message" = "Das Debug-Log ist leer."; +"vpn.connecting" = "Verbinde"; +"vpn.active" = "Aktiv"; +"vpn.disconnecting" = "Trenne"; +"vpn.inactive" = "Inaktiv"; +"vpn.disabled" = "Deaktiviert"; +"vpn.errors.timeout" = "Timeout"; +"vpn.errors.dns" = "DNS fehlgeschlagen"; +"vpn.errors.auth" = "Authentifizierung fehlgeschlagen"; +"vpn.errors.tls" = "TLS fehlgeschlagen"; +"vpn.errors.encryption" = "Verschlüsselung fehlgeschlagen"; +"vpn.errors.compression" = "Komprimierung nicht unterstützt"; +"vpn.errors.network" = "Netzwerk geändert"; +"vpn.errors.routing" = "Kein Routing"; +"vpn.errors.gateway" = "Kein Gateway"; +"vpn.errors.shutdown" = "Server heruntergefahren"; +"issue_reporter.title" = "Problem melden"; +"issue_reporter.message" = "Das Debug-Log deiner letzten Verbindung ist notwendig um dein Verbindungs-Problem zu untersuchen und ist vollständig anonymisiert.\n\nDie .ovpn-Konfigurations-Datei, sofern vorhanden, wird anonymisiert von jeglichen sensiblen Daten, angehangen.\n\nBitte prüfe im Zweifelsfall die Email-Anhänge."; +"issue_reporter.buttons.accept" = "Ich verstehe"; +"translations.title" = "Übersetzungen"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "WLAN"; +"shortcuts.add.sections.cellular.header" = "Mobilfunknetz"; +"shortcuts.add.cells.connect.caption" = "Verbinde mit"; +"shortcuts.add.cells.enable_vpn.caption" = "Aktiviere VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Deaktiviere VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Vertraue aktivem WLAN"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Misstraue aktivem WLAN"; +"shortcuts.add.cells.trust_cellular.caption" = "Vertraue Mobilfunknetz"; +"shortcuts.add.cells.untrust_cellular.caption" = "Misstraue Mobilfunknetz"; +"shortcuts.add.alerts.no_profiles.message" = "Es gibt kein Profil mit dem eine Verbindung hergestellt werden kann."; +"shortcuts.edit.sections.all.header" = "Existierende Kurzbefehle"; +"about.title" = "Über"; +"about.sections.web.header" = "Web"; +"about.sections.share.header" = "Teilen"; +"about.cells.credits.caption" = "Credits"; +"about.cells.website.caption" = "Homepage"; +"about.cells.faq.caption" = "FAQ"; +"about.cells.disclaimer.caption" = "Haftungsausschluss"; +"about.cells.privacy_policy.caption" = "Datenschutzrichtlinie"; +"about.cells.share_twitter.caption" = "Darüber Twittern!"; +"about.cells.share_generic.caption" = "Freund einladen"; +"donation.title" = "Spenden"; +"donation.sections.one_time.header" = "Einmalig"; +"donation.sections.one_time.footer" = "Wenn du dich erkenntlich zeigen möchtest für meine Arbeit, gibt es hier ein paar Beträge die du direkt spenden kannst.\n\nDu bezahlst pro Spende nur einmal und kannst mehrmals spenden wenn du möchtest."; +"donation.cells.loading.caption" = "Lade Spenden"; +"donation.cells.purchasing.caption" = "Führe Spende durch"; +"donation.alerts.purchase.success.title" = "Danke"; +"donation.alerts.purchase.success.message" = "Das bedeutet mir viel und ich hoffe wirklich dass du die App weiterhin benutzt und unterstützt."; +"donation.alerts.purchase.failure.message" = "Konnte Spende nicht durchführen. %@"; +"share.message" = "Passepartout ist ein Benutzerfreundlicher, Open Source OpenVPN client für iOS und macOS"; +"version.title" = "Version"; +"version.labels.intro" = "Passepartout und TunnelKit sind geschrieben und gewartet von by Davide De Rosa (keeshux).\n\nQuellcode für Passepartout und TunnelKit ist öffentlich auf GitHub unter GPLv3 verfügbar, du findest die Links auf der Homepage.\n\nPassepartout ist ein inoffizieller client und auf keine Art und Weise mit OpenVPN Inc. verbunden."; +"credits.title" = "Credits"; +"credits.sections.licenses.header" = "Lizenzen"; +"credits.sections.notices.header" = "Notizen"; +"credits.sections.translations.header" = "Übersetzungen"; +"label.license.error" = "Konnte vollständigen Lizenz-Inhalt nicht herunterladen."; +"organizer.cells.profile.value.current" = "In Benutzung"; +"service.welcome.message" = "Willkommen bei Passepartout!\n\nBenutze den Organizer um ein neues Profil hinzuzufügen."; +"service.cells.server_configuration.caption" = "Serverkonfiguration"; +"service.cells.server_network.caption" = "Servernetzwerk"; +"service.alerts.configuration.disconnected" = "Konfiguration nicht verfügbar, stellen Sie sicher, dass Sie mit dem VPN verbunden sind."; +"server_network.cells.route.caption" = "Route"; +"wizards.provider.cells.update_list.caption" = "Aktualisiere Liste"; +"wizards.provider.alerts.unavailable.message" = "Die Provider-Infrastruktur konnte nicht heruntergeladen werden. Bitte versuchen Sie es später erneut."; +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "Come watch me make Passepartout live on Twitch, join the chat to interact and contribute!"; +"organizer.cells.follow_twitch.caption" = "Passepartout auf Twitch ansehen"; +"service.cells.use_profile.caption" = "Dieses Profil verwenden"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; diff --git a/Passepartout/Core/Resources/de.lproj/Intents.strings b/Passepartout/Core/Resources/de.lproj/Intents.strings new file mode 100644 index 00000000..3e07dfa8 --- /dev/null +++ b/Passepartout/Core/Resources/de.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Entfernt Mobilfunknetz von vertrauten Netzwerken"; + +"IeGsEq" = "VPN deaktivieren"; +"1ZRTCZ" = "VPN deaktivieren"; + +"66bZBE" = "Mit Anbieter ${providerId}"; + +"7eoAss" = "Entferne aktuelles WLAN von vertrauten Netzwerken"; + +"9GpJt5" = "Fügt Mobilnetz zu vertrauten Netzwerken hinzu"; + +"BKxs8X" = "Fügt aktuelles WLAN zu vertrauten Netzwerken hinzu"; + +"NWWgCl" = "Mobilfunknetz vertrauen"; +"H4taev" = "Mobilfunknetz vertrauen"; + +"KjkCfU" = "Connects to a specific location of a provider profile"; + +"LA99yM" = "Verbinde mit VPN"; + +"U6o81V" = "Verbinde mit ${profileTitle}"; + +"WnTPFg" = "Verbinde mit ${poolName}"; + +"eQ1yzr" = "Deaktiviert den VPN-Dienst"; + +"eXXb2z" = "Verbindet mit einem Hostprofil"; + +"yesvFP" = "Aktiviere VPN"; +"lQ6ziK" = "Aktiviere VPN"; + +"POyDPM" = "Vertraue aktuellem WLAN"; +"m2E7SI" = "Vertraue aktuellem WLAN"; + +"qo3Szz" = "Verbinde mit Anbieter-Ort"; + +"0Wu9nb" = "Aktuellem WLAN nicht vertrauen"; +"rd1T8p" = "Aktuellem WLAN nicht vertrauen"; + +"ggzKA2" = "Mobilfunknetz nicht vertrauen"; +"wB1iYX" = "Mobilfunknetz nicht vertrauen"; + +"xY97Vu" = "Aktiviert den VPN-Dienst mit dem derzeitig benutzten Profil"; + +"NCoK9B" = "Mit dem benutzten Profil"; diff --git a/Passepartout/Core/Resources/el.lproj/Core.strings b/Passepartout/Core/Resources/el.lproj/Core.strings new file mode 100644 index 00000000..637c20fb --- /dev/null +++ b/Passepartout/Core/Resources/el.lproj/Core.strings @@ -0,0 +1,240 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 6/13/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "OK"; +"global.cancel" = "Ακύρωση"; +"global.next" = "Επόμενο"; +"global.close" = "Κλείσιμο"; +"global.host.title_input.message" = "Αποδεκτοί χαρακτήρες είναι οι αλφαριθμητικοί συν τη παύλα \"-\", κάτω παύλα \"_\" και τελεία \".\"."; +"global.host.title_input.placeholder" = "Το προφίλ μου"; +"global.email_not_configured" = "Δεν έχει ρυθμιστεί λογαριασμός ηλεκτρονικού ταχυδρομείου."; +"global.values.enabled" = "Ενεργοποιήθηκε"; +"global.values.disabled" = "Απενεργοποιήθηκε"; +"global.values.none" = "Κανένα"; +"global.values.automatic" = "Αυτόματο"; +"global.values.manual" = "Χειροκίνητο"; +"reddit.title" = "Reddit"; +"reddit.message" = "Γνωρίζατε ότι το Passepartout έχει subreddit? Εγγραφείτε για ενημερώσεις ή για να συζητήσετε προβλήματα της εφαρμογές, νέες δυνατότητες και άλλα.\n\nΕίναι επίσης ένας ωραίος τρόπος να δείξετε ότι ενδιαφέρεστε για τη προσπάθεια αυτή."; +"reddit.buttons.subscribe" = "Εγγραφή τώρα!"; +"reddit.buttons.remind" = "Υπενθύμιση Αργότερα"; +"reddit.buttons.never" = "Μη με ρωτήσεις ξανά"; +"organizer.sections.providers.header" = "Πάροχοι"; +"organizer.sections.providers.footer" = "Εδώ θα βρείτε ορισμένους παρόχους με προκαθορισμένες ρυθμίσεις προφίλ."; +"organizer.sections.hosts.header" = "Φιλοξενητές"; +"organizer.sections.hosts.footer" = "Εισάγετε φιλοξενητές από ένα raw .ovpn αρχείο."; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "Get help from Siri to speed up your most common interactions with the app."; +"organizer.sections.support.header" = "Υποστήριξη"; +"organizer.sections.feedback.header" = "Ανατροφοδότηση"; +"organizer.cells.siri_shortcuts.caption" = "Διαχείριση Συντομεύσεων"; +"organizer.cells.join_community.caption" = "Συμμετοχή στην κοινότητα"; +"organizer.cells.write_review.caption" = "Γράψτε μια κριτική"; +"organizer.cells.donate.caption" = "Κάντε μια δωρεά"; +"organizer.cells.github_sponsors.caption" = "Υποστηρίξτε με στο GitHub"; +"organizer.cells.translate.caption" = "Βοηθήστε στη μετάφραση"; +"organizer.cells.about.caption" = "Σχετικά με %@"; +"organizer.cells.uninstall.caption" = "Αφαίρεση ρύθμισης VPN"; +"organizer.alerts.exhausted_providers.message" = "Έχετε δημιουργήσει προφίλ για οποιονδήποτε διαθέσιμο πάροχο."; +"organizer.alerts.add_host.message" = "Εισάγετε μια διεύθυνση από ένα αρχείο .ovpn στο Safari, το Mail ή άλλη εφαρμογή για να ρυθμίσετε ένα προφίλ διακομιστή.\n\nΜπορείτε επίσης να εισάγετε ένα .ovpn αρχείο από το iTunes File Sharing."; +"organizer.alerts.cannot_donate.message" = "Δεν έχει ρυθμιστεί καμία μέθοδος πληρωμής σε αυτήν τη συσκευή."; +"organizer.alerts.delete_vpn_profile.message" = "Θέλετε πραγματικά να διαγράψετε τη διαμόρφωση VPN από τις ρυθμίσεις της συσκευής σας; Αυτό μπορεί να διορθώσει κάποιες καταστραμμένες καταστάσεις VPN και δεν θα επηρεάσει τα προφίλ του παροχέα και του διακομιστή σας."; +"wizards.host.alerts.existing.message" = "Ένα προφίλ διακομιστή με τον ίδιο τίτλο υπάρχει ήδη. Αντικατέστησέ το;"; +"parsed_file.alerts.malformed.message" = "Το αρχείο ρυθμίσεων περιέχει μια ακατάλληλη επιλογή (%@)."; +"parsed_file.alerts.missing.message" = "Το αρχείο διαμόρφωσης δεν διαθέτει την απαιτούμενη επιλογή (%@)."; +"parsed_file.alerts.unsupported.message" = "Το αρχείο διαμόρφωσης περιέχει μια επιλογή που δεν υποστηρίζεται (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "Το αρχείο ρυθμίσεων είναι σωστό, αλλά περιέχει μια δυνητικά μη υποστηριζόμενη επιλογή (%@).\n\nΗ δυνατότητα σύνδεσης μπορεί να διακοπεί ανάλογα με τις ρυθμίσεις του διακομιστή."; +"parsed_file.alerts.encryption_passphrase.message" = "Εισαγάγετε το κωδικό κρυπτογράφησης."; +"parsed_file.alerts.decryption.message" = "Η διαμόρφωση περιέχει κρυπτογραφημένο ιδιωτικό κλειδί και δεν ήταν δυνατό να αποκρυπτογραφηθεί. Δείτε πάλι το κωδικό που καταχωρίσατε."; +"parsed_file.alerts.parsing.message" = "Δεν είναι δυνατή η ανάλυση του παρεχόμενου αρχείου ρύθμισης παραμέτρων (%@)."; +"parsed_file.alerts.buttons.report" = "Αναφέρετε ένα πρόβλημα"; +"service.sections.vpn.footer" = "Η σύνδεση θα πραγματοποιηθεί όποτε είναι απαραίτητο."; +"service.sections.provider_infrastructure.footer" = "Τελευταία ενημέρωση στις %@."; +"service.sections.vpn_survives_sleep.footer" = "Απενεργοποιήστε για να βελτιώσετε τη χρήση της μπαταρίας, εις βάρος των περιστασιακών επιβραδύνσεων που οφείλονται σε επανασύνδεση αφύπνισης."; +"service.sections.vpn_resolves_hostname.footer" = "Προτιμάται στα περισσότερα δίκτυα και απαιτείται σε ορισμένα δίκτυα IPv6. Απενεργοποιήστε το εκεί που μπλοκάρεται το DNS ή για να επιταχύνετε τη επικοινωνία όταν το DNS είναι αργό για να ανταποκριθεί."; +"service.sections.trusted.header" = "Αξιόπιστα δίκτυα"; +"service.sections.trusted.footer" = "Κατά την είσοδο σε ένα αξιόπιστο δίκτυο, το VPN απενεργοποιείται κανονικά και διατηρείται αποσυνδεδεμένο. Απενεργοποιήστε αυτήν την επιλογή για να μην έχετε μια τέτοια συμπεριφορά."; +"service.sections.diagnostics.header" = "Διαγνωστικά"; +"service.sections.diagnostics.footer" = "Η κατάσταση κάλυψης θα είναι αποτελεσματική μετά την επανασύνδεση. Τα δεδομένα δικτύου είναι του διακομιστή, διευθύνσεις IP, δρομολόγηση και SSID. Τα διαπιστευτήρια και τα ιδιωτικά κλειδιά δεν καταγράφονται ανεξάρτητα."; +"service.cells.connection_status.caption" = "Κατάσταση"; +"account.title" = "Λογαριασμός"; +"endpoint.title" = "Τελικό σημείο"; +"service.cells.provider.pool.caption" = "Τοποθεσία"; +"service.cells.provider.preset.caption" = "Προεπιλογή"; +"network_settings.title" = "Ρυθμίσεις Δικτύου"; +"service.cells.vpn_survives_sleep.caption" = "Κρατήστε ζωντανό στον ύπνο"; +"service.cells.vpn_resolves_hostname.caption" = "Επίλυση του ονόματος σέρβερ διακομιστή"; +"service.cells.trusted_mobile.caption" = "Δίκτυο Κινητής"; +"service.cells.trusted_policy.caption" = "Τα αξιόπιστα δίκτυα απενεργοποιούν το VPN"; +"service.cells.test_connectivity.caption" = "Δοκιμή συνδεσιμότητας"; +"service.cells.data_count.caption" = "Ανταλλαγή δεδομένων"; +"service.cells.data_count.none" = "Μη διαθέσιμο"; +"service.cells.debug_log.caption" = "Μητρώο εντοπισμού σφαλμάτων"; +"service.cells.masks_private_data.caption" = "Μάσκα δεδομένα δικτύου"; +"service.cells.reconnect.caption" = "Επανασύνδεση"; +"service.cells.report_issue.caption" = "Αναφορά ζητήματος συνδεσιμότητας"; +"service.alerts.rename.title" = "Μετονομασία προφίλ"; +"service.alerts.credentials_needed.message" = "Πρέπει πρώτα να εισαγάγετε διαπιστευτήρια λογαριασμού."; +"service.alerts.reconnect_vpn.message" = "Θέλετε να συνδεθείτε ξανά με το VPN;"; +"service.alerts.trusted.no_network.message" = "Δεν είστε συνδεδεμένοι σε κανένα δίκτυο Wi-Fi."; +"service.alerts.trusted.will_disconnect_trusted.message" = "Με εμπιστοσύνη σε αυτό το δίκτυο, το VPN μπορεί να αποσυνδεθεί. Να συνεχίσω;"; +"service.alerts.trusted.will_disconnect_policy.message" = "Αλλάζοντας την πολιτική εμπιστοσύνης, το VPN μπορεί να αποσυνδεθεί. Να συνεχίσω;"; +"service.alerts.test_connectivity.title" = "Συνδεσιμότητα"; +"service.alerts.test_connectivity.messages.success" = "Η συσκευή σας είναι συνδεδεμένη στο Διαδίκτυο!"; +"service.alerts.test_connectivity.messages.failure" = "Η συσκευή σας δεν διαθέτει σύνδεση στο Internet, παρακαλούμε να ελέγξετε τις παραμέτρους του προφίλ σας."; +"service.alerts.masks_private_data.messages.must_reconnect" = "Για να επαναφέρετε με ασφάλεια την τρέχουσα καταγραφή εντοπισμού σφαλμάτων και να εφαρμόσετε τη νέα προτίμηση κάλυψης, πρέπει να συνδεθείτε ξανά με το VPN."; +"service.alerts.buttons.reconnect" = "Επανασύνδεση"; +"service.alerts.download.title" = "Απαιτείται λήψη"; +"service.alerts.download.message" = "%@ απαιτεί τη λήψη πρόσθετων αρχείων ρυθμίσεων.\n\nΕπιβεβαιώστε για να ξεκινήσετε τη λήψη."; +"service.alerts.download.failed" = "Αποτυχία λήψης αρχείων ρυθμίσεων. %@"; +"service.alerts.download.hud.extracting" = "Εξάγοντας τα αρχεία, παρακαλώ να είστε υπομονετικοί..."; +"account.sections.guidance.footer.infrastructure.hideme" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως αριθμητικό (χωρίς διαστήματα)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως το ηλεκτρονικό σας ταχυδρομείο."; +"account.sections.guidance.footer.infrastructure.pia" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως αριθμητικό με πρόθεμα \"p\"."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Βρείτε τα διαπιστευτήριά σας %@ στην ενότητα \"Λογαριασμός> OpenVPN / IKEv2 Username \" της ιστοσελίδας."; +"account.sections.guidance.footer.infrastructure.torguard" = "Χρησιμοποιήστε τα διαπιστευτήρια της υπηρεσίας %@, τα οποία ενδέχεται να διαφέρουν από τα διαπιστευτήρια του ιστότοπου."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως το ηλεκτρονικό σας ταχυδρομείο."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως το ηλεκτρονικό σας ταχυδρομείο."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Βρείτε τα διαπιστευτήριά σας %@ στο OpenVPN Config Generator στον ιστότοπο."; +"account.sections.registration.footer" = "Πηγαίνετε να αποκτήσετε λογαριασμό στον ιστότοπο %@."; +"account.cells.username.caption" = "Όνομα χρήστη"; +"account.cells.username.placeholder" = "χρήστης"; +"account.cells.password.caption" = "Κωδικός"; +"account.cells.password.placeholder" = "κωδικός"; +"account.cells.open_guide.caption" = "Δείτε τα διαπιστευτήρια σας"; +"account.cells.signup.caption" = "Εγγραφείτε με %@"; +"endpoint.cells.any_address.caption" = "Αυτόματο"; +"endpoint.cells.any_protocol.caption" = "Αυτόματο"; +"configuration.sections.communication.header" = "Επικοινωνία"; +"configuration.sections.reset.footer" = "Αν καταλήξατε σε κατεστραμένη συνδεσιμότητα μετά την αλλαγή των παραμέτρων επικοινωνίας, πατήστε για να επανέλθετε στην αρχική διαμόρφωση."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Συμπίεση"; +"configuration.sections.network.header" = "Δίκτυο"; +"configuration.sections.other.header" = "Άλλο"; +"configuration.cells.cipher.caption" = "Cipher"; +"configuration.cells.digest.caption" = "Αυθεντικοποίηση"; +"configuration.cells.digest.value.embedded" = "Ενσωματωμένο"; +"configuration.cells.reset_original.caption" = "Επαναφορά ρυθμίσεων"; +"configuration.cells.client.caption" = "Πιστοποιητικό πελάτη"; +"configuration.cells.client.value.enabled" = "Επαληθεύτηκε"; +"configuration.cells.client.value.disabled" = "Δεν επαληθεύτηκε"; +"configuration.cells.tls_wrapping.caption" = "Wrapping"; +"configuration.cells.tls_wrapping.value.auth" = "Αυθεντικοποίηση"; +"configuration.cells.tls_wrapping.value.crypt" = "Κρυπτογράφηση"; +"configuration.cells.eku.caption" = "Εκτεταμένη επαλήθευση"; +"network_settings.gateway.title" = "Προεπιλεγμένη πύλη"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Domain"; +"network_settings.proxy.title" = "Proxy"; +"configuration.cells.proxy_https.caption" = "Proxy (HTTPS)"; +"configuration.cells.compression_framing.caption" = "Framing"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--συμπίεση"; +"configuration.cells.compression_algorithm.caption" = "Αλγόρυθμος"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Δεν υποστηρίζεται"; +"configuration.cells.keep_alive.caption" = "Διατηρήστε ζωντανή"; +"configuration.cells.keep_alive.value.seconds" = "%d δευτερόλεπτα"; +"configuration.cells.renegotiation_seconds.caption" = "Επαναδιαπραγμάτευση"; +"configuration.cells.renegotiation_seconds.value.after" = "μετά από %@"; +"configuration.cells.random_endpoint.caption" = "Τυχαίο τελικό σημείο"; +"network_choice.client" = "Ανάγνωση .ovpn"; +"network_choice.server" = "Λήψη από το διακομιστή"; +"global.captions.address" = "Διεύθυνση"; +"global.captions.port" = "Θύρα"; +"debug_log.buttons.previous" = "Προηγούμενο"; +"debug_log.buttons.next" = "Επόμενο"; +"debug_log.alerts.empty_log.message" = "Το αρχείο εντοπισμού σφαλμάτων είναι κενό."; +"vpn.connecting" = "Προσπάθεια Σύνδεσης"; +"vpn.active" = "Ενεργό"; +"vpn.disconnecting" = "Αποσυνδέετε"; +"vpn.inactive" = "Μη ενεργό"; +"vpn.disabled" = "Απενεργοποιημένο"; +"vpn.errors.timeout" = "Τέλος χρονικού Ορίου"; +"vpn.errors.dns" = "Το DNS απέτυχε"; +"vpn.errors.auth" = "Το Auth απέτυχε"; +"vpn.errors.tls" = "Το TLS απέτυχε"; +"vpn.errors.encryption" = "Η Κρυπτογράφηση απέτυχε"; +"vpn.errors.compression" = "Η συμπίεση δεν υποστηρίζεται"; +"vpn.errors.network" = "Το δίκτυο άλλαξε"; +"vpn.errors.routing" = "Λείπει η δρομολόγηση"; +"vpn.errors.gateway" = "Δεν υπάρχει πύλη"; +"vpn.errors.shutdown" = "Ο διακομιστής έκλεισε"; +"issue_reporter.title" = "Αναφορά Προβλήματος"; +"issue_reporter.message" = "The debug log of your latest connections is crucial to resolve your connectivity issues and is completely anonymous.\n\nThe .ovpn configuration file, if any, is attached stripped of any sensitive data.\n\nPlease double check the e-mail attachments if unsure."; +"issue_reporter.buttons.accept" = "Καταλαβαίνω"; +"translations.title" = "Μεταφράσεις"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Δίκτυο Κινητής"; +"shortcuts.add.cells.connect.caption" = "Σύνδεση σε"; +"shortcuts.add.cells.enable_vpn.caption" = "Ενεργοποίηση VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Απενεργοποίηση VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Εμπιστέψου το τρέχον Wi-Fi"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Μην εμπιστευθείτε το τρέχον Wi-Fi"; +"shortcuts.add.cells.trust_cellular.caption" = "Εμπιστοσύνη δικτύου κινητής τηλεφωνίας"; +"shortcuts.add.cells.untrust_cellular.caption" = "Μην εμπιστευθείτε το δίκτυο κινητής τηλεφωνίας"; +"shortcuts.add.alerts.no_profiles.message" = "Δεν υπάρχει προφίλ για σύνδεση."; +"shortcuts.edit.sections.all.header" = "Υπάρχουσες συντομεύσεις"; +"about.title" = "Περι"; +"about.sections.web.header" = "Web"; +"about.sections.share.header" = "Διαμοιράστε"; +"about.cells.credits.caption" = "Συντελεστές"; +"about.cells.website.caption" = "Αρχική Σελίδα"; +"about.cells.faq.caption" = "Συχνές Ερωτήσεις"; +"about.cells.disclaimer.caption" = "Άρνηση Ευθύνης"; +"about.cells.privacy_policy.caption" = "Πολιτική Απορρήτου"; +"about.cells.share_twitter.caption" = "Tweet γι 'αυτό!"; +"about.cells.share_generic.caption" = "Πρόσκληση Φίλου"; +"donation.title" = "Δωρεά"; +"donation.sections.one_time.header" = "Μια Φορά"; +"donation.sections.one_time.footer" = "Αν είστε χαρούμενη με τη δουλειά μου, εδώ είναι λίγα ποσά που μπορείτε να δώσετε αμέσως.\n\nΘα χρεωθείτε μόνο μία φορά και μπορείτε να δώσετε πολλές φορές."; +"donation.cells.loading.caption" = "Φόρτωση δωρεών"; +"donation.cells.purchasing.caption" = "Εκτέλεση δωρεάς"; +"donation.alerts.purchase.success.title" = "Ευχαριστώ"; +"donation.alerts.purchase.success.message" = "Αυτό σημαίνει πολλά για μένα και πραγματικά ελπίζω να συνεχίσετε να χρησιμοποιείτε και να προωθείτε αυτήν την εφαρμογή."; +"donation.alerts.purchase.failure.message" = "Δεν είναι δυνατή η εκτέλεση της δωρεάς. %@"; +"share.message" = "Το Passepartout είναι φιλικό προς το χρήστη, ανοιχτού κώδικα OpenVPN πρόγραμμα για iOS και macOS"; +"version.title" = "Έκδοση"; +"version.labels.intro" = "Το Passepartout και το TunnelKit γράφονται και συντηρούνται από τον Davide De Rosa (keeshux).\n\nΟ πηγαίος κώδικας για το Passepartout και το TunnelKit είναι δημόσια διαθέσιμε στο GitHub υπό το GPLv3, μπορείτε να βρείτε συνδέσμους στην αρχική σελίδα.\n\nΤο Passepartout είναι ένας μη επίσημος πελάτης και δεν είναι συνδεδεμένος με το OpenVPN Inc."; +"credits.title" = "Συντελεστές"; +"credits.sections.licenses.header" = "Άδειες"; +"credits.sections.notices.header" = "Σημειώσεις"; +"credits.sections.translations.header" = "Μεταφράσεις"; +"label.license.error" = "Δεν είναι δυνατή η λήψη πλήρους περιεχομένου άδειας χρήσης."; +"organizer.cells.profile.value.current" = "Σε χρήση"; +"service.welcome.message" = "Καλώς Ήλθατε στο Passepartout!\n\nΧρησιμοποιήστε τον διοργανωτή για να προσθέσετε ένα νέο προφίλ."; +"service.cells.server_configuration.caption" = "Ρυθμίσεις Διακομιστή"; +"service.cells.server_network.caption" = "Δίκτυο Διακομιστή"; +"service.alerts.configuration.disconnected" = "Μη διαθέσιμη Ρύθμιση, επιβεβαιώστε ότι είστε συνδεδεμένοι στο VPN."; +"server_network.cells.route.caption" = "Διαδρομή"; +"wizards.provider.cells.update_list.caption" = "Αναβάθμιση Λίστας"; +"wizards.provider.alerts.unavailable.message" = "Δεν ήταν δυνατή η λήψη της υποδομής του παρόχου, δοκιμάστε ξανά αργότερα."; +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "Ελάτε να με παρακολουθήσετε ζωντανά το Passepartout στο Twitch, εγγραφείτε στη συνομιλία για να αλληλεπιδράσετε και να συνεισφέρετε!"; +"organizer.cells.follow_twitch.caption" = "Παρακολουθήστε το Passepartout στο Twitch"; +"service.cells.use_profile.caption" = "Χρησιμοποιήστε αυτό το προφίλ"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; diff --git a/Passepartout/Core/Resources/el.lproj/Intents.strings b/Passepartout/Core/Resources/el.lproj/Intents.strings new file mode 100644 index 00000000..2e57fa92 --- /dev/null +++ b/Passepartout/Core/Resources/el.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Αφαιρεί το κινητό δίκτυο από τα αξιόπιστα δίκτυα"; + +"IeGsEq" = "Απενεργοποίηση VPN"; +"1ZRTCZ" = "Απενεργοποίηση VPN"; + +"66bZBE" = "Με ${providerId} πάροχο"; + +"7eoAss" = "Αφαίρεση συνδεδεμένου Wi-Fi από τα έμπιστα δίκτυα"; + +"9GpJt5" = "Προσθέτει το κινητό δίκτυο στα αξιόπιστα δίκτυα"; + +"BKxs8X" = "Προσθήκη τρέχων Wi-Fi στα έμπιστα δίκτυα"; + +"NWWgCl" = "Αξιόπιστο Δίκτυο κινητής τηλεφωνίας"; +"H4taev" = "Αξιόπιστο Δίκτυο κινητής τηλεφωνίας"; + +"KjkCfU" = "Συνδέετε σε μια συγκεκριμένη τοποθεσία ενός προφίλ παρόχου"; + +"LA99yM" = "Σύνδεση VPN"; + +"U6o81V" = "Σύνδεση στο ${profileTitle}"; + +"WnTPFg" = "Σύνδεση σε ${poolName}"; + +"eQ1yzr" = "Απενεργοποίηση υπηρεσίας VPN"; + +"eXXb2z" = "Συνδέεται σε ένα προφίλ διακομιστή"; + +"yesvFP" = "Ενεργοποίηση VPN"; +"lQ6ziK" = "Ενεργοποίηση VPN"; + +"POyDPM" = "Εμπιστευθείτε το τρέχον Wi-Fi"; +"m2E7SI" = "Εμπιστευθείτε το τρέχον Wi-Fi"; + +"qo3Szz" = "Συνδεθείτε με τη θέση του παρόχου"; + +"0Wu9nb" = "Μην εμπιστευθείτε το τρέχον Wi-Fi"; +"rd1T8p" = "Μην εμπιστευθείτε το τρέχον Wi-Fi"; + +"ggzKA2" = "Μη αξιόπιστο κινητό δίκτυο"; +"wB1iYX" = "Μη αξιόπιστο κινητό δίκτυο"; + +"xY97Vu" = "Ενεργοποιεί την υπηρεσία VPN με το προφίλ που χρησιμοποιείται αυτήν τη στιγμή"; + +"NCoK9B" = "Με προφίλ σε χρήση"; diff --git a/Passepartout/Core/Resources/en.lproj/Core.strings b/Passepartout/Core/Resources/en.lproj/Core.strings new file mode 100644 index 00000000..42b0bcca --- /dev/null +++ b/Passepartout/Core/Resources/en.lproj/Core.strings @@ -0,0 +1,269 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 6/13/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "OK"; +"global.cancel" = "Cancel"; +"global.next" = "Next"; +"global.close" = "Close"; +"global.host.title_input.message" = "Acceptable characters are alphanumerics plus dash \"-\", underscore \"_\" and dot \".\"."; +"global.host.title_input.placeholder" = "My profile"; +"global.email_not_configured" = "No e-mail account is configured."; + +"global.captions.address" = "Address"; +"global.captions.port" = "Port"; + +"global.values.enabled" = "Enabled"; +"global.values.disabled" = "Disabled"; +"global.values.none" = "None"; +"global.values.automatic" = "Automatic"; +"global.values.manual" = "Manual"; + +"reddit.title" = "Reddit"; +"reddit.message" = "Did you know that Passepartout has a subreddit? Subscribe for updates or to discuss issues, features, new platforms or whatever you like.\n\nIt's also a great way to show you care about this project."; +"reddit.buttons.subscribe" = "Subscribe now!"; +"reddit.buttons.remind" = "Remind me later"; +"reddit.buttons.never" = "Don't ask again"; + +"vpn.connecting" = "Connecting"; +"vpn.active" = "Active"; +"vpn.disconnecting" = "Disconnecting"; +"vpn.inactive" = "Inactive"; +"vpn.disabled" = "Disabled"; + +"vpn.errors.timeout" = "Timeout"; +"vpn.errors.dns" = "DNS failed"; +"vpn.errors.auth" = "Auth failed"; +"vpn.errors.tls" = "TLS failed"; +"vpn.errors.encryption" = "Encryption failed"; +"vpn.errors.compression" = "Compression unsupported"; +"vpn.errors.network" = "Network changed"; +"vpn.errors.routing" = "Missing routing"; +"vpn.errors.gateway" = "No gateway"; +"vpn.errors.shutdown" = "Server shutdown"; + +"parsed_file.alerts.malformed.message" = "The configuration file contains a malformed option (%@)."; +"parsed_file.alerts.missing.message" = "The configuration file lacks a required option (%@)."; +"parsed_file.alerts.unsupported.message" = "The configuration file contains an unsupported option (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "The configuration file is correct but contains a potentially unsupported option (%@).\n\nConnectivity may break depending on server settings."; +"parsed_file.alerts.encryption_passphrase.message" = "Please enter the encryption passphrase."; +"parsed_file.alerts.decryption.message" = "The configuration contains an encrypted private key and it could not be decrypted. Double check your entered passphrase."; +"parsed_file.alerts.parsing.message" = "Unable to parse the provided configuration file (%@)."; +"parsed_file.alerts.buttons.report" = "Report an issue"; + +"network_choice.client" = "Read .ovpn"; +"network_choice.server" = "Pull from server"; + +"issue_reporter.title" = "Report issue"; +"issue_reporter.message" = "The debug log of your latest connections is crucial to resolve your connectivity issues and is completely anonymous.\n\nThe .ovpn configuration file, if any, is attached stripped of any sensitive data.\n\nPlease double check the e-mail attachments if unsure."; +"issue_reporter.buttons.accept" = "I understand"; + +"translations.title" = "Translations"; + +"share.message" = "Passepartout is an user-friendly, open source OpenVPN client for iOS and macOS"; + +////////////////////// + +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "Come watch me make Passepartout live on Twitch, join the chat to interact and contribute!"; +"organizer.sections.providers.header" = "Providers"; +"organizer.sections.providers.footer" = "Here you find a few providers with preset configuration profiles."; +"organizer.sections.hosts.header" = "Hosts"; +"organizer.sections.hosts.footer" = "Import hosts from raw .ovpn configuration files."; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "Get help from Siri to speed up your most common interactions with the app."; +"organizer.sections.support.header" = "Support"; +"organizer.sections.feedback.header" = "Feedback"; +"organizer.cells.follow_twitch.caption" = "Watch Passepartout on Twitch"; +"organizer.cells.profile.value.current" = "In use"; +"organizer.cells.siri_shortcuts.caption" = "Manage shortcuts"; +"organizer.cells.join_community.caption" = "Join community"; +"organizer.cells.write_review.caption" = "Write a review"; +"organizer.cells.donate.caption" = "Make a donation"; +"organizer.cells.github_sponsors.caption" = "Support me on GitHub"; +"organizer.cells.translate.caption" = "Offer to translate"; +"organizer.cells.about.caption" = "About %@"; +"organizer.cells.uninstall.caption" = "Remove VPN configuration"; +"organizer.alerts.exhausted_providers.message" = "You have created profiles for any available provider."; +"organizer.alerts.add_host.message" = "Open an URL to an .ovpn configuration file from Safari, Mail or another app to set up a host profile.\n\nYou can also import an .ovpn with iTunes File Sharing."; +"organizer.alerts.cannot_donate.message" = "There is no payment method configured on this device."; +"organizer.alerts.delete_vpn_profile.message" = "Do you really want to erase the VPN configuration from your device settings? This may fix some broken VPN states and will not affect your provider and host profiles."; + +"wizards.provider.cells.update_list.caption" = "Update list"; +"wizards.provider.alerts.unavailable.message" = "Could not download provider infrastructure, please retry later."; +"wizards.host.alerts.existing.message" = "A host profile with the same title already exists. Replace it?"; + +"service.welcome.message" = "Welcome to Passepartout!\n\nUse the organizer to add a new profile."; +"service.sections.vpn.footer" = "The connection will be established whenever necessary."; +"service.sections.provider_infrastructure.footer" = "Last updated on %@."; +"service.sections.vpn_survives_sleep.footer" = "Disable to improve battery usage, at the expense of occasional slowdowns due to wake-up reconnections."; +"service.sections.vpn_resolves_hostname.footer" = "Preferred in most networks and required in some IPv6 networks. Disable where DNS is blocked, or to speed up negotiation when DNS is slow to respond."; +"service.sections.trusted.header" = "Trusted networks"; +"service.sections.trusted.footer" = "When entering a trusted network, the VPN is normally shut down and kept disconnected. Disable this option to not enforce such behavior."; +"service.sections.diagnostics.header" = "Diagnostics"; +"service.sections.diagnostics.footer" = "Masking status will be effective after reconnecting. Network data are hostnames, IP addresses, routing, SSID. Credentials and private keys are not logged regardless."; +"service.cells.use_profile.caption" = "Use this profile"; +"service.cells.connection_status.caption" = "Status"; +"service.cells.provider.pool.caption" = "Location"; +"service.cells.provider.preset.caption" = "Preset"; +"service.cells.vpn_survives_sleep.caption" = "Keep alive on sleep"; +"service.cells.vpn_resolves_hostname.caption" = "Resolve provider hostname"; +"service.cells.trusted_mobile.caption" = "Cellular network"; +"service.cells.trusted_policy.caption" = "Trust disables VPN"; +"service.cells.test_connectivity.caption" = "Test connectivity"; +"service.cells.data_count.caption" = "Exchanged data"; +"service.cells.data_count.none" = "Unavailable"; +"service.cells.server_configuration.caption" = "Server configuration"; +"service.cells.server_network.caption" = "Server network"; +"service.cells.debug_log.caption" = "Debug log"; +"service.cells.masks_private_data.caption" = "Mask network data"; +"service.cells.reconnect.caption" = "Reconnect"; +"service.cells.report_issue.caption" = "Report connectivity issue"; + +"service.alerts.rename.title" = "Rename profile"; +"service.alerts.credentials_needed.message" = "You need to enter account credentials first."; +"service.alerts.reconnect_vpn.message" = "Do you want to reconnect to the VPN?"; +"service.alerts.trusted.no_network.message" = "You are not connected to any Wi-Fi network."; +"service.alerts.trusted.will_disconnect_trusted.message" = "By trusting this network, the VPN may be disconnected. Continue?"; +"service.alerts.trusted.will_disconnect_policy.message" = "By changing the trust policy, the VPN may be disconnected. Continue?"; +"service.alerts.test_connectivity.title" = "Connectivity"; +"service.alerts.test_connectivity.messages.success" = "Your device is connected to the Internet!"; +"service.alerts.test_connectivity.messages.failure" = "Your device has no Internet connectivity, please review your profile parameters."; +"service.alerts.configuration.disconnected" = "Configuration unavailable, make sure you are connected to the VPN."; +"service.alerts.masks_private_data.messages.must_reconnect" = "In order to safely reset the current debug log and apply the new masking preference, you must reconnect to the VPN now."; +"service.alerts.buttons.reconnect" = "Reconnect"; +"service.alerts.download.title" = "Download required"; +"service.alerts.download.message" = "%@ requires the download of additional configuration files.\n\nConfirm to start the download."; +"service.alerts.download.failed" = "Failed to download configuration files. %@"; +"service.alerts.download.hud.extracting" = "Extracting files, please be patient..."; + +"account.title" = "Account"; +"account.sections.guidance.footer.infrastructure.hideme" = "Use your %@ website credentials."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Use your %@ website credentials. Your username is usually numeric (without spaces)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Use your %@ website credentials. Your username is usually your e-mail."; +"account.sections.guidance.footer.infrastructure.pia" = "Use your %@ website credentials. Your username is usually numeric with a \"p\" prefix."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Find your %@ credentials in the \"Account > OpenVPN / IKEv2 Username\" section of the website."; +"account.sections.guidance.footer.infrastructure.torguard" = "Use your %@ service credentials, which may differ from website credentials."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Use your %@ website credentials. Your username is usually your e-mail."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Use your %@ website credentials. Your username is usually your e-mail."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Find your %@ credentials in the OpenVPN Config Generator on the website."; +"account.sections.registration.footer" = "Go get an account on the %@ website."; +"account.cells.username.caption" = "Username"; +"account.cells.username.placeholder" = "username"; +"account.cells.password.caption" = "Password"; +"account.cells.password.placeholder" = "secret"; +"account.cells.open_guide.caption" = "See your credentials"; +"account.cells.signup.caption" = "Register with %@"; + +"endpoint.title" = "Endpoint"; +"endpoint.cells.any_address.caption" = "Automatic"; +"endpoint.cells.any_protocol.caption" = "Automatic"; + +"network_settings.title" = "Network settings"; + +"configuration.sections.communication.header" = "Communication"; +"configuration.sections.reset.footer" = "If you ended up with broken connectivity after changing the communication parameters, tap to revert to the original configuration."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Compression"; +"configuration.sections.network.header" = "Network"; +"configuration.sections.other.header" = "Other"; +"configuration.cells.cipher.caption" = "Cipher"; +"configuration.cells.digest.caption" = "Authentication"; +"configuration.cells.digest.value.embedded" = "Embedded"; +"configuration.cells.compression_framing.caption" = "Framing"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Algorithm"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Unsupported"; +"configuration.cells.reset_original.caption" = "Reset configuration"; +"configuration.cells.client.caption" = "Client certificate"; +"configuration.cells.client.value.enabled" = "Verified"; +"configuration.cells.client.value.disabled" = "Not verified"; +"configuration.cells.tls_wrapping.caption" = "Wrapping"; +"configuration.cells.tls_wrapping.value.auth" = "Authentication"; +"configuration.cells.tls_wrapping.value.crypt" = "Encryption"; +"configuration.cells.eku.caption" = "Extended verification"; +"configuration.cells.keep_alive.caption" = "Keep-alive"; +"configuration.cells.keep_alive.value.seconds" = "%d seconds"; +"configuration.cells.renegotiation_seconds.caption" = "Renegotiation"; +"configuration.cells.renegotiation_seconds.value.after" = "after %@"; +"configuration.cells.random_endpoint.caption" = "Randomize endpoint"; + +"network_settings.gateway.title" = "Default gateway"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Domain"; +"network_settings.proxy.title" = "Proxy"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; + +"server_network.cells.route.caption" = "Route"; + +"debug_log.buttons.previous" = "Previous"; +"debug_log.buttons.next" = "Next"; +"debug_log.alerts.empty_log.message" = "The debug log is empty."; + +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Cellular"; +"shortcuts.add.cells.connect.caption" = "Connect to"; +"shortcuts.add.cells.enable_vpn.caption" = "Enable VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Disable VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Trust current Wi-Fi"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Untrust current Wi-Fi"; +"shortcuts.add.cells.trust_cellular.caption" = "Trust cellular network"; +"shortcuts.add.cells.untrust_cellular.caption" = "Untrust cellular network"; +"shortcuts.add.alerts.no_profiles.message" = "There is no profile to connect to."; + +"shortcuts.edit.sections.all.header" = "Existing shortcuts"; + +"donation.title" = "Donate"; +"donation.sections.one_time.header" = "One time"; +"donation.sections.one_time.footer" = "If you want to display gratitude for my free work, here are a couple amounts you can donate instantly.\n\nYou will only be charged once per donation, and you can donate multiple times."; +"donation.cells.loading.caption" = "Loading donations"; +"donation.cells.purchasing.caption" = "Performing donation"; +"donation.alerts.purchase.success.title" = "Thank you"; +"donation.alerts.purchase.success.message" = "This means a lot to me and I really hope you keep using and promoting this app."; +"donation.alerts.purchase.failure.message" = "Unable to perform the donation. %@"; + +"about.title" = "About"; +"about.sections.web.header" = "Web"; +"about.sections.share.header" = "Share"; +"about.cells.credits.caption" = "Credits"; +"about.cells.website.caption" = "Home page"; +"about.cells.faq.caption" = "FAQ"; +"about.cells.disclaimer.caption" = "Disclaimer"; +"about.cells.privacy_policy.caption" = "Privacy policy"; +"about.cells.share_twitter.caption" = "Tweet about it!"; +"about.cells.share_generic.caption" = "Invite a friend"; + +"version.title" = "Version"; +"version.labels.intro" = "Passepartout and TunnelKit are written and maintained by Davide De Rosa (keeshux).\n\nSource code for Passepartout and TunnelKit is publicly available on GitHub under the GPLv3, you can find links in the home page.\n\nPassepartout is a non-official client and is in no way affiliated with OpenVPN Inc."; + +"credits.title" = "Credits"; +"credits.sections.licenses.header" = "Licenses"; +"credits.sections.notices.header" = "Notices"; +"credits.sections.translations.header" = "Translations"; + +"label.license.error" = "Unable to download full license content."; diff --git a/Passepartout/Core/Resources/en.lproj/Intents.strings b/Passepartout/Core/Resources/en.lproj/Intents.strings new file mode 100644 index 00000000..8afbd82a --- /dev/null +++ b/Passepartout/Core/Resources/en.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Removes cellular from trusted networks"; + +"IeGsEq" = "Disable VPN"; +"1ZRTCZ" = "Disable VPN"; + +"66bZBE" = "With ${providerId} provider"; + +"7eoAss" = "Removes current Wi-Fi from trusted networks"; + +"9GpJt5" = "Adds cellular to trusted networks"; + +"BKxs8X" = "Adds current Wi-Fi to trusted networks"; + +"NWWgCl" = "Trust cellular network"; +"H4taev" = "Trust cellular network"; + +"KjkCfU" = "Connects to a specific location of a provider profile"; + +"LA99yM" = "Connect to VPN"; + +"U6o81V" = "Connect to ${profileTitle}"; + +"WnTPFg" = "Connect to ${poolName}"; + +"eQ1yzr" = "Disables the VPN service"; + +"eXXb2z" = "Connects to a host profile"; + +"yesvFP" = "Enable VPN"; +"lQ6ziK" = "Enable VPN"; + +"POyDPM" = "Trust current Wi-Fi"; +"m2E7SI" = "Trust current Wi-Fi"; + +"qo3Szz" = "Connect to provider location"; + +"0Wu9nb" = "Untrust current Wi-Fi"; +"rd1T8p" = "Untrust current Wi-Fi"; + +"ggzKA2" = "Untrust cellular network"; +"wB1iYX" = "Untrust cellular network"; + +"xY97Vu" = "Enables the VPN service with the profile currently in use"; + +"NCoK9B" = "With profile in use"; diff --git a/Passepartout/Core/Resources/es.lproj/Core.strings b/Passepartout/Core/Resources/es.lproj/Core.strings new file mode 100644 index 00000000..16fb42c7 --- /dev/null +++ b/Passepartout/Core/Resources/es.lproj/Core.strings @@ -0,0 +1,240 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 6/13/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "OK"; +"global.cancel" = "Cancelar"; +"global.next" = "Siguiente"; +"global.close" = "Salir"; +"global.host.title_input.message" = "Caracteres aceptados son los alfanuméricos más el guión alto \"-\", el guión bajo \"_\" y el punto \".\"."; +"global.host.title_input.placeholder" = "Mi perfil"; +"global.email_not_configured" = "Ningún e-mail configurado."; +"global.values.enabled" = "Habilitado"; +"global.values.disabled" = "Deshabilitado"; +"global.values.none" = "Ninguno"; +"global.values.automatic" = "Automático"; +"global.values.manual" = "Manual"; +"reddit.title" = "Reddit"; +"reddit.message" = "Sabías que Passepartout tiene un subreddit? Suscríbete para actualizaciones o comentar problemas, funciones, nuevas plataformas o todo lo que se te ocurra.\n\nTambién es la manera ideal de mostrar interés en este proyecto."; +"reddit.buttons.subscribe" = "Suscribir ahora!"; +"reddit.buttons.remind" = "Recordar más tarde"; +"reddit.buttons.never" = "No preguntar más"; +"organizer.sections.providers.header" = "Proveedores"; +"organizer.sections.providers.footer" = "Aquí encuentras algunos proveedores con ajustes preconfigurados."; +"organizer.sections.hosts.header" = "Hosts"; +"organizer.sections.hosts.footer" = "Importa un host con ficheros de configuración .ovpn."; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "Déjate ayudar por Siri para acelerar tus interacciones más frecuentes con la aplicación."; +"organizer.sections.support.header" = "Soporte"; +"organizer.sections.feedback.header" = "Feedback"; +"organizer.cells.siri_shortcuts.caption" = "Gestionar atajos"; +"organizer.cells.join_community.caption" = "Apuntarse a la comunidad"; +"organizer.cells.write_review.caption" = "Escribir una reseña"; +"organizer.cells.donate.caption" = "Hacer una donación"; +"organizer.cells.github_sponsors.caption" = "Apoyar en GitHub"; +"organizer.cells.translate.caption" = "Ofrecer una traducción"; +"organizer.cells.about.caption" = "Sobre %@"; +"organizer.cells.uninstall.caption" = "Borrar configuración VPN"; +"organizer.alerts.exhausted_providers.message" = "Has creado perfiles para todos los proveedores disponibles."; +"organizer.alerts.add_host.message" = "Abre el URL de un fichero de configuración .ovpn a través de Safari, Mail u otra aplicación para configurar un host.\n\nTambién puedes importar un .ovpn con iTunes File Sharing."; +"organizer.alerts.cannot_donate.message" = "No hay métodos de pago configurados en este dispositivo."; +"organizer.alerts.delete_vpn_profile.message" = "Realmente quieres eliminar la configuración VPN de tu dispositivo? Ésto puede corregir algunos estados incorrectos del VPN y no afectará tus perfiles."; +"wizards.host.alerts.existing.message" = "Ya existe un host con el mismo título. Reemplazar?"; +"parsed_file.alerts.malformed.message" = "El fichero de configuración contiene una opción mal formada (%@)."; +"parsed_file.alerts.missing.message" = "El fichero de configuración falta de una opción necesaria (%@)."; +"parsed_file.alerts.unsupported.message" = "El fichero de configuración contiene una opción no soportada (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "El fichero de configuración es correcto pero contiene una opción potencialmente no soportada (%@).\n\nLa conectividad podría fallar según los parámetros del servidor."; +"parsed_file.alerts.encryption_passphrase.message" = "Por favor introducir la contraseña de cifrado."; +"parsed_file.alerts.decryption.message" = "La configuración contiene una clave privada cifrada que no ha podido ser descifrada. Por favor revisa la contraseña introducida."; +"parsed_file.alerts.parsing.message" = "Imposible importar el fichero de configuración proporcionado (%@)."; +"parsed_file.alerts.buttons.report" = "Reportar una incidencia"; +"service.sections.vpn.footer" = "La conexión se establecerá siempre y cuando sea necesario."; +"service.sections.provider_infrastructure.footer" = "Última actualización: %@."; +"service.sections.vpn_survives_sleep.footer" = "Deshabilitar para mejorar el uso de la batería, a costa de ralentizaciones ocasionales por las reconexiones al despertar el dispositivo."; +"service.sections.vpn_resolves_hostname.footer" = "Preferido en la mayoría de las redes y necesario en algunas redes IPv6. Deshabilitar donde el DNS esté bloqueado, o para acelerar la negociación cuando el DNS sea lento en responder."; +"service.sections.trusted.header" = "Redes de confianza"; +"service.sections.trusted.footer" = "Entrando en una red de confianza, normalmente el VPN es cerrado y mantenido desconectado. Deshabilitar esta opción para no forzar este modo."; +"service.sections.diagnostics.header" = "Diagnósticos"; +"service.sections.diagnostics.footer" = "El estado de ocultación será efectivo tras reconectar. Los datos de red son hostnames, direcciones IP, routing, SSID. Las credenciales y las claves privadas no son registrados a pesar."; +"service.cells.connection_status.caption" = "Estado"; +"account.title" = "Cuenta"; +"endpoint.title" = "Destino"; +"service.cells.provider.pool.caption" = "Ubicación"; +"service.cells.provider.preset.caption" = "Ajuste"; +"network_settings.title" = "Ajustes de red"; +"service.cells.vpn_survives_sleep.caption" = "Mantener en modo inactivo"; +"service.cells.vpn_resolves_hostname.caption" = "Resolver hostname del servidor"; +"service.cells.trusted_mobile.caption" = "Red móvil"; +"service.cells.trusted_policy.caption" = "Red de confianza deshabilita el VPN"; +"service.cells.test_connectivity.caption" = "Testear conectividad"; +"service.cells.data_count.caption" = "Datos intercambiados"; +"service.cells.data_count.none" = "No disponible"; +"service.cells.debug_log.caption" = "Registro de debug"; +"service.cells.masks_private_data.caption" = "Ocultar datos de red"; +"service.cells.reconnect.caption" = "Reconectar"; +"service.cells.report_issue.caption" = "Reportar problema de conectividad"; +"service.alerts.rename.title" = "Renombrar perfil"; +"service.alerts.credentials_needed.message" = "Primero debes introducir las credenciales de tu cuenta."; +"service.alerts.reconnect_vpn.message" = "Quieres reconectarte al VPN?"; +"service.alerts.trusted.no_network.message" = "No estás conectad@ a ninguna red Wi-Fi."; +"service.alerts.trusted.will_disconnect_trusted.message" = "Confiando en esta red, el VPN será desconectado. Continuar?"; +"service.alerts.trusted.will_disconnect_policy.message" = "Cambiando la política de confianza, el VPN podría ser desconectado. Continuar?"; +"service.alerts.test_connectivity.title" = "Conectividad"; +"service.alerts.test_connectivity.messages.success" = "Tu dispositivo está conectado en Internet!"; +"service.alerts.test_connectivity.messages.failure" = "Tu dispositivo no tiene conectividad Internet, por favor revisa los parámetros de tu perfil."; +"service.alerts.masks_private_data.messages.must_reconnect" = "Para resetear el registro de debug y aplicar la nueva preferencia de ocultación, debes reconectarte al VPN."; +"service.alerts.buttons.reconnect" = "Reconectar"; +"service.alerts.download.title" = "Descarga necesaria"; +"service.alerts.download.message" = "%@ requiere la descarga de fichero de configuración adicionales.\n\nConfirmar para empezar la descarga."; +"service.alerts.download.failed" = "Imposible descargar los ficheros de configuración. %@"; +"service.alerts.download.hud.extracting" = "Extrayendo ficheros, por favor ten paciencia..."; +"account.sections.guidance.footer.infrastructure.hideme" = "Usa tus credenciales de la web %@."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Usa tus credenciales de la web %@. Normalmente tu usuario es numérico (sin espacios)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Usa tus credenciales de la web %@. Normalmente tu usuario es tu e-mail."; +"account.sections.guidance.footer.infrastructure.pia" = "Usa tus credenciales de la web %@. Normalmente tu usuario es numérico con un prefijo \"p\"."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Encuentra tus credenciales %@ en la sección \"Account > OpenVPN / IKEv2 Username\" de la web."; +"account.sections.guidance.footer.infrastructure.torguard" = "Usa tus credenciales de servicio %@, que pueden diferir de las credenciales de la web."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Usa tus credenciales de la web %@. Normalmente tu usuario es tu e-mail."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Usa tus credenciales de la web %@. Normalmente tu usuario es tu e-mail."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Encuentra tus credenciales %@ en el \"OpenVPN Config Generator\" en la web."; +"account.sections.registration.footer" = "Obten una cuenta en la web de %@."; +"account.cells.username.caption" = "Usuario"; +"account.cells.username.placeholder" = "usuario"; +"account.cells.password.caption" = "Contraseña"; +"account.cells.password.placeholder" = "secreto"; +"account.cells.open_guide.caption" = "Mira tus credenciales"; +"account.cells.signup.caption" = "Registrarse con %@"; +"endpoint.cells.any_address.caption" = "Automática"; +"endpoint.cells.any_protocol.caption" = "Automático"; +"configuration.sections.communication.header" = "Comunicación"; +"configuration.sections.reset.footer" = "Si acabaste estropeando tu conectividad tras cambiar los parámetros de comunicación, pulsa para volver a la configuración inicial."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Compresión"; +"configuration.sections.network.header" = "Red"; +"configuration.sections.other.header" = "Otro"; +"configuration.cells.cipher.caption" = "Cifrado"; +"configuration.cells.digest.caption" = "Autentificación"; +"configuration.cells.digest.value.embedded" = "Incluida"; +"configuration.cells.reset_original.caption" = "Resetear configuración"; +"configuration.cells.client.caption" = "Certificado cliente"; +"configuration.cells.client.value.enabled" = "Verificado"; +"configuration.cells.client.value.disabled" = "No verificado"; +"configuration.cells.tls_wrapping.caption" = "Envoltorio"; +"configuration.cells.tls_wrapping.value.auth" = "Autentificado"; +"configuration.cells.tls_wrapping.value.crypt" = "Cifrado"; +"configuration.cells.eku.caption" = "Verificación extendida"; +"network_settings.gateway.title" = "Puerta de enlace"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Dominio"; +"network_settings.proxy.title" = "Proxy"; +"configuration.cells.proxy_https.caption" = "Proxy (HTTPS)"; +"configuration.cells.compression_framing.caption" = "Marco"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Algoritmo"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "No soportado"; +"configuration.cells.keep_alive.caption" = "Keep-alive"; +"configuration.cells.keep_alive.value.seconds" = "%d segundos"; +"configuration.cells.renegotiation_seconds.caption" = "Renegociación"; +"configuration.cells.renegotiation_seconds.value.after" = "después de %@"; +"configuration.cells.random_endpoint.caption" = "Aleatorizar destino"; +"network_choice.client" = "Leer .ovpn"; +"network_choice.server" = "Obtener del servidor"; +"global.captions.address" = "Dirección"; +"global.captions.port" = "Puerta"; +"debug_log.buttons.previous" = "Anterior"; +"debug_log.buttons.next" = "Siguiente"; +"debug_log.alerts.empty_log.message" = "El registro de debug está vacío."; +"vpn.connecting" = "Conectando"; +"vpn.active" = "Activo"; +"vpn.disconnecting" = "Desconectando"; +"vpn.inactive" = "Inactivo"; +"vpn.disabled" = "Deshabilitado"; +"vpn.errors.timeout" = "Timeout"; +"vpn.errors.dns" = "DNS fallido"; +"vpn.errors.auth" = "Autentificación fallida"; +"vpn.errors.tls" = "TLS fallido"; +"vpn.errors.encryption" = "Cifrado fallido"; +"vpn.errors.compression" = "Compresión no soportada"; +"vpn.errors.network" = "Cambio de red"; +"vpn.errors.routing" = "Sin rutas"; +"vpn.errors.gateway" = "Sin puerta de enlace"; +"vpn.errors.shutdown" = "Servidor apagado"; +"issue_reporter.title" = "Reportar incidencia"; +"issue_reporter.message" = "El registro de debug de tus últimas conexiones es primordial para resolver tus problemas de conectividad y es completamente anónimo.\n\nSi hay un fichero de configuración .ovpn, se adjuntará sin ningún dato sensible.\n\nSi no estás segur@, por favor revisa los adjuntos del e-mail."; +"issue_reporter.buttons.accept" = "Entendido"; +"translations.title" = "Traducciones"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Móvil"; +"shortcuts.add.cells.connect.caption" = "Conectar a"; +"shortcuts.add.cells.enable_vpn.caption" = "Habilitar VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Deshabilitar VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Añadir Wi-Fi de confianza"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Borrar Wi-Fi de confianza"; +"shortcuts.add.cells.trust_cellular.caption" = "Añadir red móvil de confianza"; +"shortcuts.add.cells.untrust_cellular.caption" = "Borrar red móvil de confianza"; +"shortcuts.add.alerts.no_profiles.message" = "No hay ningún perfil al que conectarse."; +"shortcuts.edit.sections.all.header" = "Atajos existentes"; +"about.title" = "Información"; +"about.sections.web.header" = "Web"; +"about.sections.share.header" = "Compartir"; +"about.cells.credits.caption" = "Créditos"; +"about.cells.website.caption" = "Página de inicio"; +"about.cells.faq.caption" = "Preguntas frecuentes"; +"about.cells.disclaimer.caption" = "Aviso legal"; +"about.cells.privacy_policy.caption" = "Política de privacidad"; +"about.cells.share_twitter.caption" = "Enviar un Tweet!"; +"about.cells.share_generic.caption" = "Invitar a un amig@"; +"donation.title" = "Donar"; +"donation.sections.one_time.header" = "Única"; +"donation.sections.one_time.footer" = "Si te gusta mi trabajo, aquí puedes colaborar con una donación.\n\nSólo se te cobrará una vez por donación, y puedes donar las veces que quieras."; +"donation.cells.loading.caption" = "Cargando donaciones"; +"donation.cells.purchasing.caption" = "Efectuando donación"; +"donation.alerts.purchase.success.title" = "Muchas gracias"; +"donation.alerts.purchase.success.message" = "Ésto significa mucho para mí y espero sinceramente que sigas usando y promoviendo esta aplicación."; +"donation.alerts.purchase.failure.message" = "Imposible completar la donación, por favor vuelve a intentarlo. %@"; +"share.message" = "Passepartout es un cliente OpenVPN intuitivo, de código abierto para iOS y macOS"; +"version.title" = "Versión"; +"version.labels.intro" = "Passepartout y TunnelKit están escritos y son mantenidos por Davide De Rosa (keeshux).\n\nEl código de Passepartout y TunnelKit es público y está disponible en GitHub bajo la GPLv3, encontrarás enlaces en la página de inicio.\n\nPassepartout es un cliente no oficial y no es afiliado de OpenVPN Inc."; +"credits.title" = "Créditos"; +"credits.sections.licenses.header" = "Licencias"; +"credits.sections.notices.header" = "Avisos"; +"credits.sections.translations.header" = "Traducciones"; +"label.license.error" = "Imposible descargar el contenido completo de la licencia."; +"organizer.cells.profile.value.current" = "En uso"; +"service.welcome.message" = "Bienvenid@ a Passepartout!\n\nUsa el organizador para añadir un nuevo perfil."; +"service.cells.server_configuration.caption" = "Configuración del servidor"; +"service.cells.server_network.caption" = "Red del servidor"; +"service.alerts.configuration.disconnected" = "Configuración no disponible, asegúrate de estar conectad@ a la VPN."; +"server_network.cells.route.caption" = "Ruta"; +"wizards.provider.cells.update_list.caption" = "Actualizar lista"; +"wizards.provider.alerts.unavailable.message" = "No fue posible bajar la infraestructura del proveedor, por favor reinténtalo más tarde."; +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "¡Ven a ver cómo hago Passepartout en vivo en Twitch, únete al chat para interactuar y contribuir!"; +"organizer.cells.follow_twitch.caption" = "Ve Passepartout en Twitch"; +"service.cells.use_profile.caption" = "Usar este perfil"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; diff --git a/Passepartout/Core/Resources/es.lproj/Intents.strings b/Passepartout/Core/Resources/es.lproj/Intents.strings new file mode 100644 index 00000000..95b880e8 --- /dev/null +++ b/Passepartout/Core/Resources/es.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Borra la red móvil de las redes de confianza"; + +"IeGsEq" = "Deshabilitar VPN"; +"1ZRTCZ" = "Deshabilitar VPN"; + +"66bZBE" = "Con el proveedor ${providerId}"; + +"7eoAss" = "Borra el Wi-Fi en uso de las redes de confianza"; + +"9GpJt5" = "Añade la red móvil a las redes de confianza"; + +"BKxs8X" = "Añade el Wi-Fi en uso a las redes de confianza"; + +"NWWgCl" = "Añadir red móvil de confianza"; +"H4taev" = "Añadir red móvil de confianza"; + +"KjkCfU" = "Conecta con una región específica de un proveedor"; + +"LA99yM" = "Conectar con el VPN"; + +"U6o81V" = "Conectar con ${profileTitle}"; + +"WnTPFg" = "Conectar con ${poolName}"; + +"eQ1yzr" = "Deshabilita el servicio VPN"; + +"eXXb2z" = "Conecta con un host"; + +"yesvFP" = "Habilitar VPN"; +"lQ6ziK" = "Habilitar VPN"; + +"POyDPM" = "Añadir Wi-Fi de confianza"; +"m2E7SI" = "Añadir Wi-Fi de confianza"; + +"qo3Szz" = "Conectar con una región del proveedor"; + +"0Wu9nb" = "Borrar Wi-Fi de confianza"; +"rd1T8p" = "Borrar Wi-Fi de confianza"; + +"ggzKA2" = "Borrar red móvil de confianza"; +"wB1iYX" = "Borrar red móvil de confianza"; + +"xY97Vu" = "Habilita el servicio VPN con el perfil en uso"; + +"NCoK9B" = "Con el perfil en uso"; diff --git a/Passepartout/Core/Resources/fr.lproj/Core.strings b/Passepartout/Core/Resources/fr.lproj/Core.strings new file mode 100644 index 00000000..178064e2 --- /dev/null +++ b/Passepartout/Core/Resources/fr.lproj/Core.strings @@ -0,0 +1,240 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 6/13/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "OK"; +"global.cancel" = "Annuler"; +"global.next" = "Suivant"; +"global.close" = "Fermer"; +"global.host.title_input.message" = "Caractères acceptables sont alphanumériques et tiret \"-\", barre de soulignement \"_\" et point \".\"."; +"global.host.title_input.placeholder" = "Mon profile"; +"global.email_not_configured" = "Aucun compte courriel n'est configuré."; +"global.values.enabled" = "Activer"; +"global.values.disabled" = "Désactiver"; +"global.values.none" = "Aucun"; +"global.values.automatic" = "Automatique"; +"global.values.manual" = "Manuel"; +"reddit.title" = "Reddit"; +"reddit.message" = "Saviez-vous que Passepartout a un subreddit? Souscrivez pour les mises à jour ou discuter des problèmes, caractéristiques, nouvelles plateformes ou quoi que ce soit.\n\nC'est aussi une très bonne façon de démontrer votre enthousiasme envers le projet."; +"reddit.buttons.subscribe" = "Souscrivez maintenant!"; +"reddit.buttons.remind" = "Me rappeler plus tard"; +"reddit.buttons.never" = "Ne pas me redemander"; +"organizer.sections.providers.header" = "Fournisseurs"; +"organizer.sections.providers.footer" = "Ici vous pouvez trousers certains fournisseurs avec des profiles déjà configurés."; +"organizer.sections.hosts.header" = "Hôtes"; +"organizer.sections.hosts.footer" = "Importer des hôtes d'un fichier de configuration .ovpn."; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "Obtenez de l'aide de Siri pour accélérer vos intéractions les plus courantes avec l'app."; +"organizer.sections.support.header" = "Support"; +"organizer.sections.feedback.header" = "Commentaires"; +"organizer.cells.siri_shortcuts.caption" = "Gérer les raccourcis"; +"organizer.cells.join_community.caption" = "Rejoindre la communauté"; +"organizer.cells.write_review.caption" = "Écrire un avis"; +"organizer.cells.donate.caption" = "Faire un don"; +"organizer.cells.github_sponsors.caption" = "Me parrainer chez GitHub"; +"organizer.cells.translate.caption" = "Offre de traduction"; +"organizer.cells.about.caption" = "À propos %@"; +"organizer.cells.uninstall.caption" = "Supprimer la configuration VPN"; +"organizer.alerts.exhausted_providers.message" = "Vous avez créé un profile pour un fournisseur existant."; +"organizer.alerts.add_host.message" = "Ouvrir un URL vers un fichier de configuration .ovpn depuis Safari, Courriels ou un autre app pour installer un profile hôte.\n\nVous pouvez importer une configuration .ovpn avec le transfert de fichiers iTunes."; +"organizer.alerts.cannot_donate.message" = "Il n'y a aucune méthode de paiement configuré sur cet appareil."; +"organizer.alerts.delete_vpn_profile.message" = "Voulez-vous vraiment effacer la configuration VPN de vos paramètres? Ceci peux fixer certains VPN en arrêt et n'affectera pas vos profiles de fournisseurs et hôtes."; +"wizards.host.alerts.existing.message" = "Un profile hôte avec ce même nom existe déjà. Le remplacer?"; +"parsed_file.alerts.malformed.message" = "Le fichier de configuration contient une mauvaise option.(%@)."; +"parsed_file.alerts.missing.message" = "Le fichier de configuration ne contient pas une option requise. (%@)."; +"parsed_file.alerts.unsupported.message" = "Le fichier de configuration contient une option non supportée (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "Le fichier de configuration est adéquat, mais contient une option potentiellement non supportée. (%@).\n\nLa connection peut être perdue selon les paramètres du serveur."; +"parsed_file.alerts.encryption_passphrase.message" = "Veuillez entrer le mot de passe d'encryption."; +"parsed_file.alerts.decryption.message" = "Le fichier de configuration contient une clé privée encryptée et n'a pas été décryptée. Veuillez revérifier votre mot de passe."; +"parsed_file.alerts.parsing.message" = "Incapable d'analyser le fichier de configuration fournis. (%@)."; +"parsed_file.alerts.buttons.report" = "Rapporter un problème"; +"service.sections.vpn.footer" = "La connection sera établie lorsque nécessaire."; +"service.sections.provider_infrastructure.footer" = "Mis à jour : %@."; +"service.sections.vpn_survives_sleep.footer" = "Désactiver pour augmenter l'autonomie de la batterie, au dépends de la rapidité au réveil pour la reconnection."; +"service.sections.vpn_resolves_hostname.footer" = "Préféré dans la plus part des réseaux et requis dans certains réseaux IPv6. Désactiver lorsque le DNS est bloqué ou pour augmenter la rapidité des négociations lorsque le DNS est lent à répondre."; +"service.sections.trusted.header" = "Réseaux de confiance"; +"service.sections.trusted.footer" = "Lors d'une connection à un réseau de confiance, le VPN est normalement fermé. Désactivez cette option pour ne pas autoriser ce comportement."; +"service.sections.diagnostics.header" = "Diagnostiques"; +"service.sections.diagnostics.footer" = "Camouflage du status sera effectif après la reconnection. Les données réseaux sont les noms d'hôtes, adresses IP, routage, SSID. Les identifiants et clés privés ne sont pas enregistrés."; +"service.cells.connection_status.caption" = "Statut"; +"account.title" = "Compte"; +"endpoint.title" = "Extrémité"; +"service.cells.provider.pool.caption" = "Locallisation"; +"service.cells.provider.preset.caption" = "Préréglage"; +"network_settings.title" = "Paramètres réseaux"; +"service.cells.vpn_survives_sleep.caption" = "Garder actif lors de la veille"; +"service.cells.vpn_resolves_hostname.caption" = "Résoudre le nom d'hôte du serveur"; +"service.cells.trusted_mobile.caption" = "Réseau cellulaire"; +"service.cells.trusted_policy.caption" = "La confiance désactive le VPN"; +"service.cells.test_connectivity.caption" = "Tester la connection"; +"service.cells.data_count.caption" = "Échanger les données"; +"service.cells.data_count.none" = "Indisponible"; +"service.cells.debug_log.caption" = "Journal de débogage"; +"service.cells.masks_private_data.caption" = "Masquer les données de réseau"; +"service.cells.reconnect.caption" = "Reconnecter"; +"service.cells.report_issue.caption" = "Rapporter un problème de connection"; +"service.alerts.rename.title" = "Renommer le profile"; +"service.alerts.credentials_needed.message" = "Vous devez entrer les identifiants de compte premièrement."; +"service.alerts.reconnect_vpn.message" = "Voulez-vous reconnecter le VPN?"; +"service.alerts.trusted.no_network.message" = "Vous n'êtes pas connectés à aucun réseau Wi-Fi."; +"service.alerts.trusted.will_disconnect_trusted.message" = "En faisant confiance à ce réseau, le VPN pourrait être déconnecté. Continuer?"; +"service.alerts.trusted.will_disconnect_policy.message" = "En changeant la stratégie de confiance, le VPN pourrait être déconnecté. Continuer?"; +"service.alerts.test_connectivity.title" = "Connections"; +"service.alerts.test_connectivity.messages.success" = "Votre appareil est connecté à Internet!"; +"service.alerts.test_connectivity.messages.failure" = "Votre appareil n'a aucune connection Invernet, veuillez vérifier vos paramètres de profile."; +"service.alerts.masks_private_data.messages.must_reconnect" = "Pour bien réinitialiser le registre de diagnostique et appliquer les préférences de camouflage, vous devez vous reconnecter au VPN maintenant."; +"service.alerts.buttons.reconnect" = "Reconnecter"; +"service.alerts.download.title" = "Téléchargement requis"; +"service.alerts.download.message" = "%@ requiert le téléchargement de fichiers de configuration supplémentaires.\n\nConfirmer le début du téléchargement."; +"service.alerts.download.failed" = "Échec de téléchargement des fichiers de configuration. %@"; +"service.alerts.download.hud.extracting" = "Extraction des fichiers, veuillez patienter..."; +"account.sections.guidance.footer.infrastructure.hideme" = "Utilisez votre identifiants web de %@."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement numérique (sans espaces)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement votre courriel."; +"account.sections.guidance.footer.infrastructure.pia" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement numérique avec le préfixe \"p\" "; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Trouvez votre identifiant web %@ dans la section du site web \"Account > OpenVPN / IKEv2 nom d'utilisateur\" "; +"account.sections.guidance.footer.infrastructure.torguard" = "Utilisez vos informations d'identification de service %@, qui peuvent différer des informations d'identification du web."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement votre courriel."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement votre courriel."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Trouver votre identifiant %@ dans la section web Générateur de configuration OpenVPN."; +"account.sections.registration.footer" = "Allez créer un compte sur le site %@."; +"account.cells.username.caption" = "Nom d'utilisateur"; +"account.cells.username.placeholder" = "nom d'utilisateur"; +"account.cells.password.caption" = "Mot de passe"; +"account.cells.password.placeholder" = "secret"; +"account.cells.open_guide.caption" = "Voir vos identifiants"; +"account.cells.signup.caption" = "S'inscrire avec %@"; +"endpoint.cells.any_address.caption" = "Automatique"; +"endpoint.cells.any_protocol.caption" = "Automatique"; +"configuration.sections.communication.header" = "Communications"; +"configuration.sections.reset.footer" = "Si vous obtenez une connection erronnée après le changement des parameters de communication, tapotez pour revenir à la configuration initiale."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Compression"; +"configuration.sections.network.header" = "Réseau"; +"configuration.sections.other.header" = "Autre"; +"configuration.cells.cipher.caption" = "Cryptogramme"; +"configuration.cells.digest.caption" = "Authentification"; +"configuration.cells.digest.value.embedded" = "Intégré"; +"configuration.cells.reset_original.caption" = "Réinitialiser la configuration"; +"configuration.cells.client.caption" = "Certificat du client"; +"configuration.cells.client.value.enabled" = "Verifié"; +"configuration.cells.client.value.disabled" = "Non vérifié"; +"configuration.cells.tls_wrapping.caption" = "Wrapping"; +"configuration.cells.tls_wrapping.value.auth" = "Authentification"; +"configuration.cells.tls_wrapping.value.crypt" = "Cryptage"; +"configuration.cells.eku.caption" = "Vérification étendue"; +"network_settings.gateway.title" = "Gateway"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Domaine"; +"network_settings.proxy.title" = "Proxy"; +"configuration.cells.proxy_https.caption" = "Proxy (HTTPS)"; +"configuration.cells.compression_framing.caption" = "Framing"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Algorithme"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Non supporté"; +"configuration.cells.keep_alive.caption" = "Garder actif"; +"configuration.cells.keep_alive.value.seconds" = "%d secondes"; +"configuration.cells.renegotiation_seconds.caption" = "Renégociation"; +"configuration.cells.renegotiation_seconds.value.after" = "aprè %@"; +"configuration.cells.random_endpoint.caption" = "Extrémité aléatoire"; +"network_choice.client" = "Lire .ovpn"; +"network_choice.server" = "Récupérer depuis le serveur"; +"global.captions.address" = "Adresse"; +"global.captions.port" = "Port"; +"debug_log.buttons.previous" = "Précédent"; +"debug_log.buttons.next" = "Suivant"; +"debug_log.alerts.empty_log.message" = "Le journal de débogage est vide. "; +"vpn.connecting" = "Connection..."; +"vpn.active" = "Actif"; +"vpn.disconnecting" = "Déconnection..."; +"vpn.inactive" = "Inactif"; +"vpn.disabled" = "Désactivé"; +"vpn.errors.timeout" = "Délais dépassé"; +"vpn.errors.dns" = "Échec DNS"; +"vpn.errors.auth" = "Échec Auth"; +"vpn.errors.tls" = "Échec TLS"; +"vpn.errors.encryption" = "Échec du cryptage"; +"vpn.errors.compression" = "Compression non supportée"; +"vpn.errors.network" = "Réseau modifié"; +"vpn.errors.routing" = "Routage manquant"; +"vpn.errors.gateway" = "Aucune passerelle"; +"vpn.errors.shutdown" = "Arrêt du serveur"; +"issue_reporter.title" = "Rapporter un problème"; +"issue_reporter.message" = "Le journal débogage de votre dernière connection est crucial pour résoudre vos problèmes de connection et est entièrement anonyme.\n\nLe fichier de configuration .ovpn, si disponible, est attaché et supprimé de toute information confidentielle.\n\nVeuillez contre-vérifier les fichiers attachés au courriel si incertain."; +"issue_reporter.buttons.accept" = "Je comprends"; +"translations.title" = "Traductions"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Cellulaire"; +"shortcuts.add.cells.connect.caption" = "Connecter à"; +"shortcuts.add.cells.enable_vpn.caption" = "Activer VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Désactiver VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Faire confiance au présent réseau Wi-Fi"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Retirer le présent réseau Wi-Fi des réseaux de confiance."; +"shortcuts.add.cells.trust_cellular.caption" = "Faire confiance au présent réseau cellulaire"; +"shortcuts.add.cells.untrust_cellular.caption" = "Retirer le présent réseau cellulaire des réseaux de confiance."; +"shortcuts.add.alerts.no_profiles.message" = "Il n'y a aucun profile pour se connecter."; +"shortcuts.edit.sections.all.header" = "Raccourcis existants"; +"about.title" = "À propos"; +"about.sections.web.header" = "Web"; +"about.sections.share.header" = "Partager"; +"about.cells.credits.caption" = "Crédits"; +"about.cells.website.caption" = "Page d'accueil"; +"about.cells.faq.caption" = "FAQ"; +"about.cells.disclaimer.caption" = "Avis de non-responsabilité"; +"about.cells.privacy_policy.caption" = "Politique de la vie privée"; +"about.cells.share_twitter.caption" = "Tweetez!"; +"about.cells.share_generic.caption" = "Inviter un amis"; +"donation.title" = "Faire un don"; +"donation.sections.one_time.header" = "Une seule fois"; +"donation.sections.one_time.footer" = "Si vous voulez manifester votre gratitude envers mon travail bénévole, voici certains montants pour faire un don instantanément.\n\n Vous n'allez être chargé qu'une seule fois par don et vous pouvez faire un don plus d'une fois."; +"donation.cells.loading.caption" = "Chargement des dons"; +"donation.cells.purchasing.caption" = "Don en cours"; +"donation.alerts.purchase.success.title" = "Merci"; +"donation.alerts.purchase.success.message" = "Ceci signifie beaucoup pour moi et j'espère sincèrement que vous continuerez d'utiliser et de promouvoir cette app."; +"donation.alerts.purchase.failure.message" = "Impossible de faire le don. %@"; +"share.message" = "Passepartout est un client OpenVPN simple d'utilisation et open source pour iOS et macOS"; +"version.title" = "Version"; +"version.labels.intro" = "Passepartout et TunnelKit sont codés et maintenu par Davide De Rosa (keeshux).\n\nLe code source de Passepartout et TunnelKit est publiquement disponible sur GitHub sous license GPLv3, vous pouvez trouver les liens sur la page d'accueil.\n\nPassepartout est un client non-officiel et n'est aucunement affilié avec OpenVPN Inc."; +"credits.title" = "Crédits"; +"credits.sections.licenses.header" = "Licenses"; +"credits.sections.notices.header" = "Préavis"; +"credits.sections.translations.header" = "Traductions"; +"label.license.error" = "Impossible de télécharger le contenu complet de la license."; +"organizer.cells.profile.value.current" = "En utilisation"; +"service.welcome.message" = "Bienvenue à Passepartout!\n\nUtilisez l'organiseur pour ajouter un nouveau profile."; +"service.cells.server_configuration.caption" = "Configuration serveur"; +"service.cells.server_network.caption" = "Serveur réseau"; +"service.alerts.configuration.disconnected" = "Configuration non disponible, vous devez être connecté au VPN."; +"server_network.cells.route.caption" = "Routage"; +"wizards.provider.cells.update_list.caption" = "Actualiser la liste"; +"wizards.provider.alerts.unavailable.message" = "Impossible de télécharger l'infrastructure du fournisseur, veuillez réessayer plus tard."; +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "Venez me regarder faire passer Passepartout en direct sur Twitch, rejoignez le chat pour interagir et contribuer!"; +"organizer.cells.follow_twitch.caption" = "Regardez Passepartout sur Twitch"; +"service.cells.use_profile.caption" = "Utiliser ce profile"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; diff --git a/Passepartout/Core/Resources/fr.lproj/Intents.strings b/Passepartout/Core/Resources/fr.lproj/Intents.strings new file mode 100755 index 00000000..db08e72e --- /dev/null +++ b/Passepartout/Core/Resources/fr.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Supprime le réseau cellulaire des réseaux de confiance"; + +"IeGsEq" = "Désactive VPN"; +"1ZRTCZ" = "Désactive VPN"; + +"66bZBE" = "Avec ${providerId} fournisseur"; + +"7eoAss" = "Supprime le présent réseaux Wi-Fi des réseaux de confiance "; + +"9GpJt5" = "Ajoutes le réseau cellulaire aux réseaux de confiance"; + +"BKxs8X" = "Ajoutes le présent réseau Wi-Fi aux réseaux de confiance"; + +"NWWgCl" = "Faire confiance au réseau cellulaire"; +"H4taev" = "Faire confiance au réseau cellulaire"; + +"KjkCfU" = "Connecter à une localization spécifique d'un profile de fournisseur"; + +"LA99yM" = "Se connecter au VPN"; + +"U6o81V" = "Se connecter à ${profileTitle}"; + +"WnTPFg" = "Se connecter à ${poolName}"; + +"eQ1yzr" = "Désactives le service VPN"; + +"eXXb2z" = "Connectes à un profile hôte"; + +"yesvFP" = "Activer VPN"; +"lQ6ziK" = "Activer VPN"; + +"POyDPM" = "Faire confiance au présent réseau Wi-Fi"; +"m2E7SI" = "Faire confiance au présent réseau Wi-Fi"; + +"qo3Szz" = "Se connecter à la localisation du fournisseur"; + +"0Wu9nb" = "Ne plus faire confiance au présent réseau Wi-Fi"; +"rd1T8p" = "Ne plus faire confiance au présent réseau Wi-Fi"; + +"ggzKA2" = "Faire confiance au présent réseau cellulaire"; +"wB1iYX" = "Faire confiance au présent réseau cellulaire"; + +"xY97Vu" = "Activer le service VPN avec le profile présentement utilisé"; + +"NCoK9B" = "Avec le profile utilisé"; diff --git a/Passepartout/Core/Resources/it.lproj/Core.strings b/Passepartout/Core/Resources/it.lproj/Core.strings new file mode 100644 index 00000000..9dab62bc --- /dev/null +++ b/Passepartout/Core/Resources/it.lproj/Core.strings @@ -0,0 +1,240 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 6/13/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "OK"; +"global.cancel" = "Annulla"; +"global.next" = "Avanti"; +"global.close" = "Chiudi"; +"global.host.title_input.message" = "I caratteri ammessi sono gli alfanumerici e il trattino breve \"-\", il trattino basso \"_\" ed il punto \".\"."; +"global.host.title_input.placeholder" = "Il mio profilo"; +"global.email_not_configured" = "Nessun account e-mail configurato."; +"global.values.enabled" = "Abilitato"; +"global.values.disabled" = "Disabilitato"; +"global.values.none" = "Nessuno"; +"global.values.automatic" = "Automatico"; +"global.values.manual" = "Manuale"; +"reddit.title" = "Reddit"; +"reddit.message" = "Sapevi che Passepartout ha un subreddit? Iscriviti per aggiornamenti o per discutere problemi, aggiunte, nuove piattaforme o qualunque cosa tu voglia.\n\nÈ anche un ottimo modo per dimostrare che hai a cuore questo progetto."; +"reddit.buttons.subscribe" = "Iscriviti ora!"; +"reddit.buttons.remind" = "Ricordami più tardi"; +"reddit.buttons.never" = "Non chiedere più"; +"organizer.sections.providers.header" = "Provider"; +"organizer.sections.providers.footer" = "Qui trovi alcuni provider con configurazioni precompilate."; +"organizer.sections.hosts.header" = "Host"; +"organizer.sections.hosts.footer" = "Importa un host da un file di configurazione .ovpn."; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "Chiedi aiuto a Siri per velocizzare le tue interazioni più frequenti con l'app."; +"organizer.sections.support.header" = "Supporto"; +"organizer.sections.feedback.header" = "Feedback"; +"organizer.cells.siri_shortcuts.caption" = "Gestisci comandi rapidi"; +"organizer.cells.join_community.caption" = "Entra nella community"; +"organizer.cells.write_review.caption" = "Scrivi una recensione"; +"organizer.cells.donate.caption" = "Fai una donazione"; +"organizer.cells.github_sponsors.caption" = "Supportami su GitHub"; +"organizer.cells.translate.caption" = "Offri una traduzione"; +"organizer.cells.about.caption" = "Informazioni su %@"; +"organizer.cells.uninstall.caption" = "Rimuovi configurazione VPN"; +"organizer.alerts.exhausted_providers.message" = "Hai creato profili per tutti i provider disponibili."; +"organizer.alerts.add_host.message" = "Apri l'URL di un file di configurazione .ovpn da Safari, Mail o da un'altra app per configurare un host.\n\nPuoi anche importare un file .ovpn con iTunes File Sharing."; +"organizer.alerts.cannot_donate.message" = "Nessun metodo di pagamento configurato su questo dispositivo."; +"organizer.alerts.delete_vpn_profile.message" = "Vuoi veramente cancellare la configurazione VPN dalle impostazioni del tuo dispositivo? Quest'azione potrebbe risolvere alcuni stati erronei della VPN e non altererà i tuoi provider e i tuoi host."; +"wizards.host.alerts.existing.message" = "Esiste già un host con lo stesso titolo. Sostituire?"; +"parsed_file.alerts.malformed.message" = "La configurazione contiene un'opzione malformata (%@)."; +"parsed_file.alerts.missing.message" = "La configurazione non contiene un'opzione obbligatoria (%@)."; +"parsed_file.alerts.unsupported.message" = "La configurazione contiene un'opzione non supportata (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "La configurazione è corretto ma contiene un'opzione potenzialmente non supportata (%@).\n\nLa connettività potrebbe fallire a seconda delle impostazioni del server."; +"parsed_file.alerts.encryption_passphrase.message" = "Per favore inserisci la passphrase di criptazione."; +"parsed_file.alerts.decryption.message" = "La configurazione contiene una chiave privata criptata e non è stato possibile decriptarla. Controlla la tua passphrase."; +"parsed_file.alerts.parsing.message" = "Impossibile processare il file di configurazione specificato (%@)."; +"parsed_file.alerts.buttons.report" = "Segnala un problema"; +"service.sections.vpn.footer" = "La connessione sarà stabilita ogni volta che è necessario."; +"service.sections.provider_infrastructure.footer" = "Ultimo aggiornamento: %@."; +"service.sections.vpn_survives_sleep.footer" = "Disabilita per migliorare il consumo della batteria, a discapito di rallentamenti occasionali causati dalle riconnessioni."; +"service.sections.vpn_resolves_hostname.footer" = "Preferibile nella maggior parte delle reti e necessario in alcune reti IPv6. Disabilita dove il DNS è bloccato, o per velocizzare la negoziazione quando il DNS tarda a rispondere."; +"service.sections.trusted.header" = "Reti sicure"; +"service.sections.trusted.footer" = "Entrando in una rete sicura, normalmente la VPN viene spenta e mantenuta disconnessa. Disabilita quest'opzione per non imporre questo comportamento."; +"service.sections.diagnostics.header" = "Diagnostica"; +"service.sections.diagnostics.footer" = "Il mascheramento sarà effettivo dopo una riconnessione. I dati di rete sono hostname, indirizzi IP, routing, SSID. Credenziali e chiavi private non sono registrati in ogni caso."; +"service.cells.connection_status.caption" = "Stato"; +"account.title" = "Account"; +"endpoint.title" = "Endpoint"; +"service.cells.provider.pool.caption" = "Regione"; +"service.cells.provider.preset.caption" = "Preset"; +"network_settings.title" = "Impostazioni di rete"; +"service.cells.vpn_survives_sleep.caption" = "Mantieni attivo in sleep"; +"service.cells.vpn_resolves_hostname.caption" = "Risolvi hostname del server"; +"service.cells.trusted_mobile.caption" = "Rete cellulare"; +"service.cells.trusted_policy.caption" = "Spegni VPN in rete sicura"; +"service.cells.test_connectivity.caption" = "Verifica connettività"; +"service.cells.data_count.caption" = "Dati scambiati"; +"service.cells.data_count.none" = "Non disponibile"; +"service.cells.debug_log.caption" = "Debug log"; +"service.cells.masks_private_data.caption" = "Maschera dati rete"; +"service.cells.reconnect.caption" = "Riconnetti"; +"service.cells.report_issue.caption" = "Segnala problema connettività"; +"service.alerts.rename.title" = "Rinomina profilo"; +"service.alerts.credentials_needed.message" = "Devi prima inserire le tue credenziali."; +"service.alerts.reconnect_vpn.message" = "Vuoi riconnetterti alla VPN?"; +"service.alerts.trusted.no_network.message" = "Non sei connesso/a a nessuna rete Wi-Fi."; +"service.alerts.trusted.will_disconnect_trusted.message" = "Rendendo questa rete sicura, la VPN potrebbe essere disconnessa. Continuare?"; +"service.alerts.trusted.will_disconnect_policy.message" = "Cambiando la politica delle reti sicure, la VPN potrebbe essere disconnessa. Continuare?"; +"service.alerts.test_connectivity.title" = "Connettività"; +"service.alerts.test_connectivity.messages.success" = "Il tuo dispositivo è connesso a Internet!"; +"service.alerts.test_connectivity.messages.failure" = "Il tuo dispositivo non è connesso a Internet, per favore controlla i parametri del tuo profilo."; +"service.alerts.masks_private_data.messages.must_reconnect" = "Per azzerare il debug log ed applicare la nuova preferenza di mascheramento, devi riconnetterti alla VPN."; +"service.alerts.buttons.reconnect" = "Riconnetti"; +"service.alerts.download.title" = "Download necessario"; +"service.alerts.download.message" = "%@ richiede lo scaricamento di file di configurazione aggiuntivi.\n\nConferma per avviare lo scaricamento."; +"service.alerts.download.failed" = "Impossibile scaricare i file di configurazione. %@"; +"service.alerts.download.hud.extracting" = "Estraendo i file, un attimo di pazienza..."; +"account.sections.guidance.footer.infrastructure.hideme" = "Usa le credenziali del sito di %@."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Usa le credenziali del sito di %@. Il tuo username è generalmente numerico (senza spazi)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Usa le credenziali del sito di %@. Il tuo username è generalmente la tua e-mail."; +"account.sections.guidance.footer.infrastructure.pia" = "Usa le credenziali del sito di %@. Il tuo username è generalmente numerico con un prefisso \"p\"."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Trova le tue credenziali nella sezione \"Account > OpenVPN / IKEv2 Username\" del sito di %@."; +"account.sections.guidance.footer.infrastructure.torguard" = "Usa le tue credenziali del servizio %@, che potrebbero differire dalle credenziali del sito web."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Usa le credenziali del sito di %@. Il tuo username è generalmente la tua e-mail."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Usa le credenziali del sito di %@. Il tuo username è generalmente la tua e-mail."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Trova le tue credenziali nell'OpenVPN Config Generator sul sito di %@."; +"account.sections.registration.footer" = "Registra un account sul sito di %@."; +"account.cells.username.caption" = "Username"; +"account.cells.username.placeholder" = "username"; +"account.cells.password.caption" = "Password"; +"account.cells.password.placeholder" = "segreto"; +"account.cells.open_guide.caption" = "Vedi le tue credenziali"; +"account.cells.signup.caption" = "Registrati con %@"; +"endpoint.cells.any_address.caption" = "Automatico"; +"endpoint.cells.any_protocol.caption" = "Automatico"; +"configuration.sections.communication.header" = "Comunicazione"; +"configuration.sections.reset.footer" = "Se ti trovi con una connettività compromessa dopo aver cambiato i parametri di comunicazione, tocca per tornare alla configurazione originale."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Compressione"; +"configuration.sections.network.header" = "Rete"; +"configuration.sections.other.header" = "Altro"; +"configuration.cells.cipher.caption" = "Cifratura"; +"configuration.cells.digest.caption" = "Autenticazione"; +"configuration.cells.digest.value.embedded" = "Incorporata"; +"configuration.cells.reset_original.caption" = "Ripristina configurazione"; +"configuration.cells.client.caption" = "Certificato client"; +"configuration.cells.client.value.enabled" = "Verificato"; +"configuration.cells.client.value.disabled" = "Non verificato"; +"configuration.cells.tls_wrapping.caption" = "Wrapping"; +"configuration.cells.tls_wrapping.value.auth" = "Autenticazione"; +"configuration.cells.tls_wrapping.value.crypt" = "Criptazione"; +"configuration.cells.eku.caption" = "Verifica estesa"; +"network_settings.gateway.title" = "Gateway predefinito"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Dominio"; +"network_settings.proxy.title" = "Proxy"; +"configuration.cells.proxy_https.caption" = "Proxy (HTTPS)"; +"configuration.cells.compression_framing.caption" = "Framing"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Algoritmo"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Non supportato"; +"configuration.cells.keep_alive.caption" = "Keep-alive"; +"configuration.cells.keep_alive.value.seconds" = "%d secondi"; +"configuration.cells.renegotiation_seconds.caption" = "Rinegoziazione"; +"configuration.cells.renegotiation_seconds.value.after" = "dopo %@"; +"configuration.cells.random_endpoint.caption" = "Endpoint casuale"; +"network_choice.client" = "Leggi .ovpn"; +"network_choice.server" = "Ottieni dal server"; +"global.captions.address" = "Indirizzo"; +"global.captions.port" = "Porta"; +"debug_log.buttons.previous" = "Precedente"; +"debug_log.buttons.next" = "Successivo"; +"debug_log.alerts.empty_log.message" = "Il debug log è vuoto."; +"vpn.connecting" = "Connettendo"; +"vpn.active" = "Attiva"; +"vpn.disconnecting" = "Disconnettendo"; +"vpn.inactive" = "Inattiva"; +"vpn.disabled" = "Disabilitata"; +"vpn.errors.timeout" = "Timeout"; +"vpn.errors.dns" = "DNS fallito"; +"vpn.errors.auth" = "Autenticazione fallita"; +"vpn.errors.tls" = "TLS fallito"; +"vpn.errors.encryption" = "Crittografia fallita"; +"vpn.errors.compression" = "Compressione non supportata"; +"vpn.errors.network" = "Rete cambiata"; +"vpn.errors.routing" = "Routing mancante"; +"vpn.errors.gateway" = "Nessun gateway"; +"vpn.errors.shutdown" = "Server arrestato"; +"issue_reporter.title" = "Segnala problema"; +"issue_reporter.message" = "Il debug log delle tue ultime connessioni è cruciale per risolvere i tuoi problemi di connettività ed è completamente anonimo.\n\nIl file di configurazione .ovpn, se presente, è allegato privato di ogni dato sensibile.\n\nPer favore controlla gli allegati dell'e-mail se non sei sicuro/a."; +"issue_reporter.buttons.accept" = "Ho capito"; +"translations.title" = "Traduzioni"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Cellulare"; +"shortcuts.add.cells.connect.caption" = "Connetti a"; +"shortcuts.add.cells.enable_vpn.caption" = "Abilita VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Disabilita VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Aggiungi Wi-Fi sicura"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Rimuovi Wi-Fi sicura"; +"shortcuts.add.cells.trust_cellular.caption" = "Aggiungi rete mobile sicura"; +"shortcuts.add.cells.untrust_cellular.caption" = "Rimuovi rete mobile sicura"; +"shortcuts.add.alerts.no_profiles.message" = "Non c'è nessun profilo a cui connettersi."; +"shortcuts.edit.sections.all.header" = "Comandi esistenti"; +"about.title" = "Informazioni su"; +"about.sections.web.header" = "Web"; +"about.sections.share.header" = "Condividi"; +"about.cells.credits.caption" = "Credits"; +"about.cells.website.caption" = "Home page"; +"about.cells.faq.caption" = "FAQ"; +"about.cells.disclaimer.caption" = "Disclaimer"; +"about.cells.privacy_policy.caption" = "Privacy policy"; +"about.cells.share_twitter.caption" = "Manda un Tweet!"; +"about.cells.share_generic.caption" = "Invita un amico"; +"donation.title" = "Donazione"; +"donation.sections.one_time.header" = "Unica"; +"donation.sections.one_time.footer" = "Se vuoi mostrare gratitudine per il mio lavoro a titolo gratuito, qui trovi varie somme da donare all'istante.\n\nLa donazione ti sarà addebitata solo una volta, e puoi effettuare più donazioni."; +"donation.cells.loading.caption" = "Caricando donazioni"; +"donation.cells.purchasing.caption" = "Effettuando donazione"; +"donation.alerts.purchase.success.title" = "Grazie"; +"donation.alerts.purchase.success.message" = "Questo significa molto per me e spero vivamente che tu continui ad usare e promuovere quest'applicazione."; +"donation.alerts.purchase.failure.message" = "Impossibile effettuare la donazione. %@"; +"share.message" = "Passepartout è un client OpenVPN user-friendly ed open source per iOS e macOS"; +"version.title" = "Versione"; +"version.labels.intro" = "Passepartout e TunnelKit sono scritti e mantenuti da Davide De Rosa (keeshux).\n\nIl codice sorgente di Passepartout e TunnelKit è pubblicamente disponibile su GitHub in accordo con la GPLv3, puoi trovare i link nella home page.\n\nPassepartout è un client non ufficiale e non è affiliato ad OpenVPN Inc. in alcuna maniera."; +"credits.title" = "Credits"; +"credits.sections.licenses.header" = "Licenze"; +"credits.sections.notices.header" = "Notice"; +"credits.sections.translations.header" = "Traduzioni"; +"label.license.error" = "Impossibile scaricare il contenuto completo della licenza."; +"organizer.cells.profile.value.current" = "In uso"; +"service.welcome.message" = "Benvenuto in Passepartout!\n\nUsa il menu per aggiungere un nuovo profilo."; +"service.cells.server_configuration.caption" = "Configurazione del server"; +"service.cells.server_network.caption" = "Rete del server"; +"service.alerts.configuration.disconnected" = "Configurazione non disponibile, assicurati di essere connesso/a alla VPN."; +"server_network.cells.route.caption" = "Rotta"; +"wizards.provider.cells.update_list.caption" = "Aggiorna lista"; +"wizards.provider.alerts.unavailable.message" = "Non è stato possibile scaricare l'infrastruttura del provider, per favore riprova più tardi."; +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "Vieni a vedermi creare Passepartout in diretta su Twitch, unisciti alla chat per interagire e contribuire!"; +"organizer.cells.follow_twitch.caption" = "Guarda Passepartout su Twitch"; +"service.cells.use_profile.caption" = "Usa questo profilo"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; diff --git a/Passepartout/Core/Resources/it.lproj/Intents.strings b/Passepartout/Core/Resources/it.lproj/Intents.strings new file mode 100644 index 00000000..2aeadfdb --- /dev/null +++ b/Passepartout/Core/Resources/it.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Rimuove la rete mobile dalle reti sicure"; + +"IeGsEq" = "Disabilita VPN"; +"1ZRTCZ" = "Disabilita VPN"; + +"66bZBE" = "Con il provider ${providerId}"; + +"7eoAss" = "Rimuove la Wi-Fi corrente dalle reti sicure"; + +"9GpJt5" = "Aggiunge la rete mobile alle reti sicure"; + +"BKxs8X" = "Aggiunge la Wi-Fi corrente alle reti sicure"; + +"NWWgCl" = "Aggiungi rete mobile sicura"; +"H4taev" = "Aggiungi rete mobile sicura"; + +"KjkCfU" = "Avvia una connessione ad una regione specifica di un provider"; + +"LA99yM" = "Connetti alla VPN"; + +"U6o81V" = "Connettiti a ${profileTitle}"; + +"WnTPFg" = "Connettiti in ${poolName}"; + +"eQ1yzr" = "Disabilita il servizio VPN"; + +"eXXb2z" = "Avvia la connessione ad un host"; + +"yesvFP" = "Abilita VPN"; +"lQ6ziK" = "Abilita VPN"; + +"POyDPM" = "Aggiungi Wi-Fi sicura"; +"m2E7SI" = "Aggiungi Wi-Fi sicura"; + +"qo3Szz" = "Connettiti a una regione del provider"; + +"0Wu9nb" = "Rimuovi Wi-Fi sicura"; +"rd1T8p" = "Rimuovi Wi-Fi sicura"; + +"ggzKA2" = "Rimuovi rete mobile sicura"; +"wB1iYX" = "Rimuovi rete mobile sicura"; + +"xY97Vu" = "Abilita il servizio VPN con il profilo attualmente in uso"; + +"NCoK9B" = "Con il profilo in uso"; diff --git a/Passepartout/Core/Resources/nl.lproj/Core.strings b/Passepartout/Core/Resources/nl.lproj/Core.strings new file mode 100644 index 00000000..0591abad --- /dev/null +++ b/Passepartout/Core/Resources/nl.lproj/Core.strings @@ -0,0 +1,240 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 6/13/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "OK"; +"global.cancel" = "Afbreken"; +"global.next" = "Volgende"; +"global.close" = "Afsluiten"; +"global.host.title_input.message" = "Toegestane karakters zijn: alfanumerieke en streepjes \"-\", onderliggend streepje \"_\" en punten \".\"."; +"global.host.title_input.placeholder" = "Mijn Profiel"; +"global.email_not_configured" = "Er is geen email adres geconfigureerd."; +"global.values.enabled" = "Ingeschakeld"; +"global.values.disabled" = "Uitgeschakeld"; +"global.values.none" = "Geen"; +"global.values.automatic" = "Automatisch"; +"global.values.manual" = "Handmatig"; +"reddit.title" = "Reddit"; +"reddit.message" = "Wist je dat Passepartout een eigen subreddit heeft? Schrijf je in voor updates, of discussiëren over problemen, (nieuwe) mogelijkheden, nieuwe platformen of wat je maar wil.\n\nHet is ook een goede manier om te laten zien dat je om dit project geeft."; +"reddit.buttons.subscribe" = "Schfijf je nu in!"; +"reddit.buttons.remind" = "Herinner me later"; +"reddit.buttons.never" = "Vraag dit niet meer"; +"organizer.sections.providers.header" = "Aanbieders"; +"organizer.sections.providers.footer" = "Hier vind je aan aantal aanbieders met configuratie profielen."; +"organizer.sections.hosts.header" = "Hosts"; +"organizer.sections.hosts.footer" = "Importeer hosts met raw .ovpn configuratie bestanden."; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "Krijg hulp van Siri en versnel de meest gebruikte interacties binnen de app."; +"organizer.sections.support.header" = "Ondersteuning"; +"organizer.sections.feedback.header" = "Terugkoppeling"; +"organizer.cells.siri_shortcuts.caption" = "Beheer snelkoppelingen"; +"organizer.cells.join_community.caption" = "Word lid van de gemeenschap"; +"organizer.cells.write_review.caption" = "Schrijf een beoordeling"; +"organizer.cells.donate.caption" = "Doneer een gift"; +"organizer.cells.github_sponsors.caption" = "Steun me op GitHub"; +"organizer.cells.translate.caption" = "Help met vertalen"; +"organizer.cells.about.caption" = "Over %@"; +"organizer.cells.uninstall.caption" = "Verwijder VPN configuratie"; +"organizer.alerts.exhausted_providers.message" = "Er zijn profielen gemaakt voor elke beschikbare aanbieder."; +"organizer.alerts.add_host.message" = "Open een URL naar een .ovpn configuratie bestand met Safari, Mail of een andere app om een host profile te configureren.\n\nJe kan ook een .ovpn importeren met behulp van iTunes bestandsdeling."; +"organizer.alerts.cannot_donate.message" = "Er is geen betaalmethode geconfigureerd op dit apparaat."; +"organizer.alerts.delete_vpn_profile.message" = "Wilt u de VPN-configuratie van uw apparaatinstellingen verwijderen? Dit kan enkele problemen met VPN oplossen en heeft geen invloed op uw provider- en hostprofielen."; +"wizards.host.alerts.existing.message" = "Er bestaat al een host profiel met deze titel, wil je hem vervangen?"; +"parsed_file.alerts.malformed.message" = "Het configuratie betand bevat ongeldige optie(s) (%@)."; +"parsed_file.alerts.missing.message" = "Het configuratiebestand mist een vereiste optie (%@)."; +"parsed_file.alerts.unsupported.message" = "Het configuratiebestand bevat een niet-ondersteunde optie (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "Het configuratiebestand is correct maar bevat mogelijk een niet-ondersteunde optie (%@).\n\nConnectiviteit kan hier door niet werken, afhankelijk van de serverinstellingen."; +"parsed_file.alerts.encryption_passphrase.message" = "Voer een coderingswachtwoord in"; +"parsed_file.alerts.decryption.message" = "De configuratie bevat een gecodeerde privésleutel en deze kan niet worden gedecodeerd. Controleer de ingevoerde wachtwoordzin nogmaals."; +"parsed_file.alerts.parsing.message" = "Kan het opgegeven configuratiebestand niet verwerken (%@)."; +"parsed_file.alerts.buttons.report" = "Een probleem melden"; +"service.sections.vpn.footer" = "De verbinding zal worden gestart wanneer nodig."; +"service.sections.provider_infrastructure.footer" = "Laatste update was op %@."; +"service.sections.vpn_survives_sleep.footer" = "Uitschakelen om het batterijverbruik te verbeteren, ten koste van incidentele vertragingen als gevolg van het opnieuw opstarten na wake-up."; +"service.sections.vpn_resolves_hostname.footer" = "Voorkeur om dit aan te zetten voor de meeste netwerken en vereist in sommige IPv6-netwerken. Uitschakelen waar DNS wordt geblokkeerd, of om de onderhandelingen te versnellen wanneer DNS traag reageert."; +"service.sections.trusted.header" = "Vertrouwde netwerken"; +"service.sections.trusted.footer" = "Bij het invoeren van een vertrouwd netwerk wordt de VPN uitgeschakeld en niet verbonden gehouden. Schakel deze optie uit om dergelijk gedrag niet af te dwingen."; +"service.sections.diagnostics.header" = "Diagnose"; +"service.sections.diagnostics.footer" = "De maskeerstatus is effectief na opnieuw verbinden. Netwerkgegevens zijn hostnamen, IP-adressen, routing, SSID's. Inloggegevens en privésleutels worden niet geregistreerd."; +"service.cells.connection_status.caption" = "Status"; +"account.title" = "Account"; +"endpoint.title" = "Endpoint"; +"service.cells.provider.pool.caption" = "Locatie"; +"service.cells.provider.preset.caption" = "Voorkeur"; +"network_settings.title" = "Netwerk instellingen"; +"service.cells.vpn_survives_sleep.caption" = "Actief tijdens slaapstand"; +"service.cells.vpn_resolves_hostname.caption" = "Haal de naam van de host op"; +"service.cells.trusted_mobile.caption" = "Mobiel netwerk"; +"service.cells.trusted_policy.caption" = "Trust disables VPN"; +"service.cells.test_connectivity.caption" = "Test connectiviteit"; +"service.cells.data_count.caption" = "Gegegevens uitgewisseld"; +"service.cells.data_count.none" = "Niet beschikbaar"; +"service.cells.debug_log.caption" = "Foutopsporingslogboek"; +"service.cells.masks_private_data.caption" = "Netwerkgegevens maskeren"; +"service.cells.reconnect.caption" = "Opnieuw verbinden"; +"service.cells.report_issue.caption" = "Probleem met connectiviteit melden"; +"service.alerts.rename.title" = "Profiel hernoemen"; +"service.alerts.credentials_needed.message" = "Voer eerst de accountgegevens in."; +"service.alerts.reconnect_vpn.message" = "Opnieuw verbinding maken met de VPN?"; +"service.alerts.trusted.no_network.message" = "U bent niet verbonden met een Wi-Fi-netwerk."; +"service.alerts.trusted.will_disconnect_trusted.message" = "Door dit netwerk te vertrouwen, kan de verbinding met de VPN mogelijk worden verbroken. Doorgaan?"; +"service.alerts.trusted.will_disconnect_policy.message" = "Door het vertrouwensbeleid te wijzigen, kan de verbinding met de VPN mogelijk worden verbroken. Doorgaan?"; +"service.alerts.test_connectivity.title" = "Connectiviteit"; +"service.alerts.test_connectivity.messages.success" = "Apparaat is verbonden met internet!"; +"service.alerts.test_connectivity.messages.failure" = "Uw apparaat heeft geen internetverbinding. Controleer uw profielparameters."; +"service.alerts.masks_private_data.messages.must_reconnect" = "Om het huidige foutopsporingslogboek veilig opnieuw in te stellen en de nieuwe maskeervoorkeur toe te passen, moet u nu opnieuw verbinding maken met VPN."; +"service.alerts.buttons.reconnect" = "Opnieuw verbinden"; +"service.alerts.download.title" = "Download vereist"; +"service.alerts.download.message" = "%@ vereist het downloaden van extra configuratiebestanden.\n\nBevestig om het downloaden te starten."; +"service.alerts.download.failed" = "Downloaden van configuratiebestanden is mislukt. %@"; +"service.alerts.download.hud.extracting" = "Bestanden uitpakken, even geduld..."; +"account.sections.guidance.footer.infrastructure.hideme" = "Gebruik de inloggegevens van %@."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Gebruik de inloggegevens van %@. Uw gebruikersnaam is meestal numeriek (zonder ruimte)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Gebruik de inloggegevens van %@. Uw gebruikersnaam is meestal uw e-mailadres."; +"account.sections.guidance.footer.infrastructure.pia" = "Gebruik de inloggegevens van %@. Uw gebruikersnaam is meestal numeriek met \"p\" als voorvoegsel."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Vind de inloggegevens van %@ in \"Account > OpenVPN / IKEv2 Username\" onderdeel van de website."; +"account.sections.guidance.footer.infrastructure.torguard" = "Gebruik uw %@ service-gegevens, die kunnen verschillen van de gegevens van de website."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Gebruik de inloggegevens van %@. Uw gebruikersnaam is meestal uw e-mailadres."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Gebruik de inloggegevens van %@ Uw gebruikersnaam is meestal uw e-mailadres."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Vind de inloggegevens van %@ in de OpenVPN Config Generator op de website."; +"account.sections.registration.footer" = "Registreer voor een %@ account op de website."; +"account.cells.username.caption" = "Gebruikersnaam"; +"account.cells.username.placeholder" = "gebruikersnaam"; +"account.cells.password.caption" = "Wachtwoord"; +"account.cells.password.placeholder" = "geheim"; +"account.cells.open_guide.caption" = "Bekijk de inloggegevens"; +"account.cells.signup.caption" = "Registreer bij %@"; +"endpoint.cells.any_address.caption" = "Automatisch"; +"endpoint.cells.any_protocol.caption" = "Automatisch"; +"configuration.sections.communication.header" = "Communicatie"; +"configuration.sections.reset.footer" = "Tik hier als de connectiviteit niet meer werkt na het aanpassen van instellingen, om terug te gaan naar de originele configuratie."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Compressie"; +"configuration.sections.network.header" = "Netwerk"; +"configuration.sections.other.header" = "Ander"; +"configuration.cells.cipher.caption" = "Cipher"; +"configuration.cells.digest.caption" = "Authenticatie"; +"configuration.cells.digest.value.embedded" = "Embedded"; +"configuration.cells.reset_original.caption" = "Reset configuratie"; +"configuration.cells.client.caption" = "Client certificaat"; +"configuration.cells.client.value.enabled" = "Geverifieerd"; +"configuration.cells.client.value.disabled" = "Niet geverifieerd"; +"configuration.cells.tls_wrapping.caption" = "Wrapping"; +"configuration.cells.tls_wrapping.value.auth" = "Authenticatie"; +"configuration.cells.tls_wrapping.value.crypt" = "Versleuteling"; +"configuration.cells.eku.caption" = "Uitgebreide verificatie"; +"network_settings.gateway.title" = "Standaard gateway"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Domein"; +"network_settings.proxy.title" = "Proxy"; +"configuration.cells.proxy_https.caption" = "Proxy (HTTPS)"; +"configuration.cells.compression_framing.caption" = "Framing"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Algoritme"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Niet ondersteund"; +"configuration.cells.keep_alive.caption" = "Keep-alive"; +"configuration.cells.keep_alive.value.seconds" = "%d seconden"; +"configuration.cells.renegotiation_seconds.caption" = "Renegotiation"; +"configuration.cells.renegotiation_seconds.value.after" = "na %@"; +"configuration.cells.random_endpoint.caption" = "Willekeurig eindpunt"; +"network_choice.client" = "Gebruik .ovpn"; +"network_choice.server" = "Haal op van server"; +"global.captions.address" = "Adress"; +"global.captions.port" = "Port"; +"debug_log.buttons.previous" = "Vorige"; +"debug_log.buttons.next" = "Volgende"; +"debug_log.alerts.empty_log.message" = "Het logboek voor foutopsporing is leeg."; +"vpn.connecting" = "Verbinden"; +"vpn.active" = "Actief"; +"vpn.disconnecting" = "Verbinding verbreken"; +"vpn.inactive" = "Inactief"; +"vpn.disabled" = "Uitgeschakeld"; +"vpn.errors.timeout" = "Time-out"; +"vpn.errors.dns" = "DNS niet gelukt"; +"vpn.errors.auth" = "Auth niet gelukt"; +"vpn.errors.tls" = "TLS niet gelukt"; +"vpn.errors.encryption" = "Versleuteling mislukt"; +"vpn.errors.compression" = "Compressie wordt niet ondersteund"; +"vpn.errors.network" = "Netwerk veranderd"; +"vpn.errors.routing" = "Ontbrekende routering"; +"vpn.errors.gateway" = "Geen gateway"; +"vpn.errors.shutdown" = "Server is afgesloten"; +"issue_reporter.title" = "Meld een probleem"; +"issue_reporter.message" = "Het foutopsporingslogboek van uw laatste verbindingen is cruciaal om uw verbindingsproblemen op te lossen en is volledig geanonimiseerd.\n\nHet .ovpn configuratiebestand, indien aanwezig, is ontdaan van alle gevoelige gegevens.\n\nControleer de e-mailbijlagen als je niet zeker bent dat alles verwijderd is."; +"issue_reporter.buttons.accept" = "Ik ga akkoord"; +"translations.title" = "Vertalingen"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Mobiel"; +"shortcuts.add.cells.connect.caption" = "Verbind met"; +"shortcuts.add.cells.enable_vpn.caption" = "Activeer VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Deactiveer VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Vertrouw huidig Wi-Fi netwerk"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Untrust current Wi-Fi"; +"shortcuts.add.cells.trust_cellular.caption" = "Vertouw mobiel netwerk"; +"shortcuts.add.cells.untrust_cellular.caption" = "Untrust mobiel netwerk"; +"shortcuts.add.alerts.no_profiles.message" = "Er is geen profiel om verbinding mee te maken."; +"shortcuts.edit.sections.all.header" = "Bestaande snelkoppelingen"; +"about.title" = "Over"; +"about.sections.web.header" = "Web"; +"about.sections.share.header" = "Delen"; +"about.cells.credits.caption" = "Credits"; +"about.cells.website.caption" = "Home page"; +"about.cells.faq.caption" = "FAQ"; +"about.cells.disclaimer.caption" = "Vrijwaring"; +"about.cells.privacy_policy.caption" = "Privacybeleid"; +"about.cells.share_twitter.caption" = "Tweet about it!"; +"about.cells.share_generic.caption" = "Nodig een vriend uit"; +"donation.title" = "Donatie"; +"donation.sections.one_time.header" = "Eenmalig"; +"donation.sections.one_time.footer" = "Als je dankbaarheid wilt tonen voor mijn gratis werk, zijn hier een paar bedragen die je direct kunt doneren.\n\nHet bedrag wordt slechts één keer per donatie in rekening gebracht en u kunt meerdere keren doneren."; +"donation.cells.loading.caption" = "Ophalen donaties"; +"donation.cells.purchasing.caption" = "Doneren"; +"donation.alerts.purchase.success.title" = "Hartelijk dank"; +"donation.alerts.purchase.success.message" = "Dit betekent veel voor mij en ik hoop echt dat je deze app blijft gebruiken en promoten."; +"donation.alerts.purchase.failure.message" = "Donatie mislukt. %@"; +"share.message" = "Passepartout is een gebruiksvriendelijke open source OpenVPN-client voor iOS en macOS"; +"version.title" = "Versie"; +"version.labels.intro" = "Passepartout en TunnelKit zijn geschreven en worden onderhouden door Davide De Rosa (keeshux).\n\nDe broncode voor Passepartout en TunnelKit is openbaar beschikbaar op GitHub onder de GPLv3, je kunt links op de startpagina vinden.\n\nPassepartout is een niet-officiële client en is op geen enkele manier verbonden aan OpenVPN Inc."; +"credits.title" = "Credits"; +"credits.sections.licenses.header" = "Licenties"; +"credits.sections.notices.header" = "Mededelingen"; +"credits.sections.translations.header" = "Vertalingen"; +"label.license.error" = "Kan volledige licentie-inhoud niet downloaden."; +"organizer.cells.profile.value.current" = "In gebruik"; +"service.welcome.message" = "Welkom bij Passepartout!\n\nGebruik de organizer om een nieuw profiel toe te voegen."; +"service.cells.server_configuration.caption" = "Server configuratie"; +"service.cells.server_network.caption" = "Server netwerk"; +"service.alerts.configuration.disconnected" = "Configuratie niet beschikbaar, zorg ervoor dat u verbonden bent met de VPN."; +"server_network.cells.route.caption" = "Route"; +"wizards.provider.cells.update_list.caption" = "Lijst bijwerken"; +"wizards.provider.alerts.unavailable.message" = "Kon de provider-infrastructuur niet downloaden, probeer het later opnieuw."; +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "Kom kijken hoe ik Passepartout live maak op Twitch, doe mee aan de chat om te communiceren en bij te dragen!"; +"organizer.cells.follow_twitch.caption" = "Bekijk Passepartout op Twitch"; +"service.cells.use_profile.caption" = "Gebruik dit profiel"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; diff --git a/Passepartout/Core/Resources/nl.lproj/Intents.strings b/Passepartout/Core/Resources/nl.lproj/Intents.strings new file mode 100644 index 00000000..f055e0f9 --- /dev/null +++ b/Passepartout/Core/Resources/nl.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Verwijder Mobielnetwerk van vertrouwde netwerken"; + +"IeGsEq" = "Disable VPN"; +"1ZRTCZ" = "Disable VPN"; + +"66bZBE" = "Met ${providerId} aanbieder"; + +"7eoAss" = "Verwijder huidige Wi-Fi van vertrouwde netwerken"; + +"9GpJt5" = "Voeg Mobielnetwerk to aan vertrouwde netwerken"; + +"BKxs8X" = "Voeg huidig Wi-Fi toe aan vertrouwde netwerken"; + +"NWWgCl" = "Vertrouw mobiel netwerk"; +"H4taev" = "Vertrouw mobiel netwerk"; + +"KjkCfU" = "Maak verbinding met een specifieke lokatie van een aanbieder profiel"; + +"LA99yM" = "Verbind VPN"; + +"U6o81V" = "Verbind met ${profileTitle}"; + +"WnTPFg" = "Verbind met ${poolName}"; + +"eQ1yzr" = "Schakel VPN service uit"; + +"eXXb2z" = "Verbind met een host profiel"; + +"yesvFP" = "Schakel VPN in"; +"lQ6ziK" = "Schakel VPN in"; + +"POyDPM" = "Vertrouw huidig Wi-Fi netwerk"; +"m2E7SI" = "Vertrouw huidig Wi-Fi netwerk"; + +"qo3Szz" = "Maak verbinding met de locatie van de aanbieder"; + +"0Wu9nb" = "Wantrouw huidig Wi-Fi netwerk"; +"rd1T8p" = "Wantrouw huidig Wi-Fi netwerk"; + +"ggzKA2" = "Wantrouw modbiel netwerk"; +"wB1iYX" = "Wantrouw modbiel netwerk"; + +"xY97Vu" = "Schakel de VPN-service in met het profiel dat momenteel in gebruik is"; + +"NCoK9B" = "Met het profiel dat momenteel in gebruik is"; diff --git a/Passepartout/Core/Resources/pl.lproj/Core.strings b/Passepartout/Core/Resources/pl.lproj/Core.strings new file mode 100644 index 00000000..b7e4df0f --- /dev/null +++ b/Passepartout/Core/Resources/pl.lproj/Core.strings @@ -0,0 +1,269 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 6/13/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "OK"; +"global.cancel" = "Anuluj"; +"global.next" = "Następny"; +"global.close" = "Zamknij"; +"global.host.title_input.message" = "Akceptowane są znaki alfanumeryczne i pauza \"-\", podkreślenie \"_\" oraz kropka \".\"."; +"global.host.title_input.placeholder" = "Mój profil"; +"global.email_not_configured" = "Adres e-mail nie jest skonfigurowany."; + +"global.captions.address" = "Adres"; +"global.captions.port" = "Port"; + +"global.values.enabled" = "Włączony"; +"global.values.disabled" = "Wyłączony"; +"global.values.none" = "Brak"; +"global.values.automatic" = "Automatycznie"; +"global.values.manual" = "Ręcznie"; + +"reddit.title" = "Reddit"; +"reddit.message" = "Wiedziałeś/łaś, że Passepartout ma swój subreddit? Subskrybuj dla aktualizacji, dyskusji o funkcjonalności, nowych platformach lub o czymkolwiek zechcesz.\n\nTo również świetny sposób na okazanie zainteresowania projektem."; +"reddit.buttons.subscribe" = "Subskrybuj!"; +"reddit.buttons.remind" = "Przypomnij mi później"; +"reddit.buttons.never" = "Nie przypominaj"; + +"vpn.connecting" = "Łączenie"; +"vpn.active" = "Aktywne"; +"vpn.disconnecting" = "Rozłączanie"; +"vpn.inactive" = "Nieaktywne"; +"vpn.disabled" = "Wyłączone"; + +"vpn.errors.timeout" = "Upłynąl limit czasu połączenia"; +"vpn.errors.dns" = "Błąd DNS"; +"vpn.errors.auth" = "Błąd autoryzacji"; +"vpn.errors.tls" = "Błąd TLS"; +"vpn.errors.encryption" = "Błąd szyfrowania"; +"vpn.errors.compression" = "Niewspierana kompresja"; +"vpn.errors.network" = "Sieć zmieniona"; +"vpn.errors.routing" = "Brak routingu"; +"vpn.errors.gateway" = "Brak bramy domyślnej"; +"vpn.errors.shutdown" = "Serwer został zamknięty"; + +"parsed_file.alerts.malformed.message" = "Plik konfiguracyjny zawiera źle zformułowaną opcję (%@)."; +"parsed_file.alerts.missing.message" = "Plik konfiguracyjny nie nawiera potrzebnej opcji (%@)."; +"parsed_file.alerts.unsupported.message" = "Plik konfiguracyjny posiada niewspieraną opcję (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "Plik konfiguracyjny jest poprawny, ale zawiera potencjalnie niewspieraną opcję (%@).\n\nPołączenie może zostać przerwane przez ustawienia serwera."; +"parsed_file.alerts.encryption_passphrase.message" = "Proszę wpisać frazę szyfrującą."; +"parsed_file.alerts.decryption.message" = "Konfiguracja zawiera zaszyfrowany klucz prywatny który nie może zostać odszyfrowany. Sprawdź frazę szyfrującą."; +"parsed_file.alerts.parsing.message" = "Błąd w przetwarzaniu pliku konfiguracyjnego (%@)."; +"parsed_file.alerts.buttons.report" = "Zgłoś błąd"; + +"network_choice.client" = "Otwórz plik .ovpn"; +"network_choice.server" = "Pobierz z serwera"; + +"issue_reporter.title" = "Zgłoś błąd"; +"issue_reporter.message" = "Rejestr debugowania jest potrzebny w rozwiązywaniu problemów z połaczeniem i jest w pełni anonimowy.\n\nPlik konfiguracyjny .ovpn, jeśli używany, jest dołączany bez wrażliwych danych.\n\nSPrawdź załącznik e-maila jeśli masz wątpliwości."; +"issue_reporter.buttons.accept" = "Rozumiem"; + +"translations.title" = "Tłumaczenia"; + +"share.message" = "Passepartout to klient OpenVPN, przyjazny użytkownikowi, open-source, stworzony dla iOS i macOS"; + +////////////////////// + +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "Przyjdź i zobacz, jak tworzę Passepartout na żywo na Twitchu, dołącz do czatu, aby współdziałać i udzielać się!"; +"organizer.sections.providers.header" = "Usługodawcy"; +"organizer.sections.providers.footer" = "Tutaj znajdziesz kilku usługodawców z profilami konfiguracyjnymi."; +"organizer.sections.hosts.header" = "Hosty"; +"organizer.sections.hosts.footer" = "Importuj hosty z plików konfiguracyjnych .ovpn."; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "Użyj Siri żeby przyspieszyć najczęstsze akcje w aplikacji."; +"organizer.sections.support.header" = "Wsparcie"; +"organizer.sections.feedback.header" = "Wyraź opinię"; +"organizer.cells.follow_twitch.caption" = "Oglądaj Passepartout na Twitchu"; +"organizer.cells.profile.value.current" = "W użyciu"; +"organizer.cells.siri_shortcuts.caption" = "Zarządzaj skrótami"; +"organizer.cells.join_community.caption" = "Dołącz do społeczności"; +"organizer.cells.write_review.caption" = "Napisz recenzję"; +"organizer.cells.donate.caption" = "Wyślij dotację"; +"organizer.cells.github_sponsors.caption" = "Wesprzyj mnie na GitHub"; +"organizer.cells.translate.caption" = "Zaproponuj tłumaczenie"; +"organizer.cells.about.caption" = "O %@"; +"organizer.cells.uninstall.caption" = "Usuń konfiguracje VPN"; +"organizer.alerts.exhausted_providers.message" = "Stworzyłeś/aś już profile dla każdego usługodawcy."; +"organizer.alerts.add_host.message" = "Otwórz link z plikiem .ovpn w Safari, Poczcie lub innej aplikacji aby utworzyć profil hosta.\n\nMożesz też zaimportować plik .ovpn używając 'File Sharing' w iTunes."; +"organizer.alerts.cannot_donate.message" = "Żadna metoda płatności nie jest skonfigurowana na tym urządzeniu."; +"organizer.alerts.delete_vpn_profile.message" = "Na pewno chcesz usunąć konfigurację VPN z urządzenia? Może to naprawić błędy z statusem VPN i nie będzie miało wpływu na konfigurację usługodawców/hostów."; + +"wizards.provider.cells.update_list.caption" = "Zaktualizuj listę"; +"wizards.provider.alerts.unavailable.message" = "Nie można pobrać infrastruktury dostawcy, spróbuj ponownie później."; +"wizards.host.alerts.existing.message" = "Profil hosta z taką nazwą już istnieje. Nadpisać profil?"; + +"service.welcome.message" = "Witaj w Passepartout!\n\nUżyj organizera by utworzyć nowy profil."; +"service.sections.vpn.footer" = "Połączenie zostanie nawiązane zgodnie z ustawieniami."; +"service.sections.provider_infrastructure.footer" = "Ostatnio aktualizowane %@."; +"service.sections.vpn_survives_sleep.footer" = "Wyłącz dla mniejszego zużycia baterii kosztem wolniejszego działania spowodowanego ponownym połączeniem przy wybudzeniu urządzenia."; +"service.sections.vpn_resolves_hostname.footer" = "Preferowane w większości sieci i potrzebne w niektórych sieciach IPv6. Wyłącz kiedy DNS jest zablokowane, lub żeby przyspieszyć ustanawianie połączenia gdy DNS jest zbyt wolne."; +"service.sections.trusted.header" = "Zaufane sieci"; +"service.sections.trusted.footer" = "Kiedy urządzenie łączy się z zaufaną siecią, VPN jest wyłączane. Wyłącz tę opcję żeby nie wymuszać takiego zachowania."; +"service.sections.diagnostics.header" = "Diagnostyka"; +"service.sections.diagnostics.footer" = "Status maskowania będzie widoczny po ponownym połączeniu. Dane połączenia to nazwy hostów, adresy IP, routing, SSID. Loginy i klucze prywatne nie są zapisywane."; +"service.cells.connection_status.caption" = "Status"; +"service.cells.provider.pool.caption" = "Lokalizacja"; +"service.cells.provider.preset.caption" = "Preset"; +"service.cells.vpn_survives_sleep.caption" = "Utrzymuj połączenie przy zablokowanym ekranie"; +"service.cells.vpn_resolves_hostname.caption" = "Rozwiązuj nazwy hostów usługodawcy"; +"service.cells.trusted_mobile.caption" = "Sieć komórkowa"; +"service.cells.trusted_policy.caption" = "Wyłącz VPN dla zaufanych sieci"; +"service.cells.test_connectivity.caption" = "Testuj połączenie"; +"service.cells.data_count.caption" = "Pobrane/wysłane dane"; +"service.cells.data_count.none" = "Niedostępne"; +"service.cells.server_configuration.caption" = "Konfiguracja serwera"; +"service.cells.server_network.caption" = "Sieć serwera"; +"service.cells.debug_log.caption" = "Debugowanie"; +"service.cells.masks_private_data.caption" = "Maskuj dane sieci"; +"service.cells.reconnect.caption" = "Połącz ponownie"; +"service.cells.report_issue.caption" = "Zgłoś problemy z połączeniem"; + +"service.alerts.rename.title" = "Zmień nazwę profilu"; +"service.alerts.credentials_needed.message" = "Musisz najpierw wpisać login/hasło."; +"service.alerts.reconnect_vpn.message" = "Czy chcesz połączyć się ponownie z VPN?"; +"service.alerts.trusted.no_network.message" = "Nie jesteś połączony z siecią WiFi."; +"service.alerts.trusted.will_disconnect_trusted.message" = "Ufając tej sieci, połączenie VPN zostanie przerwane, kontynuować?"; +"service.alerts.trusted.will_disconnect_policy.message" = "Aby zmienić ustawienia zaufania, połączenie VPN może zostać przerwane, kontynuować?"; +"service.alerts.test_connectivity.title" = "Połączenie"; +"service.alerts.test_connectivity.messages.success" = "Twoje urządzenie jest połączone z internetem!"; +"service.alerts.test_connectivity.messages.failure" = "Twoje urządzenie nie jest połączone z internetem, sprawdź ustawienia profilu."; +"service.alerts.configuration.disconnected" = "Konfiguracja niedostępna, upewnij się, że jesteś połączony/a z VPN."; +"service.alerts.masks_private_data.messages.must_reconnect" = "Aby bezpiecznie zresetować rejestr debugowania i zastosować nowe ustawienia maskowania, musisz połączyć się z VPN ponownie."; +"service.alerts.buttons.reconnect" = "Połącz ponownie"; +"service.alerts.download.title" = "Potrzebne pobranie"; +"service.alerts.download.message" = "%@ potrzebuje pobrania dodatkowych plików konfiguracyjnych.\n\nPotwierdź aby zacząć pobieranie."; +"service.alerts.download.failed" = "Nie udało się pobrać plików konfiguracyjnych. %@"; +"service.alerts.download.hud.extracting" = "Wypakowywanie plików, proszę czekać ..."; + +"account.title" = "Konto"; +"account.sections.guidance.footer.infrastructure.hideme" = "Użyj loginu do %@."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Użyj loginu do %@. Twoja nazwa użytkownika jest najczęściej ciągiem liczb (bez przestrzeni)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Użyj loginu do %@. Twoja nazwa użytkownika to najczęściej e-mail."; +"account.sections.guidance.footer.infrastructure.pia" = "Użyj loginu do %@. Twoja nazwa użytkownika jesy najczęściej ciągiem liczb poprzedonym prefiksem \"p\"."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Użyj loginu do %@. Zajdziesz go w sekcji \"Account > OpenVPN / IKEv2 Username\"."; +"account.sections.guidance.footer.infrastructure.torguard" = "Użyj poświadczeń usługi %@, które mogą różnić się od poświadczeń witryny."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Użyj loginu do %@. Twoja nazwa użytkownika to najczęściej e-mail."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Użyj loginu do %@. Twoja nazwa użytkownika to najczęściej e-mail."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Użyj loginu do %@ z generatora konfiguracji OpenVPN dostępnego na stronie."; +"account.sections.registration.footer" = "Utwórz konto na stronie: %@"; +"account.cells.username.caption" = "Nazwa użytkownika"; +"account.cells.username.placeholder" = "Nazwa użytkownika"; +"account.cells.password.caption" = "Hasło"; +"account.cells.password.placeholder" = "Ukryte"; +"account.cells.open_guide.caption" = "Zobacz swoje login/hasło"; +"account.cells.signup.caption" = "Zarejstruj się w %@"; + +"endpoint.title" = "Host końcowy"; +"endpoint.cells.any_address.caption" = "Automatyczny"; +"endpoint.cells.any_protocol.caption" = "Automatyczny"; + +"network_settings.title" = "Ustawienia sieci"; + +"configuration.sections.communication.header" = "Komunikacja"; +"configuration.sections.reset.footer" = "Jeśli masz problemy z połączeniem po zmianie konfiguracji komunikacji, kliknij żeby przywrócić domyślną konfigurację."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Kompresja"; +"configuration.sections.network.header" = "Sieć"; +"configuration.sections.other.header" = "Inne"; +"configuration.cells.cipher.caption" = "Szyfr"; +"configuration.cells.digest.caption" = "Uwierzytelnienie"; +"configuration.cells.digest.value.embedded" = "Osadzony"; +"configuration.cells.compression_framing.caption" = "Struktura"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Algorytm"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Nieobsługiwane"; +"configuration.cells.reset_original.caption" = "Zresetuj konfigurację"; +"configuration.cells.client.caption" = "Certyfikat klienta"; +"configuration.cells.client.value.enabled" = "Zweryfikowany"; +"configuration.cells.client.value.disabled" = "Niezweryfikowany"; +"configuration.cells.tls_wrapping.caption" = "Wrapping"; +"configuration.cells.tls_wrapping.value.auth" = "Uwierzytelnienie"; +"configuration.cells.tls_wrapping.value.crypt" = "Szyfrowanie"; +"configuration.cells.eku.caption" = "Rozszerzona weryfikacja"; +"configuration.cells.keep_alive.caption" = "Utrzymuj połączenie"; +"configuration.cells.keep_alive.value.seconds" = "%d sekund"; +"configuration.cells.renegotiation_seconds.caption" = "Ponowna negocjacja"; +"configuration.cells.renegotiation_seconds.value.after" = "po %@"; +"configuration.cells.random_endpoint.caption" = "Losowy host końcowy"; + +"network_settings.gateway.title" = "Domyślna brama sieciowa"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Domena"; +"network_settings.proxy.title" = "Proxy"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; + +"server_network.cells.route.caption" = "Trasowanie"; + +"debug_log.buttons.previous" = "Poprzedni"; +"debug_log.buttons.next" = "Następny"; +"debug_log.alerts.empty_log.message" = "Rejestr debugowania jest pusty."; + +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Dane komórkowe"; +"shortcuts.add.cells.connect.caption" = "Połącz z"; +"shortcuts.add.cells.enable_vpn.caption" = "Włącz VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Wyłącz VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Zaufaj obecnie połączonej sieci Wi-Fi"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Przestań ufać obecnie połączonej sieci Wi-Fi"; +"shortcuts.add.cells.trust_cellular.caption" = "Ufaj danym komórkowym"; +"shortcuts.add.cells.untrust_cellular.caption" = "Przestań ufać danym komórkowym"; +"shortcuts.add.alerts.no_profiles.message" = "Brak wybranego profilu połączenia."; + +"shortcuts.edit.sections.all.header" = "Istniejące skróty"; + +"donation.title" = "Dotacja"; +"donation.sections.one_time.header" = "Jeden raz"; +"donation.sections.one_time.footer" = "Jeśli chcesz docenić moją pracę, poniżej znajdziesz kilka kwot do wyboru dotacji.\n\nTwoje konto zostanie obciążone tylko raz na jedną dotację, możesz wysłać dotację kilka razy."; +"donation.cells.loading.caption" = "Ładowanie dotacji"; +"donation.cells.purchasing.caption" = "Wykonywanie dotacji"; +"donation.alerts.purchase.success.title" = "Dziękuję"; +"donation.alerts.purchase.success.message" = "To dla mnie dużo znaczy, mam nadzięję że będziesz używać aplikacji i przyczynisz się do jej rozpowrzechnienia."; +"donation.alerts.purchase.failure.message" = "Nie można dokonać dotacji. %@"; + +"about.title" = "O programie"; +"about.sections.web.header" = "Strona WWW"; +"about.sections.share.header" = "Udostępnij"; +"about.cells.credits.caption" = "Twórcy"; +"about.cells.website.caption" = "Strona domowa"; +"about.cells.faq.caption" = "Pytania i odpowiedzi"; +"about.cells.disclaimer.caption" = "Disclaimer"; +"about.cells.privacy_policy.caption" = "Polityka prywatności"; +"about.cells.share_twitter.caption" = "Wyślij tweeta!"; +"about.cells.share_generic.caption" = "Zaproś znajomego"; + +"version.title" = "Wersja"; +"version.labels.intro" = "Passepartout i TunnelKit są stworzone i utrzymywane przez Davide De Rosa (keeshux).\n\nKod źródłowy Passepartout i TunnelKit jest publicznie dostępny na licencji GPLv3, linki możesz znaleźć na stronie domowej.\n\nPassepartout nie jest oficjanlnym klientem i nie jest powiązany z OpenVPN Inc."; + +"credits.title" = "Twórcy"; +"credits.sections.licenses.header" = "Licencje"; +"credits.sections.notices.header" = "Dodatki"; +"credits.sections.translations.header" = "Tłumaczenia"; + +"label.license.error" = "Nie udało się pobrać danych licencyjnych."; +"service.cells.use_profile.caption" = "Używaj tego profilu"; diff --git a/Passepartout/Core/Resources/pl.lproj/Intents.strings b/Passepartout/Core/Resources/pl.lproj/Intents.strings new file mode 100644 index 00000000..a364221a --- /dev/null +++ b/Passepartout/Core/Resources/pl.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Usuwa dane komórkowe z zaufanych sieci"; + +"IeGsEq" = "Wyłącz VPN"; +"1ZRTCZ" = "Wyłącz VPN"; + +"66bZBE" = "Z usługodawcą ${providerId}"; + +"7eoAss" = "Usuwa obecnie połączoną sieć Wi-Fi z zaufanych sieci"; + +"9GpJt5" = "Dodaje dane komórkowe do zaufanych sieci"; + +"BKxs8X" = "Dodaje obecnie połączoną sieć Wi-Fi do zaufanych sieci"; + +"NWWgCl" = "Ufaj danym komórkowym"; +"H4taev" = "Ufaj danym komórkowym"; + +"KjkCfU" = "Łączy z wybraną lokalizacją profilu usługodawcy"; + +"LA99yM" = "Połącz z VPN"; + +"U6o81V" = "Połącz z ${profileTitle}"; + +"WnTPFg" = "Połącz z ${poolName}"; + +"eQ1yzr" = "Wyłącza VPN"; + +"eXXb2z" = "Łączy z profilem hosta"; + +"yesvFP" = "Włącz VPN"; +"lQ6ziK" = "Włącz VPN"; + +"POyDPM" = "Zaufaj obecnie połączonej sieci Wi-Fi"; +"m2E7SI" = "Zaufaj obecnie połączonej sieci Wi-Fi"; + +"qo3Szz" = "Połącz z lokalizacją usługodawcy"; + +"0Wu9nb" = "Nie ufaj obecnie połączonej sieci Wi-Fi"; +"rd1T8p" = "Nie ufaj obecnie połączonej sieci Wi-Fi"; + +"ggzKA2" = "Nie ufaj danym komórkowym"; +"wB1iYX" = "Nie ufaj danym komórkowym"; + +"xY97Vu" = "Włącza VPN używając wybranego obecnie profilu"; + +"NCoK9B" = "Z profilem w użyciu"; diff --git a/Passepartout/Core/Resources/pt.lproj/Core.strings b/Passepartout/Core/Resources/pt.lproj/Core.strings new file mode 100644 index 00000000..9ede871f --- /dev/null +++ b/Passepartout/Core/Resources/pt.lproj/Core.strings @@ -0,0 +1,240 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 6/13/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "OK"; +"global.cancel" = "Cancelar"; +"global.next" = "Próximo"; +"global.close" = "Fechar"; +"global.host.title_input.message" = "Caracteres aceitos são alfanuméricos, mais traço \"-\", underline \"_\" e ponto \".\"."; +"global.host.title_input.placeholder" = "Meu perfil"; +"global.email_not_configured" = "Nenhuma conta de email configurada."; +"global.values.enabled" = "Ativado"; +"global.values.disabled" = "Desativado"; +"global.values.none" = "Nenhum"; +"global.values.automatic" = "Automático"; +"global.values.manual" = "Manual"; +"reddit.title" = "Reddit"; +"reddit.message" = "Você sabia que Passepartout tem um subreddit? Siga-nos para atualizações ou para discutir problemas, novas funcionalidades, ou qualquer outro tópico.\n\nÉ uma boa maneira de mostrar seu interesse pelo projeto."; +"reddit.buttons.subscribe" = "Seguir!"; +"reddit.buttons.remind" = "Lembrar-me depois"; +"reddit.buttons.never" = "Não perguntar novamente"; +"organizer.sections.providers.header" = "Provedores"; +"organizer.sections.providers.footer" = "Aqui você encontra um provedor com o perfil pré-configurado."; +"organizer.sections.hosts.header" = "Hosts"; +"organizer.sections.hosts.footer" = "Importar hosts de um arquivo de configuração .ovpn."; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "Peça ajuda para Siri para agilar tarefas comum do aplicativo."; +"organizer.sections.support.header" = "Suporte"; +"organizer.sections.feedback.header" = "Feedback"; +"organizer.cells.siri_shortcuts.caption" = "Gerenciar atalhos"; +"organizer.cells.join_community.caption" = "Participar da comunidade"; +"organizer.cells.write_review.caption" = "Escrever avaliação"; +"organizer.cells.donate.caption" = "Fazer doação"; +"organizer.cells.github_sponsors.caption" = "Contribuir no GitHub"; +"organizer.cells.translate.caption" = "Ajudar-nos na tradução"; +"organizer.cells.about.caption" = "Sobre %@"; +"organizer.cells.uninstall.caption" = "Remover configuração VPN"; +"organizer.alerts.exhausted_providers.message" = "Você criou um perfil para qualquer provedor disponível."; +"organizer.alerts.add_host.message" = "Abre uma URL para um arquivo de configuração .ovpn no Safari, Mail ou outro aplicativo.\n\nVocê pode também importar um .ovpn com o compartilhamento de arquivos do iTunes."; +"organizer.alerts.cannot_donate.message" = "Nenhum meio de pagamento configurado nesse dispositivo."; +"organizer.alerts.delete_vpn_profile.message" = "Tem certeza que deseja remover as configurações de VPN do seu dispositivo? Isso poderá corrigir problemas com o estado atual, sem afetar seu provedor e perfis do host."; +"wizards.host.alerts.existing.message" = "Já existe um perfil com esse nome, deseja substituí-lo?"; +"parsed_file.alerts.malformed.message" = "O arquivo de configuração possui uma opção não formatada corretamente (%@)."; +"parsed_file.alerts.missing.message" = "O arquivo não possui todas configurações requeridas (%@)."; +"parsed_file.alerts.unsupported.message" = "O arquivo de configuração possui uma opção não suportada (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "O arquivo de configuração está correto, mas provavelmente possui uma opção não suportada (%@).\n\nSua conexão poderá ser instável dependendo as configurações do servidor."; +"parsed_file.alerts.encryption_passphrase.message" = "Por favor, digite sua senha de criptografia."; +"parsed_file.alerts.decryption.message" = "Sua configiração possui uma chave privada criptografada que talvez não possa ser descriptografada. Verifique novamente sua senha de criptografia."; +"parsed_file.alerts.parsing.message" = "Não foi possível processar as configurações do arquivo (%@)."; +"parsed_file.alerts.buttons.report" = "Reportar problema"; +"service.sections.vpn.footer" = "A conexão será estabelecida assim que necessária."; +"service.sections.provider_infrastructure.footer" = "Última atualização em %@."; +"service.sections.vpn_survives_sleep.footer" = "Desative para melhorar o consumo de bateria, o que poderá ocasionar queda de performance quando o restabelecimento de conexão for realizado."; +"service.sections.vpn_resolves_hostname.footer" = "Recomendado para maioria das redes e requirido em algumas redes IPv6. Desative se o DNS estiver bloqueado, ou para acelerar o DNS quando o mesmo está devagar."; +"service.sections.trusted.header" = "Redes seguras"; +"service.sections.trusted.footer" = "Ao entrar em uma rede segura, a VPN é normalmente é desconectada e mantido inativa. Desative essa opção para não forçar esse comportamento."; +"service.sections.diagnostics.header" = "Diagnóstico"; +"service.sections.diagnostics.footer" = "O status será escondido após reconectado. Os dados da rede são hostnames, endereços de IP, rotas, SSID. Credenciais e chaves privadas não será logadas em nenhum dos casos."; +"service.cells.connection_status.caption" = "Status"; +"account.title" = "Conta"; +"endpoint.title" = "Endereço"; +"service.cells.provider.pool.caption" = "Localização"; +"service.cells.provider.preset.caption" = "Pré-definição"; +"network_settings.title" = "Configurações de rede"; +"service.cells.vpn_survives_sleep.caption" = "Manter ativo em modo descanço"; +"service.cells.vpn_resolves_hostname.caption" = "Resolver hostname do servidor"; +"service.cells.trusted_mobile.caption" = "Rede celular"; +"service.cells.trusted_policy.caption" = "Trust disables VPN"; +"service.cells.test_connectivity.caption" = "Testar conexão"; +"service.cells.data_count.caption" = "Dados transferidos"; +"service.cells.data_count.none" = "Indisponível"; +"service.cells.debug_log.caption" = "Log de Debug"; +"service.cells.masks_private_data.caption" = "Esconder dados da rede"; +"service.cells.reconnect.caption" = "Reconectar"; +"service.cells.report_issue.caption" = "Reportar problemas de conexão"; +"service.alerts.rename.title" = "Renomear perfil"; +"service.alerts.credentials_needed.message" = "Primeiramente você precisa preencher suas credenciais."; +"service.alerts.reconnect_vpn.message" = "Deseja reconectar à VPN?"; +"service.alerts.trusted.no_network.message" = "Você não está conectado em nenhuma rede Wi-Fi."; +"service.alerts.trusted.will_disconnect_trusted.message" = "Ao confiar nessa rede, sua VPN provavelmente será desconectada. Deseja continuar?"; +"service.alerts.trusted.will_disconnect_policy.message" = "Ao alterar a política de segurança, sua VPN provavelmente será desconectada. Deseja continuar?"; +"service.alerts.test_connectivity.title" = "Conectividade"; +"service.alerts.test_connectivity.messages.success" = "Seu dispositivo está conectado à Internet!"; +"service.alerts.test_connectivity.messages.failure" = "Seu dispositivo não está conectado à Internet, por favor, verifique sua configurações."; +"service.alerts.masks_private_data.messages.must_reconnect" = "Para garantir uma restauração segura do seu log de debug, você precisa reconectar à VPN."; +"service.alerts.buttons.reconnect" = "Reconectar"; +"service.alerts.download.title" = "Download requirido"; +"service.alerts.download.message" = "%@ requer o download de arquivos de configuração adicionais.\n\nConfirme para iniciar."; +"service.alerts.download.failed" = "Erro no download do arquivo de configuração. %@"; +"service.alerts.download.hud.extracting" = "Extraindo arquivos, seja paciente..."; +"account.sections.guidance.footer.infrastructure.hideme" = "Utilize %@ credenciais do site."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Utilize %@ credenciais do site. Seu usuário é normalmente numérico (sem espaços)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Utilize %@ credenciais do site. Seu usuário é normalmente o seu email."; +"account.sections.guidance.footer.infrastructure.pia" = "Utilize %@ credenciais do site. Seu usuário é normalmente numérico com prefixo \"p\"."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Encontre %@ credenciais na sessão \"Account > OpenVPN / IKEv2 Username\" do site."; +"account.sections.guidance.footer.infrastructure.torguard" = "Utilize suas credenciais de serviço %@, que podem diferir das credenciais do site."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Utilize %@ credenciais do site. Seu usuário é normalmente o seu email."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Utilize %@ credenciais do site. Seu usuário é normalmente o seu email."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Encontre %@ credenciais no gerador de configuração OpenVPN do site."; +"account.sections.registration.footer" = "Registrar em %@ website."; +"account.cells.username.caption" = "Usuário"; +"account.cells.username.placeholder" = "usuário"; +"account.cells.password.caption" = "Senha"; +"account.cells.password.placeholder" = "senha secreta"; +"account.cells.open_guide.caption" = "Ver sua credenciais"; +"account.cells.signup.caption" = "Registrar com %@"; +"endpoint.cells.any_address.caption" = "Automático"; +"endpoint.cells.any_protocol.caption" = "Automático"; +"configuration.sections.communication.header" = "Comunicação"; +"configuration.sections.reset.footer" = "Se você foi desconectado após mudar parâmetros de comunicação, toque para restaurar a configuração original."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Compressão"; +"configuration.sections.network.header" = "Rede"; +"configuration.sections.other.header" = "Outro"; +"configuration.cells.cipher.caption" = "Criptografada"; +"configuration.cells.digest.caption" = "Autenticação"; +"configuration.cells.digest.value.embedded" = "Agregado"; +"configuration.cells.reset_original.caption" = "Restaurar configuração"; +"configuration.cells.client.caption" = "Certificado do cliente"; +"configuration.cells.client.value.enabled" = "Verificado"; +"configuration.cells.client.value.disabled" = "Não verificado"; +"configuration.cells.tls_wrapping.caption" = "Wrapping"; +"configuration.cells.tls_wrapping.value.auth" = "Autenticação"; +"configuration.cells.tls_wrapping.value.crypt" = "Criptografia"; +"configuration.cells.eku.caption" = "Verificação extendida"; +"network_settings.gateway.title" = "Gateway padrão"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Domínio"; +"network_settings.proxy.title" = "Proxy"; +"configuration.cells.proxy_https.caption" = "Proxy (HTTPS)"; +"configuration.cells.compression_framing.caption" = "Framing"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Algorítimo"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Não suportado"; +"configuration.cells.keep_alive.caption" = "Manter ativo"; +"configuration.cells.keep_alive.value.seconds" = "%d segundos"; +"configuration.cells.renegotiation_seconds.caption" = "Renegociando"; +"configuration.cells.renegotiation_seconds.value.after" = "depois de %@"; +"configuration.cells.random_endpoint.caption" = "Destino randômico"; +"network_choice.client" = "Ler .ovpn"; +"network_choice.server" = "Puxar do servidor"; +"global.captions.address" = "Endereço"; +"global.captions.port" = "Porta"; +"debug_log.buttons.previous" = "Anterior"; +"debug_log.buttons.next" = "Próximo"; +"debug_log.alerts.empty_log.message" = "O log está vazio."; +"vpn.connecting" = "Conectando"; +"vpn.active" = "Ativa"; +"vpn.disconnecting" = "Desconectando"; +"vpn.inactive" = "Inativo"; +"vpn.disabled" = "Desativado"; +"vpn.errors.timeout" = "Timeout"; +"vpn.errors.dns" = "Falha no DNS"; +"vpn.errors.auth" = "Falha na autenticação"; +"vpn.errors.tls" = "Falha no TLS"; +"vpn.errors.encryption" = "Falha na criptografia"; +"vpn.errors.compression" = "Compressão não suportada"; +"vpn.errors.network" = "Rede alterada"; +"vpn.errors.routing" = "Rota necessária"; +"vpn.errors.gateway" = "Sem gateway"; +"vpn.errors.shutdown" = "Servidor desligado"; +"issue_reporter.title" = "Reportar problema"; +"issue_reporter.message" = "O log de suas últimas conexões é crucial para resolver problemas de conectividade e é completamemnte anônimo.\n\nO arquivo de conexão .ovpn, se existente, é anexado sem nenhum dado sensitivo.\n\nPor favor, verique o anexos de email se necessário."; +"issue_reporter.buttons.accept" = "Eu concordo"; +"translations.title" = "Traduções"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Celular"; +"shortcuts.add.cells.connect.caption" = "Conectar à"; +"shortcuts.add.cells.enable_vpn.caption" = "Ativar VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Desativar VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Confiar na Wi-Fi atual"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Não confiar na Wi-Fi atual"; +"shortcuts.add.cells.trust_cellular.caption" = "Confiar em rede celular"; +"shortcuts.add.cells.untrust_cellular.caption" = "Não confiar em rede celular"; +"shortcuts.add.alerts.no_profiles.message" = "Ainda não existe nenhum perfil para se conectar."; +"shortcuts.edit.sections.all.header" = "Atalhos existentes"; +"about.title" = "Sobre"; +"about.sections.web.header" = "Web"; +"about.sections.share.header" = "Compartilhar"; +"about.cells.credits.caption" = "Créditos"; +"about.cells.website.caption" = "Home page"; +"about.cells.faq.caption" = "FAQ"; +"about.cells.disclaimer.caption" = "Disclaimer"; +"about.cells.privacy_policy.caption" = "Política de privacidade"; +"about.cells.share_twitter.caption" = "Tweet sobre isso!"; +"about.cells.share_generic.caption" = "Convide um amigo"; +"donation.title" = "Doar"; +"donation.sections.one_time.header" = "Uma vez"; +"donation.sections.one_time.footer" = "Se você deseja mostrar gratidão pelo meu trabalho, aqui estão alguns valores do qual você pode contribuir.\n\nVocé só será cobrado uma única vez, ou doar mais vezes caso desejar."; +"donation.cells.loading.caption" = "Carregando doações"; +"donation.cells.purchasing.caption" = "Efetuando doação"; +"donation.alerts.purchase.success.title" = "Obrigado"; +"donation.alerts.purchase.success.message" = "Isso significa muito para mim! Espero que você continue usando e promovendo esse aplicativo."; +"donation.alerts.purchase.failure.message" = "Não foi possível realizar doação. %@"; +"share.message" = "Passepartout é um cliente OpenVPN fácil e open-source para iOS e macOS"; +"version.title" = "Versão"; +"version.labels.intro" = "Passepartout e TunnelKit são desenvolvidos e mantidos por Davide De Rosa (keeshux).\n\nO código de fonte está disponível no GitHub sobre a licença GPLv3, você pode encontrar links na home page.\n\nPassepartout não é um cliente oficial e não possui nenhuma ligação com a OpenVPN Inc."; +"credits.title" = "Créditos"; +"credits.sections.licenses.header" = "Licenças"; +"credits.sections.notices.header" = "Notices"; +"credits.sections.translations.header" = "Traduções"; +"label.license.error" = "Não foi possível realizar o download da licença."; +"organizer.cells.profile.value.current" = "Ativo"; +"service.welcome.message" = "Bem-vindo ao Passepartout!\n\nUse o organizador para adicionar um novo perfil."; +"service.cells.server_configuration.caption" = "Configuração do servidor"; +"service.cells.server_network.caption" = "Rede do servidor"; +"service.alerts.configuration.disconnected" = "Configuração indisponível, verifique se você está conectado em uma VPN."; +"server_network.cells.route.caption" = "Rota"; +"wizards.provider.cells.update_list.caption" = "Atualizar lista"; +"wizards.provider.alerts.unavailable.message" = "Não foi possível baixar a infraestrutura do provedor, tente novamente mais tarde."; +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "Venha me ver fazer o Passepartout ao vivo no Twitch, entre no chat para interagir e contribuir!"; +"organizer.cells.follow_twitch.caption" = "Assistir Passepartout no Twitch"; +"service.cells.use_profile.caption" = "Usar esse perfil"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; diff --git a/Passepartout/Core/Resources/pt.lproj/Intents.strings b/Passepartout/Core/Resources/pt.lproj/Intents.strings new file mode 100644 index 00000000..c8375784 --- /dev/null +++ b/Passepartout/Core/Resources/pt.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Remover celular de conexões seguras"; + +"IeGsEq" = "Desativar VPN"; +"1ZRTCZ" = "Desativar VPN"; + +"66bZBE" = "Com o provedor ${providerId}"; + +"7eoAss" = "Remover Wi-Fi atual de conexões seguras"; + +"9GpJt5" = "Adicionar celular em conexões seguras"; + +"BKxs8X" = "Adicionar Wi-Fi atual em conexões seguras"; + +"NWWgCl" = "Confiar em rede celular"; +"H4taev" = "Confiar em rede celular"; + +"KjkCfU" = "Conectar em uma localização específica de um provedor"; + +"LA99yM" = "Conectar VPN"; + +"U6o81V" = "Conectar ${profileTitle}"; + +"WnTPFg" = "Conectar ${poolName}"; + +"eQ1yzr" = "Desabilitar serviço de VPN"; + +"eXXb2z" = "Conectar em um host"; + +"yesvFP" = "Ativar VPN"; +"lQ6ziK" = "Ativar VPN"; + +"POyDPM" = "Confiar na Wi-Fi atual"; +"m2E7SI" = "Confiar na Wi-Fi atual"; + +"qo3Szz" = "Conectar em uma região do provedor"; + +"0Wu9nb" = "Não confiar na Wi-Fi atual"; +"rd1T8p" = "Não confiar na Wi-Fi atual"; + +"ggzKA2" = "Não confiar na conexão celular"; +"wB1iYX" = "Não confiar na conexão celular"; + +"xY97Vu" = "Ativar o serviço VPN no perfil em uso"; + +"NCoK9B" = "Com o perfil em uso"; diff --git a/Passepartout/Core/Resources/ru.lproj/Core.strings b/Passepartout/Core/Resources/ru.lproj/Core.strings new file mode 100644 index 00000000..091c378e --- /dev/null +++ b/Passepartout/Core/Resources/ru.lproj/Core.strings @@ -0,0 +1,240 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 4/23/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "Ок"; +"global.cancel" = "Отменить"; +"global.next" = "Далее"; +"global.close" = "Закрыть"; +"global.host.title_input.message" = "Разрешены буквы латиницы, дэш \"-\", нижнее подчеркивание \"_\" и точка \".\"."; +"global.host.title_input.placeholder" = "Мой профиль"; +"global.email_not_configured" = "E-mail аккаунт не создан."; +"global.values.enabled" = "Включен"; +"global.values.disabled" = "Выключен"; +"global.values.none" = "Нет"; +"global.values.automatic" = "Автоматически"; +"global.values.manual" = "Вручную"; +"reddit.title" = "Reddit"; +"reddit.message" = "А Вы знали, что Passepartout имеет свой сабреддит? Подписывайтесь для получения обновлений, обсуждения проблем, функций, новых платформ или чего угодно.\n\nЭто также отличный способ показать поддержку проекта."; +"reddit.buttons.subscribe" = "Подписаться сейчас!"; +"reddit.buttons.remind" = "Напомнить позже"; +"reddit.buttons.never" = "Больше не спрашивать"; +"organizer.sections.providers.header" = "Провайдеры"; +"organizer.sections.providers.footer" = "Здесь Вы найдёте несколько провайдеров с уже созданными профилями."; +"organizer.sections.hosts.header" = "Хосты|Hosts"; +"organizer.sections.hosts.footer" = "Импорт хостов из .ovpn файлов"; +"organizer.sections.siri.header" = "Сири"; +"organizer.sections.siri.footer" = "Получить помощь Сири, чтобы ускорить частые действия с приложением."; +"organizer.sections.support.header" = "Поддержка"; +"organizer.sections.feedback.header" = "Отзыв"; +"organizer.cells.siri_shortcuts.caption" = "Управлять коммандами"; +"organizer.cells.join_community.caption" = "Вступить в сообщество"; +"organizer.cells.write_review.caption" = "Написать отзыв"; +"organizer.cells.donate.caption" = "Сделать пожертвование"; +"organizer.cells.github_sponsors.caption" = "Поддержите меня на GitHub"; +"organizer.cells.translate.caption" = "Помощь с переводом"; +"organizer.cells.about.caption" = "Об %@"; +"organizer.cells.uninstall.caption" = "Удалить VPN конфигурацию"; +"organizer.alerts.exhausted_providers.message" = "Вы создали профили для всех доступных провайдеров."; +"organizer.alerts.add_host.message" = "Откройте ссылку на .ovpn файл конфигурации через Safari, Почту или другое приложение для добавление хост профиля.\n\nВы также можете импортировать .ovpn файл через общие файлы iTunes."; +"organizer.alerts.cannot_donate.message" = "На этом усторйстве не выбран способ платежа."; +"organizer.alerts.delete_vpn_profile.message" = "Вы действительно хотите убрать VPN конфигурацию из настроек устройства? Это может исправить несколько VPN ошибок, но не изменит установки приложения."; +"wizards.host.alerts.existing.message" = "Хост профиль с этим названием уже существует. Заменить?"; +"parsed_file.alerts.malformed.message" = "Файл конфигурации содержит неверную опцию (%@)."; +"parsed_file.alerts.missing.message" = "Файл конфигурации не содержит необходимую опцию (%@)."; +"parsed_file.alerts.unsupported.message" = "Файл конфигурации содержит неподдерживаемую опцию (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "Файл конфигурации верный, но возможно содержит неподдерживаемую опцию (%@).\n\nСоединение может прерваться - зависит от настроек сервера."; +"parsed_file.alerts.encryption_passphrase.message" = "Пожалуйста, введите кодовую фразу шифрования"; +"parsed_file.alerts.decryption.message" = "Конфигурация содержит зашифрованный приватный ключ, он не может быть расшифрован. Перепроверьте кодовую фразу."; +"parsed_file.alerts.parsing.message" = "Не получается разобрать предоставленный файл конфигурации (%@)."; +"parsed_file.alerts.buttons.report" = "Сообщить о проблеме"; +"service.sections.vpn.footer" = "Соединение будет установлено при необходимости."; +"service.sections.provider_infrastructure.footer" = "Последнее обновление %@."; +"service.sections.vpn_survives_sleep.footer" = "Отключите для уменьшения расхода заряда аккумулятора, может привести к временным замедлениям в связи с повторным подключением после \"пробуждения\"."; +"service.sections.vpn_resolves_hostname.footer" = "Предпочтительно в большинстве сетей и необходимо в некоторых IPv6 сетях. Отключите если  DNS заблокирован, или для увеличения скорости в случае медленных ответов DNS."; +"service.sections.trusted.header" = "Доверенные сети"; +"service.sections.trusted.footer" = "При подключении к доверенным сетям VPN обычно выключается, и остаётся отключенным. Отключите эту опцию чтобы оставлять VPN подключенным."; +"service.sections.diagnostics.header" = "Диагностика"; +"service.sections.diagnostics.footer" = "Маскировка включится после повторного подключения. Информация о сети - это названия хост профилей, IP адрес, маршрутизация и SSID. Данные для входа и приватные ключи не собираются."; +"service.cells.connection_status.caption" = "Статус"; +"account.title" = "Аккаунт"; +"endpoint.title" = "Конечная точка"; +"service.cells.provider.pool.caption" = "Местоположение"; +"service.cells.provider.preset.caption" = "Пресет"; +"network_settings.title" = "Сетевые настройки"; +"service.cells.vpn_survives_sleep.caption" = "Оставлять включенным во время сна"; +"service.cells.vpn_resolves_hostname.caption" = "Разрешить имя хоста сервера"; +"service.cells.trusted_mobile.caption" = "Мобильная сеть"; +"service.cells.trusted_policy.caption" = "Дов. сеть отключает VPN"; +"service.cells.test_connectivity.caption" = "Проверить подключение"; +"service.cells.data_count.caption" = "Переданная информация"; +"service.cells.data_count.none" = "Недоступно"; +"service.cells.debug_log.caption" = "Журнал отладки"; +"service.cells.masks_private_data.caption" = "Маскировать информацию сети"; +"service.cells.reconnect.caption" = "Переподключиться"; +"service.cells.report_issue.caption" = "Сообщить о проблеме подкл."; +"service.alerts.rename.title" = "Переименовать профиль"; +"service.alerts.credentials_needed.message" = "Сначала нужно ввести данные аккаунта."; +"service.alerts.reconnect_vpn.message" = "Хотите заново подключиться к VPN?"; +"service.alerts.trusted.no_network.message" = "Вы не подключены к Wi-Fi."; +"service.alerts.trusted.will_disconnect_trusted.message" = "При доверии этой сети VPN может быть отключен. Продолжить?"; +"service.alerts.trusted.will_disconnect_policy.message" = "При изменении установок доверия VPN может быть отключен. Продолжить?"; +"service.alerts.test_connectivity.title" = "Связь"; +"service.alerts.test_connectivity.messages.success" = "Ваше устройство подключено к интернету!"; +"service.alerts.test_connectivity.messages.failure" = "Ваше устройство не подключено к интернету, пожалйста проверьте установки Вашего профиля."; +"service.alerts.masks_private_data.messages.must_reconnect" = "Для безопасного сброса журнала отладки и изменения маскировки информации сети Вы должны заново подключиться к VPN."; +"service.alerts.buttons.reconnect" = "Переподключить"; +"service.alerts.download.title" = "Необходимо скачивание"; +"service.alerts.download.message" = "%@ необходимы дополнительные файлы конфигурации.\n\nПодтвердите для скачивания."; +"service.alerts.download.failed" = "Не удалось скачать файлы конфигурации.%@"; +"service.alerts.download.hud.extracting" = "Извлечение файлов, пожалуста подождите..."; +"account.sections.guidance.footer.infrastructure.hideme" = "Используйте Ваши данные для входа с веб-сайта %@."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Используйте Ваши данные для входа с веб-сайта %@. Ваш логин обычно числовой с (без пробелов)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Используйте данные для входа на %@ веб-сайт. Ваш логин обычно Ваш e-mail."; +"account.sections.guidance.footer.infrastructure.pia" = "Используйте Ваши данные для входа с веб-сайта %@. Ваш логин обычно числовой с приставкой \"p\"."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Найдите Ваши данные для входа %@ \"Account > OpenVPN / IKEv2 Username\" секции веб-сайта."; +"account.sections.guidance.footer.infrastructure.torguard" = "Используйте свои учетные данные %@ service, которые могут отличаться от учетных данных веб-сайта."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Используйте данные для входа на %@ веб-сайт. Ваш логин обычно Ваш e-mail."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Используйте данные для входа на %@ веб-сайт. Ваш логин обычно Ваш e-mail."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Найдите Ваши данные для входа %@ в OpenVPN Config Generator на веб-сайте."; +"account.sections.registration.footer" = "Создайте аккаунт на %@ веб-сайте."; +"account.cells.username.caption" = "Логин"; +"account.cells.username.placeholder" = "логин"; +"account.cells.password.caption" = "Пароль"; +"account.cells.password.placeholder" = "пароль"; +"account.cells.open_guide.caption" = "Проверьте Ваши данные"; +"account.cells.signup.caption" = "Зарегистрируйтесь с %@"; +"endpoint.cells.any_address.caption" = "Автоматически"; +"endpoint.cells.any_protocol.caption" = "Автоматически"; +"configuration.sections.communication.header" = "Связь"; +"configuration.sections.reset.footer" = "Если после изменения параметров связи у Вас разорвалось соединение, нажмите, чтобы вернуться к исходной конфигурации."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Компресия"; +"configuration.sections.network.header" = "Сеть"; +"configuration.sections.other.header" = "Другое"; +"configuration.cells.cipher.caption" = "Шифруем"; +"configuration.cells.digest.caption" = "Аутентификация"; +"configuration.cells.digest.value.embedded" = "Внедрена"; +"configuration.cells.reset_original.caption" = "Сброс конфигурации"; +"configuration.cells.client.caption" = "Сертификат клиента"; +"configuration.cells.client.value.enabled" = "Проверено"; +"configuration.cells.client.value.disabled" = "Не проверено"; +"configuration.cells.tls_wrapping.caption" = "Упаковываем"; +"configuration.cells.tls_wrapping.value.auth" = "Аутентификация"; +"configuration.cells.tls_wrapping.value.crypt" = "Шифрование"; +"configuration.cells.eku.caption" = "Расширенная проверка"; +"network_settings.gateway.title" = "Шлюз по умолчанию"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Домен"; +"network_settings.proxy.title" = "Прокси"; +"configuration.cells.proxy_https.caption" = "Прокси (HTTPS)"; +"configuration.cells.compression_framing.caption" = "Фрейминг"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Алгоритм"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Неподдерживаемое"; +"configuration.cells.keep_alive.caption" = "Поддерживаем"; +"configuration.cells.keep_alive.value.seconds" = "%d секунд"; +"configuration.cells.renegotiation_seconds.caption" = "Перезаключение"; +"configuration.cells.renegotiation_seconds.value.after" = "после %@"; +"configuration.cells.random_endpoint.caption" = "Рандомная конечная точка"; +"network_choice.client" = "Читать .ovpn"; +"network_choice.server" = "Вытащить с сервера"; +"global.captions.address" = "Адрес"; +"global.captions.port" = "порт"; +"debug_log.buttons.previous" = "Предыдущий"; +"debug_log.buttons.next" = "Следующий"; +"debug_log.alerts.empty_log.message" = "Журнал отладки пуст."; +"vpn.connecting" = "Подключается"; +"vpn.active" = "Активен"; +"vpn.disconnecting" = "Отключается"; +"vpn.inactive" = "Не активен"; +"vpn.disabled" = "Отключен"; +"vpn.errors.timeout" = "Тайм-аут"; +"vpn.errors.dns" = "Ошибка DNS"; +"vpn.errors.auth" = "Ошибка аутентификации"; +"vpn.errors.tls" = "Ошибка TSL"; +"vpn.errors.encryption" = "Ошибка расшифровки"; +"vpn.errors.compression" = "Сжатие не поддерживается"; +"vpn.errors.network" = "Изменение сети"; +"vpn.errors.routing" = "Отсутствует маршрутизация"; +"vpn.errors.gateway" = "Нет шлюза"; +"vpn.errors.shutdown" = "Сервер выключен"; +"issue_reporter.title" = "Сообщить о проблеме"; +"issue_reporter.message" = "Журнал отладки Вашего последнего соединения необходим для разрешения проблем подключения, и является полностью анонимным.\n\n .ovpn файл, если есть, прикреплён без каких-либо конфиденциальных данных .\n\nПожалуйста, перепроверьте прикреплённые файлы, если не уверены."; +"issue_reporter.buttons.accept" = "Я понимаю"; +"translations.title" = "Переводы"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Мобильная сеть"; +"shortcuts.add.cells.connect.caption" = "Подключиться к"; +"shortcuts.add.cells.enable_vpn.caption" = "Включи VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Выключи VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Доверять текущему Wi-Fi"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Не доверять текущему Wi-Fi"; +"shortcuts.add.cells.trust_cellular.caption" = "Доверять мобильной сети"; +"shortcuts.add.cells.untrust_cellular.caption" = "Не доверять мобильной сети"; +"shortcuts.add.alerts.no_profiles.message" = "Нет профиля для подключения."; +"shortcuts.edit.sections.all.header" = "Существующие команды"; +"about.title" = "О нас"; +"about.sections.web.header" = "Веб"; +"about.sections.share.header" = "Поделиться"; +"about.cells.credits.caption" = "Благодарности"; +"about.cells.website.caption" = "Домашняя страница"; +"about.cells.faq.caption" = "FAQ"; +"about.cells.disclaimer.caption" = "Предупреждение"; +"about.cells.privacy_policy.caption" = "Политика конфиденциальности"; +"about.cells.share_twitter.caption" = "Твитнуть о нас!"; +"about.cells.share_generic.caption" = "Пригласить друга"; +"donation.title" = "Пожертвовать"; +"donation.sections.one_time.header" = "Один раз"; +"donation.sections.one_time.footer" = "Если Вы хотите поблагодарить мою бесплатную работу, здесь есть несколько сумм, которые Вы можете пожертвовать прямо сейчас.\n\nСумма будет списана только один раз, а Вы можете пожертвовать несколько раз."; +"donation.cells.loading.caption" = "Загружаем пожертвования"; +"donation.cells.purchasing.caption" = "Исполняется"; +"donation.alerts.purchase.success.title" = "Спасибо"; +"donation.alerts.purchase.success.message" = "Это значит многое для меня, и, я надеюсь, Вы продолжить использовать и рассказывать об этом приложении."; +"donation.alerts.purchase.failure.message" = "Не получается совершить пожертвование. %@"; +"share.message" = "Passepartout - это простой в использовании OpenVPN клиент для iOS и macOS, с открытым исходным кодом"; +"version.title" = "Версия"; +"version.labels.intro" = "Passepartout и TunnelKit написаны и установлены Davide De Rosa (keeshux).\n\nИсходные коды для Passepartout и TunnelKit публично доступны на GitHub под GPLv3, вы можете найти ссылки на домашней странице.\n\nPassepartout является неофициальным клиентом, и никаким образом не связан с OpenVPN Inc."; +"credits.title" = "Благодарность"; +"credits.sections.licenses.header" = "Лицензии"; +"credits.sections.notices.header" = "Упоминания"; +"credits.sections.translations.header" = "Переводы"; +"label.license.error" = "Не получается загрузить полную лицензию."; +"organizer.cells.profile.value.current" = "Используется"; +"service.welcome.message" = "Добро пожаловать в Passepartout!\n\nИспользуйте организатор для добавления нового профиля."; +"service.cells.server_configuration.caption" = "Конфигурация сервера"; +"service.cells.server_network.caption" = "Сеть сервера"; +"service.alerts.configuration.disconnected" = "Конфигурация недоступна, проверьте подключение к VPN."; +"server_network.cells.route.caption" = "Маршрут"; +"wizards.provider.cells.update_list.caption" = "Обновить список"; +"wizards.provider.alerts.unavailable.message" = "Не удалось загрузить инфраструктуру провайдера, повторите попытку позже."; +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "Приходите посмотреть, как я делаю Passepartout в прямом эфире на Twitch, присоединяйтесь к чату, чтобы общаться и вносить свой вклад!"; +"organizer.cells.follow_twitch.caption" = "Смотрите Паспарту на Twitch"; +"service.cells.use_profile.caption" = "Использовать это профиль."; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "байты"; diff --git a/Passepartout/Core/Resources/ru.lproj/Intents.strings b/Passepartout/Core/Resources/ru.lproj/Intents.strings new file mode 100644 index 00000000..9b860a2c --- /dev/null +++ b/Passepartout/Core/Resources/ru.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Удаляет мобильную сеть из доверенных подключений"; + +"IeGsEq" = "Отключить VPN"; +"1ZRTCZ" = "Отключить VPN"; + +"66bZBE" = "С ${providerId} провайдером"; + +"7eoAss" = "Удаляет текущий Wi-Fi из доверенных подключений"; + +"9GpJt5" = "Добавляет мобильную сеть в доверенные подключения"; + +"BKxs8X" = "Добавляет текущий  Wi-Fi в доверенные подключения"; + +"NWWgCl" = "Доверять мобильной сети"; +"H4taev" = "Доверять мобильной сети"; + +"KjkCfU" = "Подключиться к конкретному местоположению провайдера"; + +"LA99yM" = "Подключиться к VPN"; + +"U6o81V" = "Подключиться к ${profileTitle}"; + +"WnTPFg" = "Подключиться к ${poolName}"; + +"eQ1yzr" = "Отключить этот VPN сервис"; + +"eXXb2z" = "Подключается к хост профилю"; + +"yesvFP" = "Включить VPN"; +"lQ6ziK" = "Включить VPN"; + +"POyDPM" = "Доверять текущему Wi-Fi"; +"m2E7SI" = "Доверять текущему Wi-Fi"; + +"qo3Szz" = "Подключиться к местоположению провайдера"; + +"0Wu9nb" = "Не доверять текущему Wi-Fi"; +"rd1T8p" = "Не доверять текущему Wi-Fi"; + +"ggzKA2" = "Не доверять мобильной сети"; +"wB1iYX" = "Не доверять мобильной сети"; + +"xY97Vu" = "Включает VPN с используемым профилем"; + +"NCoK9B" = "С используемым профилем"; diff --git a/Passepartout/Core/Resources/sv.lproj/Core.strings b/Passepartout/Core/Resources/sv.lproj/Core.strings new file mode 100644 index 00000000..fe64246c --- /dev/null +++ b/Passepartout/Core/Resources/sv.lproj/Core.strings @@ -0,0 +1,240 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 6/13/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "OK"; +"global.cancel" = "Avbryt"; +"global.next" = "Nästa"; +"global.close" = "Stäng"; +"global.host.title_input.message" = "Godtagbara tecken är alfanumeriska plus bindestreck \" - \", understrykning \" _ \"och punkt \". \"."; +"global.host.title_input.placeholder" = "Min profil"; +"global.email_not_configured" = "Inget e-postkonto är konfigurerat."; +"global.values.enabled" = "Aktiverad"; +"global.values.disabled" = "Inaktiverad"; +"global.values.none" = "Ingen"; +"global.values.automatic" = "Automatiskt"; +"global.values.manual" = "Manuellt"; +"reddit.title" = "Reddit"; +"reddit.message" = "Visste du att Passepartout har en subreddit? Prenumerera på uppdateringar eller diskutera problem, funktioner, nya plattformar eller vad du vill. \n\nDet är också ett bra sätt att visa dig bryr dig om detta projekt."; +"reddit.buttons.subscribe" = "Prenumerera nu!"; +"reddit.buttons.remind" = "Påminn mig senare"; +"reddit.buttons.never" = "Fråga inte igen"; +"organizer.sections.providers.header" = "Leverantörer"; +"organizer.sections.providers.footer" = "Här hittar du några leverantörer med förinställda konfigurationsprofiler."; +"organizer.sections.hosts.header" = "Värdar"; +"organizer.sections.hosts.footer" = "Importera värdar från .ovpn konfigurationsfiler."; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "Få hjälp från Siri för att påskynda dina vanligaste interaktioner med appen."; +"organizer.sections.support.header" = "Support"; +"organizer.sections.feedback.header" = "Feedback"; +"organizer.cells.siri_shortcuts.caption" = "Hantera genvägar"; +"organizer.cells.join_community.caption" = "Gå med i communityn"; +"organizer.cells.write_review.caption" = "Skriv en recension"; +"organizer.cells.donate.caption" = "Gör en donation"; +"organizer.cells.github_sponsors.caption" = "Stötta mig på GitHub"; +"organizer.cells.translate.caption" = "Erbjuda att översätta"; +"organizer.cells.about.caption" = "Om %@"; +"organizer.cells.uninstall.caption" = "Ta bort VPN-konfiguration"; +"organizer.alerts.exhausted_providers.message" = "Du har skapat profiler för alla tillgängliga leverantörer."; +"organizer.alerts.add_host.message" = "Öppna en URL till en .ovpn konfigurationsfil från Safari, Mail eller en annan app för att skapa en värdprofil. \n\nDu kan också importera en .ovpn med iTunes Fildelning." ; +"organizer.alerts.cannot_donate.message" = "Det finns ingen betalningsmetod konfigurerad på den här enheten."; +"organizer.alerts.delete_vpn_profile.message" = "Vill du verkligen radera VPN-konfigurationen från enhetens inställningar? Detta kan fixa några trasiga VPN tillstånd och påverkar inte dina leverantörs- och värdprofiler."; +"wizards.host.alerts.existing.message" = "En värdprofil med samma namn finns redan. Byt ut det?"; +"parsed_file.alerts.malformed.message" = "Konfigurationsfilen innehåller ett felaktigt val (%@)."; +"parsed_file.alerts.missing.message" = "Konfigurationsfilen saknar ett obligatoriskt val (%@)."; +"parsed_file.alerts.unsupported.message" = "Konfigurationsfilen innehåller ett stöd som inte stöds (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "Konfigurationsfilen är korrekt men innehåller ett eventuellt stöd som inte stöds (%@). \n\nConnectivity kan bryta beroende på serverinställningar."; +"parsed_file.alerts.encryption_passphrase.message" = "Var god ange krypteringslösenfrasen."; +"parsed_file.alerts.decryption.message" = "Konfigurationen innehåller en krypterad privat nyckel och den kan inte dekrypteras. Kontrollera din inmatade lösenfras."; +"parsed_file.alerts.parsing.message" = "Det gick inte att analysera den angivna konfigurationsfilen (%@)."; +"parsed_file.alerts.buttons.report" = "Rapportera ett problem"; +"service.sections.vpn.footer" = "Anslutningen kommer att upprättas vid behov."; +"service.sections.provider_infrastructure.footer" = "Senast uppdaterad på %@."; +"service.sections.vpn_survives_sleep.footer" = "Inaktivera för att förbättra batterianvändningen, på bekostnad av tillfälliga avmattningar på grund av återuppkoppling."; +"service.sections.vpn_resolves_hostname.footer" = "Föredragna i de flesta nätverk och krävs i vissa IPv6-nätverk. Inaktivera var DNS blockeras eller för att påskynda förhandlingar när DNS är långsamt att svara."; +"service.sections.trusted.header" = "Tillförlitliga nätverk"; +"service.sections.trusted.footer" = "När du advänder ett betrott nätverk, VPN:et stängs normalt och hålls bortkopplat. Avaktivera detta alternativet för att inte genomdriva sådant beteende."; +"service.sections.diagnostics.header" = "Diagnostics"; +"service.sections.diagnostics.footer" = "Masking status kommer att fungera efter återanslutning. Nätverksdata är värdnamn, IP-adresser, routing, SSID. Referenser och privata nycklar loggas inte oavsett."; +"service.cells.connection_status.caption" = "Status"; +"account.title" = "Konto"; +"endpoint.title" = "Slutpunkt"; +"service.cells.provider.pool.caption" = "Plats"; +"service.cells.provider.preset.caption" = "Förinställt"; +"network_settings.title" = "Nätverksinställningar"; +"service.cells.vpn_survives_sleep.caption" = "Håll dig levande i sömnen"; +"service.cells.vpn_resolves_hostname.caption" = "Lösa server värdnamn"; +"service.cells.trusted_mobile.caption" = "Mobilt nätverk"; +"service.cells.trusted_policy.caption" = "Förtroende inaktiverar VPN"; +"service.cells.test_connectivity.caption" = "Testanslutning"; +"service.cells.data_count.caption" = "Utbyttad data"; +"service.cells.data_count.none" = "Otillgänglig"; +"service.cells.debug_log.caption" = "Debug log"; +"service.cells.masks_private_data.caption" = "Mask nätverksdata"; +"service.cells.reconnect.caption" = "Återanslut"; +"service.cells.report_issue.caption" = "Rapportera anslutningsproblem"; +"service.alerts.rename.title" = "Byt namn på profil"; +"service.alerts.credentials_needed.message" = "Du måste ange kontouppgifterna först."; +"service.alerts.reconnect_vpn.message" = "Vill du återansluta till VPN?"; +"service.alerts.trusted.no_network.message" = "Du är inte ansluten till något Wi-Fi-nätverk."; +"service.alerts.trusted.will_disconnect_trusted.message" = "Genom att lita på detta nätverk kan VPN kopplas bort. Fortsätt?"; +"service.alerts.trusted.will_disconnect_policy.message" = "Genom att byta tillitspolicy kan VPN kopplas bort. Fortsätt?"; +"service.alerts.test_connectivity.title" = "Anslutningar"; +"service.alerts.test_connectivity.messages.success" = "Din enhet är ansluten till Internet!"; +"service.alerts.test_connectivity.messages.failure" = "Din enhet har ingen Internetanslutning, var god granska dina profilparametrar."; +"service.alerts.masks_private_data.messages.must_reconnect" = "För att säkert återställa den aktuella felsökningsloggen och tillämpa den nya maskeringspreferensen måste du återansluta till VPN nu."; +"service.alerts.buttons.reconnect" = "Reconnect"; +"service.alerts.download.title" = "Ladda ner krävs"; +"service.alerts.download.message" = "%@ kräver nedladdning av ytterligare konfigurationsfiler. \n\nKontrollera för att starta nedladdningen."; +"service.alerts.download.failed" = "Misslyckades med att ladda ner konfigurationsfiler. %@"; +"service.alerts.download.hud.extracting" = "Extraherar filer, var så tålmodig ..."; +"account.sections.guidance.footer.infrastructure.hideme" = "Använd dina %@ webbplatsuppgifter."; +"account.sections.guidance.footer.infrastructure.mullvad" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis numeriskt (utan utrymmen)."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis ditt e-postmeddelande."; +"account.sections.guidance.footer.infrastructure.pia" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis numeriskt med ett prefix för \" p \"."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Hitta dina %@ credentials i avsnittet \" Konto> OpenVPN / IKEv2 Användarnamn \"på webbplatsen."; +"account.sections.guidance.footer.infrastructure.torguard" = "Använd dina %@ service-referenser, som kan skilja sig från webbplatsens referenser."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis ditt e-postmeddelande."; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis ditt e-postmeddelande."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Hitta din %@ credentials i OpenVPN Config Generator på webbplatsen."; +"account.sections.registration.footer" = "Hämta ett konto på %@ webbplatsen."; +"account.cells.username.caption" = "Användarnamn"; +"account.cells.username.placeholder" = "användarnamn"; +"account.cells.password.caption" = "Lösenord"; +"account.cells.password.placeholder" = "hemlighet"; +"account.cells.open_guide.caption" = "Visa dina uppgifter"; +"account.cells.signup.caption" = "Registrera med %@"; +"endpoint.cells.any_address.caption" = "Automatiskt"; +"endpoint.cells.any_protocol.caption" = "Automatiskt"; +"configuration.sections.communication.header" = "Communication"; +"configuration.sections.reset.footer" = "Om du slutade med bruten anslutning efter att ha ändrat kommunikationsparametrarna trycker du på för att återgå till den ursprungliga konfigurationen."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Kompression"; +"configuration.sections.network.header" = "Nätverk"; +"configuration.sections.other.header" = "Other"; +"configuration.cells.cipher.caption" = "Cipher"; +"configuration.cells.digest.caption" = "Autentisering"; +"configuration.cells.digest.value.embedded" = "Inbäddad"; +"configuration.cells.reset_original.caption" = "Återställ konfiguration"; +"configuration.cells.client.caption" = "Klientcertifikat"; +"configuration.cells.client.value.enabled" = "Verified"; +"configuration.cells.client.value.disabled" = "Ej verifierad"; +"configuration.cells.tls_wrapping.caption" = "Omslagning"; +"configuration.cells.tls_wrapping.value.auth" = "Autentisering"; +"configuration.cells.tls_wrapping.value.crypt" = "Kryptering"; +"configuration.cells.eku.caption" = "Förlängd verifering"; +"network_settings.gateway.title" = "Normal gateway"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "Domain"; +"network_settings.proxy.title" = "Proxy"; +"configuration.cells.proxy_https.caption" = "Proxy (HTTPS)"; +"configuration.cells.compression_framing.caption" = "Inramning"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Algoritm"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Utan stöd"; +"configuration.cells.keep_alive.caption" = "hål-vid-liv"; +"configuration.cells.keep_alive.value.seconds" = "%d seconds"; +"configuration.cells.renegotiation_seconds.caption" = "Omförhandling"; +"configuration.cells.renegotiation_seconds.value.after" = "efter %@"; +"configuration.cells.random_endpoint.caption" = "Omställ slutpunkt på slumpmässigt sätt"; +"network_choice.client" = "Läs .ovpn"; +"network_choice.server" = "Dra från server"; +"global.captions.address" = "Adress"; +"global.captions.port" = "Port"; +"debug_log.buttons.previous" = "Previous"; +"debug_log.buttons.next" = "Next"; +"debug_log.alerts.empty_log.message" = "Felsökningsloggen är tom."; +"vpn.connecting" = "Anslutning"; +"vpn.active" = "Aktiv"; +"vpn.disconnecting" = "Koppla från"; +"vpn.inactive" = "Inaktiv"; +"vpn.disabled" = "Inaktiverad"; +"vpn.errors.timeout" = "Timeout"; +"vpn.errors.dns" = "DNS misslyckades"; +"vpn.errors.auth" = "Auth failed"; +"vpn.errors.tls" = "TLS misslyckades"; +"vpn.errors.encryption" = "Kryptering misslyckades"; +"vpn.errors.compression" = "Komprimering utan stöd"; +"vpn.errors.network" = "Nätverk ändrat"; +"vpn.errors.routing" = "Saknad routing"; +"vpn.errors.gateway" = "Ingen gateway"; +"vpn.errors.shutdown" = "Servern stängs av"; +"issue_reporter.title" = "Rapportera problem"; +"issue_reporter.message" = "Felsökningsloggen för dina senaste anslutningar är avgörande för att lösa dina anslutningsproblem och är helt anonym. \n\nHanteringsfilen .ovpn är eventuellt bifogad av någon känslig data. \n\nPresentera dubbelkolla e-postbilagorna om du är osäker. "; +"issue_reporter.buttons.accept" = "Jag förstår"; +"translations.title" = "Översättningar"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Cellular"; +"shortcuts.add.cells.connect.caption" = "Anslut till"; +"shortcuts.add.cells.enable_vpn.caption" = "Aktivera VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Inaktivera VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Lita på nuvarande Wi-Fi"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Avaktivera nuvarande Wi-Fi"; +"shortcuts.add.cells.trust_cellular.caption" = "Lita på mobilnätverk"; +"shortcuts.add.cells.untrust_cellular.caption" = "Untrust cellular network"; +"shortcuts.add.alerts.no_profiles.message" = "Det finns ingen profil att ansluta till."; +"shortcuts.edit.sections.all.header" = "Befintliga genvägar"; +"about.title" = "About"; +"about.sections.web.header" = "Web"; +"about.sections.share.header" = "Dela"; +"about.cells.credits.caption" = "Credits"; +"about.cells.website.caption" = "Hemsida"; +"about.cells.faq.caption" = "FAQ"; +"about.cells.disclaimer.caption" = "Disclaimer"; +"about.cells.privacy_policy.caption" = "Sekretesspolicy"; +"about.cells.share_twitter.caption" = "Tweet om det!"; +"about.cells.share_generic.caption" = "Bjud in en vän"; +"donation.title" = "Donera"; +"donation.sections.one_time.header" = "En gång"; +"donation.sections.one_time.footer" = "Om du vill visa tacksamhet för mitt fria arbete, här är några belopp du kan donera direkt. \n\nDu betalas endast en gång per donation, och du kan donera flera gånger. "; +"donation.cells.loading.caption" = "Laddar donationer"; +"donation.cells.purchasing.caption" = "Performing donation"; +"donation.alerts.purchase.success.title" = "Tack"; +"donation.alerts.purchase.success.message" = "Detta betyder mycket för mig och jag hoppas verkligen att du fortsätter att använda och marknadsföra denna app."; +"donation.alerts.purchase.failure.message" = "Kan inte göra donationen. %@"; +"share.message" = "Passepartout är en användarvänlig öppen källkod OpenVPN-klient för iOS och macOS"; +"version.title" = "Version"; +"version.labels.intro" = "Passepartout och TunnelKit skrivs och underhålls av Davide De Rosa (keeshux). \n\nKällkod för Passepartout och TunnelKit är offentligt tillgänglig på GitHub under GPLv3, du kan hitta länkar på hemsidan. \n\nPassepartout är en icke-officiell klient och är inte på något sätt ansluten till OpenVPN Inc. "; +"credits.title" = "Credits"; +"credits.sections.licenses.header" = "Licenses"; +"credits.sections.notices.header" = "Meddelanden"; +"credits.sections.translations.header" = "Translations"; +"label.license.error" = "Kan inte ladda ner fullständigt licensinnehåll."; +"organizer.cells.profile.value.current" = "Under användning"; +"service.welcome.message" = "Välkommen till Passepartout! \n\nAnvänd arrangören för att lägga till en ny profil."; +"service.cells.server_configuration.caption" = "Server konfiguration"; +"service.cells.server_network.caption" = "Server nätverk"; +"service.alerts.configuration.disconnected" = "Konfiguration otillgänglig. Se till att du är kopplad till VPN:et."; +"server_network.cells.route.caption" = "Rutt"; +"wizards.provider.cells.update_list.caption" = "Uppdatera listan"; +"wizards.provider.alerts.unavailable.message" = "Det gick inte att ladda ner leverantörens infrastruktur, försök igen senare."; +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "Kom och se mig göra Passepartout live på Twitch, gå med i chatten för att interagera och bidra!"; +"organizer.cells.follow_twitch.caption" = "Se Passepartout on Twitch"; +"service.cells.use_profile.caption" = "Använd den här profilen"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; diff --git a/Passepartout/Core/Resources/sv.lproj/Intents.strings b/Passepartout/Core/Resources/sv.lproj/Intents.strings new file mode 100644 index 00000000..36da334b --- /dev/null +++ b/Passepartout/Core/Resources/sv.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "Tar bort cellular från betrodda nätverk"; + +"IeGsEq" = "Avstäng VPN"; +"1ZRTCZ" = "Avstäng VPN"; + +"66bZBE" = "Med ${providerId} leverantör"; + +"7eoAss" = "Tar bort nuvarande Wi-Fi från betrodda nätverk"; + +"9GpJt5" = "Tillsätter cellular till lita betrodda nätverk"; + +"BKxs8X" = "Tillsätter nuvarande Wi-Fi till betrodda nätverk"; + +"NWWgCl" = "Lita på cellular nätverk"; +"H4taev" = "Lita på cellular nätverk"; + +"KjkCfU" = "Koppla till en specifik plats från en leverantör profil"; + +"LA99yM" = "Koppla till VPN"; + +"U6o81V" = "Koppla till ${profileTitle}"; + +"WnTPFg" = "Koppla till ${poolName}"; + +"eQ1yzr" = "Avstäng VPN service"; + +"eXXb2z" = "Koppla till en host profil"; + +"yesvFP" = "Avstäng VPN"; +"lQ6ziK" = "Avstäng VPN"; + +"POyDPM" = "lita på närvarande Wi-Fi"; +"m2E7SI" = "lita på närvarande Wi-Fi"; + +"qo3Szz" = "Koppla till provider plats"; + +"0Wu9nb" = "Untrust närvarande Wi-Fi"; +"rd1T8p" = "Untrust närvarande Wi-Fi"; + +"ggzKA2" = "Untrust cellular nätverk"; +"wB1iYX" = "Untrust cellular nätverk"; + +"xY97Vu" = "På-sätter VPN service med närvarande profil"; + +"NCoK9B" = "Med profil i andvänding"; diff --git a/Passepartout/Core/Resources/zh-Hans.lproj/Core.strings b/Passepartout/Core/Resources/zh-Hans.lproj/Core.strings new file mode 100644 index 00000000..9ccaf7af --- /dev/null +++ b/Passepartout/Core/Resources/zh-Hans.lproj/Core.strings @@ -0,0 +1,240 @@ +// +// Core.strings +// Passepartout +// +// Created by Davide De Rosa on 6/13/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "好的"; +"global.cancel" = "取消"; +"global.next" = "下一步"; +"global.close" = "关闭"; +"global.host.title_input.message" = "可输入的字符为字母、数字以及破折号\"-\",下划线\"_\"和点\".\"。"; +"global.host.title_input.placeholder" = "我的配置"; +"global.email_not_configured" = "未配置e-mail账户。"; +"global.captions.address" = "地址"; +"global.captions.port" = "端口"; +"global.values.enabled" = "已启用"; +"global.values.disabled" = "未启用"; +"global.values.none" = "无"; +"global.values.automatic" = "自动设置"; +"global.values.manual" = "手动设置"; +"reddit.title" = "Reddit"; +"reddit.message" = "你知道Passepartout有一个subreddit吗?可以在上面讨论更新、问题、功能、新的平台等n任何你想要的。\n\n这同样是表达你对此项目关注的地方。"; +"reddit.buttons.subscribe" = "立即订阅!"; +"reddit.buttons.remind" = "稍后提醒我"; +"reddit.buttons.never" = "不要再问"; +"vpn.connecting" = "连接中"; +"vpn.active" = "活动的"; +"vpn.disconnecting" = "断开中"; +"vpn.inactive" = "不活动"; +"vpn.disabled" = "未启用"; +"vpn.errors.timeout" = "超时"; +"vpn.errors.dns" = "DNS解析失败"; +"vpn.errors.auth" = "身份验证失败"; +"vpn.errors.tls" = "TLS连接失败"; +"vpn.errors.encryption" = "加密失败"; +"vpn.errors.compression" = "压缩方式不支持"; +"vpn.errors.network" = "网络更改"; +"vpn.errors.routing" = "缺少路由"; +"vpn.errors.gateway" = "无网关"; +"vpn.errors.shutdown" = "服务器关闭"; +"parsed_file.alerts.malformed.message" = "此配置文件包含格式错误的选项(%@)。"; +"parsed_file.alerts.missing.message" = "此配置文件缺少必须的选项(%@)。"; +"parsed_file.alerts.unsupported.message" = "此配置文件包含不支持的选项(%@)。"; +"parsed_file.alerts.potentially_unsupported.message" = "配置文件正确但包含不支持的选项(%@)。\n\n根据服务端的设置连接可能会断开。"; +"parsed_file.alerts.encryption_passphrase.message" = "请输入加密密码"; +"parsed_file.alerts.decryption.message" = "该配置包含加密私钥且不能被解密。请再次检查输入的密钥。"; +"parsed_file.alerts.parsing.message" = "无法解析提供的配置文件(%@)。"; +"parsed_file.alerts.buttons.report" = "报告问题"; +"network_choice.client" = "读取.ovpn文件"; +"network_choice.server" = "从服务端拉取"; +"issue_reporter.title" = "提交问题"; +"issue_reporter.message" = "最后一次连接的debug日志对于解决连接问题是很重要的,并且它是匿名的。\n\n如果有.ovpn文件,那么已经去除了敏感信息后才会y添加。\n\n如果不确定的话,请检查e-mail附件。"; +"issue_reporter.buttons.accept" = "我已知悉"; +"translations.title" = "翻译"; +"share.message" = "Passepartout是iOS和macOS平台下的用户友的、开源的OpenVPN客户端"; +"organizer.sections.providers.header" = "提供商"; +"organizer.sections.providers.footer" = "在这里你可以找到预设的新的提供商配置。"; +"organizer.sections.hosts.header" = "主机"; +"organizer.sections.hosts.footer" = "从原始的.ovpn配置文件导入。"; +"organizer.sections.siri.header" = "Siri"; +"organizer.sections.siri.footer" = "通过Siri来帮助你加快常用的操作。"; +"organizer.sections.support.header" = "支持"; +"organizer.sections.feedback.header" = "反馈"; +"organizer.cells.profile.value.current" = "使用中"; +"organizer.cells.siri_shortcuts.caption" = "管理捷径"; +"organizer.cells.join_community.caption" = "加入社区"; +"organizer.cells.write_review.caption" = "写下想法"; +"organizer.cells.donate.caption" = "提供捐助"; +"organizer.cells.github_sponsors.caption" = "在GitHub上支持我"; +"organizer.cells.translate.caption" = "提供翻译"; +"organizer.cells.about.caption" = "关于 %@"; +"organizer.cells.uninstall.caption" = "移除VPN配置"; +"organizer.alerts.exhausted_providers.message" = "你已针对每个可用的提供商创建了配置。"; +"organizer.alerts.add_host.message" = "从Safari、邮件或其他App中打开.ovpn文件的URL来设置主机配置。\n\n你同样可以通过iTunes文件分享来导入.ovpnf文件。"; +"organizer.alerts.cannot_donate.message" = "此设备未设置付款方式。"; +"organizer.alerts.delete_vpn_profile.message" = "你确定要从此设备移除VPN配置吗?这可能会固定一些断开的VPN状态,不会影响已经存在的配置。"; +"wizards.host.alerts.existing.message" = "已经存在同名的配置。要替换它吗?"; +"service.welcome.message" = "欢迎使用Passepartout!\n\n使用分类页面来添加一个新的配置。"; +"service.sections.vpn.footer" = "必要时连接将会建立。"; +"service.sections.provider_infrastructure.footer" = "最后在%@时更新"; +"service.sections.vpn_survives_sleep.footer" = "禁用以减少电池消耗,由于存在可能的唤醒时重连消耗。"; +"service.sections.vpn_resolves_hostname.footer" = "推荐在大部分的网络中打开,并要求在IPv6环境下。当DNS被阻断或相应缓慢时禁用。"; +"service.sections.trusted.header" = "可信网络"; +"service.sections.trusted.footer" = "当进入可信网络后,VPN将会断开并保持断开状态。禁用此选项可关闭此功能。"; +"service.sections.diagnostics.header" = "分析数据"; +"service.sections.diagnostics.footer" = "在重连后状态隐藏才有效。网络数据包括主机名、IP地址、路由、SSID、认证方式,但私钥不会出现在日志中。"; +"service.cells.connection_status.caption" = "状态"; +"service.cells.provider.pool.caption" = "位置"; +"service.cells.provider.preset.caption" = "预设"; +"service.cells.vpn_survives_sleep.caption" = "休眠时保持连接"; +"service.cells.vpn_resolves_hostname.caption" = "解析服务器主机名"; +"service.cells.trusted_mobile.caption" = "蜂窝网络"; +"service.cells.trusted_policy.caption" = "信任网络中禁用VPN"; +"service.cells.test_connectivity.caption" = "测试连接性"; +"service.cells.data_count.caption" = "已交换数据量"; +"service.cells.data_count.none" = "不可用"; +"service.cells.debug_log.caption" = "调试日志"; +"service.cells.masks_private_data.caption" = "隐藏网络数据"; +"service.cells.reconnect.caption" = "重连"; +"service.cells.report_issue.caption" = "报告连接问题"; +"service.alerts.rename.title" = "重命名配置"; +"service.alerts.credentials_needed.message" = "你需要先输入账户的认证信息。"; +"service.alerts.reconnect_vpn.message" = "要重连VPN吗?"; +"service.alerts.trusted.no_network.message" = "你没有连接到Wi-Fi网络。"; +"service.alerts.trusted.will_disconnect_trusted.message" = "信任此网络后,VPN会断开。要继续吗?"; +"service.alerts.trusted.will_disconnect_policy.message" = "改变信任策略后,VPN可能会断开,要继续吗?"; +"service.alerts.test_connectivity.title" = "连接性"; +"service.alerts.test_connectivity.messages.success" = "你的设备连接到了网络!"; +"service.alerts.test_connectivity.messages.failure" = "你的设备没有连接到网络,请检查你的配置参数。"; +"service.alerts.masks_private_data.messages.must_reconnect" = "为了安全地重置当前调试日志并应用新的掩码设置,你现在必须重连VPN。"; +"service.alerts.buttons.reconnect" = "重连"; +"service.alerts.download.title" = "下载必须的内容"; +"service.alerts.download.message" = "%@要求下载额外的配置文件。\n\n确认以开始下载。"; +"service.alerts.download.failed" = "下载配置文件失败。 %@"; +"service.alerts.download.hud.extracting" = "提取文件中,请等待..."; +"account.title" = "账户"; +"account.sections.guidance.footer.infrastructure.hideme" = "使用你的%@网站认证信息。"; +"account.sections.guidance.footer.infrastructure.mullvad" = "使用你的%@网站认证信息。你的用户名一般是数字 (没有空格)。"; +"account.sections.guidance.footer.infrastructure.nordvpn" = "使用你的%@网站认证信息。你的用户名一般是你的e-mail。"; +"account.sections.guidance.footer.infrastructure.pia" = "使用你的%@网站认证信息。你的用户名一般是数字且带有前缀\"p\"。"; +"account.sections.guidance.footer.infrastructure.protonvpn" = "在网站的\"Account > OpenVPN / IKEv2 Username\"部分找到你的%@的认证信息。"; +"account.sections.guidance.footer.infrastructure.torguard" = "使用您的%@服务凭据,该凭据可能与网站凭据不同。"; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "使用你的%@网站认证信息。你的用户名一般是你的e-mail。"; +"account.sections.guidance.footer.infrastructure.vyprvpn" = "使用你的%@网站认证信息。你的用户名一般是你的e-mail。"; +"account.sections.guidance.footer.infrastructure.windscribe" = "在网站上的OpenVPN配置生成器中找到你的%@认证信息。 "; +"account.sections.registration.footer" = "在%@网站上获取一个账户"; +"account.cells.username.caption" = "用户名"; +"account.cells.username.placeholder" = "username"; +"account.cells.password.caption" = "密码"; +"account.cells.password.placeholder" = "secret"; +"account.cells.open_guide.caption" = "查看你的认证信息"; +"account.cells.signup.caption" = "以%@注册"; +"endpoint.title" = "服务端"; +"endpoint.cells.any_address.caption" = "自动"; +"endpoint.cells.any_protocol.caption" = "自动"; +"network_settings.title" = "网络设置"; +"configuration.sections.communication.header" = "通信"; +"configuration.sections.reset.footer" = "如果你在更改连接参数后变成断开状态,点按已恢复到原始的配置。"; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "压缩"; +"configuration.sections.network.header" = "网络"; +"configuration.sections.other.header" = "其他"; +"configuration.cells.cipher.caption" = "加密"; +"configuration.cells.digest.caption" = "身份验证"; +"configuration.cells.digest.value.embedded" = "已包含"; +"configuration.cells.proxy_https.caption" = "代理(HTTPS)"; +"configuration.cells.compression_framing.caption" = "分帧"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "算法"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "未支持"; +"configuration.cells.reset_original.caption" = "重置配置"; +"configuration.cells.client.caption" = "客户端证书"; +"configuration.cells.client.value.enabled" = "已验证"; +"configuration.cells.client.value.disabled" = "未验证"; +"configuration.cells.tls_wrapping.caption" = "组包"; +"configuration.cells.tls_wrapping.value.auth" = "身份验证"; +"configuration.cells.tls_wrapping.value.crypt" = "加密"; +"configuration.cells.eku.caption" = "扩展身份验证"; +"configuration.cells.keep_alive.caption" = "保持活跃状态"; +"configuration.cells.keep_alive.value.seconds" = "%d秒"; +"configuration.cells.renegotiation_seconds.caption" = "重协商"; +"configuration.cells.renegotiation_seconds.value.after" = "在%@之后"; +"configuration.cells.random_endpoint.caption" = "随机的服务端"; +"network_settings.gateway.title" = "默认网关"; +"network_settings.dns.title" = "DNS"; +"network_settings.dns.cells.domain.caption" = "域名"; +"network_settings.proxy.title" = "代理"; +"debug_log.buttons.previous" = "上一步"; +"debug_log.buttons.next" = "下一步"; +"debug_log.alerts.empty_log.message" = "日志为空"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "蜂窝网络"; +"shortcuts.add.cells.connect.caption" = "连接到"; +"shortcuts.add.cells.enable_vpn.caption" = "开启VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "关闭VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "信任当前Wi-Fi"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "不信任当前Wi-Fi"; +"shortcuts.add.cells.trust_cellular.caption" = "信任蜂窝网络"; +"shortcuts.add.cells.untrust_cellular.caption" = "不信任蜂窝网络"; +"shortcuts.add.alerts.no_profiles.message" = "没有可以连接的配置。"; +"shortcuts.edit.sections.all.header" = "已经存在的捷径"; +"donation.title" = "捐助"; +"donation.sections.one_time.header" = "一次性"; +"donation.sections.one_time.footer" = "如果你想对我免费的工作表示感谢,这里是一些你可以捐助的数额。\n\n每次捐助只需要付款一次,你可以捐助多次。"; +"donation.cells.loading.caption" = "加载捐助中"; +"donation.cells.purchasing.caption" = "展示捐助页面中"; +"donation.alerts.purchase.success.title" = "感谢"; +"donation.alerts.purchase.success.message" = "这对于我意味着很多,希望你保持使用并使它更好。"; +"donation.alerts.purchase.failure.message" = "无法展现捐助内容。%@"; +"about.title" = "关于"; +"about.sections.web.header" = "网络"; +"about.sections.share.header" = "分享"; +"about.cells.credits.caption" = "评分"; +"about.cells.website.caption" = "主页"; +"about.cells.faq.caption" = "常见问题"; +"about.cells.disclaimer.caption" = "免责声明"; +"about.cells.privacy_policy.caption" = "隐私政策"; +"about.cells.share_twitter.caption" = "发送关于它的推特!"; +"about.cells.share_generic.caption" = "邀请朋友"; +"version.title" = "版本"; +"version.labels.intro" = "Passepartout和TunnelKit由Davide De Rosa (keeshux)编写并维护。\n\nPassepartout和TunnelKit的源代码在GitHub上以GPLv3许可证面向大众开放,你可以在主页上找到链接。\n\nPassepartout不是官方的客户端,同OpenVPN Inc也没有关系。"; +"credits.title" = "评分"; +"credits.sections.licenses.header" = "许可证"; +"credits.sections.notices.header" = "注意"; +"credits.sections.translations.header" = "翻译"; +"label.license.error" = "不能下载到完整的许可证内容。"; +"service.cells.server_configuration.caption" = "服务端配置"; +"service.cells.server_network.caption" = "服务端网络"; +"service.alerts.configuration.disconnected" = "配置不可用,请确认你已连接到VPN。"; +"server_network.cells.route.caption" = "路由"; +"wizards.provider.cells.update_list.caption" = "更新列表"; +"wizards.provider.alerts.unavailable.message" = "无法下载提供商基础架构,请稍后重试。"; +"organizer.sections.twitch.header" = "Twitch"; +"organizer.sections.twitch.footer" = "快来看我让Passepartout在Twitch上直播,加入聊天互动并做出贡献!"; +"organizer.cells.follow_twitch.caption" = "在Twitch上观看路路通"; +"service.cells.use_profile.caption" = "使用此配置"; +"network_settings.mtu.title" = "MTU"; +"network_settings.mtu.cells.bytes.caption" = "Bytes"; diff --git a/Passepartout/Core/Resources/zh-Hans.lproj/Intents.strings b/Passepartout/Core/Resources/zh-Hans.lproj/Intents.strings new file mode 100644 index 00000000..49285ef3 --- /dev/null +++ b/Passepartout/Core/Resources/zh-Hans.lproj/Intents.strings @@ -0,0 +1,45 @@ +"0jRWn5" = "从可信网络中移除蜂窝网络"; + +"IeGsEq" = "禁用VPN"; +"1ZRTCZ" = "禁用VPN"; + +"66bZBE" = "使用 ${providerId} 提供商配置"; + +"7eoAss" = "从可信网络中移除当前Wi-Fi"; + +"9GpJt5" = "添加蜂窝网络到可信网络中"; + +"BKxs8X" = "添加当前Wi-Fi到可信网络中"; + +"NWWgCl" = "信任蜂窝网络"; +"H4taev" = "信任蜂窝网络"; + +"KjkCfU" = "连接到指定地区的提供商配置"; + +"LA99yM" = "连接到VPN"; + +"U6o81V" = "连接到${profileId}"; + +"WnTPFg" = "连接到${poolName}"; + +"eQ1yzr" = "禁用VPN服务"; + +"eXXb2z" = "连接到主机配置"; + +"yesvFP" = "启用VPN"; +"lQ6ziK" = "启用VPN"; + +"POyDPM" = "信任当前Wi-Fi"; +"m2E7SI" = "信任当前Wi-Fi"; + +"qo3Szz" = "连接到提供商的地区"; + +"0Wu9nb" = "不信任当前Wi-Fi"; +"rd1T8p" = "不信任当前Wi-Fi"; + +"ggzKA2" = "不信任当前蜂窝网络"; +"wB1iYX" = "不信任当前蜂窝网络"; + +"xY97Vu" = "使用当前配置启用VPN服务"; + +"NCoK9B" = "该配置在被使用"; diff --git a/Passepartout/Core/Sources/AppConstants.swift b/Passepartout/Core/Sources/AppConstants.swift new file mode 100644 index 00000000..c3332dfb --- /dev/null +++ b/Passepartout/Core/Sources/AppConstants.swift @@ -0,0 +1,333 @@ +// +// AppConstants.swift +// Passepartout +// +// Created by Davide De Rosa on 9/15/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit +import Convenience +import SwiftyBeaver + +public class AppConstants { + public class App { + public static let appLauncherId = GroupConstants.App.config?["app_launcher_id"] as? String ?? "DUMMY_app_launcher_id" + + public static let appStoreId = GroupConstants.App.config?["appstore_id"] as? String ?? "DUMMY_appstore_id" + + public static let tunnelBundleId: String = { + guard let identifier = Bundle.main.infoDictionary?[kCFBundleIdentifierKey as String] as? String else { + fatalError("Missing kCFBundleIdentifierKey from Info.plist") + } + return "\(identifier).Tunnel" + }() + } + + public class Domain { + public static let name = "passepartoutvpn.app" + } + + public class Store { + public static let serviceFilename = "ConnectionService.json" + + public static let apiDirectory = "API/\(WebServices.version)" + + public static let providersDirectory = "Providers" + + public static let hostsDirectory = "Hosts" + } + + public class Services { + public static func apiURL(version: String, path: String) -> URL { + return Repos.api.appendingPathComponent(version).appendingPathComponent(path) + } + + public static let timeout: TimeInterval = 3.0 + + public static let minimumUpdateInterval: TimeInterval = 600.0 // 10 minutes + + private static let connectivityStrings: [String] = [ + "https://www.amazon.com", + "https://www.google.com", + "https://www.twitter.com", + "https://www.facebook.com", + "https://www.instagram.com" + ] + + public static let connectivityURL = URL(string: connectivityStrings.randomElement()!)! + + public static let connectivityTimeout: TimeInterval = 10.0 + } + + public class Log { + public static let level: SwiftyBeaver.Level = .debug + + public static let debugFormat = "$DHH:mm:ss$d - $M" + + public static var debugSnapshot: () -> String = { TransientStore.shared.service.vpnLog } + + public static let viewerRefreshInterval: TimeInterval = 3.0 + + private static let fileName = "Debug.log" + + public static var fileURL: URL { + return GroupConstants.App.cachesURL.appendingPathComponent(fileName) + } + + private static let console: ConsoleDestination = { + let dest = ConsoleDestination() + dest.minLevel = level + dest.useNSLog = true + return dest + }() + + private static let file: FileDestination = { + let dest = FileDestination() + dest.minLevel = level + dest.logFileURL = fileURL + _ = dest.deleteLogFile() + return dest + }() + + public static func configure() { + SwiftyBeaver.addDestination(console) + SwiftyBeaver.addDestination(file) + } + } + + public class IssueReporter { + public class Email { + public static let recipient = "issues@\(Domain.name)" + + public static let subject = "\(GroupConstants.App.name) - Report issue" + + public static func body(_ description: String, _ metadata: String) -> String { + return "Hi,\n\n\(description)\n\n\(metadata)\n\nRegards" + } + + public static let template = "description of the issue: " + } + + public class Filenames { + public static var debugLog: String { + let fmt = DateFormatter() + fmt.dateFormat = "yyyyMMdd-HHmmss" + let iso = fmt.string(from: Date()) + return "debug-\(iso).txt" + } + + public static let configuration = "profile.ovpn" +// public static let configuration = "profile.ovpn.txt" + } + + public class MIME { + public static let debugLog = "text/plain" + +// public static let configuration = "application/x-openvpn-profile" + public static let configuration = "text/plain" + } + } + + public class Translations { + public class Email { + public static let recipient = "translate@\(Domain.name)" + + public static let subject = "\(GroupConstants.App.name) - Translations" + + public static func body(_ description: String) -> String { + return "Hi,\n\n\(description)\n\nRegards" + } + + public static let template = "I offer to translate to: " + } + + public static let translators: [String: String] = [ + "de": "Christian Lederer, Theodor Tietze", + "el": "Konstantinos Koukoulakis", + "en-US": "Davide De Rosa", + "es": "Davide De Rosa, Elena Vivó", + "fr-FR": "Julien Laniel", + "it": "Davide De Rosa", + "nl": "Norbert de Vreede", + "pl": "Piotr Książek", + "pt-BR": "Helder Santana", + "ru": "Alexander Korobynikov", + "sv": "Henry Gross-Hellsen", + "zh-Hans": "OnlyThen" + ] + } + + public class URLs { + public class iOS { + public static let readme = Repos.ios.appendingPathComponent("blob/master/README.md") + + public static let changelog = Repos.ios.appendingPathComponent("blob/master/CHANGELOG.md") + } + + public class macOS { + public static let readme = Repos.macos.appendingPathComponent("blob/master/README.md") + + public static let changelog = Repos.macos.appendingPathComponent("blob/master/CHANGELOG.md") + } + + public static let filetypes = ["public.content", "public.data"] + + public static let website = URL(string: "https://\(Domain.name)")! + + public static let faq = website.appendingPathComponent("faq") + + public static let disclaimer = website.appendingPathComponent("disclaimer") + + public static let privacyPolicy = website.appendingPathComponent("privacy") + + public static let donate = website.appendingPathComponent("donate") + + public static let subreddit = URL(string: "https://www.reddit.com/r/passepartout")! + + public static let twitch = URL(string: "twitch://stream/keeshux")! + + public static let twitchFallback = URL(string: "https://twitch.tv/keeshux")! + + public static let githubSponsors = URL(string: "https://www.github.com/sponsors/passepartoutvpn")! + + public static let alternativeTo = URL(string: "https://alternativeto.net/software/passepartout-vpn/")! + + public static let productHunt = URL(string: "https://www.producthunt.com/posts/passepartout-vpn/")! + + private static let twitterHashtags = ["OpenVPN", "iOS", "macOS"] + + public static func twitterIntent(withMessage message: String) -> URL { + var text = message + for ht in twitterHashtags { + text = text.replacingOccurrences(of: ht, with: "#\(ht)") + } + var comps = URLComponents(string: "https://twitter.com/intent/tweet")! + comps.queryItems = [ + URLQueryItem(name: "url", value: website.absoluteString), + URLQueryItem(name: "via", value: "keeshux"), + URLQueryItem(name: "text", value: text) + ] + return comps.url! + } + + public static let guidances: [Infrastructure.Name: String] = [ + .protonvpn: "https://account.protonvpn.com/settings", + .torguard: "https://torguard.net/clientarea.php?action=changepw", + .windscribe: "https://windscribe.com/getconfig/openvpn" + ] + + public static let referrals: [Infrastructure.Name: String] = [ + .hideme: "https://member.hide.me/en/checkout?plan=new_default_prices&coupon=6CB-BDB-802&duration=24", + .mullvad: "https://mullvad.net/en/account/create/", + .nordvpn: "https://go.nordvpn.net/SH21Z", + .pia: "https://www.privateinternetaccess.com/pages/buy-vpn/", + .protonvpn: "https://proton.go2cloud.org/SHZ", + .torguard: "https://torguard.net/", + .tunnelbear: "https://www.tunnelbear.com/", + .vyprvpn: "https://www.vyprvpn.com/", + .windscribe: "https://secure.link/kCsD0prd" + ] + + public static let externalResources: [Infrastructure.Name: String] = [ + .nordvpn: "https://downloads.nordcdn.com/configs/archives/certificates/servers.zip" // 9MB + ] + } + + public class Repos { + private static let githubRoot = URL(string: "https://github.com/passepartoutvpn/")! + + private static let githubRawRoot = URL(string: "https://\(Domain.name)/")! + + private static func github(repo: String) -> URL { + return githubRoot.appendingPathComponent(repo) + } + + private static func githubRaw(repo: String) -> URL { + return githubRawRoot.appendingPathComponent(repo) + } + + public static let ios = github(repo: "passepartout-ios") + + public static let macos = github(repo: "passepartout-macos") + + public static let api = githubRaw(repo: "api") + } + + public struct Credits { + public static let author = "Davide De Rosa" + + public static let software: [Software] = [ + Software( + "Kvitto", + license: "BSD", + url: "https://raw.githubusercontent.com/Cocoanetics/Kvitto/develop/LICENSE" + ), + Software( + "lzo", + license: "GPLv2", + url: "https://www.gnu.org/licenses/gpl-2.0.txt" + ), + Software( + "MBProgressHUD", + license: "MIT", + url: "https://raw.githubusercontent.com/jdg/MBProgressHUD/master/LICENSE" + ), + Software( + "OpenSSL", + license: "OpenSSL", + url: "https://www.openssl.org/source/license.txt" + ), + Software( + "PIATunnel", + license: "MIT", + url: "https://raw.githubusercontent.com/pia-foss/tunnel-apple/master/LICENSE" + ), + Software( + "SSZipArchive", + license: "MIT", + url: "https://raw.githubusercontent.com/samsoffes/ssziparchive/master/LICENSE" + ), + Software( + "SwiftGen", + license: "MIT", + url: "https://raw.githubusercontent.com/SwiftGen/SwiftGen/master/LICENCE" + ), + Software( + "SwiftyBeaver", + license: "MIT", + url: "https://raw.githubusercontent.com/SwiftyBeaver/SwiftyBeaver/master/LICENSE" + ), + Software( + "Circle Icons", + notice: "The logo is taken from the awesome Circle Icons set by Nick Roach." + ), + Software( + "Country flags", + notice: "The country flags are taken from: https://github.com/lipis/flag-icon-css/" + ), + Software( + "OpenVPN", + notice: "© 2002-2018 OpenVPN Inc. - OpenVPN is a registered trademark of OpenVPN Inc." + ) + ] + } +} diff --git a/Passepartout/Core/Sources/ApplicationError.swift b/Passepartout/Core/Sources/ApplicationError.swift new file mode 100644 index 00000000..4f7f6e79 --- /dev/null +++ b/Passepartout/Core/Sources/ApplicationError.swift @@ -0,0 +1,38 @@ +// +// ApplicationError.swift +// Passepartout +// +// Created by Davide De Rosa on 6/12/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation + +public enum ApplicationError: String, Error { + case missingProfile + + case missingCredentials + + case migration + + case inactiveProfile + + case externalResources +} diff --git a/Passepartout/Core/Sources/GroupConstants.swift b/Passepartout/Core/Sources/GroupConstants.swift new file mode 100644 index 00000000..2b161c2c --- /dev/null +++ b/Passepartout/Core/Sources/GroupConstants.swift @@ -0,0 +1,78 @@ +// +// GroupConstants.swift +// Passepartout +// +// Created by Davide De Rosa on 6/7/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import Convenience + +public class GroupConstants { + public class App { + public static let config = Bundle.main.infoDictionary?["com.algoritmico.Passepartout.config"] as? [String: Any] + + public static let name = "Passepartout" + + public static let tunnelKitName = "TunnelKit" + + public static let title = name +// public static let title = "\u{1F511}" + + public static let versionNumber = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String + + public static let buildNumber = Int(Bundle.main.infoDictionary![kCFBundleVersionKey as String] as! String)! + + public static let versionString = "\(versionNumber) (\(buildNumber))" + + public static let groupId = config?["group_id"] as? String ?? "DUMMY_group_id" + + private static var containerURL: URL { + guard let url = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: groupId) else { + print("Unable to access App Group container") + return FileManager.default.userURL(for: .documentDirectory, appending: nil) + } + return url + } + + public static let documentsURL: URL = { + let url = containerURL.appendingPathComponent("Documents", isDirectory: true) + try? FileManager.default.createDirectory(at: url, withIntermediateDirectories: true, attributes: nil) + return url + }() + + public static let cachesURL: URL = { + let url = containerURL.appendingPathComponent("Library/Caches", isDirectory: true) + try? FileManager.default.createDirectory(at: url, withIntermediateDirectories: true, attributes: nil) + return url + }() + + public static let externalURL = cachesURL.appendingPathComponent("External") + } + + public class VPN { + public static let dnsTimeout = 5000 + + public static let sessionMarker = "--- EOF ---" + + public static let dataCountInterval = 5000 + } +} diff --git a/Passepartout/Core/Sources/Intents/IntentDispatcher.swift b/Passepartout/Core/Sources/Intents/IntentDispatcher.swift new file mode 100644 index 00000000..423a2313 --- /dev/null +++ b/Passepartout/Core/Sources/Intents/IntentDispatcher.swift @@ -0,0 +1,320 @@ +// +// IntentDispatcher.swift +// Passepartout +// +// Created by Davide De Rosa on 3/8/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import Intents +import SwiftyBeaver +import TunnelKit + +private let log = SwiftyBeaver.self + +@available(iOS 12, *) +public class IntentDispatcher { + private class Groups { + static let vpn = "VPN" + + static let trust = "Trust" + } + + public static let didUpdateService = Notification.Name("IntentDispatcherDidUpdateService") + + // MARK: Intents + + public static func intentConnect(profile: ConnectionProfile, title: String?) -> ConnectVPNIntent { + let intent = ConnectVPNIntent() + intent.context = profile.context.rawValue + intent.profileId = profile.id + intent.profileTitle = title ?? profile.id + return intent + } + + public static func intentMoveTo(profile: ProviderConnectionProfile, pool: Pool) -> MoveToLocationIntent { + let intent = MoveToLocationIntent() + intent.providerId = profile.id + intent.poolId = pool.id + intent.poolName = pool.localizedId + return intent + } + + public static func intentEnable() -> EnableVPNIntent { + return EnableVPNIntent() + } + + public static func intentDisable() -> DisableVPNIntent { + return DisableVPNIntent() + } + + public static func intentTrustWiFi() -> TrustCurrentNetworkIntent { + return TrustCurrentNetworkIntent() + } + + public static func intentUntrustWiFi() -> UntrustCurrentNetworkIntent { + return UntrustCurrentNetworkIntent() + } + + public static func intentTrustCellular() -> TrustCellularNetworkIntent { + return TrustCellularNetworkIntent() + } + + public static func intentUntrustCellular() -> UntrustCellularNetworkIntent { + return UntrustCellularNetworkIntent() + } + + // MARK: Donations + + public static func donateConnection(with profile: ConnectionProfile, title: String?) { + let genericIntent: INIntent + if let provider = profile as? ProviderConnectionProfile, let pool = provider.pool { + genericIntent = intentMoveTo(profile: provider, pool: pool) + } else { + genericIntent = intentConnect(profile: profile, title: title) + } + + let interaction = INInteraction(intent: genericIntent, response: nil) + interaction.groupIdentifier = ProfileKey(profile).rawValue + interaction.donateAndLog() + } + + public static func donateEnableVPN() { + let interaction = INInteraction(intent: intentEnable(), response: nil) + interaction.groupIdentifier = Groups.vpn + interaction.donateAndLog() + } + + public static func donateDisableVPN() { + let interaction = INInteraction(intent: intentDisable(), response: nil) + interaction.groupIdentifier = Groups.vpn + interaction.donateAndLog() + } + + public static func donateTrustCurrentNetwork() { + let interaction = INInteraction(intent: intentTrustWiFi(), response: nil) + interaction.groupIdentifier = Groups.trust + interaction.donateAndLog() + } + + public static func donateUntrustCurrentNetwork() { + let interaction = INInteraction(intent: intentUntrustWiFi(), response: nil) + interaction.groupIdentifier = Groups.trust + interaction.donateAndLog() + } + + public static func donateTrustCellularNetwork() { + let interaction = INInteraction(intent: intentTrustCellular(), response: nil) + interaction.groupIdentifier = Groups.trust + interaction.donateAndLog() + } + + public static func donateUntrustCellularNetwork() { + let interaction = INInteraction(intent: intentUntrustCellular(), response: nil) + interaction.groupIdentifier = Groups.trust + interaction.donateAndLog() + } + + // + + public static func handleInteraction(_ interaction: INInteraction, completionHandler: ((Error?) -> Void)?) { + handleIntent(interaction.intent, interaction: interaction, completionHandler: completionHandler) + } + + public static func handleIntent(_ intent: INIntent, interaction: INInteraction?, completionHandler: ((Error?) -> Void)?) { + if let custom = intent as? ConnectVPNIntent { + handleConnectVPN(custom, interaction: interaction, completionHandler: completionHandler) + } else if let custom = intent as? EnableVPNIntent { + handleEnableVPN(custom, interaction: interaction, completionHandler: completionHandler) + } else if let custom = intent as? DisableVPNIntent { + handleDisableVPN(custom, interaction: interaction, completionHandler: completionHandler) + } else if let custom = intent as? MoveToLocationIntent { + handleMoveToLocation(custom, interaction: interaction, completionHandler: completionHandler) + } else if let _ = intent as? TrustCurrentNetworkIntent { + handleCurrentNetwork(trust: true, interaction: interaction, completionHandler: completionHandler) + } else if let _ = intent as? UntrustCurrentNetworkIntent { + handleCurrentNetwork(trust: false, interaction: interaction, completionHandler: completionHandler) + } else if let _ = intent as? TrustCellularNetworkIntent { + handleCellularNetwork(trust: true, interaction: interaction, completionHandler: completionHandler) + } else if let _ = intent as? UntrustCellularNetworkIntent { + handleCellularNetwork(trust: false, interaction: interaction, completionHandler: completionHandler) + } + } + + public static func handleConnectVPN(_ intent: ConnectVPNIntent, interaction: INInteraction?, completionHandler: ((Error?) -> Void)?) { + guard let contextValue = intent.context, let context = Context(rawValue: contextValue), let id = intent.profileId else { + if let interactionIdentifier = interaction?.identifier { + INInteraction.delete(with: [interactionIdentifier], completion: nil) + } + // FIXME: error = missing data, programming error + completionHandler?(nil) + return + } + let profileKey = ProfileKey(context, id) + log.info("Connect to profile: \(profileKey)") + + let service = TransientStore.shared.service + let vpn = VPN.shared + guard !(service.isActiveProfile(profileKey) && (vpn.status == .connected)) else { + log.info("Profile is already active and connected") + completionHandler?(nil) + return + } + + guard let profile = service.profile(withContext: context, id: id) else { + // FIXME: error = no profile + completionHandler?(nil) + return + } + service.activateProfile(profile) + refreshVPN(service: service, doReconnect: true, completionHandler: completionHandler) + } + + public static func handleMoveToLocation(_ intent: MoveToLocationIntent, interaction: INInteraction?, completionHandler: ((Error?) -> Void)?) { + guard let providerId = intent.providerId, let poolId = intent.poolId else { + // FIXME: error = no provider/pool + completionHandler?(nil) + return + } + let service = TransientStore.shared.service + guard let providerProfile = service.profile(withContext: .provider, id: providerId) as? ProviderConnectionProfile else { + // FIXME: error = no provider + completionHandler?(nil) + return + } + log.info("Connect to provider location: \(providerId) @ [\(poolId)]") + + let vpn = VPN.shared + guard !(service.isActiveProfile(providerProfile) && (providerProfile.poolId == poolId) && (vpn.status == .connected)) else { + log.info("Profile is already active and connected to \(poolId)") + completionHandler?(nil) + return + } + + providerProfile.poolId = poolId + service.activateProfile(providerProfile) + refreshVPN(service: service, doReconnect: true, completionHandler: completionHandler) + } + + public static func handleEnableVPN(_ intent: EnableVPNIntent, interaction: INInteraction?, completionHandler: ((Error?) -> Void)?) { + let service = TransientStore.shared.service + log.info("Enabling VPN...") + refreshVPN(service: service, doReconnect: true, completionHandler: completionHandler) + } + + public static func handleDisableVPN(_ intent: DisableVPNIntent, interaction: INInteraction?, completionHandler: ((Error?) -> Void)?) { + log.info("Disabling VPN...") + + let vpn = VPN.shared + vpn.prepare { + vpn.disconnect { (error) in + notifyServiceUpdate() + completionHandler?(error) + } + } + } + + public static func handleCurrentNetwork(trust: Bool, interaction: INInteraction?, completionHandler: ((Error?) -> Void)?) { + guard let currentWifi = Utils.currentWifiNetworkName() else { + // FIXME: error = not connected to wifi + completionHandler?(nil) + return + } + let service = TransientStore.shared.service + service.activeProfile?.trustedNetworks.includedWiFis[currentWifi] = trust + TransientStore.shared.serialize(withProfiles: false) + + log.info("\(trust ? "Trusted" : "Untrusted") Wi-Fi: \(currentWifi)") + refreshVPN(service: service, doReconnect: false, completionHandler: completionHandler) + } + + public static func handleCellularNetwork(trust: Bool, interaction: INInteraction?, completionHandler: ((Error?) -> Void)?) { + #if os(iOS) + guard Utils.hasCellularData() else { + // FIXME: error = has no mobile data + completionHandler?(nil) + return + } + let service = TransientStore.shared.service + service.activeProfile?.trustedNetworks.includesMobile = trust + TransientStore.shared.serialize(withProfiles: false) + + log.info("\(trust ? "Trusted" : "Untrusted") cellular network") + refreshVPN(service: service, doReconnect: false, completionHandler: completionHandler) + #endif + } + + private static func refreshVPN(service: ConnectionService, doReconnect: Bool, completionHandler: ((Error?) -> Void)?) { + let configuration: VPNConfiguration + do { + configuration = try service.vpnConfiguration() + } catch let e { + log.error("Unable to build VPN configuration: \(e)") + notifyServiceUpdate() + completionHandler?(e) + return + } + + let vpn = VPN.shared + if doReconnect { + log.info("Reconnecting VPN: \(configuration)") + vpn.reconnect(configuration: configuration) { (error) in + notifyServiceUpdate() + completionHandler?(error) + } + } else { + log.info("Reinstalling VPN: \(configuration)") + vpn.install(configuration: configuration) { (error) in + notifyServiceUpdate() + completionHandler?(error) + } + } + } + + // + + public static func forgetProfile(withKey profileKey: ProfileKey) { + INInteraction.delete(with: profileKey.rawValue) { (error) in + if let error = error { + log.error("Unable to forget interactions: \(error)") + return + } + log.debug("Removed profile \(profileKey) interactions") + } + } + + // + + private static func notifyServiceUpdate() { + NotificationCenter.default.post(name: IntentDispatcher.didUpdateService, object: nil) + } +} + +private extension INInteraction { + func donateAndLog() { + donate { (error) in + if let error = error { + log.error("Unable to donate interaction: \(error)") + } + log.debug("Donated \(self.intent)") + } + } +} diff --git a/Passepartout/Core/Sources/Issue.swift b/Passepartout/Core/Sources/Issue.swift new file mode 100644 index 00000000..54ff717a --- /dev/null +++ b/Passepartout/Core/Sources/Issue.swift @@ -0,0 +1,58 @@ +// +// Issue.swift +// Passepartout +// +// Created by Davide De Rosa on 9/5/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit +#if os(iOS) +import MessageUI +#endif + +public struct Issue { + public let debugLog: Bool + + public let configurationURL: URL? + + public let infrastructureMetadata: Infrastructure.Metadata? + + public init(debugLog: Bool, configurationURL: URL?, infrastructureMetadata: Infrastructure.Metadata? = nil) { + self.debugLog = debugLog + self.configurationURL = configurationURL + self.infrastructureMetadata = infrastructureMetadata + } + + public init(debugLog: Bool, profile: ConnectionProfile?) { + let url: URL? + if let profile = profile { + url = TransientStore.shared.service.configurationURL(for: profile) + } else { + url = nil + } + var infrastructureMetadata: Infrastructure.Metadata? + if let name = (profile as? ProviderConnectionProfile)?.name { + infrastructureMetadata = InfrastructureFactory.shared.metadata(forName: name) + } + self.init(debugLog: debugLog, configurationURL: url, infrastructureMetadata: infrastructureMetadata) + } +} diff --git a/Passepartout/Core/Sources/Model/ConnectionProfile.swift b/Passepartout/Core/Sources/Model/ConnectionProfile.swift new file mode 100644 index 00000000..2d4edefc --- /dev/null +++ b/Passepartout/Core/Sources/Model/ConnectionProfile.swift @@ -0,0 +1,89 @@ +// +// ConnectionProfile.swift +// Passepartout +// +// Created by Davide De Rosa on 9/2/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit +import NetworkExtension + +public enum Context: String, Codable { + case provider + + case host +} + +public protocol ConnectionProfile: class, EndpointDataSource, CustomStringConvertible { + var context: Context { get } + + var id: String { get } + + var username: String? { get set } + + var requiresCredentials: Bool { get } + + var trustedNetworks: TrustedNetworks! { get set } + + var networkChoices: ProfileNetworkChoices? { get set } + + var manualNetworkSettings: ProfileNetworkSettings? { get set } + + func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration +} + +public extension ConnectionProfile { + var passwordContext: String { + return "\(Bundle.main.bundleIdentifier!).\(context.rawValue).\(id)" + } + + func password(in keychain: Keychain) -> String? { + guard let username = username else { + return nil + } + return try? keychain.password(for: username, context: passwordContext) + } + + func setPassword(_ password: String?, in keychain: Keychain) throws { + guard let username = username else { + return + } + guard let password = password else { + keychain.removePassword(for: username, context: passwordContext) + return + } + try keychain.set(password: password, for: username, context: passwordContext) + } + + func removePassword(in keychain: Keychain) { + guard let username = username else { + return + } + keychain.removePassword(for: username, context: passwordContext) + } +} + +public extension ConnectionProfile { + var description: String { + return "(\(context):\(id))" + } +} diff --git a/Passepartout/Core/Sources/Model/ConnectionService+Configurations.swift b/Passepartout/Core/Sources/Model/ConnectionService+Configurations.swift new file mode 100644 index 00000000..880004ec --- /dev/null +++ b/Passepartout/Core/Sources/Model/ConnectionService+Configurations.swift @@ -0,0 +1,69 @@ +// +// ConnectionService+Configurations.swift +// Passepartout +// +// Created by Davide De Rosa on 10/22/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import SwiftyBeaver + +private let log = SwiftyBeaver.self + +public extension ConnectionService { + func save(configurationURL: URL, for key: ProfileKey) throws -> URL { + let destinationURL = targetConfigurationURL(for: key) + let fm = FileManager.default + try? fm.removeItem(at: destinationURL) + try fm.copyItem(at: configurationURL, to: destinationURL) + return destinationURL + } + + func save(configurationURL: URL, for profile: ConnectionProfile) throws -> URL { + return try save(configurationURL: configurationURL, for: ProfileKey(profile)) + } + + func configurationURL(for key: ProfileKey) -> URL? { + let url = targetConfigurationURL(for: key) + guard FileManager.default.fileExists(atPath: url.path) else { + return nil + } + return url + } + + func configurationURL(for profile: ConnectionProfile) -> URL? { + return configurationURL(for: ProfileKey(profile)) + } + + func targetConfigurationURL(for key: ProfileKey) -> URL { + return contextURL(key).appendingPathComponent(key.id).appendingPathExtension("ovpn") + } + + func pendingConfigurationURLs() -> [URL] { + do { + let list = try FileManager.default.contentsOfDirectory(at: rootURL, includingPropertiesForKeys: nil, options: []) + return list.filter { $0.pathExtension == "ovpn" } + } catch let e { + log.error("Could not list imported configurations: \(e)") + return [] + } + } +} diff --git a/Passepartout/Core/Sources/Model/ConnectionService+Migration.swift b/Passepartout/Core/Sources/Model/ConnectionService+Migration.swift new file mode 100644 index 00000000..ed9851da --- /dev/null +++ b/Passepartout/Core/Sources/Model/ConnectionService+Migration.swift @@ -0,0 +1,185 @@ +// +// ConnectionService+Migration.swift +// Passepartout +// +// Created by Davide De Rosa on 10/25/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import SwiftyBeaver +import TunnelKit + +private let log = SwiftyBeaver.self + +public extension ConnectionService { + static func migrateJSON(from: URL, to: URL) { + do { + let newData = try migrateJSON(at: from) +// log.verbose(String(data: newData, encoding: .utf8)!) + try newData.write(to: to) + } catch let e { + log.error("Could not migrate service: \(e)") + } + } + + static func migrateJSON(at url: URL) throws -> Data { + let data = try Data(contentsOf: url) + guard let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] else { + throw ApplicationError.migration + } + + // put migration logic here + let _ = json["build"] as? Int ?? 0 + + return try JSONSerialization.data(withJSONObject: json, options: []) + } + + func migrateProvidersToLowercase() { + + // migrate providers to lowercase names + guard let files = try? FileManager.default.contentsOfDirectory(at: providersURL, includingPropertiesForKeys: nil, options: []) else { + log.debug("No providers to migrate") + return + } + for entry in files { + let filename = entry.lastPathComponent + + // old names contain at least an uppercase letter + guard let _ = filename.rangeOfCharacter(from: .uppercaseLetters) else { + continue + } + + log.debug("Migrating provider in \(filename) to new name") + do { + let data = try Data(contentsOf: entry) + guard var obj = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any], let name = obj["name"] as? String else { + log.warning("Skipping provider \(filename), not a JSON or no 'name' key found") + continue + } + + // replace name and overwrite + obj["name"] = name.lowercased() + let migratedData = try JSONSerialization.data(withJSONObject: obj, options: []) + try? migratedData.write(to: entry) + + // rename file if it makes sense + let newEntry = entry.deletingLastPathComponent().appendingPathComponent(filename.lowercased()) + try? FileManager.default.moveItem(at: entry, to: newEntry) + + log.debug("Migrated provider: \(name)") + } catch let e { + log.warning("Unable to migrate provider \(filename): \(e)") + } + } + } + + func migrateHostsToUUID() { + guard let files = try? FileManager.default.contentsOfDirectory(at: hostsURL, includingPropertiesForKeys: nil, options: []) else { + log.debug("No hosts to migrate") + return + } + + // initialize titles mapping + hostTitles = [:] + + for entry in files { + let filename = entry.lastPathComponent + guard filename.hasSuffix(".json") else { + continue + } + + log.debug("Migrating host \(filename) to UUID-based") + do { + let data = try Data(contentsOf: entry) + guard var obj = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any], let title = obj["title"] as? String else { + log.warning("Skipping host \(filename), not a JSON or no 'title' key found") + continue + } + + // pick unique id + let uuid = UUID().uuidString + + // remove title from JSON (will move to index) + obj["id"] = uuid +// obj.removeValue(forKey: "title") + + // save mapping for later + hostTitles[uuid] = title + + // migrate active profile if necessary (= it's a host) + if let key = activeProfileKey, key.context == .host && key.id == title { + activeProfileKey = ProfileKey(.host, uuid) + } + + // replace name and overwrite + let migratedData = try JSONSerialization.data(withJSONObject: obj, options: []) + try? migratedData.write(to: entry) + + let parent = entry.deletingLastPathComponent() + + // rename file to UUID + let newFilename = "\(uuid).json" + let newEntry = parent.appendingPathComponent(newFilename) + try? FileManager.default.moveItem(at: entry, to: newEntry) + + // rename associated .ovpn (if any) + let ovpnFilename = "\(title).ovpn" + let ovpnNewFilename = "\(uuid).ovpn" + try? FileManager.default.moveItem( + at: parent.appendingPathComponent(ovpnFilename), + to: parent.appendingPathComponent(ovpnNewFilename) + ) + + log.debug("Migrated host: \(filename) -> \(newFilename)") + } catch let e { + log.warning("Unable to migrate host \(filename): \(e)") + } + } + } + + func migrateKeychainContext() { + for key in allProfileKeys() { + guard let profile = profile(withKey: key), let username = profile.username else { + continue + } + let keychain = Keychain(group: GroupConstants.App.groupId) + let prefix = "com.algoritmico.ios.Passepartout" + + // profiles + do { + let oldUsername = "\(prefix).\(key.context).\(key.id).\(username)" + let password = try keychain.password(for: oldUsername) + try profile.setPassword(password, in: keychain) + keychain.removePassword(for: oldUsername) + + // tunnel + if isActiveProfile(key) { + let oldTunnelUsername = prefix + let tunnelContext = "\(prefix).Tunnel" + try keychain.set(password: password, for: username, context: tunnelContext) + keychain.removePassword(for: oldTunnelUsername) + } + } catch { + // + } + } + } +} diff --git a/Passepartout/Core/Sources/Model/ConnectionService.swift b/Passepartout/Core/Sources/Model/ConnectionService.swift new file mode 100644 index 00000000..61375996 --- /dev/null +++ b/Passepartout/Core/Sources/Model/ConnectionService.swift @@ -0,0 +1,713 @@ +// +// ConnectionService.swift +// Passepartout +// +// Created by Davide De Rosa on 9/3/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit +import NetworkExtension +import SwiftyBeaver + +private let log = SwiftyBeaver.self + +public protocol ConnectionServiceDelegate: class { + func connectionService(didAdd profile: ConnectionProfile) + + func connectionService(didRename profile: ConnectionProfile, to newTitle: String) + + func connectionService(didRemoveProfileWithKey key: ProfileKey) + + func connectionService(willDeactivate profile: ConnectionProfile) + + func connectionService(didActivate profile: ConnectionProfile) + + func connectionService(didUpdate profile: ConnectionProfile) +} + +public class ConnectionService: Codable { + public enum CodingKeys: String, CodingKey { + case build + + case appGroup + + case baseConfiguration + + case activeProfileKey + + case preferences + + case hostTitles + } + + public struct NotificationKeys { + public static let dataCount = "DataCount" + } + + public static let didUpdateDataCount = Notification.Name("ConnectionServiceDidUpdateDataCount") + + public var directory: String? = nil + + public var rootURL: URL { + var url = GroupConstants.App.documentsURL + if let directory = directory { + url.appendPathComponent(directory) + } + return url + } + + var providersURL: URL { + return rootURL.appendingPathComponent(AppConstants.Store.providersDirectory) + } + + var hostsURL: URL { + return rootURL.appendingPathComponent(AppConstants.Store.hostsDirectory) + } + + private var build: Int + + private let appGroup: String + + private let defaults: UserDefaults + + private let keychain: Keychain + + public var baseConfiguration: OpenVPNTunnelProvider.Configuration + + private var cache: [ProfileKey: ConnectionProfile] + + // XXX: access needed by +Migration + var hostTitles: [String: String] + + public internal(set) var activeProfileKey: ProfileKey? { + willSet { + if let oldProfile = activeProfile { + delegate?.connectionService(willDeactivate: oldProfile) + } + } + didSet { + if let newProfile = activeProfile { + delegate?.connectionService(didActivate: newProfile) + } + } + } + + public var activeProfile: ConnectionProfile? { + guard let id = activeProfileKey else { + return nil + } + var hit = cache[id] + if let placeholder = hit as? PlaceholderConnectionProfile { + hit = profile(withContext: placeholder.context, id: placeholder.id) + cache[id] = hit + } + return hit + } + + public let preferences: EditablePreferences + + public weak var delegate: ConnectionServiceDelegate? + + public init(withAppGroup appGroup: String, baseConfiguration: OpenVPNTunnelProvider.Configuration) { + guard let defaults = UserDefaults(suiteName: appGroup) else { + fatalError("No entitlements for group '\(appGroup)'") + } + build = GroupConstants.App.buildNumber + self.appGroup = appGroup + self.defaults = defaults + keychain = Keychain(group: appGroup) + + self.baseConfiguration = baseConfiguration + activeProfileKey = nil + preferences = EditablePreferences() + + cache = [:] + hostTitles = [:] + + ensureDirectoriesExistence() + } + + // MARK: Codable + + public required init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + let appGroup = try container.decode(String.self, forKey: .appGroup) + guard let defaults = UserDefaults(suiteName: appGroup) else { + fatalError("No entitlements for group '\(appGroup)'") + } + build = try container.decode(Int.self, forKey: .build) + self.appGroup = appGroup + self.defaults = defaults + keychain = Keychain(group: appGroup) + + baseConfiguration = try container.decode(OpenVPNTunnelProvider.Configuration.self, forKey: .baseConfiguration) + activeProfileKey = try container.decodeIfPresent(ProfileKey.self, forKey: .activeProfileKey) + preferences = try container.decode(EditablePreferences.self, forKey: .preferences) + + cache = [:] + hostTitles = try container.decode([String: String].self, forKey: .hostTitles) + + ensureDirectoriesExistence() + } + + public func encode(to encoder: Encoder) throws { + build = GroupConstants.App.buildNumber + + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(build, forKey: .build) + try container.encode(appGroup, forKey: .appGroup) + try container.encode(baseConfiguration, forKey: .baseConfiguration) + try container.encodeIfPresent(activeProfileKey, forKey: .activeProfileKey) + try container.encode(preferences, forKey: .preferences) + try container.encode(hostTitles, forKey: .hostTitles) + } + + // MARK: Serialization + + public func loadProfiles() { + let fm = FileManager.default + do { + let files = try fm.contentsOfDirectory(at: providersURL, includingPropertiesForKeys: nil, options: []) +// log.debug("Found \(files.count) provider files: \(files)") + for entry in files { + guard let id = ConnectionService.profileId(fromURL: entry) else { + continue + } + let key = ProfileKey(.provider, id) + cache[key] = PlaceholderConnectionProfile(key) + } + } catch let e { + log.warning("Could not list provider contents: \(e) (\(providersURL))") + } + do { + let files = try fm.contentsOfDirectory(at: hostsURL, includingPropertiesForKeys: nil, options: []) +// log.debug("Found \(files.count) host files: \(files)") + for entry in files { + guard let id = ConnectionService.profileId(fromURL: entry) else { + continue + } + let key = ProfileKey(.host, id) + cache[key] = PlaceholderConnectionProfile(key) + } + } catch let e { + log.warning("Could not list host contents: \(e) (\(hostsURL))") + } + + // clean up hostTitles if necessary + let staleHostIds = hostTitles.keys.filter { cache[ProfileKey(.host, $0)] == nil } + staleHostIds.forEach { + hostTitles.removeValue(forKey: $0) + } + } + + public func saveProfiles() { + let encoder = JSONEncoder() + for profile in cache.values { + saveProfile(profile, withEncoder: encoder) + } + } + + private func ensureDirectoriesExistence() { + let fm = FileManager.default + do { + try fm.createDirectory(at: providersURL, withIntermediateDirectories: false, attributes: nil) + } catch let e { + log.warning("Could not create providers folder: \(e) (\(providersURL))") + } + do { + try fm.createDirectory(at: hostsURL, withIntermediateDirectories: false, attributes: nil) + } catch let e { + log.warning("Could not create hosts folder: \(e) (\(hostsURL))") + } + + } + + private func saveProfile(_ profile: ConnectionProfile, withEncoder encoder: JSONEncoder) { + do { + let url = profileURL(ProfileKey(profile)) + var optData: Data? + if let providerProfile = profile as? ProviderConnectionProfile { + optData = try encoder.encode(providerProfile) + } else if let hostProfile = profile as? HostConnectionProfile { + optData = try encoder.encode(hostProfile) + } else if let placeholder = profile as? PlaceholderConnectionProfile { + log.debug("Skipped placeholder \(placeholder)") + } else { + fatalError("Attempting to add an unhandled profile type: \(type(of: profile))") + } + guard let data = optData else { + return + } + try data.write(to: url) + log.debug("Serialized profile \(profile)") + } catch let e { + log.warning("Could not serialize profile \(profile): \(e)") + } + } + + public func profile(withContext context: Context, id: String) -> ConnectionProfile? { + return profile(withKey: ProfileKey(context, id)) + } + + public func profile(withKey key: ProfileKey) -> ConnectionProfile? { + var profile = cache[key] + if let _ = profile as? PlaceholderConnectionProfile { + let decoder = JSONDecoder() + do { + let data = try profileData(key) + switch key.context { + case .provider: + let providerProfile = try decoder.decode(ProviderConnectionProfile.self, from: data) + + // XXX: fix renamed presets, fall back to default + if providerProfile.preset == nil { + providerProfile.presetId = providerProfile.infrastructure.defaults.preset + } + + // XXX: fix renamed pool, fall back to default + if providerProfile.pool == nil, let fallbackPool = providerProfile.infrastructure.defaultPool() { + providerProfile.poolId = fallbackPool.id + } + + // XXX: fix unsupported preset + providerProfile.setSupportedPreset() + + // XXX: patch empty favorites + if providerProfile.favoriteGroupIds == nil { + providerProfile.favoriteGroupIds = [] + } + + profile = providerProfile + + case .host: + let hostProfile = try decoder.decode(HostConnectionProfile.self, from: data) + + profile = hostProfile + } + cache[key] = profile + } catch let e { + log.error("Could not decode profile JSON: \(e)") + + // drop corrupt cache entry + cache.removeValue(forKey: key) + try? FileManager.default.removeItem(at: profileURL(key)) + + return nil + } + } + + // XXX: preload trusted networks in a backwards compatible manner (deserialization) + if profile?.trustedNetworks == nil { + profile?.trustedNetworks = TrustedNetworks() + } + + return profile + } + + public func allProfileKeys() -> [ProfileKey] { + return Array(cache.keys) + } + + public func ids(forContext context: Context) -> [String] { + return cache.keys.filter { $0.context == context }.map { $0.id } + } + + public func contextURL(_ key: ProfileKey) -> URL { + switch key.context { + case .provider: + return providersURL + + case .host: + return hostsURL + } + } + + public func profileURL(_ key: ProfileKey) -> URL { + return contextURL(key).appendingPathComponent(key.id).appendingPathExtension("json") + } + + public func profileData(_ key: ProfileKey) throws -> Data { + return try Data(contentsOf: profileURL(key)) + } + + private static func profileId(fromURL url: URL) -> String? { + guard url.pathExtension == "json" else { + return nil + } + return url.deletingPathExtension().lastPathComponent + } + + func reloadHostProfilesFromConfigurationFiles() -> Bool { + var anyReloaded = false + for entry in cache { + guard entry.value.context == .host else { + continue + } + guard let host = profile(withKey: entry.key) as? HostConnectionProfile else { + log.warning("Host context but not a HostConnectionProfile?") + continue + } + guard let url = configurationURL(for: entry.key) else { + continue + } + + // can fail due to passphrase (migration is non-interactive) + if let result = try? OpenVPN.ConfigurationParser.parsed(fromURL: url) { + host.parameters = OpenVPNTunnelProvider.ConfigurationBuilder(sessionConfiguration: result.configuration).build() + } else { + + // fall back to the safer option + var builder = host.parameters.builder() + var sessionBuilder = builder.sessionConfiguration.builder() + sessionBuilder.routingPolicies = [.IPv4] + builder.sessionConfiguration = sessionBuilder.build() + host.parameters = builder.build() + } + cache[entry.key] = host + + anyReloaded = true + } + return anyReloaded + } + + // MARK: Profiles + + public func hasProfiles() -> Bool { + return !cache.isEmpty + } + + public func addProfile(_ profile: ConnectionProfile, credentials: Credentials?) -> Bool { + guard cache.index(forKey: ProfileKey(profile)) == nil else { + return false + } + addOrReplaceProfile(profile, credentials: credentials) + return true + } + + public func addOrReplaceProfile(_ profile: ConnectionProfile, credentials: Credentials?, title: String? = nil) { + let key = ProfileKey(profile) + cache[key] = profile + if key.context == .host { + hostTitles[key.id] = title + } + try? setCredentials(credentials, for: profile) + + if cache.count == 1 { + activeProfileKey = key + } + delegate?.connectionService(didAdd: profile) + + // serialization (can fail) + saveProfile(profile, withEncoder: JSONEncoder()) + } + + public func renameProfile(_ key: ProfileKey, to newTitle: String) { + precondition(key.context == .host, "Can only rename a HostConnectionProfile") + guard let profile = cache[key] else { + return + } + + hostTitles[key.id] = newTitle + delegate?.connectionService(didRename: profile, to: newTitle) + } + + public func renameProfile(_ profile: ConnectionProfile, to newTitle: String) { + renameProfile(ProfileKey(profile), to: newTitle) + } + + public func removeProfile(_ key: ProfileKey) { + guard let profile = cache[key] else { + return + } + + if key == activeProfileKey { + activeProfileKey = nil + } + cache.removeValue(forKey: key) + if key.context == .host { + hostTitles.removeValue(forKey: key.id) + } + removeCredentials(for: profile) + + delegate?.connectionService(didRemoveProfileWithKey: key) + + // serialization (can fail) + do { + let fm = FileManager.default + if let cfg = configurationURL(for: key) { + try? fm.removeItem(at: cfg) + } + let url = profileURL(key) + try fm.removeItem(at: url) + log.debug("Deleted removed profile '\(profile.id)'") + } catch let e { + log.warning("Could not delete profile '\(profile.id)': \(e)") + } + } + + public func containsProfile(_ key: ProfileKey) -> Bool { + return cache.index(forKey: key) != nil + } + + public func containsProfile(_ profile: ConnectionProfile) -> Bool { + return containsProfile(ProfileKey(profile)) + } + + public func hasActiveProfile() -> Bool { + return activeProfileKey != nil + } + + public func isActiveProfile(_ key: ProfileKey) -> Bool { + return key == activeProfileKey + } + + public func isActiveProfile(_ profile: ConnectionProfile) -> Bool { + return isActiveProfile(ProfileKey(profile)) + } + + public func activateProfile(_ profile: ConnectionProfile) { + activeProfileKey = ProfileKey(profile) + } + + public func existingHostId(withTitle title: String) -> String? { + for id in hostTitles.keys { + guard let _ = cache[ProfileKey(.host, id)] else { + continue + } + if hostTitles[id] == title { + return id + } + } + return nil + } + + public func hostProfile(withTitle title: String) -> HostConnectionProfile? { + guard let id = existingHostId(withTitle: title) else { + return nil + } + return profile(withContext: .host, id: id) as? HostConnectionProfile + } + + // MARK: Credentials + + public func needsCredentials(for profile: ConnectionProfile) -> Bool { + guard profile.requiresCredentials else { + return false + } + guard let creds = credentials(for: profile) else { + return true + } + return !creds.isValid + } + + public func credentials(for profile: ConnectionProfile) -> Credentials? { + guard let username = profile.username else { + return nil + } + let password = (try? keychain.password(for: username, context: profile.passwordContext)) ?? "" // make password optional + return Credentials(username, password) + } + + public func setCredentials(_ credentials: Credentials?, for profile: ConnectionProfile) throws { + profile.username = credentials?.username + try profile.setPassword(credentials?.password, in: keychain) + } + + public func removeCredentials(for profile: ConnectionProfile) { + profile.removePassword(in: keychain) + } + + // MARK: VPN + + public func vpnConfiguration() throws -> NetworkExtensionVPNConfiguration { + guard let profile = activeProfile else { + throw ApplicationError.missingProfile + } + let creds = credentials(for: profile) + if profile.requiresCredentials { + guard creds != nil else { + throw ApplicationError.missingCredentials + } + } + + var cfg = try profile.generate(from: baseConfiguration, preferences: preferences) + + // override network settings + if let choices = profile.networkChoices, let settings = profile.manualNetworkSettings { + var builder = cfg.builder() + var sessionBuilder = builder.sessionConfiguration.builder() + + // enforce default gateway for providers unless "Manual" + if type(of: profile) == ProviderConnectionProfile.self { + if choices.gateway == .manual { + sessionBuilder.applyGateway(from: choices, settings: settings) + } + } else { + sessionBuilder.applyGateway(from: choices, settings: settings) + } + + sessionBuilder.applyDNS(from: choices, settings: settings) + sessionBuilder.applyProxy(from: choices, settings: settings) + sessionBuilder.applyMTU(from: choices, settings: settings) + builder.sessionConfiguration = sessionBuilder.build() + cfg = builder.build() + } + + let protocolConfiguration = try cfg.generatedTunnelProtocol( + withBundleIdentifier: AppConstants.App.tunnelBundleId, + appGroup: appGroup, + credentials: creds + ) + protocolConfiguration.disconnectOnSleep = preferences.disconnectsOnSleep + + log.verbose("Configuration:") + log.verbose(protocolConfiguration) + + var rules: [NEOnDemandRule] = [] + #if os(iOS) + if profile.trustedNetworks.includesMobile { + let rule = policyRule(for: profile) + rule.interfaceTypeMatch = .cellular + rules.append(rule) + } + #else + if profile.trustedNetworks.includesEthernet { + let rule = policyRule(for: profile) + rule.interfaceTypeMatch = .ethernet + rules.append(rule) + } + #endif + let reallyTrustedWifis = Array(profile.trustedNetworks.includedWiFis.filter { $1 }.keys) + if !reallyTrustedWifis.isEmpty { + let rule = policyRule(for: profile) + rule.interfaceTypeMatch = .wiFi + rule.ssidMatch = reallyTrustedWifis + rules.append(rule) + } + let connection = NEOnDemandRuleConnect() + connection.interfaceTypeMatch = .any + rules.append(connection) + + return NetworkExtensionVPNConfiguration( + title: screenTitle(ProfileKey(profile)), + protocolConfiguration: protocolConfiguration, + onDemandRules: rules + ) + } + + private func policyRule(for profile: ConnectionProfile) -> NEOnDemandRule { + switch profile.trustedNetworks.policy { + case .ignore: + return NEOnDemandRuleIgnore() + + case .disconnect: + return NEOnDemandRuleDisconnect() + } + } + + public var vpnLog: String { + return baseConfiguration.existingLog(in: appGroup) ?? "" + } + + public func eraseVpnLog() { + log.info("Erasing VPN log...") + guard let url = baseConfiguration.urlForLog(in: appGroup) else { + return + } + try? FileManager.default.removeItem(at: url) + } + + public var vpnLastError: OpenVPNTunnelProvider.ProviderError? { + return baseConfiguration.lastError(in: appGroup) + } + + public func clearVpnLastError() { + baseConfiguration.clearLastError(in: appGroup) + } + + public func observeVPNDataCount(milliseconds: Int) { + reportDataCountAndRepeat(after: milliseconds) + } + + private func reportDataCountAndRepeat(after milliseconds: Int) { + reportDataCount() + DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(milliseconds)) { [weak self] in + self?.reportDataCountAndRepeat(after: milliseconds) + } + } + + private func reportDataCount() { + guard let dataCount = vpnDataCount else { + return + } + NotificationCenter.default.post(name: ConnectionService.didUpdateDataCount, object: nil, userInfo: [NotificationKeys.dataCount: dataCount]) + } + + public var vpnDataCount: (Int, Int)? { + return baseConfiguration.dataCount(in: appGroup) + } +} + +public extension ConnectionService { + func providerNames() -> [Infrastructure.Name] { + return ids(forContext: .provider) + } + + func hostIds() -> [String] { + return ids(forContext: .host) + } + + func sortedProviderNames() -> [Infrastructure.Name] { + return providerNames().sorted() + } + + func sortedHostIds() -> [String] { + return hostIds().sorted { + let title1 = screenTitle(ProfileKey(.host, $0)) + let title2 = screenTitle(ProfileKey(.host, $1)) + return title1.lowercased() < title2.lowercased() + } + } + + func screenTitle(forHostId id: String) -> String { + return screenTitle(ProfileKey(.host, id)) + } + + func screenTitle(forProviderName name: Infrastructure.Name) -> String { + return screenTitle(ProfileKey(.provider, name)) + } + + func screenTitle(_ key: ProfileKey) -> String { + switch key.context { + case .provider: + if let metadata = InfrastructureFactory.shared.metadata(forName: key.id) { + return metadata.description + } + + case .host: + if let title = hostTitles[key.id] { + return title + } + } + return key.id + } +} diff --git a/Passepartout/Core/Sources/Model/Credentials.swift b/Passepartout/Core/Sources/Model/Credentials.swift new file mode 100644 index 00000000..9f54b244 --- /dev/null +++ b/Passepartout/Core/Sources/Model/Credentials.swift @@ -0,0 +1,45 @@ +// +// Credentials.swift +// Passepartout +// +// Created by Davide De Rosa on 6/7/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit + +public typealias Credentials = OpenVPN.Credentials + +public extension Credentials { +// var isEmpty: Bool { +// return username.isEmpty || password.isEmpty +// } + + var isValid: Bool { + return !username.isEmpty + } + + func trimmed() -> Credentials { + let trimmedUsername = username.trimmingCharacters(in: .whitespacesAndNewlines) + let trimmedPassword = password.trimmingCharacters(in: .whitespacesAndNewlines) + return Credentials(trimmedUsername, trimmedPassword) + } +} diff --git a/Passepartout/Core/Sources/Model/DataUnit.swift b/Passepartout/Core/Sources/Model/DataUnit.swift new file mode 100644 index 00000000..66d66b51 --- /dev/null +++ b/Passepartout/Core/Sources/Model/DataUnit.swift @@ -0,0 +1,93 @@ +// +// DataUnit.swift +// Passepartout +// +// Created by Davide De Rosa on 3/30/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation + +public enum DataUnit: Int, CustomStringConvertible { + case byte = 1 + + case kilobyte = 1024 + + case megabyte = 1048576 + + case gigabyte = 1073741824 + + fileprivate var showsDecimals: Bool { + switch self { + case .byte, .kilobyte: + return false + + case .megabyte, .gigabyte: + return true + } + } + + fileprivate var boundary: Int { + return Int(0.1 * Double(rawValue)) + } + + // MARK: CustomStringConvertible + + public var description: String { + switch self { + case .byte: + return "B" + + case .kilobyte: + return "kB" + + case .megabyte: + return "MB" + + case .gigabyte: + return "GB" + } + } +} + +public extension Int { + private static let allUnits: [DataUnit] = [ + .gigabyte, + .megabyte, + .kilobyte, + .byte + ] + + var dataUnitDescription: String { + if self == 0 { + return "0B" + } + for u in Int.allUnits { + if self >= u.boundary { + if !u.showsDecimals { + return "\(self / u.rawValue)\(u)" + } + let count = Double(self) / Double(u.rawValue) + return String(format: "%.2f%@", count, u.description) + } + } + fatalError("Number is negative") + } +} diff --git a/Passepartout/Core/Sources/Model/DebugLog.swift b/Passepartout/Core/Sources/Model/DebugLog.swift new file mode 100644 index 00000000..1af20b0e --- /dev/null +++ b/Passepartout/Core/Sources/Model/DebugLog.swift @@ -0,0 +1,84 @@ +// +// DebugLog.swift +// Passepartout +// +// Created by Davide De Rosa on 6/26/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +#if os(iOS) +import UIKit +#else +import Cocoa +#endif + +public struct DebugLog { + private let raw: String + + public init(raw: String) { + self.raw = raw + } + + public func string() -> String { + return raw + } + + public func data() -> Data? { + return raw.data(using: .utf8) + } + + public func decoratedString() -> String { + let appName = GroupConstants.App.name + let appVersion = GroupConstants.App.versionString + + var metadata: [String] = [] + let osVersion: String + let deviceType: String? + + #if os(iOS) + let device = UIDevice.current + osVersion = "\(device.systemName) \(device.systemVersion)" + deviceType = device.model + #else + let os = ProcessInfo().operatingSystemVersion + osVersion = "macOS \(os.majorVersion).\(os.minorVersion).\(os.patchVersion)" + deviceType = nil + #endif + + metadata.append("App: \(appName) \(appVersion)") + metadata.append("OS: \(osVersion)") + if let deviceType = deviceType { + metadata.append("Device: \(deviceType)") + } + + var fullText = metadata.joined(separator: "\n") + fullText += "\n\n" + fullText += raw + return fullText + } + + public func decoratedData() -> Data { + guard let data = decoratedString().data(using: .utf8) else { + fatalError("Could not encode log metadata to UTF8?") + } + return data + } +} diff --git a/Passepartout/Core/Sources/Model/EndpointDataSource.swift b/Passepartout/Core/Sources/Model/EndpointDataSource.swift new file mode 100644 index 00000000..8e8a12ae --- /dev/null +++ b/Passepartout/Core/Sources/Model/EndpointDataSource.swift @@ -0,0 +1,47 @@ +// +// EndpointDataSource.swift +// Passepartout +// +// Created by Davide De Rosa on 9/5/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit + +public protocol EndpointDataSource { + var mainAddress: String? { get } + + var addresses: [String] { get } + + var protocols: [EndpointProtocol] { get } + + var canCustomizeEndpoint: Bool { get } + + var customAddress: String? { get set } + + var customProtocol: EndpointProtocol? { get set } +} + +public extension EndpointDataSource { + var usesCustomEndpoint: Bool { + return (customAddress != nil) || (customProtocol != nil) + } +} diff --git a/Passepartout/Core/Sources/Model/GracefulVPN.swift b/Passepartout/Core/Sources/Model/GracefulVPN.swift new file mode 100644 index 00000000..15366c61 --- /dev/null +++ b/Passepartout/Core/Sources/Model/GracefulVPN.swift @@ -0,0 +1,140 @@ +// +// GracefulVPN.swift +// Passepartout +// +// Created by Davide De Rosa on 9/18/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import SwiftyBeaver +import TunnelKit + +private let log = SwiftyBeaver.self + +public class GracefulVPN { + private let service: ConnectionService + + private var vpn: VPNProvider? { + return VPN.shared + } + + public var isEnabled: Bool { + return vpn?.isEnabled ?? false + } + + public var status: VPNStatus? { + return vpn?.status + } + + public init(service: ConnectionService) { + self.service = service + } + + public func prepare(completionHandler: (() -> Void)?) { + service.clearVpnLastError() + guard let vpn = vpn else { + completionHandler?() + return + } + log.info("Preparing...") + vpn.prepare(completionHandler: completionHandler) + } + + public func reconnect(completionHandler: ((Error?) -> Void)?) { + service.clearVpnLastError() + guard let vpn = vpn else { + completionHandler?(ApplicationError.inactiveProfile) + return + } + do { + log.info("Reconnecting...") + try vpn.reconnect(configuration: service.vpnConfiguration(), completionHandler: completionHandler) + } catch let e { + guard e as? ApplicationError != .externalResources else { + completionHandler?(e) + return + } + log.error("Could not reconnect: \(e)") + } + } + + public func reinstall(completionHandler: ((Error?) -> Void)?) { + service.clearVpnLastError() + guard let vpn = vpn else { + completionHandler?(ApplicationError.inactiveProfile) + return + } + do { + log.info("Reinstalling...") + try vpn.install(configuration: service.vpnConfiguration(), completionHandler: completionHandler) + } catch let e { + guard e as? ApplicationError != .externalResources else { + completionHandler?(e) + return + } + log.error("Could not reinstall: \(e)") + } + } + + public func reinstallIfEnabled() { + guard isEnabled else { + log.warning("Not reinstalling (VPN is disabled)") + return + } + if status != .disconnected { + reconnect(completionHandler: nil) + } else { + reinstall(completionHandler: nil) + } + } + + public func disconnect(completionHandler: ((Error?) -> Void)?) { + guard let vpn = vpn else { + completionHandler?(ApplicationError.inactiveProfile) + return + } + vpn.disconnect(completionHandler: completionHandler) + } + + public func uninstall(completionHandler: (() -> Void)?) { + guard let vpn = vpn else { + completionHandler?() + return + } + vpn.uninstall(completionHandler: completionHandler) + } + + public func requestBytesCount(completionHandler: @escaping ((UInt, UInt)?) -> Void) { + guard let vpn = vpn else { + completionHandler(nil) + return + } + vpn.requestBytesCount(completionHandler: completionHandler) + } + + public func requestServerConfiguration(completionHandler: @escaping (Any?) -> Void) { + guard let vpn = vpn, vpn.status == .connected else { + completionHandler(nil) + return + } + vpn.requestServerConfiguration(completionHandler: completionHandler) + } +} diff --git a/Passepartout/Core/Sources/Model/OpenVPNOptions.swift b/Passepartout/Core/Sources/Model/OpenVPNOptions.swift new file mode 100644 index 00000000..2f537939 --- /dev/null +++ b/Passepartout/Core/Sources/Model/OpenVPNOptions.swift @@ -0,0 +1,63 @@ +// +// OpenVPNOptions.swift +// Passepartout +// +// Created by Davide De Rosa on 6/22/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit + +extension OpenVPN.Cipher { + public static let available: [OpenVPN.Cipher] = [ + .aes128cbc, + .aes192cbc, + .aes256cbc, + .aes128gcm, + .aes192gcm, + .aes256gcm + ] +} + +extension OpenVPN.Digest { + public static let available: [OpenVPN.Digest] = [ + .sha1, + .sha224, + .sha256, + .sha384, + .sha512 + ] +} + +extension OpenVPN.CompressionFraming { + public static let available: [OpenVPN.CompressionFraming] = [ + .disabled, + .compLZO, + .compress + ] +} + +extension OpenVPN.CompressionAlgorithm { + public static let available: [OpenVPN.CompressionAlgorithm] = [ + .disabled, + .LZO + ] +} diff --git a/Passepartout/Core/Sources/Model/Preferences.swift b/Passepartout/Core/Sources/Model/Preferences.swift new file mode 100644 index 00000000..69246516 --- /dev/null +++ b/Passepartout/Core/Sources/Model/Preferences.swift @@ -0,0 +1,42 @@ +// +// Preferences.swift +// Passepartout +// +// Created by Davide De Rosa on 9/4/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation + +public protocol Preferences { + var launchesOnLogin: Bool? { get } + + var resolvesHostname: Bool { get } + + var disconnectsOnSleep: Bool { get } +} + +public class EditablePreferences: Preferences, Codable { + public var launchesOnLogin: Bool? = false + + public var resolvesHostname: Bool = true + + public var disconnectsOnSleep: Bool = false +} diff --git a/Passepartout/Core/Sources/Model/Product.swift b/Passepartout/Core/Sources/Model/Product.swift new file mode 100644 index 00000000..0eff5313 --- /dev/null +++ b/Passepartout/Core/Sources/Model/Product.swift @@ -0,0 +1,161 @@ +// +// Product.swift +// Passepartout +// +// Created by Davide De Rosa on 10/11/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import StoreKit + +public struct Product: RawRepresentable, Equatable, Hashable { + #if os(iOS) + private static let bundleSubdomain = "ios" + #else + private static let bundleSubdomain = "macos" + #endif + + private static let bundle = "com.algoritmico.\(bundleSubdomain).Passepartout" + + private static let donationsBundle = "\(bundle).donations" + + private static let featuresBundle = "\(bundle).features" + + private static let providersBundle = "\(bundle).providers" + + // MARK: Donations + + public static let tinyDonation = Product(donationDescription: "Tiny") + + public static let smallDonation = Product(donationDescription: "Small") + + public static let mediumDonation = Product(donationDescription: "Medium") + + public static let bigDonation = Product(donationDescription: "Big") + + public static let hugeDonation = Product(donationDescription: "Huge") + + public static let maxiDonation = Product(donationDescription: "Maxi") + + public static let allDonations: [Product] = [ + .tinyDonation, + .smallDonation, + .mediumDonation, + .bigDonation, + .hugeDonation, + .maxiDonation + ] + + private init(donationDescription: String) { + self.init(rawValue: "\(Product.donationsBundle).\(donationDescription)")! + } + + // MARK: Features + + #if os(iOS) + public static let unlimitedHosts = Product(featureId: "unlimited_hosts") + + public static let trustedNetworks = Product(featureId: "trusted_networks") + + public static let siriShortcuts = Product(featureId: "siri") + #endif + + public static let fullVersion = Product(featureId: "full_version") + + #if os(iOS) + public static let allFeatures: [Product] = [ + .unlimitedHosts, + .trustedNetworks, + .siriShortcuts, + .fullVersion + ] + #else + public static let allFeatures: [Product] = [ + .fullVersion + ] + #endif + + private init(featureId: String) { + self.init(rawValue: "\(Product.featuresBundle).\(featureId)")! + } + + // MARK: Providers + + public static var allProviders: [Product] { + return InfrastructureFactory.shared.allMetadata.map { + return Product(providerMetadata: $0) + } + } + + fileprivate init(providerMetadata: Infrastructure.Metadata) { + self.init(rawValue: "\(Product.providersBundle).\(providerMetadata.inApp ?? providerMetadata.name)")! + } + + // MARK: All + + public static var all: [Product] { + return allDonations + allFeatures + allProviders + } + + public var isDonation: Bool { + return rawValue.hasPrefix(Product.donationsBundle) + } + + public var isFeature: Bool { + return rawValue.hasPrefix(Product.featuresBundle) + } + + public var isProvider: Bool { + return rawValue.hasPrefix(Product.providersBundle) + } + + // MARK: RawRepresentable + + public let rawValue: String + + public init?(rawValue: String) { + self.rawValue = rawValue + } + + // MARK: Equatable + + public static func ==(lhs: Product, rhs: Product) -> Bool { + return lhs.rawValue == rhs.rawValue + } + + // MARK: Hashable + + public func hash(into hasher: inout Hasher) { + rawValue.hash(into: &hasher) + } +} + +public extension Infrastructure.Metadata { + var product: Product { + return Product(providerMetadata: self) + } +} + +public extension Product { + func matchesStoreKitProduct(_ skProduct: SKProduct) -> Bool { + return skProduct.productIdentifier == rawValue + } +} diff --git a/Passepartout/Core/Sources/Model/ProductManager.swift b/Passepartout/Core/Sources/Model/ProductManager.swift new file mode 100644 index 00000000..de0f9187 --- /dev/null +++ b/Passepartout/Core/Sources/Model/ProductManager.swift @@ -0,0 +1,250 @@ +// +// ProductManager.swift +// Passepartout +// +// Created by Davide De Rosa on 4/6/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import StoreKit +import Convenience +import SwiftyBeaver +import Kvitto +import TunnelKit + +private let log = SwiftyBeaver.self + +public class ProductManager: NSObject { + public struct Configuration { + public let isBetaFullVersion: Bool + + public let lastFullVersionBuild: Int + + public init( + isBetaFullVersion: Bool, + lastFullVersionBuild: Int + ) { + self.isBetaFullVersion = isBetaFullVersion + self.lastFullVersionBuild = lastFullVersionBuild + } + } + + public static let didReloadReceipt = Notification.Name("ProductManagerDidReloadReceipt") + + public static let didReviewPurchases = Notification.Name("ProductManagerDidReviewPurchases") + + public let cfg: Configuration + + private let inApp: InApp + + private var purchasedAppBuild: Int? + + private var purchasedFeatures: Set + + private var purchaseDates: [Product: Date] + + private var refreshRequest: SKReceiptRefreshRequest? + + private var restoreCompletionHandler: ((Error?) -> Void)? + + public init(_ cfg: Configuration) { + self.cfg = cfg + inApp = InApp() + purchasedAppBuild = nil + purchasedFeatures = [] + purchaseDates = [:] + + super.init() + + reloadReceipt() + SKPaymentQueue.default().add(self) + } + + deinit { + SKPaymentQueue.default().remove(self) + } + + public var isBeta: Bool { + #if targetEnvironment(simulator) + return true + #else + return Bundle.main.appStoreReceiptURL?.lastPathComponent == "sandboxReceipt" + #endif + } + + public func listProducts(completionHandler: (([SKProduct]?, Error?) -> Void)?) { + let products = Product.all + guard !products.isEmpty else { + completionHandler?(nil, nil) + return + } + inApp.requestProducts(withIdentifiers: products, completionHandler: { _ in + log.debug("In-app products: \(self.inApp.products.map { $0.productIdentifier })") + + completionHandler?(self.inApp.products, nil) + }, failureHandler: { + completionHandler?(nil, $0) + }) + } + + public func product(withIdentifier identifier: Product) -> SKProduct? { + return inApp.product(withIdentifier: identifier) + } + + public func featureProducts(includingFullVersion: Bool) -> [SKProduct] { + return inApp.products.filter { + guard let p = Product(rawValue: $0.productIdentifier) else { + return false + } + guard includingFullVersion || p != .fullVersion else { + return false + } + guard p.isFeature else { + return false + } + return true + } + } + + public func purchase(_ product: SKProduct, completionHandler: @escaping (InAppPurchaseResult, Error?) -> Void) { + inApp.purchase(product: product) { + if $0 == .success { + self.reloadReceipt() + } + completionHandler($0, $1) + } + } + + public func restorePurchases(completionHandler: @escaping (Error?) -> Void) { + restoreCompletionHandler = completionHandler + refreshRequest = SKReceiptRefreshRequest() + refreshRequest?.delegate = self + refreshRequest?.start() + } + + // MARK: In-app eligibility + + public func isFullVersion() -> Bool { + #if os(iOS) + if isBeta && cfg.isBetaFullVersion { + return true + } + #else + if cfg.isBetaFullVersion { + return true + } + #endif + return purchasedFeatures.contains(.fullVersion) + } + + public func isEligible(forFeature feature: Product) -> Bool { + return isFullVersion() || purchasedFeatures.contains(feature) + } + + public func isEligible(forProvider metadata: Infrastructure.Metadata) -> Bool { + return isFullVersion() || purchasedFeatures.contains(metadata.product) + } + + public func isEligibleForFeedback() -> Bool { + #if os(iOS) + return isBeta || !purchasedFeatures.isEmpty + #else + return isFullVersion() + #endif + } + + public func purchaseDate(forProduct product: Product) -> Date? { + return purchaseDates[product] + } + + public func reloadReceipt(andNotify: Bool = true) { + guard let url = Bundle.main.appStoreReceiptURL else { + log.warning("No App Store receipt found!") + return + } + guard let receipt = Receipt(contentsOfURL: url) else { + log.error("Could not parse App Store receipt!") + return + } + + if let originalAppVersion = receipt.originalAppVersion, let buildNumber = Int(originalAppVersion) { + purchasedAppBuild = buildNumber + } + purchasedFeatures.removeAll() + + if let buildNumber = purchasedAppBuild { + log.debug("Original purchased build: \(buildNumber)") + + // treat former purchases as full versions + if buildNumber <= cfg.lastFullVersionBuild { + purchasedFeatures.insert(.fullVersion) + } + } + if let iapReceipts = receipt.inAppPurchaseReceipts { + purchaseDates.removeAll() + + log.debug("In-app receipts:") + iapReceipts.forEach { + guard let pid = $0.productIdentifier, let product = Product(rawValue: pid) else { + return + } + if let cancellationDate = $0.cancellationDate { + log.debug("\t\(pid) [cancelled on: \(cancellationDate)]") + return + } + if let purchaseDate = $0.originalPurchaseDate { + log.debug("\t\(pid) [purchased on: \(purchaseDate)]") + purchaseDates[product] = purchaseDate + } + purchasedFeatures.insert(product) + } + } + log.info("Purchased features: \(purchasedFeatures)") + + if andNotify { + NotificationCenter.default.post(name: ProductManager.didReloadReceipt, object: nil) + } + } +} + +extension ProductManager: SKPaymentTransactionObserver { + public func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { + reloadReceipt() + } +} + +extension ProductManager: SKRequestDelegate { + public func requestDidFinish(_ request: SKRequest) { + reloadReceipt() + inApp.restorePurchases { [weak self] (finished, _, error) in + guard finished else { + return + } + self?.restoreCompletionHandler?(error) + self?.restoreCompletionHandler = nil + } + } + + public func request(_ request: SKRequest, didFailWithError error: Error) { + restoreCompletionHandler?(error) + restoreCompletionHandler = nil + } +} diff --git a/Passepartout/Core/Sources/Model/ProfileNetworkSettings.swift b/Passepartout/Core/Sources/Model/ProfileNetworkSettings.swift new file mode 100644 index 00000000..4c69725e --- /dev/null +++ b/Passepartout/Core/Sources/Model/ProfileNetworkSettings.swift @@ -0,0 +1,232 @@ +// +// ProfileNetworkSettings.swift +// Passepartout +// +// Created by Davide De Rosa on 04/28/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit + +public enum NetworkChoice: String, Codable { + case client + + case server // erase client settings + + case manual + + public static func choices(for profile: ConnectionProfile?) -> [NetworkChoice] { + if let _ = profile as? HostConnectionProfile { + return [.client, .server, .manual] + } + return [.server, .manual] + } +} + +public struct ProfileNetworkChoices: Codable { + public static let defaultChoice: NetworkChoice = .client + + public var gateway: NetworkChoice + + public var dns: NetworkChoice + + public var proxy: NetworkChoice + + public var mtu: NetworkChoice? + + public init(choice: NetworkChoice) { + gateway = choice + dns = choice + proxy = choice + mtu = choice + } + + public static func with(profile: ConnectionProfile?) -> ProfileNetworkChoices { + if let choices = profile?.networkChoices { + return choices + } + if let _ = profile as? ProviderConnectionProfile { + return ProfileNetworkChoices(choice: .server) + } + return ProfileNetworkChoices(choice: .client) + } +} + +public class ProfileNetworkSettings: Codable, CustomStringConvertible { + public static let mtuOptions: [Int] = [0, 1500, 1400, 1300, 1200] + + public var gatewayPolicies: [OpenVPN.RoutingPolicy]? + + public var dnsServers: [String]? + + public var dnsSearchDomains: [String]? + + public var proxyAddress: String? + + public var proxyPort: UInt16? + + public var proxyServer: Proxy? { + guard let address = proxyAddress, let port = proxyPort, !address.isEmpty, port > 0 else { + return nil + } + return Proxy(address, port) + } + + public var proxyAutoConfigurationURL: URL? + + public var proxyBypassDomains: [String]? + + public var mtuBytes: Int? + + public init() { + gatewayPolicies = [.IPv4, .IPv6] + } + + public init(from configuration: OpenVPN.Configuration) { + gatewayPolicies = configuration.routingPolicies + dnsSearchDomains = configuration.searchDomains + dnsServers = configuration.dnsServers + proxyAddress = configuration.httpProxy?.address + proxyPort = configuration.httpProxy?.port + proxyAutoConfigurationURL = configuration.proxyAutoConfigurationURL + proxyBypassDomains = configuration.proxyBypassDomains + mtuBytes = configuration.mtu + } + + public func copy(from settings: ProfileNetworkSettings) { + copyGateway(from: settings) + copyDNS(from: settings) + copyProxy(from: settings) + copyMTU(from: settings) + } + + public func copyGateway(from settings: ProfileNetworkSettings) { + gatewayPolicies = settings.gatewayPolicies + } + + public func copyDNS(from settings: ProfileNetworkSettings) { + dnsSearchDomains = settings.dnsSearchDomains + dnsServers = settings.dnsServers?.filter { !$0.isEmpty } + } + + public func copyProxy(from settings: ProfileNetworkSettings) { + proxyAddress = settings.proxyAddress + proxyPort = settings.proxyPort + proxyAutoConfigurationURL = settings.proxyAutoConfigurationURL + proxyBypassDomains = settings.proxyBypassDomains?.filter { !$0.isEmpty } + } + + public func copyMTU(from settings: ProfileNetworkSettings) { + mtuBytes = settings.mtuBytes + } + + // MARK: CustomStringConvertible + + public var description: String { + let comps: [String] = [ + "gw: \(gatewayPolicies?.description ?? "")", + "dns: {domains: \(dnsSearchDomains?.description ?? "[]"), servers: \(dnsServers?.description ?? "[]")}", + "proxy: {address: \(proxyAddress ?? ""), port: \(proxyPort?.description ?? ""), PAC: \(proxyAutoConfigurationURL?.absoluteString ?? ""), bypass: \(proxyBypassDomains?.description ?? "[]")}", + "mtu: {bytes: \(mtuBytes?.description ?? "default")}" + ] + return "{\(comps.joined(separator: ", "))}" + } +} + +extension OpenVPN.ConfigurationBuilder { + public mutating func applyGateway(from choices: ProfileNetworkChoices, settings: ProfileNetworkSettings) { + switch choices.gateway { + case .client: + break + + case .server: + routingPolicies = nil + + case .manual: + routingPolicies = settings.gatewayPolicies + } + } + + public mutating func applyDNS(from choices: ProfileNetworkChoices, settings: ProfileNetworkSettings) { + switch choices.dns { + case .client: + break + + case .server: + dnsServers = nil + searchDomains = nil + + case .manual: + dnsServers = settings.dnsServers?.filter { !$0.isEmpty } + searchDomains = settings.dnsSearchDomains + } + } + + public mutating func applyProxy(from choices: ProfileNetworkChoices, settings: ProfileNetworkSettings) { + switch choices.proxy { + case .client: + break + + case .server: + httpProxy = nil + httpsProxy = nil + proxyAutoConfigurationURL = nil + proxyBypassDomains = nil + + case .manual: + if let proxyServer = settings.proxyServer { + httpProxy = proxyServer + httpsProxy = proxyServer + proxyBypassDomains = settings.proxyBypassDomains?.filter { !$0.isEmpty } + } else if let pac = settings.proxyAutoConfigurationURL { + proxyAutoConfigurationURL = pac + proxyBypassDomains = settings.proxyBypassDomains?.filter { !$0.isEmpty } + } else { + httpProxy = nil + httpsProxy = nil + proxyAutoConfigurationURL = nil + proxyBypassDomains = nil + } + } + } + + public mutating func applyMTU(from choices: ProfileNetworkChoices, settings: ProfileNetworkSettings) { + switch choices.mtu ?? ProfileNetworkChoices.defaultChoice { + case .client: + break + + case .server: + mtu = nil + + case .manual: + mtu = settings.mtuBytes + } + } +} + +extension ConnectionProfile { + public var clientNetworkSettings: ProfileNetworkSettings? { + guard let hostProfile = self as? HostConnectionProfile else { + return nil + } + return ProfileNetworkSettings(from: hostProfile.parameters.sessionConfiguration) + } +} diff --git a/Passepartout/Core/Sources/Model/Profiles/HostConnectionProfile.swift b/Passepartout/Core/Sources/Model/Profiles/HostConnectionProfile.swift new file mode 100644 index 00000000..afd9fbf7 --- /dev/null +++ b/Passepartout/Core/Sources/Model/Profiles/HostConnectionProfile.swift @@ -0,0 +1,132 @@ +// +// HostConnectionProfile.m +// Passepartout +// +// Created by Davide De Rosa on 9/2/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit + +public class HostConnectionProfile: ConnectionProfile, Codable, Equatable { + public let hostname: String + + public var parameters: OpenVPNTunnelProvider.Configuration + + public var customAddress: String? + + public var customProtocol: EndpointProtocol? + + public init(hostname: String) { + id = UUID().uuidString + self.hostname = hostname + let sessionConfiguration = OpenVPN.ConfigurationBuilder().build() + parameters = OpenVPNTunnelProvider.ConfigurationBuilder(sessionConfiguration: sessionConfiguration).build() + + trustedNetworks = TrustedNetworks() + } + + // MARK: ConnectionProfile + + public var context: Context { + return .host + } + + public let id: String + + public var username: String? + + public var requiresCredentials: Bool { + return false + } + + public var trustedNetworks: TrustedNetworks! + + public var networkChoices: ProfileNetworkChoices? + + public var manualNetworkSettings: ProfileNetworkSettings? + + public func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration { + guard let endpointProtocols = parameters.sessionConfiguration.endpointProtocols, !endpointProtocols.isEmpty else { + preconditionFailure("No endpointProtocols") + } + + // XXX: copy paste, error prone + var builder = parameters.builder() + builder.shouldDebug = configuration.shouldDebug + builder.debugLogFormat = configuration.debugLogFormat + builder.masksPrivateData = configuration.masksPrivateData + + if let address = customAddress { + builder.prefersResolvedAddresses = true + builder.resolvedAddresses = [address] + } + + // forcibly override hostname with profile hostname (never nil) + var sessionBuilder = builder.sessionConfiguration.builder() + sessionBuilder.hostname = hostname + sessionBuilder.tlsSecurityLevel = 0 // lowest, tolerate widest range of certificates + if sessionBuilder.mtu == nil { + sessionBuilder.mtu = configuration.sessionConfiguration.mtu + } + + if let proto = customProtocol { + sessionBuilder.endpointProtocols = [proto] + } else { + + // restrict "Any" protocol to UDP, unless there are no UDP endpoints + let allEndpoints = builder.sessionConfiguration.endpointProtocols + var endpoints = allEndpoints?.filter { $0.socketType == .udp } + if endpoints?.isEmpty ?? true { + endpoints = allEndpoints + } + sessionBuilder.endpointProtocols = endpoints + } + + builder.sessionConfiguration = sessionBuilder.build() + + return builder.build() + } +} + +public extension HostConnectionProfile { + static func ==(lhs: HostConnectionProfile, rhs: HostConnectionProfile) -> Bool { + return lhs.id == rhs.id + } +} + +public extension HostConnectionProfile { + var mainAddress: String? { + return hostname + } + + var addresses: [String] { + return [hostname] + } + + var protocols: [EndpointProtocol] { + return parameters.sessionConfiguration.endpointProtocols ?? [] + } + + var canCustomizeEndpoint: Bool { + return true + } +} diff --git a/Passepartout/Core/Sources/Model/Profiles/PlaceholderConnectionProfile.swift b/Passepartout/Core/Sources/Model/Profiles/PlaceholderConnectionProfile.swift new file mode 100644 index 00000000..601f9d45 --- /dev/null +++ b/Passepartout/Core/Sources/Model/Profiles/PlaceholderConnectionProfile.swift @@ -0,0 +1,76 @@ +// +// PlaceholderConnectionProfile.swift +// Passepartout +// +// Created by Davide De Rosa on 11/6/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit + +public class PlaceholderConnectionProfile: ConnectionProfile { + public let context: Context + + public let id: String + + public var username: String? = nil + + public var requiresCredentials: Bool = false + + public var trustedNetworks: TrustedNetworks! { + get { + fatalError("Getting trustedNetworks of a PlaceholderConnectionProfile") + } + set { + fatalError("Setting trustedNetworks of a PlaceholderConnectionProfile") + } + } + + public var networkChoices: ProfileNetworkChoices? + + public var manualNetworkSettings: ProfileNetworkSettings? + + public func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration { + fatalError("Generating configuration from a PlaceholderConnectionProfile") + } + + public var mainAddress: String? = nil + + public var addresses: [String] = [] + + public var protocols: [EndpointProtocol] = [] + + public var canCustomizeEndpoint: Bool = false + + public var customAddress: String? + + public var customProtocol: EndpointProtocol? + + public init(_ context: Context, _ id: String) { + self.context = context + self.id = id + } + + public init(_ key: ProfileKey) { + context = key.context + id = key.id + } +} diff --git a/Passepartout/Core/Sources/Model/Profiles/PoolCategory.swift b/Passepartout/Core/Sources/Model/Profiles/PoolCategory.swift new file mode 100644 index 00000000..28d47010 --- /dev/null +++ b/Passepartout/Core/Sources/Model/Profiles/PoolCategory.swift @@ -0,0 +1,40 @@ +// +// PoolCategory.swift +// Passepartout +// +// Created by Davide De Rosa on 4/11/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation + +public struct PoolCategory: Codable { + public let name: String + + public let groups: [PoolGroup] + + public let presets: [String]? + + public init(name: String, groups: [PoolGroup], presets: [String]?) { + self.name = name + self.groups = groups + self.presets = presets + } +} diff --git a/Passepartout/Core/Sources/Model/Profiles/ProfileKey.swift b/Passepartout/Core/Sources/Model/Profiles/ProfileKey.swift new file mode 100644 index 00000000..dabfd56f --- /dev/null +++ b/Passepartout/Core/Sources/Model/Profiles/ProfileKey.swift @@ -0,0 +1,77 @@ +// +// ProfileKey.swift +// Passepartout +// +// Created by Davide De Rosa on 11/6/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation + +public struct ProfileKey: RawRepresentable, Hashable, Codable, CustomStringConvertible { + private static let separator: Character = "." + + public let context: Context + + public let id: String + + public init(_ context: Context, _ id: String) { + self.context = context + self.id = id + } + + public init(_ profile: ConnectionProfile) { + context = profile.context + id = profile.id + } + + public init(_ name: Infrastructure.Name) { + context = .provider + id = name + } + + // MARK: RawRepresentable + + public var rawValue: String { + return "\(context)\(ProfileKey.separator)\(id)" + } + + public init?(rawValue: String) { + guard let separatorIndex = rawValue.firstIndex(of: ProfileKey.separator) else { + return nil + } + + let contextValue = rawValue[rawValue.startIndex... +// + +import Foundation +import TunnelKit + +public class ProviderConnectionProfile: ConnectionProfile, Codable, Equatable { + public let name: Infrastructure.Name + + public var infrastructure: Infrastructure { + guard let infra = InfrastructureFactory.shared.infrastructure(forName: name) else { + fatalError("No infrastructure found for '\(name)'") + } + return infra + } + + public var poolId: String { + didSet { + validateEndpoint() + } + } + + public var pool: Pool? { + return infrastructure.pool(for: poolId) + } + + public var presetId: String { + didSet { + validateEndpoint() + } + } + + public var preset: InfrastructurePreset? { + return infrastructure.preset(for: presetId) + } + + public var customAddress: String? + + public var customProtocol: EndpointProtocol? + + public var favoriteGroupIds: [String]? + + public init(name: Infrastructure.Name) { + self.name = name + poolId = "" + presetId = "" + + username = nil + + poolId = infrastructure.defaultPool()?.id ?? infrastructure.defaults.pool + presetId = infrastructure.defaults.preset + + trustedNetworks = TrustedNetworks() + favoriteGroupIds = [] + } + + public func setSupportedPreset() { + guard let pool = pool else { + return + } + let supported = pool.supportedPresetIds(in: infrastructure) + if let current = preset?.id, !supported.contains(current), let fallback = supported.first { + presetId = fallback + } + } + + private func validateEndpoint() { + guard let pool = pool, let preset = preset else { + customAddress = nil + customProtocol = nil + return + } + if let address = customAddress, !pool.hasAddress(address) { + customAddress = nil + } + if let proto = customProtocol, !preset.hasProtocol(proto) { + customProtocol = nil + } + } + + // MARK: ConnectionProfile + + public var context: Context { + return .provider + } + + public var id: String { + return name + } + + public var username: String? + + public var requiresCredentials: Bool { + return true + } + + public var trustedNetworks: TrustedNetworks! + + public var networkChoices: ProfileNetworkChoices? + + public var manualNetworkSettings: ProfileNetworkSettings? + + public func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration { + guard let pool = pool else { + preconditionFailure("Nil pool?") + } + guard let preset = preset else { + preconditionFailure("Nil preset?") + } + +// assert(!pool.numericAddresses.isEmpty) + + // XXX: copy paste, error prone + var builder = preset.configuration.builder() + builder.shouldDebug = configuration.shouldDebug + builder.debugLogFormat = configuration.debugLogFormat + builder.masksPrivateData = configuration.masksPrivateData + + do { + try preset.injectExternalConfiguration(&builder, with: name, pool: pool) + } catch { + throw ApplicationError.externalResources + } + + if let address = customAddress { + builder.prefersResolvedAddresses = true + builder.resolvedAddresses = [address] + } else if builder.sessionConfiguration.hostname == nil || (pool.isResolved ?? false) { + builder.prefersResolvedAddresses = true + builder.resolvedAddresses = pool.addresses() + } else { + builder.prefersResolvedAddresses = !preferences.resolvesHostname + builder.resolvedAddresses = pool.addresses() + } + + var sessionBuilder = builder.sessionConfiguration.builder() + if let proto = customProtocol { + sessionBuilder.endpointProtocols = [proto] + } else { + + // restrict "Any" protocol to UDP, unless there are no UDP endpoints + let allEndpoints = builder.sessionConfiguration.endpointProtocols + var endpoints = allEndpoints?.filter { $0.socketType == .udp } + if endpoints?.isEmpty ?? true { + endpoints = allEndpoints + } + + sessionBuilder.endpointProtocols = endpoints +// sessionBuilder.endpointProtocols = [ +// EndpointProtocol(.udp, 8080), +// EndpointProtocol(.tcp, 443) +// ] + } + sessionBuilder.routingPolicies = [.IPv4, .IPv6] + if sessionBuilder.mtu == nil { + sessionBuilder.mtu = configuration.sessionConfiguration.mtu + } + builder.sessionConfiguration = sessionBuilder.build() + + return builder.build() + } +} + +public extension ProviderConnectionProfile { + static func ==(lhs: ProviderConnectionProfile, rhs: ProviderConnectionProfile) -> Bool { + return lhs.id == rhs.id + } +} + +public extension ProviderConnectionProfile { + var mainAddress: String? { + guard let pool = pool else { + assertionFailure("Getting provider main address but no pool set") + return nil + } + return pool.hostname + } + + var addresses: [String] { + var addrs = pool?.addresses() ?? [] + if let pool = pool, pool.hostname == nil, !(pool.isResolved ?? false), let externalHostname = try? preset?.externalConfiguration(forKey: .hostname, infrastructureName: infrastructure.name, pool: pool) as? String { + addrs.insert(externalHostname, at: 0) + } + return addrs + } + + var protocols: [EndpointProtocol] { + return preset?.configuration.sessionConfiguration.endpointProtocols ?? [] + } + + var canCustomizeEndpoint: Bool { + return true + } +} + +public extension ConnectionService { + func setPoolId(_ poolId: String, forProviderProfile profile: ProviderConnectionProfile) { + profile.poolId = poolId + delegate?.connectionService(didUpdate: profile) + } +} diff --git a/Passepartout/Core/Sources/Model/SessionProxy+Communication.swift b/Passepartout/Core/Sources/Model/SessionProxy+Communication.swift new file mode 100644 index 00000000..df75575d --- /dev/null +++ b/Passepartout/Core/Sources/Model/SessionProxy+Communication.swift @@ -0,0 +1,42 @@ +// +// SessionProxy+Communication.swift +// Passepartout +// +// Created by Davide De Rosa on 9/4/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit + +public extension OpenVPN.ConfigurationBuilder { +// mutating func copyCommunication(from other: OpenVPN.ConfigurationBuilder) { +// cipher = other.cipher +// digest = other.digest +// compressionFraming = other.compressionFraming +// } + + func canCommunicate(with other: OpenVPN.Configuration) -> Bool { + return + (cipher == other.cipher) && + ((digest == other.digest) || fallbackCipher.embedsDigest) && + (compressionFraming == other.compressionFraming) + } +} diff --git a/Passepartout/Core/Sources/Model/TransientStore.swift b/Passepartout/Core/Sources/Model/TransientStore.swift new file mode 100644 index 00000000..de041ace --- /dev/null +++ b/Passepartout/Core/Sources/Model/TransientStore.swift @@ -0,0 +1,255 @@ +// +// TransientStore.swift +// Passepartout +// +// Created by Davide De Rosa on 7/16/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit +import SwiftyBeaver + +private let log = SwiftyBeaver.self + +public class TransientStore { + private struct Keys { + static let didHandleSubreddit = "DidHandleSubreddit" + + static let masksPrivateData = "MasksPrivateData" + + // migrations + + static let didMigrateHostsRoutingPolicies = "DidMigrateHostsRoutingPolicies" + + static let didMigrateDynamicProviders = "DidMigrateDynamicProviders" + + static let didMigrateHostsToUUID = "DidMigrateHostsToUUID" + + static let didMigrateKeychainContext = "didMigrateKeychainContext" + } + + public static let shared = TransientStore() + + private static var serviceURL: URL { + return GroupConstants.App.documentsURL.appendingPathComponent(AppConstants.Store.serviceFilename) + } + + public let service: ConnectionService + + public static var didHandleSubreddit: Bool { + get { + return UserDefaults.standard.bool(forKey: Keys.didHandleSubreddit) + } + set { + UserDefaults.standard.set(newValue, forKey: Keys.didHandleSubreddit) + } + } + + public static var masksPrivateData: Bool { + get { + return UserDefaults.standard.bool(forKey: Keys.masksPrivateData) + } + set { + UserDefaults.standard.set(newValue, forKey: Keys.masksPrivateData) + } + } + + public static var didMigrateHostsRoutingPolicies: Bool { + get { + return UserDefaults.standard.bool(forKey: Keys.didMigrateHostsRoutingPolicies) + } + set { + UserDefaults.standard.set(newValue, forKey: Keys.didMigrateHostsRoutingPolicies) + } + } + + public static var didMigrateDynamicProviders: Bool { + get { + return UserDefaults.standard.bool(forKey: Keys.didMigrateDynamicProviders) + } + set { + UserDefaults.standard.set(newValue, forKey: Keys.didMigrateDynamicProviders) + } + } + + public static var didMigrateHostsToUUID: Bool { + get { + return UserDefaults.standard.bool(forKey: Keys.didMigrateHostsToUUID) + } + set { + UserDefaults.standard.set(newValue, forKey: Keys.didMigrateHostsToUUID) + } + } + + public static var didMigrateKeychainContext: Bool { + get { + return UserDefaults.standard.bool(forKey: Keys.didMigrateKeychainContext) + } + set { + UserDefaults.standard.set(newValue, forKey: Keys.didMigrateKeychainContext) + } + } + + public static var baseVPNConfiguration: OpenVPNTunnelProvider.ConfigurationBuilder { + let sessionBuilder = OpenVPN.ConfigurationBuilder() + var builder = OpenVPNTunnelProvider.ConfigurationBuilder(sessionConfiguration: sessionBuilder.build()) + builder.shouldDebug = true +// builder.debugLogFormat = "$Dyyyy-MM-dd HH:mm:ss.SSS$d $L $N.$F:$l - $M" +// builder.debugLogFormat = "$DHH:mm:ss$d $N.$F:$l - $M" + builder.debugLogFormat = AppConstants.Log.debugFormat + builder.masksPrivateData = masksPrivateData + return builder + } + + private init() { + UserDefaults.standard.register(defaults: [ + Keys.didHandleSubreddit: false, + Keys.masksPrivateData: true + ]) + + TransientStore.migrateDocumentsToAppGroup() + + // this must be graceful + ConnectionService.migrateJSON(from: TransientStore.serviceURL, to: TransientStore.serviceURL) + + let cfg = TransientStore.baseVPNConfiguration.build() + do { + var data = try Data(contentsOf: TransientStore.serviceURL) + if let content = String(data: data, encoding: .utf8) { + log.verbose("Service JSON:") + log.verbose(content) + } + + // pre-parsing migrations + if let migratedData = TransientStore.migratedDataIfNecessary(fromData: data) { + data = migratedData + } + + service = try JSONDecoder().decode(ConnectionService.self, from: data) + service.baseConfiguration = cfg + + // pre-load migrations + if !TransientStore.didMigrateDynamicProviders { + service.migrateProvidersToLowercase() + TransientStore.didMigrateDynamicProviders = true + } + if !TransientStore.didMigrateHostsToUUID { + service.migrateHostsToUUID() + TransientStore.didMigrateHostsToUUID = true + } + + service.loadProfiles() + + if !TransientStore.didMigrateKeychainContext { + service.migrateKeychainContext() + TransientStore.didMigrateKeychainContext = true + } + + // post-load migrations + if !TransientStore.didMigrateHostsRoutingPolicies { + if service.reloadHostProfilesFromConfigurationFiles() { + service.saveProfiles() + } + TransientStore.didMigrateHostsRoutingPolicies = true + } + } catch let e { + log.error("Could not decode service: \(e)") + service = ConnectionService( + withAppGroup: GroupConstants.App.groupId, + baseConfiguration: cfg + ) + + // fresh install, skip all migrations + TransientStore.didMigrateHostsRoutingPolicies = true + TransientStore.didMigrateDynamicProviders = true + TransientStore.didMigrateHostsToUUID = true + TransientStore.didMigrateKeychainContext = true + +// // hardcoded loading +// _ = service.addProfile(ProviderConnectionProfile(name: .pia), credentials: nil) +// _ = service.addProfile(HostConnectionProfile(title: "vps"), credentials: Credentials(username: "foo", password: "bar")) +// service.activateProfile(service.profiles.first!) + } + service.observeVPNDataCount(milliseconds: GroupConstants.VPN.dataCountInterval) + } + + public func serialize(withProfiles: Bool) { + try? JSONEncoder().encode(service).write(to: TransientStore.serviceURL) + if withProfiles { + service.saveProfiles() + } + } + + // + + private static func migrateDocumentsToAppGroup() { + var hasMigrated = false + let oldDocumentsURL = FileManager.default.userURL(for: .documentDirectory, appending: nil) + let newDocumentsURL = GroupConstants.App.documentsURL + log.debug("App documentsURL: \(oldDocumentsURL)") + log.debug("Group documentsURL: \(newDocumentsURL)") + let fm = FileManager.default + do { + for c in try fm.contentsOfDirectory(atPath: oldDocumentsURL.path) { + guard c != "Inbox" else { + continue + } + let old = oldDocumentsURL.appendingPathComponent(c) + let new = newDocumentsURL.appendingPathComponent(c) + log.verbose("Move:") + log.verbose("\tFROM: \(old)") + log.verbose("\tTO: \(new)") + try fm.moveItem(at: old, to: new) + hasMigrated = true + } + } catch let e { + hasMigrated = false + log.error("Could not migrate documents to App Group: \(e)") + } + if hasMigrated { + log.debug("Documents migrated to App Group") + } + } + + private static func migratedDataIfNecessary(fromData data: Data) -> Data? { + guard !TransientStore.didMigrateHostsToUUID else { + return data + } + + guard var json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] else { + return nil + } + + // do JSON migrations here + migrateHostTitles(&json) + + guard let migratedData = try? JSONSerialization.data(withJSONObject: json, options: []) else { + return nil + } + return migratedData + } + + private static func migrateHostTitles(_ json: inout [String: Any]) { + if json["hostTitles"] == nil { + json["hostTitles"] = [:] + } + } +} diff --git a/Passepartout/Core/Sources/Model/TrustPolicy.swift b/Passepartout/Core/Sources/Model/TrustPolicy.swift new file mode 100644 index 00000000..b50109be --- /dev/null +++ b/Passepartout/Core/Sources/Model/TrustPolicy.swift @@ -0,0 +1,32 @@ +// +// TrustPolicy.swift +// Passepartout +// +// Created by Davide De Rosa on 9/2/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation + +public enum TrustPolicy: String, Codable { + case ignore + + case disconnect +} diff --git a/Passepartout/Core/Sources/Model/TrustedNetworks.swift b/Passepartout/Core/Sources/Model/TrustedNetworks.swift new file mode 100644 index 00000000..4e5d34ee --- /dev/null +++ b/Passepartout/Core/Sources/Model/TrustedNetworks.swift @@ -0,0 +1,41 @@ +// +// TrustPolicy.swift +// Passepartout +// +// Created by Davide De Rosa on 11/21/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation + +public struct TrustedNetworks: Codable { + #if os(iOS) + public var includesMobile = false + #else + public var includesEthernet = false + #endif + + public var includedWiFis: [String: Bool] = [:] + + public var policy: TrustPolicy = .disconnect + + public init() { + } +} diff --git a/Passepartout/Core/Sources/Services/Infrastructure+Metadata.swift b/Passepartout/Core/Sources/Services/Infrastructure+Metadata.swift new file mode 100644 index 00000000..b527d68d --- /dev/null +++ b/Passepartout/Core/Sources/Services/Infrastructure+Metadata.swift @@ -0,0 +1,57 @@ +// +// Infrastructure+Metadata.swift +// Passepartout +// +// Created by Davide De Rosa on 11/24/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import SwiftyBeaver + +private let log = SwiftyBeaver.self + +extension Infrastructure { + public struct Metadata: Codable, Hashable, Comparable, CustomStringConvertible { + public let name: Name + + public let inApp: String? + + // MARK: CustomStringConvertible + + public let description: String + + // MARK: Hashable + + public func hash(into hasher: inout Hasher) { + name.hash(into: &hasher) + } + + public static func ==(lhs: Infrastructure.Metadata, rhs: Infrastructure.Metadata) -> Bool { + return lhs.name == rhs.name + } + + // MARK: Comparable + + public static func <(lhs: Infrastructure.Metadata, rhs: Infrastructure.Metadata) -> Bool { + return lhs.name < rhs.name + } + } +} diff --git a/Passepartout/Core/Sources/Services/Infrastructure+Name.swift b/Passepartout/Core/Sources/Services/Infrastructure+Name.swift new file mode 100644 index 00000000..fcf469fc --- /dev/null +++ b/Passepartout/Core/Sources/Services/Infrastructure+Name.swift @@ -0,0 +1,53 @@ +// +// Infrastructure+Name.swift +// Passepartout +// +// Created by Davide De Rosa on 11/24/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import SwiftyBeaver + +private let log = SwiftyBeaver.self + +extension Infrastructure { + public typealias Name = String +} + +extension Infrastructure.Name { + public static let hideme = "hideme" + + public static let mullvad = "mullvad" + + public static let nordvpn = "nordvpn" + + public static let pia = "pia" + + public static let protonvpn = "protonvpn" + + public static let torguard = "torguard" + + public static let tunnelbear = "tunnelbear" + + public static let vyprvpn = "vyprvpn" + + public static let windscribe = "windscribe" +} diff --git a/Passepartout/Core/Sources/Services/Infrastructure.swift b/Passepartout/Core/Sources/Services/Infrastructure.swift new file mode 100644 index 00000000..dd3d394f --- /dev/null +++ b/Passepartout/Core/Sources/Services/Infrastructure.swift @@ -0,0 +1,124 @@ +// +// Infrastructure.swift +// Passepartout +// +// Created by Davide De Rosa on 6/11/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import SSZipArchive + +public class Infrastructure: Codable { + public struct Defaults: Codable { + public let username: String? + + public let pool: String + + public let preset: String + } + + public let build: [String: Int] + + public var buildNumber: Int { + var num: Int? + #if os(iOS) + num = build["ios"] + #else + num = build["macos"] + #endif + return num ?? 0 + } + + public let name: Name + + public let categories: [PoolCategory] + + public let presets: [InfrastructurePreset] + + public let defaults: Defaults + + public static func from(url: URL) throws -> Infrastructure { + let json = try Data(contentsOf: url) + return try JSONDecoder().decode(Infrastructure.self, from: json) + } + + public func defaultPool() -> Pool? { + return pool(withPrefix: defaults.pool) + } + + public func pool(for identifier: String) -> Pool? { + for cat in categories { + for group in cat.groups { + guard let found = group.pools.first(where: { $0.id == identifier }) else { + continue + } + return found + } + } + return nil + } + + public func pool(withPrefix prefix: String) -> Pool? { + for cat in categories { + for group in cat.groups { + guard let found = group.pools.first(where: { $0.id.hasPrefix(prefix) }) else { + continue + } + return found + } + } + return nil + } + + public func preset(for identifier: String) -> InfrastructurePreset? { + return presets.first { $0.id == identifier } + } +} + +extension Infrastructure.Name { + public var externalURL: URL { + return GroupConstants.App.externalURL.appendingPathComponent(self) + } + + public func importExternalResources(from url: URL, completionHandler: @escaping () -> Void) { + var task: () -> Void + switch self { + case .nordvpn: + task = { + SSZipArchive.unzipFile(atPath: url.path, toDestination: self.externalURL.path) + } + + default: + task = {} + } + execute(task: task, completionHandler: completionHandler) + } + + private func execute(task: @escaping () -> Void, completionHandler: @escaping () -> Void) { + let queue: DispatchQueue = .global(qos: .background) + queue.async { + task() + DispatchQueue.main.async { + completionHandler() + } + } + } +} diff --git a/Passepartout/Core/Sources/Services/InfrastructureFactory.swift b/Passepartout/Core/Sources/Services/InfrastructureFactory.swift new file mode 100644 index 00000000..15a1b1a5 --- /dev/null +++ b/Passepartout/Core/Sources/Services/InfrastructureFactory.swift @@ -0,0 +1,362 @@ +// +// InfrastructureFactory.swift +// Passepartout +// +// Created by Davide De Rosa on 9/2/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import SwiftyBeaver + +private let log = SwiftyBeaver.self + +// TODO: retain max N infrastructures at a time (LRU) + +public class InfrastructureFactory { + public static let shared = InfrastructureFactory() + + private let cachePath: URL + + fileprivate var cachedMetadata: [Infrastructure.Metadata] + + private var cachedInfrastructures: [Infrastructure.Name: Infrastructure] + + private var lastUpdate: [Infrastructure.Name: Date] + + private init() { + cachePath = GroupConstants.App.cachesURL + cachedMetadata = [] + cachedInfrastructures = [:] + lastUpdate = [:] + } + + // MARK: Storage + + public func preload() { + loadMetadata() + loadInfrastructures() + } + + public func loadMetadata() { + let decoder = JSONDecoder() + + // pick cache if newer + if Utils.isFile(at: cacheMetadataURL, newerThanFileAt: bundledMetadataURL) { + do { + let indexData = try Data(contentsOf: cacheMetadataURL) + cachedMetadata = try decoder.decode([Infrastructure.Metadata].self, from: indexData) + log.debug("Loaded metadata from cache: \(cachedMetadata)") + return + } catch let e { + log.warning("No index in cache: \(e)") + } + } else { + log.warning("Bundle is newer than cache, superseding cache for index") + } + + // fall back to bundled index + guard let bundleURL = bundledMetadataURL else { + fatalError("Unable to build index bundleURL") + } + do { + let indexData = try Data(contentsOf: bundleURL) + cachedMetadata = try decoder.decode([Infrastructure.Metadata].self, from: indexData) + log.debug("Loaded index from bundle: \(cachedMetadata)") + } catch let e { + log.error("Unable to load index from bundle: \(e)") + } + } + + public func loadInfrastructures() { + let apiPath = cachePath.appendingPathComponent(AppConstants.Store.apiDirectory) + let providersPath = apiPath.appendingPathComponent(WebServices.Group.providers.rawValue) + + log.debug("Loading cache from: \(providersPath)") + let cacheProvidersEntries: [URL] + do { + cacheProvidersEntries = try FileManager.default.contentsOfDirectory(at: providersPath, includingPropertiesForKeys: nil) + } catch let e { + log.warning("Error loading cache or nothing cached: \(e)") + + cachedMetadata.forEach { + guard let infra = bundledInfrastructure(withName: $0.name) else { + log.warning("Missing infrastructure \($0.name) from bundle") + return + } + cachedInfrastructures[$0.name] = infra + log.debug("Loaded infrastructure \($0.name) from bundle") + } + return + } + + let decoder = JSONDecoder() + for entry in cacheProvidersEntries { + let name = entry.lastPathComponent + + // skip *.json (index.json presumably) + guard !name.hasSuffix(".json") else { + continue + } + + // pick cache if newer + if Utils.isFile(at: entry, newerThanFileAt: name.bundleURL) { + let infraPath = WebServices.Endpoint.providerNetwork(name).apiURL(relativeTo: cachePath) + do { + let infraData = try Data(contentsOf: infraPath) + let infra = try decoder.decode(Infrastructure.self, from: infraData) + cachedInfrastructures[name] = infra + log.debug("Loaded infrastructure \(name) from cache") + continue + } catch let e { + log.warning("Unable to load infrastructure \(entry.lastPathComponent): \(e)") +// if let json = String(data: data, encoding: .utf8) { +// log.warning(json) +// } + } + } else { + log.warning("Bundle is newer than cache, superseding cache for \(name)") + } + + // fall back to bundle + guard let infra = bundledInfrastructure(withName: name) else { + log.warning("Missing infrastructure \(name) from bundle") + continue + } + cachedInfrastructures[name] = infra + log.debug("Loaded infrastructure \(name) from bundle") + } + + // fill up with bundled + cachedMetadata.forEach { + if cachedInfrastructures[$0.name] == nil { + guard let infra = bundledInfrastructure(withName: $0.name) else { + log.warning("Missing infrastructure \($0.name) from bundle") + return + } + cachedInfrastructures[$0.name] = infra + log.debug("Loaded infrastructure \($0.name) from bundle") + } + } + } + + public var allMetadata: [Infrastructure.Metadata] { + return cachedMetadata + } + + public func metadata(forName name: Infrastructure.Name) -> Infrastructure.Metadata? { + return cachedMetadata.first(where: { $0.name == name}) + } + + public func infrastructure(forName name: Infrastructure.Name) -> Infrastructure? { + return cachedInfrastructures[name] + } + + private func bundledInfrastructure(withName name: Infrastructure.Name) -> Infrastructure? { + guard let url = name.bundleURL else { + return nil + } + do { + return try Infrastructure.from(url: url) + } catch let e { + fatalError("Cannot parse JSON for infrastructure '\(name)': \(e)") + } + } + + // MARK: Web services + + public func updateIndex(completionHandler: @escaping (Error?) -> Void) { + WebServices.shared.providersIndex { + if let response = $0 { + self.saveIndex(with: response) + } + completionHandler($1) + } + } + + public func update(_ name: Infrastructure.Name, notBeforeInterval minInterval: TimeInterval?, completionHandler: @escaping ((Infrastructure, Date)?, Error?) -> Void) -> Bool { + let ifModifiedSince = modificationDate(forName: name) + + if let lastInfrastructureUpdate = lastUpdate[name] { + log.debug("Last update for \(name): \(lastUpdate)") + + if let minInterval = minInterval { + let elapsed = -lastInfrastructureUpdate.timeIntervalSinceNow + guard elapsed >= minInterval else { + log.warning("Skipping update, only \(elapsed) seconds elapsed (< \(minInterval))") + return false + } + } + } + + WebServices.shared.providerNetwork(with: name, ifModifiedSince: ifModifiedSince) { (response, error) in + if error == nil { + self.lastUpdate[name] = Date() + } + + guard let response = response else { + log.error("No response from web service") + DispatchQueue.main.async { + completionHandler(nil, error) + } + return + } + if response.isCached { + log.debug("Cache is up to date") + DispatchQueue.main.async { + completionHandler(nil, error) + } + return + } + guard let infra = response.value, let lastModified = response.lastModified else { + log.error("No response from web service or missing Last-Modified") + DispatchQueue.main.async { + completionHandler(nil, error) + } + return + } + let appBuild = GroupConstants.App.buildNumber + guard appBuild >= infra.buildNumber else { + log.error("Response requires app build >= \(infra.build) (found \(appBuild))") + DispatchQueue.main.async { + completionHandler(nil, error) + } + return + } + + var isNewer = true + if let bundleDate = self.bundleModificationDate(forName: name) { + log.verbose("Bundle date: \(bundleDate)") + log.verbose("Web date: \(lastModified)") + + isNewer = lastModified > bundleDate + } + guard isNewer else { + log.warning("Web service infrastructure is older than bundle, discarding") + DispatchQueue.main.async { + completionHandler(nil, error) + } + return + } + + self.save(name, with: infra, lastModified: lastModified) + + DispatchQueue.main.async { + completionHandler((infra, lastModified), nil) + } + } + return true + } + + private func saveIndex(with metadata: [Infrastructure.Metadata]) { + cachedMetadata = metadata + + let fm = FileManager.default + let url = cacheMetadataURL + do { + let parent = url.deletingLastPathComponent() + try fm.createDirectory(at: parent, withIntermediateDirectories: true, attributes: nil) + let data = try JSONEncoder().encode(metadata) + try data.write(to: url) + } catch let e { + log.error("Error saving index to cache: \(e)") + } + } + + private func save(_ name: Infrastructure.Name, with infrastructure: Infrastructure, lastModified: Date) { + cachedInfrastructures[name] = infrastructure + + let fm = FileManager.default + let url = cacheURL(forName: name) + do { + let parent = url.deletingLastPathComponent() + try fm.createDirectory(at: parent, withIntermediateDirectories: true, attributes: nil) + let data = try JSONEncoder().encode(infrastructure) + try data.write(to: url) + try fm.setAttributes([.modificationDate: lastModified], ofItemAtPath: url.path) + } catch let e { + log.error("Error saving infrastructure \(name) to cache: \(e)") + } + } + + // MARK: URLs + + private var cacheMetadataURL: URL { + return WebServices.Endpoint.providersIndex.apiURL(relativeTo: cachePath) + } + + private func cacheURL(forName name: Infrastructure.Name) -> URL { + return WebServices.Endpoint.providerNetwork(name).apiURL(relativeTo: cachePath) + } + + private var bundledMetadataURL: URL? { + return WebServices.Endpoint.providersIndex.bundleURL(in: Bundle(for: InfrastructureFactory.self)) + } + + // MARK: Modification dates + + public func modificationDate(forName name: Infrastructure.Name) -> Date? { + let optBundleDate = bundleModificationDate(forName: name) + guard let cacheDate = cacheModificationDate(forName: name) else { + return optBundleDate + } + guard let bundleDate = optBundleDate else { + return cacheDate + } + return max(cacheDate, bundleDate) + } + + private func cacheModificationDate(forName name: Infrastructure.Name) -> Date? { + let url = cacheURL(forName: name) + return FileManager.default.modificationDate(of: url.path) + } + + private func bundleModificationDate(forName name: Infrastructure.Name) -> Date? { + guard let url = name.bundleURL else { + return nil + } + return FileManager.default.modificationDate(of: url.path) + } +} + +extension Infrastructure { + public var metadata: Metadata? { + return InfrastructureFactory.shared.metadata(forName: name) + } +} + +private extension Infrastructure.Name { + var bundleURL: URL? { + return WebServices.Endpoint.providerNetwork(self).bundleURL(in: Bundle(for: InfrastructureFactory.self)) + } +} + +extension ConnectionService { + public func availableProviders() -> [Infrastructure.Metadata] { + let names = Set(ids(forContext: .provider)) + return InfrastructureFactory.shared.cachedMetadata.filter { !names.contains($0.name) } + } + + public func hasAvailableProviders() -> Bool { + var allNames = Set(InfrastructureFactory.shared.cachedMetadata.map { $0.name }) + allNames.subtract(ids(forContext: .provider)) + return !allNames.isEmpty + } +} diff --git a/Passepartout/Core/Sources/Services/InfrastructurePreset.swift b/Passepartout/Core/Sources/Services/InfrastructurePreset.swift new file mode 100644 index 00000000..ae2abf0f --- /dev/null +++ b/Passepartout/Core/Sources/Services/InfrastructurePreset.swift @@ -0,0 +1,236 @@ +// +// InfrastructurePreset.swift +// Passepartout +// +// Created by Davide De Rosa on 8/30/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit + +// supports a subset of OpenVPNTunnelProvider.Configuration +// ignores new JSON keys + +public class InfrastructurePreset: Codable { + public enum ExternalKey: String, Codable { + case ca + + case client + + case key + + case wrapKeyData = "wrap.key.data" + + case hostname + } + + public enum PresetKeys: String, CodingKey { + case id + + case name + + case comment + + case configuration = "cfg" + + case external + } + + public enum ConfigurationKeys: String, CodingKey { + case endpointProtocols = "ep" + + case cipher + + case digest = "auth" + + case ca + + case clientCertificate = "client" + + case clientKey = "key" + + case compressionFraming = "frame" + + case compressionAlgorithm = "compression" + + case keepAliveSeconds = "ping" + + case keepAliveTimeoutSeconds = "pingTimeout" + + case renegotiatesAfterSeconds = "reneg" + + case tlsWrap = "wrap" + + case checksEKU = "eku" + + case randomizeEndpoint = "random" + + case usesPIAPatches = "pia" + } + + public let id: String + + public let name: String + + public let comment: String + + public let configuration: OpenVPNTunnelProvider.Configuration + + public let external: [ExternalKey: String]? + + public func hasProtocol(_ proto: EndpointProtocol) -> Bool { + return configuration.sessionConfiguration.endpointProtocols?.firstIndex(of: proto) != nil + } + + public func externalConfiguration(forKey key: ExternalKey, infrastructureName: Infrastructure.Name, pool: Pool) throws -> Any? { + guard let pattern = external?[key] else { + return nil + } + let baseURL = infrastructureName.externalURL + switch key { + case .ca: + let filename = pattern.replacingOccurrences(of: "${id}", with: pool.id) + let caURL = baseURL.appendingPathComponent(filename) + return OpenVPN.CryptoContainer(pem: try String(contentsOf: caURL)) + + case .wrapKeyData: + let filename = pattern.replacingOccurrences(of: "${id}", with: pool.id) + let tlsKeyURL = baseURL.appendingPathComponent(filename) + let file = try String(contentsOf: tlsKeyURL) + return OpenVPN.StaticKey(file: file, direction: .client) + + case .hostname: + return pattern.replacingOccurrences(of: "${id}", with: pool.id) + + default: + break + } + return nil + } + + public func injectExternalConfiguration(_ configuration: inout OpenVPNTunnelProvider.ConfigurationBuilder, with infrastructureName: Infrastructure.Name, pool: Pool) throws { + guard let external = external, !external.isEmpty else { + return + } + + var sessionBuilder = configuration.sessionConfiguration.builder() + if let _ = external[.ca] { + sessionBuilder.ca = try externalConfiguration(forKey: .ca, infrastructureName: infrastructureName, pool: pool) as? OpenVPN.CryptoContainer + } + if let _ = external[.wrapKeyData] { + if let dummyWrap = sessionBuilder.tlsWrap { + if let staticKey = try externalConfiguration(forKey: .wrapKeyData, infrastructureName: infrastructureName, pool: pool) as? OpenVPN.StaticKey { + sessionBuilder.tlsWrap = OpenVPN.TLSWrap(strategy: dummyWrap.strategy, key: staticKey) + } + } + } + if let _ = external[.hostname] { + sessionBuilder.hostname = try externalConfiguration(forKey: .hostname, infrastructureName: infrastructureName, pool: pool) as? String + } + configuration.sessionConfiguration = sessionBuilder.build() + } + + // MARK: Codable + + public required init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: PresetKeys.self) + id = try container.decode(String.self, forKey: .id) + name = try container.decode(String.self, forKey: .name) + comment = try container.decode(String.self, forKey: .comment) + if let rawExternal = try container.decodeIfPresent([String: String].self, forKey: .external) { + var remapped: [ExternalKey: String] = [:] + for entry in rawExternal { + guard let key = ExternalKey(rawValue: entry.key) else { + continue + } + remapped[key] = entry.value + } + external = remapped + } else { + external = nil + } + + let cfgContainer = try container.nestedContainer(keyedBy: ConfigurationKeys.self, forKey: .configuration) + + var sessionBuilder = OpenVPN.ConfigurationBuilder() + sessionBuilder.cipher = try cfgContainer.decode(OpenVPN.Cipher.self, forKey: .cipher) + if let digest = try cfgContainer.decodeIfPresent(OpenVPN.Digest.self, forKey: .digest) { + sessionBuilder.digest = digest + } + sessionBuilder.compressionFraming = try cfgContainer.decode(OpenVPN.CompressionFraming.self, forKey: .compressionFraming) + sessionBuilder.compressionAlgorithm = try cfgContainer.decodeIfPresent(OpenVPN.CompressionAlgorithm.self, forKey: .compressionAlgorithm) ?? .disabled + sessionBuilder.ca = try cfgContainer.decodeIfPresent(OpenVPN.CryptoContainer.self, forKey: .ca) + sessionBuilder.clientCertificate = try cfgContainer.decodeIfPresent(OpenVPN.CryptoContainer.self, forKey: .clientCertificate) + sessionBuilder.clientKey = try cfgContainer.decodeIfPresent(OpenVPN.CryptoContainer.self, forKey: .clientKey) + sessionBuilder.tlsWrap = try cfgContainer.decodeIfPresent(OpenVPN.TLSWrap.self, forKey: .tlsWrap) + sessionBuilder.keepAliveInterval = try cfgContainer.decodeIfPresent(TimeInterval.self, forKey: .keepAliveSeconds) + sessionBuilder.keepAliveTimeout = try cfgContainer.decodeIfPresent(TimeInterval.self, forKey: .keepAliveTimeoutSeconds) + sessionBuilder.renegotiatesAfter = try cfgContainer.decodeIfPresent(TimeInterval.self, forKey: .renegotiatesAfterSeconds) + sessionBuilder.endpointProtocols = try cfgContainer.decode([EndpointProtocol].self, forKey: .endpointProtocols) + sessionBuilder.checksEKU = try cfgContainer.decodeIfPresent(Bool.self, forKey: .checksEKU) ?? false + sessionBuilder.randomizeEndpoint = try cfgContainer.decodeIfPresent(Bool.self, forKey: .randomizeEndpoint) ?? false + sessionBuilder.usesPIAPatches = try cfgContainer.decodeIfPresent(Bool.self, forKey: .usesPIAPatches) ?? false + + // default to server settings + sessionBuilder.routingPolicies = nil + + let builder = OpenVPNTunnelProvider.ConfigurationBuilder(sessionConfiguration: sessionBuilder.build()) + configuration = builder.build() + } + + public func encode(to encoder: Encoder) throws { + guard let ca = configuration.sessionConfiguration.ca else { + fatalError("Could not encode nil ca") + } + guard let endpointProtocols = configuration.sessionConfiguration.endpointProtocols else { + fatalError("Could not encode nil endpointProtocols") + } + + var container = encoder.container(keyedBy: PresetKeys.self) + try container.encode(id, forKey: .id) + try container.encode(name, forKey: .name) + try container.encode(comment, forKey: .comment) + if let external = external { + var rawExternal: [String: String] = [:] + for entry in external { + rawExternal[entry.key.rawValue] = entry.value + } + try container.encode(rawExternal, forKey: .external) + } + + var cfgContainer = container.nestedContainer(keyedBy: ConfigurationKeys.self, forKey: .configuration) + try cfgContainer.encode(configuration.sessionConfiguration.cipher, forKey: .cipher) + try cfgContainer.encode(configuration.sessionConfiguration.digest, forKey: .digest) + try cfgContainer.encode(configuration.sessionConfiguration.compressionFraming, forKey: .compressionFraming) + try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.compressionAlgorithm, forKey: .compressionAlgorithm) + try cfgContainer.encodeIfPresent(ca, forKey: .ca) + try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.clientCertificate, forKey: .clientCertificate) + try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.clientKey, forKey: .clientKey) + try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.tlsWrap, forKey: .tlsWrap) + try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.keepAliveInterval, forKey: .keepAliveSeconds) + try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.keepAliveTimeout, forKey: .keepAliveTimeoutSeconds) + try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.renegotiatesAfter, forKey: .renegotiatesAfterSeconds) + try cfgContainer.encode(endpointProtocols, forKey: .endpointProtocols) + try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.checksEKU, forKey: .checksEKU) + try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.randomizeEndpoint, forKey: .randomizeEndpoint) + try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.usesPIAPatches, forKey: .usesPIAPatches) + } +} diff --git a/Passepartout/Core/Sources/Services/Pool.swift b/Passepartout/Core/Sources/Services/Pool.swift new file mode 100644 index 00000000..e836da97 --- /dev/null +++ b/Passepartout/Core/Sources/Services/Pool.swift @@ -0,0 +1,179 @@ +// +// Pool.swift +// Passepartout +// +// Created by Davide De Rosa on 6/11/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import TunnelKit + +public class Pool: Codable, Hashable { + public enum CodingKeys: String, CodingKey { + case id + + case country + + case extraCountries = "extra_countries" + + case area + + case num + + case tags + +// case location + + case hostname + + case isResolved = "resolved" + + case numericAddresses = "addrs" + } + + public let id: String + + public let country: String + + public let extraCountries: [String]? + + public let area: String? + + public let num: Int? + + public let tags: [String]? + +// public let location: (Double, Double) + + public let hostname: String? + + public let isResolved: Bool? + + public let numericAddresses: [UInt32]? + + // XXX: inefficient but convenient field (not serialized) + public func category(in infrastructure: Infrastructure) -> PoolCategory? { + for category in infrastructure.categories { + for group in category.groups { + for pool in group.pools { + if pool.id == id { + return category + } + } + } + } + return nil + } + + public func supportedPresetIds(in infrastructure: Infrastructure) -> [String] { + let poolCategory = category(in: infrastructure) + return poolCategory?.presets ?? infrastructure.presets.map { $0.id } + } + + public func hasAddress(_ address: String) -> Bool { + guard let numericAddresses = numericAddresses else { + return false + } + guard let ipv4 = DNSResolver.ipv4(fromString: address) else { + return false + } + return numericAddresses.contains(ipv4) + } + + // XXX: inefficient, can't easily use lazy on struct + public func addresses() -> [String] { + var addrs = numericAddresses?.map { DNSResolver.string(fromIPv4: $0) } ?? [] + if let hostname = hostname { + addrs.insert(hostname, at: 0) + } + return addrs + } + + // MARK: Equatable + + public static func == (lhs: Pool, rhs: Pool) -> Bool { + return lhs.id == rhs.id + } + + // MARK: Hashable + + public func hash(into hasher: inout Hasher) { + id.hash(into: &hasher) + } +} + +extension Pool { + public var localizedCountry: String { + return Utils.localizedCountry(country) + } + + public var localizedId: String { + var comps: [String] = [localizedCountry] + if let secondaryId = optionalSecondaryId { + comps.append(secondaryId) + } + return comps.joined(separator: " - ") + } + + public var secondaryId: String { + return optionalSecondaryId ?? "" + } + + private var optionalSecondaryId: String? { + var comps: [String] = [] + if let extraCountries = extraCountries { + comps.append(contentsOf: extraCountries.map { Utils.localizedCountry($0) }) + } + if let area = area { +// comps.append(area.uppercased()) + comps.append(area.capitalized) + } + if let num = num { + comps.append("#\(num)") + } + guard !comps.isEmpty else { + return nil + } + var str = comps.joined(separator: " ") + if let tags = tags { + let suffix = tags.map { $0.uppercased() }.joined(separator: ",") + str = "\(str) (\(suffix))" + } + return str + } +} + +public extension Array where Element: Pool { + func sortedPools() -> [Element] { + return sorted { + guard let lnum = $0.num else { + return true + } + guard let rnum = $1.num else { + return false + } + guard lnum != rnum else { + return $0.secondaryId < $1.secondaryId + } + return lnum < rnum + } + } +} diff --git a/Passepartout/Core/Sources/Services/PoolGroup.swift b/Passepartout/Core/Sources/Services/PoolGroup.swift new file mode 100644 index 00000000..0d8a7ee0 --- /dev/null +++ b/Passepartout/Core/Sources/Services/PoolGroup.swift @@ -0,0 +1,92 @@ +// +// PoolGroup.swift +// Passepartout +// +// Created by Davide De Rosa on 4/6/19. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation + +public class PoolGroup: Codable, Hashable, Comparable, CustomStringConvertible { + public let country: String + + public let area: String? + + public let pools: [Pool] + + private var id: String { + var id = country + if let area = area { + id += area + } + return id + } + + private var localizedId: String { + var localizedId = Utils.localizedCountry(country) + if let area = area { + localizedId += area + } + return localizedId + } + + // MARK: Equatable + + public static func ==(lhs: PoolGroup, rhs: PoolGroup) -> Bool { + return lhs.localizedId == rhs.localizedId + } + + // MARK: Hashable + + public func hash(into hasher: inout Hasher) { + id.hash(into: &hasher) + } + + // MARK: Comparable + + public static func <(lhs: PoolGroup, rhs: PoolGroup) -> Bool { + return lhs.localizedId < rhs.localizedId + } + + // MARK: CustomStringConvertible + + public var description: String { + return "{\(country), \(area ?? "--")}" + } +} + +extension PoolGroup { + public var localizedCountry: String { + return Utils.localizedCountry(country) + } +} + +extension PoolGroup { + public func uniqueId(in category: PoolCategory) -> String { + var components: [String] = [] + components.append(category.name) + components.append(country) + if let area = area { + components.append(area) + } + return components.joined(separator: "/") + } +} diff --git a/Passepartout/Core/Sources/Services/WebServices.swift b/Passepartout/Core/Sources/Services/WebServices.swift new file mode 100644 index 00000000..8f7b2851 --- /dev/null +++ b/Passepartout/Core/Sources/Services/WebServices.swift @@ -0,0 +1,97 @@ +// +// WebServices.swift +// Passepartout +// +// Created by Davide De Rosa on 9/14/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +import Convenience + +public class WebServices { + public static let version = "v4" + + public enum Group: String { + case providers + } + + public enum Endpoint: Convenience.Endpoint { + case providersIndex + + case providerNetwork(Infrastructure.Name) + + var pathName: String { + switch self { + case .providersIndex: + return "\(Group.providers.rawValue)/index" + + case .providerNetwork(let name): + return "\(Group.providers.rawValue)/\(name)/net" + } + } + + var fileType: String { + return "json" + } + + var path: String { + return "\(pathName).\(fileType)" + } + + public func apiURL(relativeTo url: URL) -> URL { + return url.appendingPathComponent(AppConstants.Store.apiDirectory).appendingPathComponent(path) + } + + public func bundleURL(in bundle: Bundle) -> URL? { + return bundle.url(forResource: "\(AppConstants.Store.apiDirectory)/\(pathName)", withExtension: fileType) + } + + // MARK: Endpoint + + public var url: URL { + return AppConstants.Services.apiURL(version: WebServices.version, path: path) + } + } + + public static let shared = WebServices() + + private let ws: ReadonlyWebServices + + private init() { + ws = ReadonlyWebServices() + ws.timeout = AppConstants.Services.timeout + } + + public func providersIndex(completionHandler: @escaping ([Infrastructure.Metadata]?, Error?) -> Void) { + let request = ws.get(WebServices.Endpoint.providersIndex) + ws.parse([Infrastructure.Metadata].self, request: request) { + completionHandler($0?.value, $1) + } + } + + public func providerNetwork(with name: Infrastructure.Name, ifModifiedSince lastModified: Date?, completionHandler: @escaping (Response?, Error?) -> Void) { + var request = ws.get(WebServices.Endpoint.providerNetwork(name)) + if let lastModified = lastModified { + request.addValue(ResponseParser.lastModifiedString(date: lastModified), forHTTPHeaderField: "If-Modified-Since") + } + ws.parse(Infrastructure.self, request: request, completionHandler: completionHandler) + } +} diff --git a/Passepartout/Core/Sources/UI/TrustedNetworksUI.swift b/Passepartout/Core/Sources/UI/TrustedNetworksUI.swift new file mode 100644 index 00000000..09659ef1 --- /dev/null +++ b/Passepartout/Core/Sources/UI/TrustedNetworksUI.swift @@ -0,0 +1,219 @@ +// +// TrustedNetworksUI.swift +// Passepartout +// +// Created by Davide De Rosa on 6/21/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation + +public protocol TrustedNetworksUIDelegate: class { + func trustedNetworksCouldDisconnect(_: TrustedNetworksUI) -> Bool + + func trustedNetworksShouldConfirmDisconnection(_: TrustedNetworksUI, triggeredAt rowIndex: Int, completionHandler: @escaping () -> Void) + + func trustedNetworks(_: TrustedNetworksUI, shouldInsertWifiAt rowIndex: Int) + + func trustedNetworks(_: TrustedNetworksUI, shouldReloadWifiAt rowIndex: Int, isTrusted: Bool) + + func trustedNetworks(_: TrustedNetworksUI, shouldDeleteWifiAt rowIndex: Int) + + func trustedNetworksShouldReinstall(_: TrustedNetworksUI) +} + +public class TrustedNetworksUI { + public enum RowType { + case trustsMobile + + case trustedWiFi + + case addCurrentWiFi + } + + public private(set) var trustedWifis: [String: Bool] + + public private(set) var sortedWifis: [String] + + #if os(iOS) + private let hasMobileNetwork: Bool + + public private(set) var trustsMobileNetwork: Bool + + public private(set) var rows: [RowType] + #endif + + public weak var delegate: TrustedNetworksUIDelegate? + + public init() { + trustedWifis = [:] + sortedWifis = [] + + #if os(iOS) + hasMobileNetwork = Utils.hasCellularData() + trustsMobileNetwork = false + rows = [] + #endif + } + + public func load(from trustedNetworks: TrustedNetworks) { + trustedWifis = trustedNetworks.includedWiFis + sortedWifis = trustedWifis.keys.sorted() + + #if os(iOS) + trustsMobileNetwork = trustedNetworks.includesMobile + rows.removeAll() + if hasMobileNetwork { + rows.append(.trustsMobile) + } + for _ in sortedWifis { + rows.append(.trustedWiFi) + } + rows.append(.addCurrentWiFi) + #endif + } + + #if os(iOS) + public func setMobile(_ isTrusted: Bool) { + let completionHandler: () -> Void = { + self.trustsMobileNetwork = isTrusted + self.delegate?.trustedNetworksShouldReinstall(self) + } + guard !(isTrusted && mightDisconnect()) else { + delegate?.trustedNetworksShouldConfirmDisconnection(self, triggeredAt: 0, completionHandler: completionHandler) + return + } + completionHandler() + } + #endif + + public func wifi(at rowIndex: Int) -> (String, Bool) { + let index = indexForWifi(at: rowIndex) + let wifiName = sortedWifis[index] + let isTrusted = trustedWifis[wifiName] ?? false + return (wifiName, isTrusted) + } + + public func addCurrentWifi() -> Bool { + guard let currentWifi = Utils.currentWifiNetworkName() else { + return false + } + addWifi(currentWifi) + return true + } + + public func addWifi(_ wifiToAdd: String) { + var index = 0 + var isDuplicate = false + for wifi in sortedWifis { + guard wifiToAdd != wifi else { + isDuplicate = true + break + } + guard wifiToAdd > wifi else { + break + } + index += 1 + } + + guard !(trustedWifis[wifiToAdd] ?? false) else { + return + } + + let isTrusted = false + let rowIndex = rowIndexForWifi(at: index) + trustedWifis[wifiToAdd] = isTrusted + + if !isDuplicate { + sortedWifis.insert(wifiToAdd, at: index) + #if os(iOS) + rows.insert(.trustedWiFi, at: rowIndex) + #endif + delegate?.trustedNetworks(self, shouldInsertWifiAt: rowIndex) + } else { + delegate?.trustedNetworks(self, shouldReloadWifiAt: rowIndex, isTrusted: isTrusted) + } + + delegate?.trustedNetworksShouldReinstall(self) + } + + public func removeWifi(at rowIndex: Int) { + let index = indexForWifi(at: rowIndex) + let removedWifi = sortedWifis.remove(at: index) + trustedWifis.removeValue(forKey: removedWifi) + #if os(iOS) + rows.remove(at: rowIndex) + #endif + + delegate?.trustedNetworks(self, shouldDeleteWifiAt: rowIndex) + delegate?.trustedNetworksShouldReinstall(self) + } + + public func enableWifi(at rowIndex: Int) { + let index = indexForWifi(at: rowIndex) + let wifi = sortedWifis[index] + + let completionHandler: () -> Void = { + self.trustedWifis[wifi] = true + + self.delegate?.trustedNetworks(self, shouldReloadWifiAt: rowIndex, isTrusted: true) + self.delegate?.trustedNetworksShouldReinstall(self) + } + guard !mightDisconnect() else { + delegate?.trustedNetworksShouldConfirmDisconnection(self, triggeredAt: rowIndex, completionHandler: completionHandler) + return + } + completionHandler() + } + + public func disableWifi(at rowIndex: Int) { + let index = indexForWifi(at: rowIndex) + let wifi = sortedWifis[index] + + trustedWifis[wifi] = false + + delegate?.trustedNetworks(self, shouldReloadWifiAt: rowIndex, isTrusted: false) + delegate?.trustedNetworksShouldReinstall(self) + } + + public func isTrusted(wifi: String) -> Bool { + return trustedWifis[wifi] ?? false + } + + private func indexForWifi(at rowIndex: Int) -> Int { + #if os(iOS) + return hasMobileNetwork ? (rowIndex - 1) : rowIndex + #else + return rowIndex + #endif + } + + private func rowIndexForWifi(at index: Int) -> Int { + #if os(iOS) + return index + (hasMobileNetwork ? 1 : 0) + #else + return index + #endif + } + + private func mightDisconnect() -> Bool { + return delegate?.trustedNetworksCouldDisconnect(self) ?? false + } +} diff --git a/Passepartout/Core/Sources/Utils.swift b/Passepartout/Core/Sources/Utils.swift new file mode 100644 index 00000000..d49828b5 --- /dev/null +++ b/Passepartout/Core/Sources/Utils.swift @@ -0,0 +1,200 @@ +// +// Utils.swift +// Passepartout +// +// Created by Davide De Rosa on 6/16/18. +// Copyright (c) 2021 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import Foundation +#if os(iOS) +import SystemConfiguration.CaptiveNetwork +#else +import CoreWLAN +#endif +import StoreKit +import SwiftyBeaver + +private let log = SwiftyBeaver.self + +public class Utils { + fileprivate static let timestampFormatter: DateFormatter = { + let fmt = DateFormatter() + fmt.dateStyle = .medium + fmt.timeStyle = .medium + return fmt + }() + + fileprivate static let componentsFormatter: DateComponentsFormatter = { + let fmt = DateComponentsFormatter() + fmt.unitsStyle = .full + return fmt + }() + + #if targetEnvironment(simulator) + public static func hasCellularData() -> Bool { + return true + } + #else + public static func hasCellularData() -> Bool { + var addrs: UnsafeMutablePointer? + guard getifaddrs(&addrs) == 0 else { + return false + } + var isFound = false + var cursor = addrs?.pointee + while let ifa = cursor { + let name = String(cString: ifa.ifa_name) + if name == "pdp_ip0" { + isFound = true + break + } + cursor = ifa.ifa_next?.pointee + } + freeifaddrs(addrs) + return isFound + } + #endif + + #if targetEnvironment(simulator) + public static func currentWifiNetworkName() -> String? { +// return nil + return ["My Home Network", "Safe Wi-Fi", "Friend's House"].randomElement() + } + #else + public static func currentWifiNetworkName() -> String? { + #if os(iOS) + guard let interfaceNames = CNCopySupportedInterfaces() as? [CFString] else { + return nil + } + for name in interfaceNames { + guard let iface = CNCopyCurrentNetworkInfo(name) as? [String: Any] else { + continue + } + guard let ssid = iface[kCNNetworkInfoKeySSID as String] as? String else { + continue + } + return ssid + } + return nil + #else + return CWWiFiClient.shared().interface()?.ssid() + #endif + } + #endif + + public static func regex(_ pattern: String) -> NSRegularExpression { + return try! NSRegularExpression(pattern: pattern, options: []) + } + + public static func checkConnectivityURL(_ url: URL, timeout: TimeInterval, completionHandler: @escaping (Bool) -> Void) { + let session = URLSession(configuration: .ephemeral) + let request = URLRequest(url: url, cachePolicy: .reloadIgnoringLocalAndRemoteCacheData, timeoutInterval: timeout) + + log.info("Check connectivity via \(url)") + session.dataTask(with: request) { (_, response, error) in + if let response = response as? HTTPURLResponse { + log.debug("Response code: \(response.statusCode)") + } + if let error = error { + log.error("Connectivity failed: \(error)") + } else { + log.info("Connectivity succeeded!") + } + DispatchQueue.main.async { + completionHandler(error == nil) + } + }.resume() + } + + public static func localizedCountry(_ code: String) -> String { + return Locale.current.localizedString(forRegionCode: code) ?? code + } + + public static func isFile(at url1: URL, newerThanFileAt url2: URL?) -> Bool { + guard let date1 = FileManager.default.modificationDate(of: url1.path) else { + return false + } + guard let url2 = url2, let date2 = FileManager.default.modificationDate(of: url2.path) else { + return true + } + return date1 > date2 + } + + private init() { + } +} + +public extension Date { + var timestamp: String { + return Utils.timestampFormatter.string(from: self) + } +} + +public extension TimeInterval { + var localized: String { + guard let str = Utils.componentsFormatter.string(from: self) else { + fatalError("Could not format a TimeInterval?") + } + return str + } +} + +public extension Sequence { + func stableSorted(by areInIncreasingOrder: (Element, Element) throws -> Bool) rethrows -> [Element] { + return try enumerated().sorted { + return try areInIncreasingOrder($0.element, $1.element) || + ($0.offset < $1.offset && !areInIncreasingOrder($1.element, $0.element)) + }.map { $0.element } + } +} + +public extension StringProtocol where Index == String.Index { + func nsRange(from range: Range) -> NSRange { + return NSRange(range, in: self) + } +} + +public extension CharacterSet { + static let filename: CharacterSet = { + var chars: CharacterSet = .decimalDigits + let english = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + let symbols = "-_." + chars.formUnion(CharacterSet(charactersIn: english)) + chars.formUnion(CharacterSet(charactersIn: english.lowercased())) + chars.formUnion(CharacterSet(charactersIn: symbols)) + return chars + }() +} + +public extension URL { + private static let illegalCharacterFallback = "_" + + var normalizedFilename: String { + let filename = deletingPathExtension().lastPathComponent + return filename.components(separatedBy: CharacterSet.filename.inverted).joined(separator: URL.illegalCharacterFallback) + } +} + +public extension Array where Element: CustomStringConvertible { + func sortedCaseInsensitive() -> [Element] { + return sorted { $0.description.lowercased() < $1.description.lowercased() } + } +} diff --git a/Passepartout/Tests/ConnectionService.json b/Passepartout/Tests/ConnectionService.json new file mode 100644 index 00000000..142883f8 --- /dev/null +++ b/Passepartout/Tests/ConnectionService.json @@ -0,0 +1 @@ +{"appGroup":"group.com.algoritmico.Passepartout","activeProfileId":"host.edu","tunnelConfiguration":{"endpointProtocols":["UDP:1194"],"compressionFraming":0,"digest":"SHA1","ca":"","lastErrorKey":"LastVPNError","debugLogFormat":"$DHH:mm:ss$d - $M","usesPIAPatches":false,"cipher":"AES-128-CBC","prefersResolvedAddresses":false,"shouldDebug":true,"mtu":1250,"debugLogKey":"LastVPNLog"},"preferences":{"trustPolicy":"ignore","trustsMobileNetwork":false,"disconnectsOnSleep":false,"trustedWifis":{},"resolvesHostname":true},"profiles":[{"provider":{"username":"p0000000","id":"provider.PIA","poolId":"ca-vancouver","name":"PIA","presetId":"recommended"}},{"host":{"username":"","title":"edu","hostname":"1.2.4.5","parameters":{"endpointProtocols":["UDP:1194","TCP:1194","TCP:443"],"compressionFraming":1,"digest":"SHA256","ca":"bogus+ca","clientCertificate":"bogus+client","usesPIAPatches":false,"tlsWrap":{"key":{"dir":1,"data":"bogus+static+key"},"strategy":"auth"},"cipher":"AES-256-CBC","prefersResolvedAddresses":false,"clientKey":"bogus+key","mtu":1500,"shouldDebug":false}}},{"host":{"username":"","title":"vps-udp-tc","hostname":"8.8.4.4","parameters":{"shouldDebug":false,"endpointProtocols":["UDP:1198"],"compressionFraming":1,"digest":"SHA512","ca":"bogus+ca","renegotiatesAfterSeconds":0,"usesPIAPatches":false,"tlsWrap":{"key":{"dir":1,"data":"bogus+static+key"},"strategy":"crypt"},"cipher":"AES-192-CBC","prefersResolvedAddresses":false,"clientKey":"bogus+key","mtu":1500,"keepAliveSeconds":25}}}]} diff --git a/Passepartout/Tests/ConnectionServiceTests.swift b/Passepartout/Tests/ConnectionServiceTests.swift new file mode 100644 index 00000000..45508afd --- /dev/null +++ b/Passepartout/Tests/ConnectionServiceTests.swift @@ -0,0 +1,64 @@ +// +// ConnectionServiceTests.swift +// PassepartoutTests +// +// Created by Davide De Rosa on 10/25/18. +// Copyright (c) 2020 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import XCTest +import TunnelKit +@testable import PassepartoutCore + +class ConnectionServiceTests: XCTestCase { + let url = Bundle(for: ConnectionServiceTests.self).url(forResource: "ConnectionService", withExtension: "json")! + + override func setUp() { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testParse() { + let jsonData = try! Data(contentsOf: url) + XCTAssertNoThrow(try JSONSerialization.jsonObject(with: jsonData, options: [])) + } + + func testPathExtension() { + XCTAssertTrue(privateTestPathExtension("file:///foo/bar/johndoe.json")) + XCTAssertFalse(privateTestPathExtension("file:///foo/bar/break.json.johndoe.json")) + } + + private func privateTestPathExtension(_ string: String) -> Bool { + let url = URL(string: string)! + let filename = url.lastPathComponent + guard let extRange = filename.range(of: ".json") else { + return false + } + guard url.pathExtension == "json" else { + return false + } + let name1 = String(filename[filename.startIndex..CFBundleName $(PRODUCT_NAME) CFBundlePackageType - FMWK + $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.13.1 + $(CFG_APP_VERSION) CFBundleVersion $(CURRENT_PROJECT_VERSION) diff --git a/Passepartout/Tests/InfrastructureTests.swift b/Passepartout/Tests/InfrastructureTests.swift new file mode 100644 index 00000000..6f38f2ec --- /dev/null +++ b/Passepartout/Tests/InfrastructureTests.swift @@ -0,0 +1,113 @@ +// +// InfrastructureTests.swift +// PassepartoutTests +// +// Created by Davide De Rosa on 6/11/18. +// Copyright (c) 2020 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import XCTest +import TunnelKit +@testable import PassepartoutCore + +class InfrastructureTests: XCTestCase { + private var infra: Infrastructure! + + override func setUp() { + InfrastructureFactory.shared.preload() + infra = InfrastructureFactory.shared.infrastructure(forName: .pia) + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testParsing() { + print(infra.categories) + XCTAssertEqual(infra.categories.count, 1) + } + + func testIdentifier() { + let id = "italy" + guard let pool = infra.pool(for: id) else { + XCTAssert(false) + return + } + print(pool) + XCTAssertEqual(pool.id, id) + } + + func testStableSort() { + let original: [EndpointProtocol] = [ + EndpointProtocol(.udp, 1194), + EndpointProtocol(.udp, 8080), + EndpointProtocol(.udp, 9201), + EndpointProtocol(.udp, 53), + EndpointProtocol(.udp, 1197), + EndpointProtocol(.udp, 198), + EndpointProtocol(.tcp, 443), + EndpointProtocol(.tcp, 110), + EndpointProtocol(.tcp, 80), + EndpointProtocol(.tcp, 500), + EndpointProtocol(.tcp, 501), + EndpointProtocol(.tcp, 502) + ] + var preferredType: SocketType + + preferredType = .udp + let sorted1 = original.stableSorted { + return ($0.socketType == preferredType) && ($1.socketType != preferredType) + } + XCTAssertEqual(sorted1, original) + + preferredType = .tcp + let sorted2 = original.stableSorted { + return ($0.socketType == preferredType) && ($1.socketType != preferredType) + } + XCTAssertNotEqual(sorted2, original) + } + + func testLastModified() { + let fmt = DateFormatter() + fmt.timeZone = TimeZone(abbreviation: "GMT") + fmt.dateFormat = "EEE, dd LLL yyyy HH:mm:ss zzz" + + let lmString = "Wed, 23 Oct 2019 17:06:54 GMT" + + fmt.locale = Locale(identifier: "en") + XCTAssertNotNil(fmt.date(from: lmString)) + fmt.locale = Locale(identifier: "fr-FR") + XCTAssertNil(fmt.date(from: lmString)) + } + + func testProvidersIndex() { + let ifactory = InfrastructureFactory.shared + XCTAssertNotNil(ifactory.metadata(forName: "nordvpn")) + XCTAssertNil(ifactory.metadata(forName: "expressvpn")) + + let update = expectation(description: "updateIndex") + ifactory.updateIndex { _ in + update.fulfill() + } + waitForExpectations(timeout: 10.0) { _ in + print(ifactory.allMetadata) + } + } +} diff --git a/Passepartout/Tests/UtilsTests.swift b/Passepartout/Tests/UtilsTests.swift new file mode 100644 index 00000000..e8fe04e3 --- /dev/null +++ b/Passepartout/Tests/UtilsTests.swift @@ -0,0 +1,69 @@ +// +// UtilsTests.swift +// PassepartoutTests +// +// Created by Davide De Rosa on 3/30/19. +// Copyright (c) 2020 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout 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 General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +import XCTest +@testable import PassepartoutCore + +class UtilsTests: XCTestCase { + override func setUp() { + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testDataUnitDescription() { + XCTAssertEqual(0.dataUnitDescription, "0B") + XCTAssertEqual(1.dataUnitDescription, "1B") + XCTAssertEqual(1024.dataUnitDescription, "1kB") + XCTAssertEqual(1025.dataUnitDescription, "1kB") + XCTAssertEqual(548575.dataUnitDescription, "0.52MB") + XCTAssertEqual(1048575.dataUnitDescription, "1.00MB") + XCTAssertEqual(1048576.dataUnitDescription, "1.00MB") + XCTAssertEqual(1048577.dataUnitDescription, "1.00MB") + XCTAssertEqual(600000000.dataUnitDescription, "0.56GB") + XCTAssertEqual(1073741823.dataUnitDescription, "1.00GB") + XCTAssertEqual(1073741824.dataUnitDescription, "1.00GB") + XCTAssertEqual(1073741825.dataUnitDescription, "1.00GB") + } + + func testLanguageLocalization() { + let languages = ["en", "it", "de", "pt-BR", "ru"] + let english = Locale(identifier: "en") + let italian = Locale(identifier: "it") + + let languagesEN = privateSortedLanguages(languages, with: english) + let languagesIT = privateSortedLanguages(languages, with: italian) + + XCTAssertEqual(languagesEN, ["en", "de", "it", "pt-BR", "ru"]) + XCTAssertEqual(languagesIT, ["en", "it", "pt-BR", "ru", "de"]) + } + + private func privateSortedLanguages(_ languages: [String], with locale: Locale) -> [String] { + return languages.sorted { + return locale.localizedString(forLanguageCode: $0)! < locale.localizedString(forLanguageCode: $1)! + } + } +} diff --git a/Passepartout-iOS-Tunnel/Info.plist b/Passepartout/Tunnel/Info.plist similarity index 77% rename from Passepartout-iOS-Tunnel/Info.plist rename to Passepartout/Tunnel/Info.plist index b8e5141f..975dfb35 100644 --- a/Passepartout-iOS-Tunnel/Info.plist +++ b/Passepartout/Tunnel/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Passepartout-iOS-Tunnel + PassepartoutTunnel CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -17,9 +17,11 @@ CFBundlePackageType XPC! CFBundleShortVersionString - 1.13.1 + $(CFG_APP_VERSION) CFBundleVersion - 1 + $(CURRENT_PROJECT_VERSION) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) NSExtension NSExtensionPointIdentifier @@ -27,5 +29,7 @@ NSExtensionPrincipalClass $(PRODUCT_MODULE_NAME).PacketTunnelProvider + NSHumanReadableCopyright + $(CFG_COPYRIGHT) diff --git a/Passepartout-iOS-Tunnel/PacketTunnelProvider.swift b/Passepartout/Tunnel/PacketTunnelProvider.swift similarity index 93% rename from Passepartout-iOS-Tunnel/PacketTunnelProvider.swift rename to Passepartout/Tunnel/PacketTunnelProvider.swift index 34db363e..18e49da5 100644 --- a/Passepartout-iOS-Tunnel/PacketTunnelProvider.swift +++ b/Passepartout/Tunnel/PacketTunnelProvider.swift @@ -1,8 +1,8 @@ // // PacketTunnelProvider.swift -// Passepartout-iOS-Tunnel +// Passepartout-macOS-Tunnel // -// Created by Davide De Rosa on 6/6/18. +// Created by Davide De Rosa on 6/17/18. // Copyright (c) 2021 Davide De Rosa. All rights reserved. // // https://github.com/passepartoutvpn @@ -31,7 +31,6 @@ class PacketTunnelProvider: OpenVPNTunnelProvider { dnsTimeout = GroupConstants.VPN.dnsTimeout logSeparator = GroupConstants.VPN.sessionMarker dataCountInterval = GroupConstants.VPN.dataCountInterval - fallbackDNSServers = [] super.startTunnel(options: options, completionHandler: completionHandler) } } diff --git a/Passepartout-iOS-Tunnel/Tunnel.entitlements b/Passepartout/Tunnel/Tunnel-iOS.entitlements similarity index 100% rename from Passepartout-iOS-Tunnel/Tunnel.entitlements rename to Passepartout/Tunnel/Tunnel-iOS.entitlements diff --git a/Passepartout/Tunnel/Tunnel-macOS.entitlements b/Passepartout/Tunnel/Tunnel-macOS.entitlements new file mode 100644 index 00000000..d6b0d9d9 --- /dev/null +++ b/Passepartout/Tunnel/Tunnel-macOS.entitlements @@ -0,0 +1,18 @@ + + + + + com.apple.developer.networking.networkextension + + packet-tunnel-provider + + com.apple.security.app-sandbox + + com.apple.security.application-groups + + $(TeamIdentifierPrefix)group.com.algoritmico.Passepartout + + com.apple.security.network.client + + + diff --git a/Podfile b/Podfile index 802f4c5a..09d615f4 100644 --- a/Podfile +++ b/Podfile @@ -1,5 +1,4 @@ source 'https://github.com/cocoapods/specs.git' -platform :ios, '12.0' use_frameworks! load 'Podfile.include' @@ -12,20 +11,47 @@ def shared_pods #pod_git $tunnelkit_name, $tunnelkit_specs, 'e923382' #pod_path $tunnelkit_name, $tunnelkit_specs, '..' pod 'SSZipArchive' - + pod 'Kvitto', :git => 'https://github.com/keeshux/Kvitto', :branch => 'enable-macos-spec' +end +def shared_pods_ios + shared_pods for spec in ['About', 'Alerts', 'Dialogs', 'InApp', 'Misc', 'Options', 'Persistence', 'Reviewer', 'Tables', 'WebServices'] do pod "Convenience/#{spec}", :git => 'https://github.com/keeshux/convenience', :commit => 'b30816a' end end - -target 'PassepartoutCore-iOS' do +def shared_pods_macos shared_pods - pod 'Kvitto' + for spec in ['InApp', 'Misc', 'Persistence', 'Reviewer', 'WebServices'] do + pod "Convenience/#{spec}", :git => 'https://github.com/keeshux/convenience', :commit => 'b30816a' + end end -target 'Passepartout-iOS' do - pod 'MBProgressHUD' +abstract_target 'ios' do + platform :ios, '12.0' + target 'PassepartoutCore-iOS' do + shared_pods_ios + end + target 'PassepartoutCoreTests-iOS' do + end + target 'Passepartout-iOS' do + pod 'MBProgressHUD' + end + target 'PassepartoutTunnel-iOS' do + shared_pods_ios + end end -target 'Passepartout-iOS-Tunnel' do - shared_pods + +abstract_target 'macos' do + platform :osx, '10.15' + target 'PassepartoutCore-macOS' do + shared_pods_macos + end + target 'PassepartoutCoreTests-macOS' do + end + target 'Passepartout-macOS' do + #pod 'AppCenter' + end + target 'PassepartoutTunnel-macOS' do + shared_pods_macos + end end diff --git a/Podfile.lock b/Podfile.lock index 152c1f3c..5839123c 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -49,7 +49,7 @@ DEPENDENCIES: - Convenience/Reviewer (from `https://github.com/keeshux/convenience`, commit `b30816a`) - Convenience/Tables (from `https://github.com/keeshux/convenience`, commit `b30816a`) - Convenience/WebServices (from `https://github.com/keeshux/convenience`, commit `b30816a`) - - Kvitto + - Kvitto (from `https://github.com/keeshux/Kvitto`, branch `enable-macos-spec`) - MBProgressHUD - SSZipArchive - TunnelKit/Extra/LZO (~> 3.1.0) @@ -58,7 +58,6 @@ DEPENDENCIES: SPEC REPOS: https://github.com/cocoapods/specs.git: - DTFoundation - - Kvitto - MBProgressHUD - OpenSSL-Apple - SSZipArchive @@ -69,22 +68,28 @@ EXTERNAL SOURCES: Convenience: :commit: b30816a :git: https://github.com/keeshux/convenience + Kvitto: + :branch: enable-macos-spec + :git: https://github.com/keeshux/Kvitto CHECKOUT OPTIONS: Convenience: :commit: b30816a :git: https://github.com/keeshux/convenience + Kvitto: + :commit: e263fcd1f40a6a482a0f1e424ba98009c4ad2b96 + :git: https://github.com/keeshux/Kvitto SPEC CHECKSUMS: Convenience: c805c2aff569ff735c5d69c2c2b7a9bd110fa507 DTFoundation: e7781d9fd2f202bfd451fbbf8cab71ce83b46498 - Kvitto: e5c903c656cce6bfebbf337d992184cf03cb4853 + Kvitto: 5511954b22d6c710e1a04dcbdee44ae7b3d1caeb MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406 OpenSSL-Apple: 8a8fcb06fb66f9c2f7aed45ce363668493b8e5f6 SSZipArchive: 62d4947b08730e4cda640473b0066d209ff033c9 SwiftyBeaver: 2e8acd6fc90c6d0a27055867a290794926d57c02 TunnelKit: 1d9494670d643fd447aa3fa208dae1a4dcab2b2e -PODFILE CHECKSUM: c7333249e02a01ebc26be633bfc8c95fc5d82229 +PODFILE CHECKSUM: 49cadeae6b11c6b4bb4ea7d10e7d70519211c659 COCOAPODS: 1.10.0 diff --git a/Submodules/fastlane-ci-templates b/Submodules/fastlane-ci-templates index 903dc61b..3e23f493 160000 --- a/Submodules/fastlane-ci-templates +++ b/Submodules/fastlane-ci-templates @@ -1 +1 @@ -Subproject commit 903dc61be5aae8e84ef63440b5c4e96c9b0f8a9d +Subproject commit 3e23f4938ab858316dfa88ae9145c9916b00c44c diff --git a/fastlane/Appfile b/fastlane/Appfile deleted file mode 100644 index c94e220e..00000000 --- a/fastlane/Appfile +++ /dev/null @@ -1,5 +0,0 @@ -app_identifier("com.algoritmico.ios.Passepartout") # The bundle identifier of your app - - -# For more information about the Appfile, see: -# https://docs.fastlane.tools/advanced/#appfile diff --git a/fastlane/Deliverfile b/fastlane/Deliverfile deleted file mode 100644 index d081bbc1..00000000 --- a/fastlane/Deliverfile +++ /dev/null @@ -1,8 +0,0 @@ -# The Deliverfile allows you to store various App Store Connect metadata -# For more information, check out the docs -# https://docs.fastlane.tools/actions/deliver/ - -skip_binary_upload true -skip_metadata false -skip_screenshots false -overwrite_screenshots true diff --git a/fastlane/Fastfile b/fastlane/Fastfile deleted file mode 120000 index 1fd532d1..00000000 --- a/fastlane/Fastfile +++ /dev/null @@ -1 +0,0 @@ -../Submodules/fastlane-ci-templates/include/Fastfile.include \ No newline at end of file diff --git a/fastlane/Gymfile b/fastlane/Gymfile deleted file mode 120000 index 3e37d7dd..00000000 --- a/fastlane/Gymfile +++ /dev/null @@ -1 +0,0 @@ -../Submodules/fastlane-ci-templates/include/Gymfile.include \ No newline at end of file diff --git a/fastlane/Matchfile b/fastlane/Matchfile deleted file mode 100644 index 7885fa90..00000000 --- a/fastlane/Matchfile +++ /dev/null @@ -1,9 +0,0 @@ -type "development" # The default type, can be: appstore, adhoc, enterprise or development - -app_identifier [ - "com.algoritmico.ios.Passepartout", - "com.algoritmico.ios.Passepartout.Tunnel" -] - -# For all available options run `fastlane match --help` -# Remove the # in the beginning of the line to enable the other options diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile deleted file mode 100644 index 756bff8e..00000000 --- a/fastlane/Pluginfile +++ /dev/null @@ -1,5 +0,0 @@ -# Autogenerated by fastlane -# -# Ensure this file is checked in to source control! - -gem 'fastlane-plugin-appcenter' diff --git a/fastlane/Precheckfile b/fastlane/Precheckfile deleted file mode 100644 index 4bbea73a..00000000 --- a/fastlane/Precheckfile +++ /dev/null @@ -1,29 +0,0 @@ -# For more information about this configuration visit -# https://docs.fastlane.tools/actions/precheck/ - -# In general, you can use the options available -# fastlane precheck --help - -# Remove the # in front of the line to enable the option - -# You have three possible values for each rule options -# :skip -# indicates that your metadata will not be checked by this rule - -# :warn -# when triggered, this rule will warn you of a potential problem - -# :error -# when triggered, this rule will cause an error to be displayed and it will prevent any further fastlane commands from running after precheck finishes - -# Examples: -# negative_apple_sentiment(level: :skip) -# curse_words(level: :warn) -# future_functionality(level: :error) -# other_platforms(level: :error) -# placeholder_text(level: :error) -# test_words(level: :error) -# unreachable_urls(level: :error) -# custom_text(data: ["fabric"], level: :warn) - -include_in_app_purchases false diff --git a/fastlane/metadata/app_icon.jpg b/fastlane/metadata/app_icon.jpg deleted file mode 100644 index ed68769214b3723b66ff4c75830849de2081c474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16745 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 diff --git a/fastlane/metadata/copyright.txt b/fastlane/metadata/copyright.txt deleted file mode 100644 index 840fc8f3..00000000 --- a/fastlane/metadata/copyright.txt +++ /dev/null @@ -1 +0,0 @@ -2021 Davide De Rosa diff --git a/fastlane/metadata/de-DE/apple_tv_privacy_policy.txt b/fastlane/metadata/de-DE/apple_tv_privacy_policy.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/de-DE/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/de-DE/description.txt b/fastlane/metadata/de-DE/description.txt deleted file mode 100644 index 4f9a9932..00000000 --- a/fastlane/metadata/de-DE/description.txt +++ /dev/null @@ -1,47 +0,0 @@ -Passepartout ist ein smarter OpenVPN client der perfekt in die iOS-Plattform integriert ist. Passepartout ist die einzige App, die du brauchst um gängige OpenVPN-Anbieter als auch deinen persönlichen OpenVPN-Server zu nutzen. - -Mit vertrauenswürdigen Netzwerken und Siri Kurzbefehlen, eröffnet Passepartout die besten Möglichkeiten ein VPN unter iOS zu nutzen. - -Passepartout erzeugt keinerlei ungewollte Hintergrundaktivitäten außer dem VPN-Tunnel und ist daher sehr Firewall-freundlich. - -Passepartout ist Open Source: https://github.com/passepartoutvpn - -BENUTZBAR MIT VIELEN ANBIETERN - -Passepartout bietet Voreinstellungen für alle gängigen VPN-Anbieter: - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -EINFACH ZU BENUTZEN - -- Unglaublich einfach zu benutzen, natives Aussehen und Integration. -- Verwalte alle Profile an einem Platz. -- Importiere .ovpn Konfigurationsdateien. -- Feintune die Verschlüsselung ohne Änderungen an der Konfigurationsdatei. -- Netzwerkeinstellungen schnell übersteuern (Standart-Gateway, DNS, Proxy, MTU). - -BETRIEBSSYSTEM-INTEGRATION - -- Vertraue Mobilfunknetzen oder WLANs für fein einstellbare Konnektivität. -- Intuitive Siri Kurzbefehle. - -PRIVATSPHÄREN-FREUNDLICH - -- Volle Transparenz zu welchen Servern du dich verbindest. -- Wähle vordefinierte Endpunkte aus wenn DNS ein Problem ist. -- Keine Webdienste, Werbung oder sonstirgendwie aufgebläht außer das VPN selbst. - -~ - -Passepartout ist ein inoffizieller Client und auf keine Art und Weise mit OpenVPN Inc. verbunden. - -© 2002-2018 OpenVPN Inc. - OpenVPN ist eine eingetragene Marke von OpenVPN Inc. diff --git a/fastlane/metadata/de-DE/keywords.txt b/fastlane/metadata/de-DE/keywords.txt deleted file mode 120000 index 43934280..00000000 --- a/fastlane/metadata/de-DE/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/de-DE/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/de-DE/marketing_url.txt b/fastlane/metadata/de-DE/marketing_url.txt deleted file mode 100644 index 011d2c5f..00000000 --- a/fastlane/metadata/de-DE/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/de-DE/name.txt b/fastlane/metadata/de-DE/name.txt deleted file mode 100644 index ae4103ba..00000000 --- a/fastlane/metadata/de-DE/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - OpenVPN Client diff --git a/fastlane/metadata/de-DE/privacy_url.txt b/fastlane/metadata/de-DE/privacy_url.txt deleted file mode 100644 index 03ebc6e8..00000000 --- a/fastlane/metadata/de-DE/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/de-DE/promotional_text.txt b/fastlane/metadata/de-DE/promotional_text.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/de-DE/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/de-DE/release_notes.txt b/fastlane/metadata/de-DE/release_notes.txt deleted file mode 100644 index 689876c4..00000000 --- a/fastlane/metadata/de-DE/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/de-DE/subtitle.txt b/fastlane/metadata/de-DE/subtitle.txt deleted file mode 100644 index 8d0734ae..00000000 --- a/fastlane/metadata/de-DE/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Verbinde .ovpn & VPN Anbieter diff --git a/fastlane/metadata/de-DE/support_url.txt b/fastlane/metadata/de-DE/support_url.txt deleted file mode 100644 index d9c7dbb5..00000000 --- a/fastlane/metadata/de-DE/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/metadata/el/apple_tv_privacy_policy.txt b/fastlane/metadata/el/apple_tv_privacy_policy.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/el/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/el/description.txt b/fastlane/metadata/el/description.txt deleted file mode 100644 index aac16730..00000000 --- a/fastlane/metadata/el/description.txt +++ /dev/null @@ -1,47 +0,0 @@ -Το Passepartout είναι ένας έξυπνος πελάτης OpenVPN που είναι απόλυτα ενσωματωμένος στην πλατφόρμα iOS. Το Passepartout είναι η μόνη εφαρμογή που χρειάζεστε για τους δύο γνωστούς παροχείς OpenVPN και τους προσωπικούς σας διακομιστές OpenVPN. - -Με τα Αξιόπιστα Δίκτυα και τις Συντομεύσεις Siri, η Passepartout ξεκλειδώνει το καλύτερο από τη χρήση ενός VPN στο iOS. - -Το Passepartout δεν εμπλέκεται σε οποιαδήποτε δραστηριότητα στο παρασκήνιο εκτός από τη σύνδεση για το VPN και έτσι είναι πιο φιλική προς τα τείχη προστασίας. - -To Passepartout βασίζετε σε ανοιχτό κώδικα: https://github.com/passepartoutvpn - -ΧΡΗΣΗ ΜΕ ΠΟΛΛΑΠΛΟΥΣ ΠΑΡΟΧΟΥΣ - -Το Passepartout προσφέρει προκαθορισμένες ρυθμίσεις για βασικούς VPN παρόχους: - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -ΕΥΚΟΛΟ ΣΤΗ ΧΡΗΣΗ - -- Απίστευτη ευκολία χρήσης, με φυσική εμφάνιση και αίσθηση. -- Χειριστείτε τα προφίλ σας σε ένα μόνο μέρος. -- Εισαγωγή αρχείων ρυθμίσεων .ovpn. -- ΚΡυθμίστε την κρυπτογράφηση χωρίς να τροποποιήσετε οποιοδήποτε αρχείο ρυθμίσεων. -- Παρακάμψετε τις ρυθμίσεις δικτύου με ένα πρόγραμμα (default gateway, DNS, proxy, MTU). - -ΕΝΣΩΜΑΤΩΣΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΌ - -- Χαρακτηρίστε αξιόπιστα δίκτυα κινητής τηλεφωνίας ή Wi-Fi για να βελτιστοποιήσετε τη συνδεσιμότητά σας. -- Έξυπνες συντομεύσεις με τη Siri. - -Φιλικό Απόρρητο - -- Πλήρης διαφάνεια σχετικά με τους διακομιστές στους οποίους συνδέεστε. -- Διαλέξτε τα προκαθορισμένα τελικά σημεία όταν το DNS είναι προβληματικό. -- Δεν υπάρχουν υπηρεσίες ιστού, διαφημίσεις ή οποιαδήποτε ανεπιθύμητη λειτουργία εκτός από το ίδιο το VPN. - -~ - -Το Passepartout είναι ένας μη επίσημος πελάτης και σε καμία περίπτωση δεν είναι συνδεδεμένος με την OpenVPN Inc. - -© 2002-2018 OpenVPN Inc. - OpenVPN είναι εμπορικό σήμα κατατεθέν της OpenVPN Inc. diff --git a/fastlane/metadata/el/keywords.txt b/fastlane/metadata/el/keywords.txt deleted file mode 120000 index 15e8d007..00000000 --- a/fastlane/metadata/el/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/el/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/el/marketing_url.txt b/fastlane/metadata/el/marketing_url.txt deleted file mode 100644 index 011d2c5f..00000000 --- a/fastlane/metadata/el/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/el/name.txt b/fastlane/metadata/el/name.txt deleted file mode 100644 index ae4103ba..00000000 --- a/fastlane/metadata/el/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - OpenVPN Client diff --git a/fastlane/metadata/el/privacy_url.txt b/fastlane/metadata/el/privacy_url.txt deleted file mode 100644 index 03ebc6e8..00000000 --- a/fastlane/metadata/el/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/el/promotional_text.txt b/fastlane/metadata/el/promotional_text.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/el/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/el/release_notes.txt b/fastlane/metadata/el/release_notes.txt deleted file mode 100644 index 689876c4..00000000 --- a/fastlane/metadata/el/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/el/subtitle.txt b/fastlane/metadata/el/subtitle.txt deleted file mode 100644 index facc13a6..00000000 --- a/fastlane/metadata/el/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Σύνδεση .ovpn & VPN παρόχους diff --git a/fastlane/metadata/el/support_url.txt b/fastlane/metadata/el/support_url.txt deleted file mode 100644 index d9c7dbb5..00000000 --- a/fastlane/metadata/el/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/metadata/en-US/apple_tv_privacy_policy.txt b/fastlane/metadata/en-US/apple_tv_privacy_policy.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/en-US/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/en-US/description.txt b/fastlane/metadata/en-US/description.txt deleted file mode 100644 index d06248a4..00000000 --- a/fastlane/metadata/en-US/description.txt +++ /dev/null @@ -1,47 +0,0 @@ -Passepartout is a smart OpenVPN client perfectly integrated with the iOS platform. Passepartout is the only app you need for both well-known OpenVPN providers and your personal OpenVPN servers. - -With Trusted Networks and Siri Shortcuts, Passepartout unlocks the very best of using a VPN on iOS. - -Passepartout does not engage any unrequested background activity other than the VPN tunnel, thus being also friendlier to firewalls. - -Passepartout is open source: https://github.com/passepartoutvpn - -USE WITH MULTIPLE PROVIDERS - -Passepartout offers presets for major VPN providers: - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -EASY TO USE - -- Incredible ease of use, with native look & feel. -- Handle your profiles in one single place. -- Import .ovpn configuration files. -- Fine-tune encryption without tweaking any configuration file. -- Override network settings in a snap (default gateway, DNS, proxy, MTU). - -OS INTEGRATION - -- Trust cellular or Wi-Fi networks to fine-grain your connectivity. -- Intuitive Siri Shortcuts. - -PRIVACY FRIENDLY - -- Full transparency on what servers you're connecting to. -- Pick pre-resolved endpoints when DNS is problematic. -- No web services, ads or any undesired bloat besides the VPN itself. - -~ - -Passepartout is a non-official client and is in no way affiliated with OpenVPN Inc. - -© 2002-2018 OpenVPN Inc. - OpenVPN is a registered trademark of OpenVPN Inc. diff --git a/fastlane/metadata/en-US/keywords.txt b/fastlane/metadata/en-US/keywords.txt deleted file mode 120000 index 84c76e2e..00000000 --- a/fastlane/metadata/en-US/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/en-US/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/en-US/marketing_url.txt b/fastlane/metadata/en-US/marketing_url.txt deleted file mode 100644 index 011d2c5f..00000000 --- a/fastlane/metadata/en-US/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/en-US/name.txt b/fastlane/metadata/en-US/name.txt deleted file mode 100644 index ae4103ba..00000000 --- a/fastlane/metadata/en-US/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - OpenVPN Client diff --git a/fastlane/metadata/en-US/privacy_url.txt b/fastlane/metadata/en-US/privacy_url.txt deleted file mode 100644 index 03ebc6e8..00000000 --- a/fastlane/metadata/en-US/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/en-US/promotional_text.txt b/fastlane/metadata/en-US/promotional_text.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/en-US/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/en-US/release_notes.txt b/fastlane/metadata/en-US/release_notes.txt deleted file mode 100644 index 689876c4..00000000 --- a/fastlane/metadata/en-US/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/en-US/subtitle.txt b/fastlane/metadata/en-US/subtitle.txt deleted file mode 100644 index 5c670931..00000000 --- a/fastlane/metadata/en-US/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Connect .ovpn & VPN providers diff --git a/fastlane/metadata/en-US/support_url.txt b/fastlane/metadata/en-US/support_url.txt deleted file mode 100644 index d9c7dbb5..00000000 --- a/fastlane/metadata/en-US/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/metadata/es-MX/apple_tv_privacy_policy.txt b/fastlane/metadata/es-MX/apple_tv_privacy_policy.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/es-MX/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/es-MX/description.txt b/fastlane/metadata/es-MX/description.txt deleted file mode 100644 index 80df445b..00000000 --- a/fastlane/metadata/es-MX/description.txt +++ /dev/null @@ -1,47 +0,0 @@ -Passepartout es un cliente OpenVPN inteligente perfectamente integrado con la plataforma iOS. Passepartout es la única aplicación que necesitas para conectarte con proveedores OpenVPN conocidos o con tu propio servidor OpenVPN. - -Con las Redes de Confianza y los Atajos Sugeridos, Passepartout saca lo mejor de iOS a la hora de usar un VPN. - -Passepartout no mantiene ninguna actividad en segundo plano que no sea el túnel VPN, siendo así compatible con los cortafuegos. - -Passepartout tiene código abierto: https://github.com/passepartoutvpn - -ÚSALO CON VARIOS PROVEEDORES - -Passepartout ofrece ajustes para estos proveedores VPN: - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -FÁCIL DE USAR - -- Increíble facilidad de uso, con aspecto nativo. -- Gestiona tus perfiles en una sola pantalla. -- Importa ficheros de configuración .ovpn. -- Configura el cifrado sin retocar ningún fichero de configuración. -- Sobrescribe los ajustes de red en un chasquido (puerta de enlace, DNS, proxy, MTU). - -INTEGRACIÓN CON EL SISTEMA OPERATIVO - -- Añade la red móvil o una red Wi-Fi de confianza para refinar tu conectividad. -- Atajos Sugeridos intuitivos. - -RESPETUOSO CON TU PRIVACIDAD - -- Transparencia sobre los servidores conectados. -- Elige direcciones pre-resueltas cuando el DNS sea defectuoso. -- Sin servicios web, anuncios o cualquier actividad no deseada fuera del VPN. - -~ - -Passepartout es un cliente no oficial y no es afiliado de OpenVPN Inc. - -© 2002-2018 OpenVPN Inc. - OpenVPN es una marca registrada de OpenVPN Inc. diff --git a/fastlane/metadata/es-MX/keywords.txt b/fastlane/metadata/es-MX/keywords.txt deleted file mode 120000 index be6cbc25..00000000 --- a/fastlane/metadata/es-MX/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/es-MX/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/es-MX/marketing_url.txt b/fastlane/metadata/es-MX/marketing_url.txt deleted file mode 100644 index 011d2c5f..00000000 --- a/fastlane/metadata/es-MX/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/es-MX/name.txt b/fastlane/metadata/es-MX/name.txt deleted file mode 100644 index 1602c936..00000000 --- a/fastlane/metadata/es-MX/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - Cliente OpenVPN diff --git a/fastlane/metadata/es-MX/privacy_url.txt b/fastlane/metadata/es-MX/privacy_url.txt deleted file mode 100644 index 03ebc6e8..00000000 --- a/fastlane/metadata/es-MX/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/es-MX/promotional_text.txt b/fastlane/metadata/es-MX/promotional_text.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/es-MX/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/es-MX/release_notes.txt b/fastlane/metadata/es-MX/release_notes.txt deleted file mode 100644 index 689876c4..00000000 --- a/fastlane/metadata/es-MX/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/es-MX/subtitle.txt b/fastlane/metadata/es-MX/subtitle.txt deleted file mode 100644 index 0858e5f7..00000000 --- a/fastlane/metadata/es-MX/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Conecta .ovpn & proveedor VPN diff --git a/fastlane/metadata/es-MX/support_url.txt b/fastlane/metadata/es-MX/support_url.txt deleted file mode 100644 index d9c7dbb5..00000000 --- a/fastlane/metadata/es-MX/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/metadata/fr-FR/apple_tv_privacy_policy.txt b/fastlane/metadata/fr-FR/apple_tv_privacy_policy.txt deleted file mode 100755 index 8b137891..00000000 --- a/fastlane/metadata/fr-FR/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/fr-FR/description.txt b/fastlane/metadata/fr-FR/description.txt deleted file mode 100644 index 7a286332..00000000 --- a/fastlane/metadata/fr-FR/description.txt +++ /dev/null @@ -1,47 +0,0 @@ -Passepartout est un client OpenVPN parfaitement intégré avec la plateforme iOs. Passepartout est le seul app dont vous aurez besoin, autant pour les fournisseurs connu OpenVPN, que pour vos serveurs OpenVPN privés. - -Avec les réseaux de confiance et les Raccourcis Siri, Passepartout ouvre toutes les possibilités d'utiliser un VPN avec iOS. - -Passepartout n'engage pas de requêtes non requises en arrière-plan, autre que le tunnel VPN, ce qui le rend plus accessible avec les coupe-feu. - -Passepartout est open source: https://github.com/passepartoutvpn - -UTILISEZ AVEC PLUSIEURS FOURNISSEURS - -Passepartout offre des réglages pré-conçu avec des fournisseurs VPN majeurs : - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -FACILE D'UTILISATION - -- Utilisation très simple, look natif iOS. -- S'occupe de vos profiles en un Seul endroit. -- Importer les fichiers de configuration .ovpn. -- Affiner l'encryption sans modifier les fichiers de configuration. -- Outrepasse les paramètres réseaux en un clin d'oeil (passerelle par défaut, DNS, proxy, MTU). - -INTÉGRATION OS - -- Faire confidence aux réseaux cellulaire ou Wi-Fi pour peaufiner vos connections. -- Raccourcis Siri intuitifs. - -VIE PRIVÉE - -- Transparence completes aux serveurs connectés. -- Choisissez des parametères pré-résolu lorsque le DNS est problématique. -- Aucun service web, pub où information non désirée, que le VPN. - -~ - -Passepartout best un client non-officiel et n'est aucunement affilié à OpenVPN inc. - -© 2002-2018 OpenVPN Inc. - OpenVPN est une marque enregistrée de OpenVPN Inc. diff --git a/fastlane/metadata/fr-FR/keywords.txt b/fastlane/metadata/fr-FR/keywords.txt deleted file mode 120000 index d535dd8a..00000000 --- a/fastlane/metadata/fr-FR/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/fr-FR/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/fr-FR/marketing_url.txt b/fastlane/metadata/fr-FR/marketing_url.txt deleted file mode 100755 index 011d2c5f..00000000 --- a/fastlane/metadata/fr-FR/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/fr-FR/name.txt b/fastlane/metadata/fr-FR/name.txt deleted file mode 100755 index ef42d791..00000000 --- a/fastlane/metadata/fr-FR/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - Client OpenVPN diff --git a/fastlane/metadata/fr-FR/privacy_url.txt b/fastlane/metadata/fr-FR/privacy_url.txt deleted file mode 100755 index 03ebc6e8..00000000 --- a/fastlane/metadata/fr-FR/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/fr-FR/promotional_text.txt b/fastlane/metadata/fr-FR/promotional_text.txt deleted file mode 100755 index 8b137891..00000000 --- a/fastlane/metadata/fr-FR/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/fr-FR/release_notes.txt b/fastlane/metadata/fr-FR/release_notes.txt deleted file mode 100755 index 689876c4..00000000 --- a/fastlane/metadata/fr-FR/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/fr-FR/subtitle.txt b/fastlane/metadata/fr-FR/subtitle.txt deleted file mode 100755 index e33099bf..00000000 --- a/fastlane/metadata/fr-FR/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Connecter .ovpn & services VPN diff --git a/fastlane/metadata/fr-FR/support_url.txt b/fastlane/metadata/fr-FR/support_url.txt deleted file mode 100755 index d9c7dbb5..00000000 --- a/fastlane/metadata/fr-FR/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/metadata/it/apple_tv_privacy_policy.txt b/fastlane/metadata/it/apple_tv_privacy_policy.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/it/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/it/description.txt b/fastlane/metadata/it/description.txt deleted file mode 100644 index c4233e65..00000000 --- a/fastlane/metadata/it/description.txt +++ /dev/null @@ -1,47 +0,0 @@ -Passepartout è un client OpenVPN intelligente perfettamente integrato con la piattaforma iOS. Passepartout è l'unica app di cui hai bisogno sia per provider OpenVPN conosciuti che per i tuoi server OpenVPN personali. - -Con le Reti Sicure ed i comandi rapidi Siri, Passepartout è il modo migliore di usare una VPN su iOS. - -Passepartout non avvia in background nessuna attività non richiesta che non sia la VPN, essendo per questo motivo anche più congeniale ai firewall. - -Passepartout è open source: https://github.com/passepartoutvpn - -USALO CON VARI PROVIDER - -Passepartout offre profili per i maggiori provider VPN: - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -FACILE DA USARE - -- Incredibilmente semplice, con look nativo. -- Gestisci i tuoi profili in una singola schermata. -- Importa file di configurazione .ovpn. -- Regola la crittografia senza toccare alcun file di configurazione. -- Sovrascrivi le impostazioni di rete in un attimo (gateway predefinito, DNS, proxy, MTU). - -INTEGRAZIONE CON IL SISTEMA - -- Rendi la rete mobile o Wi-Fi sicura per personalizzare la tua connettività. -- Intuitivi comandi rapidi Siri. - -ORIENTATO ALLA PRIVACY - -- Completa trasparenza sui server a cui ti connetti. -- Scegli indirizzi pre-risolti quando il DNS è problematico. -- Nessun web service, pubblicità o altra aggiunta inutile oltre la VPN. - -~ - -Passepartout è un client non ufficiale e non è affiliato ad OpenVPN Inc. in alcuna maniera. - -© 2002-2018 OpenVPN Inc. - OpenVPN è un marchio registrato di OpenVPN Inc. diff --git a/fastlane/metadata/it/keywords.txt b/fastlane/metadata/it/keywords.txt deleted file mode 120000 index 05f25f37..00000000 --- a/fastlane/metadata/it/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/it/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/it/marketing_url.txt b/fastlane/metadata/it/marketing_url.txt deleted file mode 100644 index 011d2c5f..00000000 --- a/fastlane/metadata/it/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/it/name.txt b/fastlane/metadata/it/name.txt deleted file mode 100644 index ae4103ba..00000000 --- a/fastlane/metadata/it/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - OpenVPN Client diff --git a/fastlane/metadata/it/privacy_url.txt b/fastlane/metadata/it/privacy_url.txt deleted file mode 100644 index 03ebc6e8..00000000 --- a/fastlane/metadata/it/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/it/promotional_text.txt b/fastlane/metadata/it/promotional_text.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/it/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/it/release_notes.txt b/fastlane/metadata/it/release_notes.txt deleted file mode 100644 index 689876c4..00000000 --- a/fastlane/metadata/it/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/it/subtitle.txt b/fastlane/metadata/it/subtitle.txt deleted file mode 100644 index 3f4a4ff7..00000000 --- a/fastlane/metadata/it/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Connetti .ovpn & provider VPN diff --git a/fastlane/metadata/it/support_url.txt b/fastlane/metadata/it/support_url.txt deleted file mode 100644 index d9c7dbb5..00000000 --- a/fastlane/metadata/it/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/metadata/nl-NL/apple_tv_privacy_policy.txt b/fastlane/metadata/nl-NL/apple_tv_privacy_policy.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/nl-NL/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/nl-NL/description.txt b/fastlane/metadata/nl-NL/description.txt deleted file mode 100644 index dd80e103..00000000 --- a/fastlane/metadata/nl-NL/description.txt +++ /dev/null @@ -1,46 +0,0 @@ -Passepartout is een slimme OpenVPN-client die perfect is geïntegreerd met het iOS-platform. Passepartout is de enige app die je nodig hebt voor zowel bekende OpenVPN-providers als je persoonlijke OpenVPN-servers. - -Met Trusted Networks en Siri Shortcuts ontgrendelt Passepartout het beste van het gebruik van een VPN op iOS. - -Passepartout neemt geen andere ongevraagde achtergrondactiviteit op dan de VPN-tunnel en is hierdoor ook vriendelijker voor firewalls. - -Passepartout is open source: https://github.com/passepartoutvpn - -GEBRUIK MET MEERDERE PROVIDERS - -Passepartout biedt presets voor grote VPN-providers: - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -MAKKELIJK IN GEBRUIK - -- Ongelooflijk gebruiksgemak, met native look & feel. -- Beheer uw profielen op één plek. -- Import .ovpn configuratie bestanden. -- Verfijn de codering zonder een configuratiebestand aan te passen. - -OS INTEGRATIE - -- Vertrouw op mobiele of Wi-Fi-netwerken om uw connectiviteit te verfijnen. -- Intuïtieve Siri-snelkoppelingen. - -PRIVACY FRIENDLY - -- Volledige transparantie over de servers waarmee u verbinding maakt. -- Kies vooraf vertaalde eindpunten wanneer DNS problematisch is. -- Geen web-services, advertenties of overbodige functionaliteit naast VPN zelf. - -~ - -Passepartout is een niet-officiële client en is op geen enkele manier verbonden aan OpenVPN Inc. - -© 2002-2018 OpenVPN Inc. - OpenVPN is a registered trademark of OpenVPN Inc. diff --git a/fastlane/metadata/nl-NL/keywords.txt b/fastlane/metadata/nl-NL/keywords.txt deleted file mode 120000 index 45dfc473..00000000 --- a/fastlane/metadata/nl-NL/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/nl/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/nl-NL/marketing_url.txt b/fastlane/metadata/nl-NL/marketing_url.txt deleted file mode 100644 index 011d2c5f..00000000 --- a/fastlane/metadata/nl-NL/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/nl-NL/name.txt b/fastlane/metadata/nl-NL/name.txt deleted file mode 100644 index ae4103ba..00000000 --- a/fastlane/metadata/nl-NL/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - OpenVPN Client diff --git a/fastlane/metadata/nl-NL/privacy_url.txt b/fastlane/metadata/nl-NL/privacy_url.txt deleted file mode 100644 index 03ebc6e8..00000000 --- a/fastlane/metadata/nl-NL/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/nl-NL/promotional_text.txt b/fastlane/metadata/nl-NL/promotional_text.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/nl-NL/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/nl-NL/release_notes.txt b/fastlane/metadata/nl-NL/release_notes.txt deleted file mode 100644 index 689876c4..00000000 --- a/fastlane/metadata/nl-NL/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/nl-NL/subtitle.txt b/fastlane/metadata/nl-NL/subtitle.txt deleted file mode 100644 index f0b18dbd..00000000 --- a/fastlane/metadata/nl-NL/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Verbind .ovpn & VPN providers diff --git a/fastlane/metadata/nl-NL/support_url.txt b/fastlane/metadata/nl-NL/support_url.txt deleted file mode 100644 index d9c7dbb5..00000000 --- a/fastlane/metadata/nl-NL/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/metadata/pl/apple_tv_privacy_policy.txt b/fastlane/metadata/pl/apple_tv_privacy_policy.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/pl/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/pl/description.txt b/fastlane/metadata/pl/description.txt deleted file mode 100644 index adab6605..00000000 --- a/fastlane/metadata/pl/description.txt +++ /dev/null @@ -1,47 +0,0 @@ -Passepartout to inteligentny klient OpenVPN, perfekcyjnie zintegrowany z platformą iOS. Passepartout to jedyna aplikacja dla znanych usługodawców OpenVPN i Twoich prywatnych serwerów OpenVPN. - -Passepartout, z obsługą skrótów Siri oraz konfiguracją sieci zaufanych, pozwala na najłatwiejsze użytkowanie VPN na iOS. - -Passepartout nie inicjuje połączeń innych niż tunel VPN, dlatego jest aplikacją przyjazną dla zapór sieciowych. - -Passepartout jest open source: https://github.com/passepartoutvpn - -UŻYWAJ Z WIELOMA USŁUGODAWCAMI - -Passepartout oferuje gotowe konfiguracje dla poniższych usługodawców: - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -ŁATWY W UŻYCIU - -- Niesamowita łatwość w użytkowaniu z przejrzystym wyglądem -- Przechowuj swoje profile w jednym miejscu -- Importuj pliki konfiguracyjne .openvpn -- Optymalne szyfrowanie bez konieczności dodatkowej konfiguracji -- Napisz ustawienia sieciowe z łatwością (brama domyślna, DNS, Proxy, MTU) - -INTEGRACJA Z SYSTEMEM - -- Zaufaj wybranym połączeniom WiFi lub sieci komórkowej żeby kontrolować swoje połączenie -- Intuicyjne skróty Siri - -PRZYJAZNA PRYWATNOŚCI - -- Transparentność serwerów do których jesteś połączony/a -- Wybierz zdefiniowane węzły końcowe, gdy DNS jest problematyczne -- Żadnych reklam, śmieci, ani serwisów sieciowych - tylko protokół VPN - -~ - -Passepartout to nieoficjalny klient i nie jest powiązany z OpenVPN Inc. - -© 2002-2018 OpenVPN Inc. - OpenVPN to zarejestrowany znak towarowy OpenVPN Inc. diff --git a/fastlane/metadata/pl/keywords.txt b/fastlane/metadata/pl/keywords.txt deleted file mode 120000 index 055c2869..00000000 --- a/fastlane/metadata/pl/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/pl-PL/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/pl/marketing_url.txt b/fastlane/metadata/pl/marketing_url.txt deleted file mode 100644 index 011d2c5f..00000000 --- a/fastlane/metadata/pl/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/pl/name.txt b/fastlane/metadata/pl/name.txt deleted file mode 100644 index a9c148ef..00000000 --- a/fastlane/metadata/pl/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - Klient OpenVPN diff --git a/fastlane/metadata/pl/privacy_url.txt b/fastlane/metadata/pl/privacy_url.txt deleted file mode 100644 index 03ebc6e8..00000000 --- a/fastlane/metadata/pl/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/pl/promotional_text.txt b/fastlane/metadata/pl/promotional_text.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/pl/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/pl/release_notes.txt b/fastlane/metadata/pl/release_notes.txt deleted file mode 100644 index 689876c4..00000000 --- a/fastlane/metadata/pl/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/pl/subtitle.txt b/fastlane/metadata/pl/subtitle.txt deleted file mode 100644 index 3d2ec69f..00000000 --- a/fastlane/metadata/pl/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Połącz z .ovpn i serwisami VPN diff --git a/fastlane/metadata/pl/support_url.txt b/fastlane/metadata/pl/support_url.txt deleted file mode 100644 index d9c7dbb5..00000000 --- a/fastlane/metadata/pl/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/metadata/primary_category.txt b/fastlane/metadata/primary_category.txt deleted file mode 100644 index 41f44c00..00000000 --- a/fastlane/metadata/primary_category.txt +++ /dev/null @@ -1 +0,0 @@ -UTILITIES diff --git a/fastlane/metadata/primary_first_sub_category.txt b/fastlane/metadata/primary_first_sub_category.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/primary_first_sub_category.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/primary_second_sub_category.txt b/fastlane/metadata/primary_second_sub_category.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/primary_second_sub_category.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/pt-BR/apple_tv_privacy_policy.txt b/fastlane/metadata/pt-BR/apple_tv_privacy_policy.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/pt-BR/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/pt-BR/description.txt b/fastlane/metadata/pt-BR/description.txt deleted file mode 100644 index d5d15796..00000000 --- a/fastlane/metadata/pt-BR/description.txt +++ /dev/null @@ -1,47 +0,0 @@ -Passepartout é um cliente inteligente de OpenVPN perfeitamente integrado com iOS. Passepartout é o único aplicativo que possibilita serviços populares de OpenVPN ou de sua própria escolha. - -Com "Redes confiáveis" e "Atalhos da Siri", Passepartout possibilita uma melhor experiência VPN para iOS. - -Passepartout não executa nenhum processo em plano de fundo além do túnel VPN, onde os mesmos são amigáveis com firewall. - -Passepartout possui código aberto: https://github.com/passepartoutvpn - -UTILIZE DIVERSOS SERVIÇOS DE VPN - -Passepartout oferece configurações para os seguintes provedores de VPN: - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -FÁCIL DE USAR - -- Fácil de usar com seu visual e experiência nativa. -- Controle seus perfis em um único lugar. -- Importe arquivos de configuração .ovpn. -- Habilite criptografia sem melhorar nenhum arquivo de configuração. -- Substitua configurações de rede em um piscar de olhos (gateway padrão, DNS, proxy, MTU). - -INTEGRAÇÃO COM O SISTEMA - -- Confie em redes celular e Wi-Fi para melhor configurar sua conectividade. -- Integração com "Atalhos da Siri". - -FOCO EM PRIVACIDADE - -- Absoluta transparência em quais servidores você se conecta. -- Escolha destinos pré-resolvidos quando DNS está problemático. -- Sem cadastro, propagandas ou qualquer funcionalidade indesejada que não seja VPN por si só. - -~ - -Passepartout não é um cliente oficial e não possui nenhuma afiliação com OpenVPN Inc. - -© 2002-2018 OpenVPN Inc. - OpenVPN é um marca registrada de OpenVPN Inc. diff --git a/fastlane/metadata/pt-BR/keywords.txt b/fastlane/metadata/pt-BR/keywords.txt deleted file mode 120000 index 51d15413..00000000 --- a/fastlane/metadata/pt-BR/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/pt-BR/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/pt-BR/marketing_url.txt b/fastlane/metadata/pt-BR/marketing_url.txt deleted file mode 100644 index 011d2c5f..00000000 --- a/fastlane/metadata/pt-BR/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/pt-BR/name.txt b/fastlane/metadata/pt-BR/name.txt deleted file mode 100644 index ef42d791..00000000 --- a/fastlane/metadata/pt-BR/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - Client OpenVPN diff --git a/fastlane/metadata/pt-BR/privacy_url.txt b/fastlane/metadata/pt-BR/privacy_url.txt deleted file mode 100644 index 03ebc6e8..00000000 --- a/fastlane/metadata/pt-BR/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/pt-BR/promotional_text.txt b/fastlane/metadata/pt-BR/promotional_text.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/pt-BR/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/pt-BR/release_notes.txt b/fastlane/metadata/pt-BR/release_notes.txt deleted file mode 100644 index 689876c4..00000000 --- a/fastlane/metadata/pt-BR/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/pt-BR/subtitle.txt b/fastlane/metadata/pt-BR/subtitle.txt deleted file mode 100644 index 141eb884..00000000 --- a/fastlane/metadata/pt-BR/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Conecte .ovpn e serviços VPN diff --git a/fastlane/metadata/pt-BR/support_url.txt b/fastlane/metadata/pt-BR/support_url.txt deleted file mode 100644 index d9c7dbb5..00000000 --- a/fastlane/metadata/pt-BR/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/metadata/ru/apple_tv_privacy_policy.txt b/fastlane/metadata/ru/apple_tv_privacy_policy.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/ru/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/ru/description.txt b/fastlane/metadata/ru/description.txt deleted file mode 100644 index c134a237..00000000 --- a/fastlane/metadata/ru/description.txt +++ /dev/null @@ -1,47 +0,0 @@ -Passepartout - это умный OpenVPN клиент, идеально интегрированный для работы с iOS. Passepartout - единственное приложения которое Вам понадобиться для большинства известных OpenVPN сервисов, и Ваших собственных OpenVPN серверов. - -С Доверенными Сетями и Командами Siri, Passepartout открывает лучшие возможности использования VPN на iOS. - -Passepartout не участвует в ненужной фоновой активности, кроме VPN туннелирования, тем самым являясь более дружелюбным к межсетевому экрану. - -Passepartout имеет открытый исходный код: https://github.com/passepartoutvpn - -ИСПОЛЬЗОВАНИЕ С НЕСКОЛЬКИМИ VPN ПРОВАЙДЕРАМИ - -Passepartout предлагает предустановленные настройки для основных VPN провайдеров: - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -ЛЕГО ИСПОЛЬЗОВАТЬ - -- Невероятная простота в использовании, со знакомым видом интерфйеса. -- Управляйте Вашими профилями в одном месте. -- Импортируйте файлы конфигурации .ovpn . -- Тонкая настройка шифрования, без изменений в файлах конфигурации. -- Перенаправление настроек сети в одно мгновение (стандартный порт, DNS, прокси, MTU).| - -ИНТЕГРАЦИЯ С ОПЕРАЦИОННОЙ СИСТЕМОЙ - -- Доверие мобильным или Wi-Fi сетям для более точной настройки подключения. -- Интуитивные Команды Siri. - -ДРУЖЕЛЮбНОСТЬ К КОНФИДЕНЦИАЛЬНОСТИ - -- Полная прозрачность при подключении к серверам. -- Подключение к предварительно выбранным конечным точкам при проблемах с DNS. -- Никаких веб-сервисов, рекламы и другого ненужного мусора помимо самого VPN. - -~ - -Passepartout не является официальным клиентом, и никак не связан с OpenVPN Inc. - -© 2002-2018 OpenVPN Inc. - OpenVPN зарегистрированная торговая марка OpenVPN Inc. diff --git a/fastlane/metadata/ru/keywords.txt b/fastlane/metadata/ru/keywords.txt deleted file mode 120000 index c0cce26d..00000000 --- a/fastlane/metadata/ru/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/ru/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/ru/marketing_url.txt b/fastlane/metadata/ru/marketing_url.txt deleted file mode 100644 index 011d2c5f..00000000 --- a/fastlane/metadata/ru/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/ru/name.txt b/fastlane/metadata/ru/name.txt deleted file mode 100644 index 3792b636..00000000 --- a/fastlane/metadata/ru/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - OpenVPN клиент diff --git a/fastlane/metadata/ru/privacy_url.txt b/fastlane/metadata/ru/privacy_url.txt deleted file mode 100644 index 03ebc6e8..00000000 --- a/fastlane/metadata/ru/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/ru/promotional_text.txt b/fastlane/metadata/ru/promotional_text.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/ru/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/ru/release_notes.txt b/fastlane/metadata/ru/release_notes.txt deleted file mode 100644 index 689876c4..00000000 --- a/fastlane/metadata/ru/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/ru/subtitle.txt b/fastlane/metadata/ru/subtitle.txt deleted file mode 100644 index 1f41f0bf..00000000 --- a/fastlane/metadata/ru/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Подключить .ovpn и VPN сервисы diff --git a/fastlane/metadata/ru/support_url.txt b/fastlane/metadata/ru/support_url.txt deleted file mode 100644 index d9c7dbb5..00000000 --- a/fastlane/metadata/ru/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/metadata/secondary_category.txt b/fastlane/metadata/secondary_category.txt deleted file mode 100644 index cd65e793..00000000 --- a/fastlane/metadata/secondary_category.txt +++ /dev/null @@ -1 +0,0 @@ -PRODUCTIVITY diff --git a/fastlane/metadata/secondary_first_sub_category.txt b/fastlane/metadata/secondary_first_sub_category.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/secondary_first_sub_category.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/secondary_second_sub_category.txt b/fastlane/metadata/secondary_second_sub_category.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/secondary_second_sub_category.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/sv/apple_tv_privacy_policy.txt b/fastlane/metadata/sv/apple_tv_privacy_policy.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/sv/apple_tv_privacy_policy.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/sv/description.txt b/fastlane/metadata/sv/description.txt deleted file mode 100644 index f4dce095..00000000 --- a/fastlane/metadata/sv/description.txt +++ /dev/null @@ -1,47 +0,0 @@ -Passepartout är en smart OpenVPN-klient som är helt integrerad med iOS-plattformen. Passepartout är den enda app du behöver för både kända OpenVPN-leverantörer och dina personliga OpenVPN-servrar. - -Med Betrodda Nätverk och Siri Shortcuts låser Passepartout det bästa av att använda en VPN på iOS. - -Passepartout engagerar inte någon oönskad bakgrundsaktivitet utom VPN-tunneln, vilket är också vänligare för andra brandväggar eller VPN-klienter. - -Passepartout är öppen källkod: https://github.com/passepartoutvpn - -ANVÄNDNING MED FLERA PROVIDERS - -Passepartout erbjuder förinställningar för större VPN-leverantörer: - -- Child Safe VPN -- Hide.me -- Mullvad -- NordVPN -- Private Internet Access -- ProtonVPN -- TorGuard -- TunnelBear -- VyprVPN -- Windscribe - -LÄTT ATT ANVÄNDA - -- Otroligt enkel att använda, med inbyggd se & känsla. -- Hantera dina profiler på ett enda ställe. -- Importera .ovpn konfigurationsfiler. -- Finjustera kryptering utan att ändra någon konfigurationsfil. -- Åsidosätta nätverksinställningar i en snap (normal gateway, DNS, proxy, MTU). - -OS INTEGRATION - -- Lita på mobil- eller Wi-Fi-nätverk för att finfina din anslutning. -- Intuitiva Siri Genvägar. - -PRIVATIV VÄNLIGT - -- Full insyn på vilka servrar du ansluter till. -- Välj förutbestämda slutpunkter när DNS är problematiskt. -- Inga webbtjänster, annonser eller oönskad upptrappning förutom VPN själv. - -~ - -Passepartout är en icke-officiell kund och är inte ansluten till OpenVPN Inc. - -© 2002-2018 OpenVPN Inc. - OpenVPN är ett registrerat varumärke som tillhör OpenVPN Inc. diff --git a/fastlane/metadata/sv/keywords.txt b/fastlane/metadata/sv/keywords.txt deleted file mode 120000 index 5b8d2f8a..00000000 --- a/fastlane/metadata/sv/keywords.txt +++ /dev/null @@ -1 +0,0 @@ -../../../../metadata/sv/keywords.txt \ No newline at end of file diff --git a/fastlane/metadata/sv/marketing_url.txt b/fastlane/metadata/sv/marketing_url.txt deleted file mode 100644 index 011d2c5f..00000000 --- a/fastlane/metadata/sv/marketing_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app diff --git a/fastlane/metadata/sv/name.txt b/fastlane/metadata/sv/name.txt deleted file mode 100644 index f4f83c28..00000000 --- a/fastlane/metadata/sv/name.txt +++ /dev/null @@ -1 +0,0 @@ -Passepartout - OpenVPN Klient diff --git a/fastlane/metadata/sv/privacy_url.txt b/fastlane/metadata/sv/privacy_url.txt deleted file mode 100644 index 03ebc6e8..00000000 --- a/fastlane/metadata/sv/privacy_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://passepartoutvpn.app/privacy/ diff --git a/fastlane/metadata/sv/promotional_text.txt b/fastlane/metadata/sv/promotional_text.txt deleted file mode 100644 index 8b137891..00000000 --- a/fastlane/metadata/sv/promotional_text.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/fastlane/metadata/sv/release_notes.txt b/fastlane/metadata/sv/release_notes.txt deleted file mode 100644 index 689876c4..00000000 --- a/fastlane/metadata/sv/release_notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed - -- Losing profiles on upgrade. -- Twitch link does not work when Twitch app not installed. - diff --git a/fastlane/metadata/sv/subtitle.txt b/fastlane/metadata/sv/subtitle.txt deleted file mode 100644 index acb804bd..00000000 --- a/fastlane/metadata/sv/subtitle.txt +++ /dev/null @@ -1 +0,0 @@ -Annslut .ovpn & VPN tjänster diff --git a/fastlane/metadata/sv/support_url.txt b/fastlane/metadata/sv/support_url.txt deleted file mode 100644 index d9c7dbb5..00000000 --- a/fastlane/metadata/sv/support_url.txt +++ /dev/null @@ -1 +0,0 @@ -https://www.reddit.com/r/passepartout diff --git a/fastlane/screenshots/en-US/ipad-01.png b/fastlane/screenshots/en-US/ipad-01.png deleted file mode 100644 index 56899668b05bbf1eab6e0155b025e6fc35baad03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 381188 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
    %L2eF)u0~6nv7uSdbN#WEeMAE+B2% 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
    yoA!b5 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 z%0AW7x?%mk$5aC`yspL5JxlLPM51nR#)!no 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
  • V0O&VJ&cSY443Ce*`B$8 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�)}{-b2T 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 SbNO=TM$=5b5BqNE&;J(_*c&YX diff --git a/fastlane/screenshots/en-US/ipad-02.png b/fastlane/screenshots/en-US/ipad-02.png deleted file mode 100644 index 838bcd631e65d4d7c929f2ab8e6c29ec46de7611..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 316107 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

    E@Yk-n+LBAd6}iwMjA=aY(rh*Me-3 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 OX20Gc-LyUCm;VD6H^$Te diff --git a/fastlane/screenshots/en-US/ipad-03.png b/fastlane/screenshots/en-US/ipad-03.png deleted file mode 100644 index bb5e4f51b0bc1fd0e13206469f65fb7fcf0ec92b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 305262 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%0DO;Es) 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 $^3$zQ_?=-Cp2*uFu6Qba06Oy$biCTt3&Aj`0am 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 s@!1Mhj1jgW4#Nkq9M8nM>+ z)J^D9I<#ChJFq^)lr68doRXv843eC+YdN*J8RCrBs7wBXXH2Mb?S|FRHdEhwV8I8 zKoTmo_f!@(btI^e6-KqtLnq$PB;7%(Gh+-s@J|}9vd1TrI-=1Kxj{eo4x9rPY}4MGKvqz&*$#JiRx-{m@ThYk-qf~w z{B^{oMKe;M_3@~7r=Pz&{Q;}zJHyg*C?{SWycIRab40qz=$& ztsuuOWzm(xwm{BnAW_#>&vQhFzg&#fYZD;Z{eRjAZ|T*)?FRSTs|e?Q0SWDo5tkW|eU-!rwLn z!t8P9<<)1XAajg*)3@~YdJxO_Q7ZF1EOAb`y0ecMX$hBaZMiCDjf~^tc3YwLQH31X zpYooARclq!q?-NwUZ>lEAJAzpR5N&QL7B=w26o=3=EW|T#B3303kJznvYJME9H~p$Eqrt;D9BLc`Xxy0T}z1FD;ih=!#8H&U%Mr2(~q{@~XF`3o&aVwQ@Xo(3NW2yGd=F-R6xDthvfE znA^>LZ*z?y53^}~0^O|0{;embduh4Nh{1BpR%5v6L)2KuFobM887(DuX1d!*EG8_> zwVkJ@vfeUh!q*Bomil^ zOJu?D4r?o-*Q%FKe(AlqbkmGohbLCd<{j`X=s!4a)$n+6;d%lo5N&bB?s%1B>Yf4g z8X{C3qa9c}hPF6fGdpzaixI!gd)93sB_^XHgH^JjD5r9Mbqlg0qn{boGOS|y946O^ z$s-Ootw@+27q@9#x+Ow+1>FlTsE#1r(R3U4>lp#lgTvZN=zY}zbK?`wM-^Bjv`JLZ z=jomyv>c&)37aZ2VlGS{rQcHmgh1ibPwE8`3=R)Ir{LZwlaE0wfS9UA9i#PtEs!&qsm^y z`=I5aMdyu}QzR2sUwbbwgcM9F36z1lrJFXr_v_n4zr~`nCYOXxzX2XU|+gw}WB zDirSzw@+Ex^st_8e5zsNMUoz?DV2(VF7YXIEmtyeW205?m!Z!; za0ewzf<>0~8I1hrcz+gI%YE05k{9=d0_6ik)6R2q25^cF`a2<+RBnu^+W)@NjzvRL z^o@vHdy1+$Sgj?I+8^Y4b_u9Mzf4UJEHjz&WZmX{PGdK+?UIBfsB8a%Kw7l zd|Z`u{zl+ybRk$=#_5O}(}q9P#|NX2OKtM^jcj4EF5NbZw(6}@LyH?9cX;U7&?C?{ zDn8D$nmVS9VUn7W4jd)-BaJtFma{4N9w84cg1+9}BdnnWz)^O#S zQG%^Y&b6-6AkjI|oBKA0DrlZWdrFJdLY`S!cZFNCNw52PJij`Sp~P{%=?_+{HiBGb zq8q%+^kT2hW|S1@@DKEPuRoaRi<#bH26_F7t!oaR_hVg@cUlPa&8@m~{sw~;sh!<` z!>i_(G1@{x{$y21cv#0sGFfn*+)MXjwUD*0T3I41BEo8<1{#C~e@sv%)saSVeo3l9 zskOCI#W5U0PA=UYo{(FSI)`_UJU_;#4wTa5s9z2lMY~zeSFIU z0(?_G|7Bw!iLSw#H=i@guv7yb5#`!oa~L;7{$YxZh_w~YX%B|AdPA?@w;_0Cy(X;j zz_Hqon*1aaKQqDVNAHYS6WZgDM3widX6VgI<_0Cp_NWkeSQcvAi^I(iENGn{5?DN?AS#SO@rc3yX=&n$>E#WS6hI(zT zpu~zb$#?{y46(g6TDkaQ*yct=Y3@>6yKOqe1bsZPZYGD&3P?AOB%k44^!3uc(Fg1> z$a$r+As=;`KPT+YfwLiK4fS*%7~9M}$%Zp4(6P9-l3hho)a>{svzk}!1C{$ zN7r@UwmCwH=1D`*va+(FtDPb9XoYIN;mk#{$&E2VQ`RPM1ReCj)vy!|Y44xJ8^?bg z`l7|^K$n5t2k{m|>}A(K5q2TSa(gruV6b)bC=O_Y1I|gU=vWdueVnkbFOg@TvSv%d z-;0%H@%Nb^h2$qI%jV(T`$fV?;&CR zi^lIzNCXabD8^3ZzI~bb*lvYUucoEJ8Zo~^%`m|iKC|vw+ftxKJU8f2S+|nu`^M7f ziQkYWeHRMqA$%gy*W>|UoX2K;4%|>?h}?j?tHb;0wH&f#tU_zb-5v!7Fd7$ zRHo4GF)NbXGaFiM-nFdwv9bzur)Z{cboUh7fKG;`59==0pR5;T{q^Ib`cfVE{#osR zy!fMy-`)A+;{Wo~e{<*W9`OGk($2G{FpSIZy5Tpy^>g@sbMa>z|Kr7LB^#R}c(&slt)!(lnES7}+?>9vVi#MYeZP72*=Ql;G zzh4Xe@xH$)`VAGoDXRY7)=$EIQt^Yi>A;Z;E~r_T!PiDMEhqSoM!qe^c}u zDt=S+8!CQN^cyOEQ}q88!qmS{`yajdJIa1^#?M~-QS`fk`^}89X4`V}M#+~8o9fYl OICez$&z!@yVgDO_bxGU+ diff --git a/fastlane/screenshots/en-US/ipad-04.png b/fastlane/screenshots/en-US/ipad-04.png deleted file mode 100644 index 153cf2a745b2f23ab85c1f86bfef26f7c7269917..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232920 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

    !30i6~I8T0$FJb{q8s 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

    mmwhW@cugHwR(yU4ca$Ku0YH?#&)$=>+IgRtc9= zVU^#60G}&*>)X4*B#+^l;hhDK5+Be8wp`$BD_V6CG~8JnUeEL>+DC(#&>IiJda$H+ zK(LTi78VxJ4md1h4O&hZx|CF-&hySde+YF0})_q4t2Yr zePLm9vo>AL31;cL(|Th0s2MGIE_~EyEyRaq;`)Og$+f()g6*YWcMt)wP}1~+c7 z=A&ca{(ak)8{j1O;l7)x)@if&V1zw{E|h(-}4`?l{W{;+>w$TCL^1fZp; zEMLL2q4&JHpo!U&u-jh#Q`()}Ok|L)9k-HayY(u7k1HZJw?Ly?3qrazmae6`XU->Y znbG~g(h265%eM)9=e6jkz4FMyZ?z^W;N$N@F}qGD@^{`V2Gi1<{dU!}@r4LJ8QdIq z_6K&*xb+>ZZf`UfYANDo`*G3##c&vFLX~e&4bBxi?)FCCe|?4oA^Lv40JTRzk$Tz8 zgNux1T}v|~a=6698Jwvrfbl=IwLXj61!r@B_VvSu5Apq=0mZEgT07}48$e?dtWdy5 zP0)_F1OO|8I2D3IiEf~+Lco5Y)T+2hU-q_dqd1s^+|>`7UA!1nwhMY1$=Rx#bY z*lX3=#~-wBS|D}KDgm%nx@Z48T|TiJX`j*&d8V?4p|f)}Jf}94#(inRI?qNmTe*1?1Auwz{b#c7SDZO8 zc&ABx0ifA#h8p*dsR#AS)`#<$Ec$!^Z^rj3^HMbp&MmwuAPTPc-H|^cOPwu08 z>mdIPk5_L4{$*#0i$kDuB4Z(`e^YnywTjwn{Avd-W<>Y{G$ke~$|}pwx`L5xWBd&x z^uBPf6TSP*|CJYL*+NHSi}GH4bVR_R`2h{k-|`osZ9fVOU+@sISan_bD@ql#3G1U* z_G43`{q#*Xa%6Qz7u8=sF*OyWoV8f}CPIa?KiGJCwr$Jo+O=yB!hlEmrYzrOtlF5c z3Nk0v^&6z6f=rdy7F};a{0a(vX8H$5fzS*d`7nC($d-a(L?Ct@>5f$U;hOR9`^-PC ztw+(IP8AFKNA;%fNct~_WTvM#7lYxyUw-z`yKL8a5ATfM0fV1LV)#_Aw#A{1P(!yx5VdRW`!nHqjpY zITe(B0`T~2$Ju9OP~7w9mZ}}z&YHH|P zW2x*x&>I)gm3DmrG@>dX0+X>QVOn??A0J(*N1z+R6pz$_Ii6nzxebJq?m*#sw@Hoh zYRrolg%RN1l*Pgw_XIf3+S=rg&_b%Ghd}FI z;T!J)Ubc|^i{;3?2s*>p7!HHmq?>98OZSwNVk#0paPXSEV^3z1GM+5pO46CGV&I3g zcWi(Y9(F8R+{8Kp1t9fWU)`%$pO z$>&Z_=1my9C$tRghapnaTTFxT?m6l0byJWN`L=O6Qm7Aq#(j?6+o>{u3_nOGS*kbd zx*>QP6z|wYfEKt`(%Xw5%{pLnxMi1+bkKYKd))=Ft8K|{+1O~XtP@9P<^nUPv&Ge`kd{Z;fILJN>$-+*}$jiOzR&l-(po;S_GN_Ps6U(<} zOPByT9OhNGhqsQ~jPHSinu`Nnmv~R_g3i>>SQY}MH%RSQztaK@5|(w|7WQkg7ZGbV z5ygk56?oJSvoJ8T7tZGon4UXF&UOUs&;u`*%x;}km6Pi+YieurAR#fhZ{nAxajq=e zfmqP?DSp!MXE?MUo`T8W_c)$|&h|$##<3KPO6C>q^mnG3IS7&H?OHQMoBNIi@R526bsn60PtC!Nk(rWG`((%Xs#=rtAUH>$Vrt>n zkt!3XqPihun=&i;2~pA9`=|t2$H6eU;b{Pz!u#^U75>udWu|e}eSc%)c=5$IR?z*n zSsaxcrCxA=c>(0MX?N(~oGb9CoY;Zqsvsi=g4#~wtxyG~qeXnfii?W0=EZ|)oFF_%0tSHE^xS>&<1 zKZ_c1GZH4w`Lv2xmYI$Ep>aN=a~S-veO6gpkxPa1PIqIJSj|H=Gxh>fH$8For+G9` zcBaBb9B3%UV{?8|DGfj~e6a_>D9XjH^ILOMnRw90qtD~#x@DV$HP9y}yrf!p5uK4gp zuQs1*klLQHePnspe~b=(Le#)40jjKiNQVu*-R}q5;jN9(ci0-1db%cB=@vfhAnL@+ zJg$P0`|e{dU$S13ZTfz4F+@sWH3h_f=}1Y`CgfF zIWlcW`_wGj-6qNHM*1nWr$JKTAaIqD*pRDv!XozFVYe;*^vCW!l@UJBw_H=i3Q`kE z-E@XV0ia%5YK>*U7pLluyiP1^vYh0^n z6c?yD#hfMDkVg7~3`%`5RY4XYCkti!y4Uq4F*P`^*OHyihr`Bmsy&?(?>W$3LhXJl^qA=I)O=#q;0!(#W)v&g2=ds`9;eJOMb1 zsV`1JFJE+Q%R%k74t2u!`_4ZT&-39_p8tBQHZ~c_TmvJwy(@6wtJ>@qu6191&Nh!^Z#_A3%K#9VzYr_ z5eboO*M;6}uVpcdf&MxRf_>fFriC8&T5R?UXmZ*P<2u~ynV#`+s)3-j9U(C{n5%+! ztV#T8(bU0VK`c&99jHe-WXX4zKJgEwNnq2V8R(J3@v}4-vbF7OE%c;q2fN~?@>m*@ zc)Qy;kLY~o;WDUS?H&VFSq(u^7EQTEQGTYf(#et~ZyjZ!O83U4&I$&MMy=~Wo+EN* zwl7cG!31-{!B}3z;r%pxGN;GDNRqIAGpi0Z;SJB)h*-$a(;6=`R7DzI7#LdamlIFq zCQ4N-W-Onc_sVh!eX^79YwAR;c%ZpSNW7fGeva6_Pb{yH7duy?ldLT)s~A^B7+G zkHShkZ7tqwMuo{7Hzh>9qYGPE-gvXdVJ9o6&0yopPyFI<(vf+}ynZyQm(ra12{&MHl-Pp177M;yor~hnE!w ziY=W=vl0>3gtuTX80^g7do*{NiUjvvzal)ET^6$_%M}p}ZnB;OAYZV6A+|NM@C+CIR7W zQg*^)Zs;pzgd>4FVfPy6TninhpXo&|uD1{Lx80uOjnU{-8cDvh8`_k<&~iJST&e;- z>pAFqc{}4HTfHVV`^=2*On*-suhFFZHN*ExSF9ie_C8HikZ;zF>(PpyZkx@X%9K<` zMW9NR2eg_wnDKsu+IW%AlYHlo)Anh;U~!6H6WlBErGseS>#51Vk{}DHjTfQ7$}ZR} z=M*#$>r`fvg$vQ4a9X`bkLDQuIS-AJiWE?o5ESqwv@i5)$V`HHwCu&r#D>f#R^zK= z0pDMKQgk%J@Lq+?TM^=xYW$2so{8%>L)J$SA2w}eoF6x6Vy2A{DvVPr+bRXj2cY~c zIIB&*WLj?)GhMQiiC3v__OXU>wgs_fr>t;h=%w%Of-+_sbCPd)I(fJ4Lut8k)%~?I zbcA4HZS&^ctgBFf;9-&`065h=Cp*zYi1sin5us13ltl*h1hLm^NH@rJ=h2 z%kkqxE(#JNdi;3D)8B917E~VJI)FqbpSIh*OUfVF)ql`xO&Ut9(dBFAC%JTu_B7Q|`l(fW-&(%L9ul;k(-$=V@-qAa8MI|$ zv{HWEP&UP$rDfjFZ_;7s$!wN8y+QM1s~x+L&G2V!h8FQQAE{FyND!};bKAFKL#2sZ zsx$dJ6(#eEG?povRG-ZaCM4%PssU*!7!co!CW98}+6LEJbwp!=-WLXk z)oj&0PCh%1SKx)atNceC~6 z9qVmrF;pwUV6W_(zXYT<89*`_s+%)oUeH4)y~cK*?|h+#4zil3 zbvDTR>{e9-8L?#9#V|tVN{C-#5Hq6^7svv_RvXwFhdW2^7^@;|^AMj4=Z15{(|JcK z#tl(>4)5INnM5F|EW)~AL?i=rExNwqljTVX5g)U2w0*P(h=BEbt*X}vUQt?aV~wJM zIyUBevqevOeL&JH)h>VZj0She35h`dtWa;x5>fAQ=3VW z2gNR~ioI1`JKy-k9FfBNc}d_etij-Nv*d}r-u^Z`A=%*8jQb*Ku@g*t@A7d zEB`vfwT!~(#_vZ=?0=0?JD^JIQBc*NAk^ ztqSffcw%q;IG`_L+i%dG3G#FVL2~x_XJ_+q$wz}uxRsG^`fhD+*&9Oq6IFh3Be*Hi zo@V)!HiRoQy7`=pqP1=VCcBA9UG9~#`Bb5N_*q%~eo7j6)4!1JOHII#(p-geK(=?u z0_0cAd-8H*R8oi87z#^12ecYMh8x-?hQ-Qo75}==$q#)n1uWoh8dPeY_B|`JgxNt* z`Bd2sGePDe_lr(m(93ZI#ytw>>*vv1>Y^Fjx6>h2HtwBE28ClrXYz9fw{xp*hGahb zPAy#`_mQ6Z+hORD7SCO0&it&K@qWUYj%}Ol)bH(~fLY5piUoDqfL~oZJ7eyTj%vFZ8DB7SAHu&DF%^y{&|fV*kB918kM0Zj_G|Ju|NAnwVGvd=+tnGGQ>3Fndp zY^-q^Zlo_pkdjq(JyJu zXUDW^o*apI2po&xItsBYAAht7-OfjQ2$JpFE&H5ITz3)V0(dp6p$f?3s&&y_Ky&pLKg|dZ!`rd=jxI{y)r1v zlOE{svbD+9ugq7ZYcXU2l+vv+rMoegqt7ZJ7}|GhIFFKo=6&F#!H8-U0? z4XWg#xlVQBvT8{~l#lhMLHy^~-hpn3L*SIrA$dzg=lmVt1qvR&^T_<)pMf3fjUdGl zuPFCQ-#O8ewz1&yI}fL$1rd^E*xB~yTvM8o|BU(nmp?PjzaQ>O(kxz5w)n5D z1Bg=}g#TA9@Oz9u9`>{wop869XF zoR&WXGSUdeU1sokf10NKO-nijJa@$5#XE(5!34uJMg z&n5eMTp>x%@t`>%WU{m^ErBYxQ`9H7gT?t^tNt~&cdqdbeA8lE7FX!c7! zAe6&tK`{>v&>9ghk)%?Y9|4)v9@_~-^e{ky$KJmQr*-!3OrRZKw~D!GeOQf?flJmQ zv|c4%#qVMt$L>cUH%gj|A2adeVS!fzz`@jO0<=)+yrVOn2CvsG`Q=(Bx-C%u#WV~u z#~OjVDUnx1i}AlbQec$O+bc<|L5zGH7sEK2%>357 zfYji@h9z!Ev(jIhlN7VYN6xN_fxg<+pbqRKC89S*l<-tD&1aL@+%LzM**jeG4r-EEWX>N!e{^O{qop-I*CIC zL+%pi(%|A(V&AJBXW-Yrp)1E%F!H#MR%+QgJmD# zDH-#fC3hwGnZe#F+)yEQ$R>r9KLJzuHzReZ5UK<^RyC)41`iwOm#W0$L3hK0fKSc9 zBz%Rz;AWTTpf55Z`_5$X86Kv{t#HMDzNcg)*}2-~_lw`DeclA~ddq`Ed&~IT-i458 z4UBjD%U5IDtCCNy(_K}hC&n*uOsNo(12o*Olgs0Q+#)#h&hHn>3J@<4uMP!4m4Mb0 z=~8<{;{nLNu{hd%fUM{BX6$JYsA`ls)#nxdD>Kq=X^fe4G5pof6SVX*Cho^v)& z{YnW*?R=oDw6|XCVTLZ)15I; zov5%nPC8n~%o4GuCZo=cnEAQcZ)X~oxZhNgZRjuc!pQ0U#WwAqSLz$k=oew4hCaxy zi(DTTI9%zl>WUR&b8N7+iG!?zr3X|MI}`70Ut=<-I#a(q*GG4o9x^v%k~hciY;S65 z#&;p7PSOi#goikuxQ9;4OJ;-)TgIyRU6EO~X-#A!U^&yIOFGv(2q2-QjQ8tK-*hDc z<*{)$J>F!0YldaeSF(Nw94aQQ6-1g1v0kOLEz~ExDpn`y%*Xa1|J*QFtYO!B1jinu z>b7Up{7HkQ4XiG!S?A(6kMPSV8cG+Q&;y9(%_5J~dM?-vB~YYjcr^fVi`YPPKzupa z-zED?wcjt50l7G9Umz{Y+7R-DSqZ)trGgVrWzkP-ER{(Mn0^C)`@N#T@U5Jq`e@%YpV&0^4A5s z>!&mD+m+sKO98Q4yx4w6?^`6xZe)a^jeMa8)w^_H+RF7j_i~#uMZFixiM;7B;H7MR zOGY5Ftq01Msz+ZVuHscnYSjQcV!LH>r$PU8sUgJX?8p&Vyl zkWrY0qO1odYD5NY7CiD9jy;+yn^c%o5FsSKo&C%gy!;;Y{DHL~2i|C8i3-UPg(rp?!}uEcsnb)0E(16l z1uu6XuELasA-dK))Z|lPzRML+EAx6}QXfv0i@dV7e4#iYWUEmD6QqdKZkRl?8QCZh zdKw#Fp^1oH@+7>n!CV>g{xzHdFs?Gebgtv`{FIV&*MXGq2R#l}cd$u(Q`52hfsv$&XBb zMTqS(oPw3&`z4%T|BG!81t5g?>Lm6f6BUP$Vep}(*RSfdzX8Vcd8W{~5<6DuMd`@o zxa_W$+YR(}-|C;^z{6qJRnY1z9w9P$a%7PNm*j=hBmsfngNjAJo)8KoFI%pT)M6nmsMl&R8Gj7st`M zo?1TSW)SSTc#tML=?N7#+FnvFkXv1aOJ%e-7Q1%ORhLSHz`2@4=nJ+VGkfRLgjNa! z?YhF+=!oTO9oh2kgTZr1&Fs`cFODZHgmTo z8}oden9|`hmkIGIE1T7!Q%1j>uUZ}XXn;PK&`$+<$||t-wDv~(>`pWFv=qq;OD`9( zs(f_NiejFoMnrB^`B{eAwXsXHn$nT+n01CPk!LATwNW{GC3`M-qTQ9KAGw|+gdQtb z?TxW{j&*hR^539Gp4@81RACx7T$Q$THpZT5cmvaMP&B1)%T%C^T}XLAUKabAeW~mz z1C*Ue+f#{bSZ!qoB0LSU;TPKP**y1~ra)9HY?i-fAa)9GB{4u!<-YJv;p9C0Jl~_S z$Hfwzme9*x3JAT~Y$IBZnlji=TBSgh z6JN4kI4C0On?02@caWvv9&hLYM5D*ViMkv^%Yc{n{>_6s2${=T*|-Z^Xj>Et3rfFm zkNxx^#qHF2*kbN=N+}rZ+uIoemLninZ39riasPDq{XWFRl1p)Chz2$r5 zQ-O3MklOVJ+s(G;SnU#FH;dT%d=fGhl(l9QT7q;}+C-*AcD@)SRHoD=4)KAsfFe4_ zq2!qQ#fwbk-|kS_ara6-G%2Lgo@6#1EuMjkV$tVOh3FZD_l{6NPnRDrKtf-XIa5-z zcdiwU#>XbLdi4c8Yl)qRIc(8fbg{7)!#E{Zul&}%h?eI8<;wL#E5}W1Hak2t@V=pn zxYv@V(o?8>2K2GyxVvyEEKPCBZi+qDN8AxBeV(76IMh&f{L!<$L2HIg;;!imS2^ z@I8AARY^8XJMJnH3J~RD623tN8CnN?hf-ybQ|Y2jE~L%zH=mRf%*)CUyEXg0zIjIF zH5VDeVXOCXm)r2d=s7-}Q_UaKrC#P@qGyjnpAGmbJ#~UuFLGf_X4LV%a>Ko6@B&fI zk}S~6T(x2CTJsvERx0+}T+k)N)0+a^0<28Z&Xm#=@^Jy|;ikIoMv(R$d`rxIoY}2F z@~-Qa=Dx8-p{|WNxtOO~0H~eY@MC~nP=$P(uv)!TzP|iT75xKbfy|xE>M!`ugIiaP zze2L!9@jdA9U-oH3B>~mKccpI=!#MoUcpM%zueTXSZ=OFl^im)-`yB2@a6vn1%J=~ zY(bbx5}Op>S+R$7wf6Q`)%LqDJyQ;l%F4p7sgnDyS_J;b#JIi0)ugJ`;L9zTO7o5U!Kr z@98%YnVxSY(hGx8A-4fBEAgu;08K=#$2n{ge?3U;3n=>HN2{P=pPAGc+If;ZLW84S z5%i2g0m^noO!~YSfag1S{R;9Os$~YZX&@CXI~s_7hm@O`xw}khq(TpfN=hw4zb0hp>4D6g_0m2I)hj(wrE+6LKQ*s%xCnj1JpR(ROy=V`nD!%4JsE;EBWb{TslHRrYfYNGW zh}0oO)PiG$e_K6Htb(tn26+Q~%~md0+fXt@GrN_|A}0L+W`+a)A|qKZ0fMUT#gju6 zRHcTF5PuR9P7ZCVv5-N@Wp{vm&?vXOd`7rI>zF|OnZ2P~(92~iNCi}f#>kvpl_Kr| zQ5fXLXAPC3txBuSqFc)mDDL5v=z?q8p(UTP+W^0fodQ&h<$c8W0&eCZ5JzTs=Cf{a z8QOg!gA8+T+4-XH?1J34lop>pkXaYMKr|nfG&3z4NjE}{=YwSkSY3)wJ-EU`?LYKM@ z#!eGIQ6ka3!0?nXX_zNHOnX}OjzNLF0;EooQf(x_>!UZB-=NwWg zTO;@APdW7oLdEX$N7O0%mg`SW^>d0sl^D>P)%k-U)SJAZm7lIWrG$Q!P6k|gMwyAI z1v`~*Rmv9H3e;$d1ugeJrY*IA<34cCQ&8nsBo$az2tQAW#}=2WwzERRCb& z38L7I^hZ%-q;S8UqZI%<*@bODtzs)Mu%J6Fte=Hq93rBMO}N)T&JDJT2kYi*FGs+e=tM8`VV} zK;22`nDQg4a1kHEg6>_e=s5Wu>`-kVYgP=SBTNwnYs!!|1G&eB>EWFmPwi$eGlc0; z-^x#d{Mo7$P;5Y`aueSz9rxB22Z95dU;qW!S3B5btlUb(FbJ%qeKfA~Uy7Hibn6-7 zX6U#xMr#d2w&iLGtFkoZwFv!J)3Lx|19&o)sdb zgqtePwFuc^fz(b~Jq_Kwdo%V$?95u=tabFMdT0M3e0t#xYggo=)GUWEUT3!Q9mxNS zwXwa0HQW*HG92NNn|;UwQmtl0a3#tb3o!Bdn6Ek zaM8P`q#97&8}k#+xZU=gH5uV7$LD3$akPJ7R-SyJZ+S2Pk!=dj$4$1q6k}+hVm-t8 zp%KO!0LWf7Uh7>3Ai$F@`U5nQ2|ow^i(waVDZrootE-rexAn5^@a`P+t54N+Kx zDL4(M;$O#p-JESSQ$J%+&d@L(f1CDv3aoam4Ic)x;p)*rrAhCt5}x(7C~@_6jI;-bXq?=YN6CLBo^L+xv_wWEpw`mZ}a=$6Stt~DAlguT&}Z=dDaSF@WzbT zrG`gUET-0n%bLQsw67D2G8c#!c;rE+vkc=4Z+NlgXQWg~<%vNa<*P|7s_$&r;-VQ< zHq1?r2Vj5U@!uF5dmSS2L^|!lA)$?vx7=QGle!Q6OpTC|BKv?h0}aHjtw{zoj930D z3%N*{>e52D#14HMPB&$;sg$NDm3_sMdJRhp$;ez|jD;aCvIE%}03)9RxMl{`Tau6c zH+xVCRaOarOqi!4D|L8mm`>c*uW#!4n0r>M=>icVgks>OYXAek>}T`<{tGf|fTOcR4RvP@ z-EGf0UG6kARan1$uOGGWtB(B_Bx6zQj+-Ro8Vuz1ets?9-v8WhT!6nhK=LVo|7PHP zP~6y*Ym0zdcqxklay-nWbU>JpH{$eOR&m<(>Auwuw+C8cVRD}wy!=Rc1%CzS5_iG_ zaM@&dz5lO7oxC17XWVWSPQTWw8Lt!je%Du&>h9vMAv??x zNGs1~RS1U1O}!#?4=x!gJK1FG~QFjJU@ zF=Moklb%cwA8PvxDaq#P*SET)GG90)ag+BkBC4$W)=Q+rmd+R7(2Y6Q6~~#LwHYMs zKx|!`Y?|mTn@Nmg)&11v(+F*p;i1u)cho^7&p^g`__)&gx6bAM6*8#*jX5Lr>F)WjQgW z6ogpCjd>*sN5^en4|^hJ+wdC39>oJs@+Jw^h*2Gp(9B~E!d zXv_tRpie)LEX}r)d8e?DQIH=-by|yN&$lX&*_*gSR*38i z+>D(``47mSd$kcs2dS;)bf+^p#bkW~R%ye$;Pp!~+`_jH_7+_A9`3TLJ?bcVNnFWF zqy0E>EeQrJUTaufxYr0kU~@FpNJ+kjbTLtLbcBRm8M`}|3%{q`SYBijD!qCTa?$Y^ z{95j!s-Pm|BReYPz4pN6i(m{({iD?*hrdt@=DyAvY`Br(^rYb(dN739bJX9=f3pk5 zU73em0Lqx+cce?Mb~Pr=t5+88g^zyBgV0^L!Wv?f8geD>h&MZSx5bk`5z!5ic>4 zm>pQYf+{g5sc#~-Xf1GOs>Os`$Jsh?Ri%2O&bOW$CqD<;`>v_3f4l}k>Ksfw>Phag zUF=P3VXJ_uih$jne(x#KpPI_pLGMp*-!FA>W}AY#oSBqY>sz+2SF!f+Zt*Ijejs>N zkDLjuNkz$$3p|xW+Me{z^+GoV-k$NR(bFB+WD-#IncwUqCPu z`U_Ammr7Smb0qIkhUxxpy6tRtaj0F~(@ma9(70}&_`PqYEAJhFK1VM!yeu0FG9lR< z2?wo<^49kKL9jOM4Ts0>+D6Tzpccv$C`s@UB6Jq&G z9A`SN=Qw(+6lOi(IMIoA3_dpUO8uR2mX5xLl%!Rwg?|y3nWZ0<1|Y7giIOm&9VNINJc`)+>^e!gH?o@k1-9 z!=JqeaL+?sqp9A{c;BXlTpTHBE{3w3Siwb^Qv6_pu;I?l$Z37fEEz6zDjB<+DBa;h zpBE!5ZbTn3x1*$YJV)KU_U@KylURFD(V}Bg=ZsL{4Jt}(l$XHX0ni)V3Z5)ouK@57N!Q8^WCUo~@^F2(?r%2$Tn8z?g$b^$T26Vo0Z;}DzjGO+?N%ila#!Zmi#9>!h;-o@{UT7Q*K8S{ zaJn~AYD(Yml`L7nt(W?O=Ahr%*Tce;RYi>)3l5-C$|rHGP2~fel3FU?i%(r8YR?%& zO4j2@-9mKgf=`jp-6nCzYEpIxEs%U#RQ~RK{~Jw+|G@EF%hEzL07Tlf%h5^=80(gv z?Q8#fvcdTVbbE3L+o1cnUTnToRuhMjoU(V%Cr*6n3~8JOn9`t+bA$YBk|4$N%fs*5 zqyfd;8i{O8{}4iU#nT*+F#!8I-*Hib3o_@+> z1L3eQs_K1+cJwQC4VLv+IthS10d;8a%^jt@W!SLMg zj@RE3j^+?QLRPwyrxP9bJvI|0`@^hy6y4{Jwm63(yYm~CY;^Eo7Si=2HUXt4(Nifr zVg}?FmTW+BtS)!CdECa2K=M-X0`@`(V+1WiQ@B$OK&X4pD3qLQDnmGML_QN}h*IWjQZipaOiPzHuSw=nLId7w(=2dg z+YA;^81xD?08)PYrg11J_$M+ni z15PPj8ZHV27&-;mH#`DCQgK_RARIt}7iBOlu$Qp(%~e33FfiFwvByhyQy$Ls8}C2J zdW{VlRe>RrcQ^`2V6&=JHwSgJ8AuKAU%$e?R_TdcWDh2p!MnOE@u#dV`Z|G991f|? zB7;q!@DQPLghKGsm@y5f3#!xgDm0oJ6I6$Fm7JmO;>qngLUI*W!U4P07js`=;$gsCQ6R$CnLMfU^$ z%SYPh#{Kya{HSeRg#+*ZFTuxOJb&vr?CIde{;P5F)R`@5ZntO?%5}}{)ON7lO?*D1!AH7Z~rYO`V$*( z|3wlT@88@Nl2Ieo!GYg@8w?1-tbXtZ|F7rhUkCHs%>0uVIaL8}!+lchZ?_`Yl0Pa_ z|K;KTa-;lxX8!Wx-=^k|aB<(&_&<35KRAj1GC6;F@ozimPvPr7m+F5U&+o}EnXIUP z&d(p`KxS`;|IhojV+kma2+05q#$6FN1W-Y6olEw^_ZjEGG1fZrxJ2YRK$qcB`ZMJ7 z*V!mt)=pMZ&_=5$lNg`W+Gt!$0voWVM`VG(H$(GRpq0M#R<2Cs?re8U)rp#qS>>G3 z5;r;Xora7*`OSg4=()_Isd!@^+{`<4`260;9uZ{$s+tB6$^O&4x;>?Y04TEfz!^v@U)UNZl(PX+E@w*-AlS8xbaYpOwBrJh{`5UI z2S||tGtvYeY#zYLht((`x1gNON@|tETlo1BP(na{;*(qYh4T}7P#|hyu*hP(_VKcf z^$j3c$*BMC3IibP$o$Un{nOc{hvt->eFg@`=LSeTv;%%X2=ow%f+w@mDvu4#1`-}9 zgwN9hkP}dUTMBdb6(C7fasf5+)BqVI`?=2cAPXQVYG3#N0vZ=oyUgV@T$GN0ALP9>InMxn-Ua@hF5vSqn|Vz}NrAkZ zJVMzAEn-pu*l)Q}r+Q-uohmPgR@Qu3o6XAvkZXTf7sA#+(DZBVy=Y{9U;d<=^iArOdR#oiC*^Y@gWibcGBR-jsW%QWxy^$dTbCl-(Tj1u7fcTBfTB55Kx3IHdz zZ1>@9W1^BzGDxw-KFymkVa-&mDEB_azlxJQK(zE;&^kfJ#DrMYqmu>E63PsYo%0L$euNd zB-tut86~2G%9ccnrJ_VavXy1ZHnQ(KQ^FX7F=ovC?nmd;IiJt@Ucdi!{jdN3`?=2b zIp>-&^UU+SxBGs*Uia%xT}GA2Q1S1Mp;~3@&9)bo?V7G5Ho7ZWA<_s<5pE(`Fqp*JzlU4QRQI7ZZhUhF!=7& zfW4VM3AHd;;dGiZYd`$G<^91({ol=WTk42-nd$*;uxaF?q9%Nk46=?c5H<$hPK z(A#{hF6s)k=}tiXXvVRJVLl}zB1EnFqfrOMB{p&S0ww&EDY@nW6?`X_<-^$W6!$;$ zj@rCC@6EdVLcCXNB85@3R@(Z94)}fFAmMb%Yn8a5k`u>|`*KXJkMAmZTBPB}iGX2V z;)ANi)zf1}`Xc;2-DgAZdyl*4xDr(YS}td>k9}N1~t@em8|cAV#8`qA)ZQhYmHRT6ns+r9}lzxud2)l z*P+gR955HpY#vFajqV^WEh=Bj{iL2Y1v2pyMW9mrggT62Nnf2mX{;^7ej}jPM2mr+ z-hNzOY|9Da*YSou-Dkw70}c&QnL{(BB&ZXvKD!?3fle>_n6|g#2Le}3EIzo`rwzLQ zMQ^1KM}bNYd&&H>C;}oG^mq+MT_-gCuKEr~lo`=Lck=200W6=k)<632e6$Q2-*Ta# zkS}z_4qLnm-7r}j0Fc|;5*~$iBZDDs%9xg^=Yb88;(PAHrYze5vz?WuRdJ4ca z+p*3Ibz-+&8w%@g{b<)+0gI_%^44siaNsR3NiB}kIbJr*quuv74YhSUC|IMzDZKNK zvNG`5c^bjUVJzi%I(h8;Ly6Lydre27Xz+TG$lK(R)ArXNR|I`r0~?~= zj~uV-bQ-j{Tp10F~VCT zZKH6qKURI@c+E??Z#TTbV-d%o;r0z~aUFz)9-0@iX~$8cnA~V|Cwmq_LkY@_C5eOi z+af(ASrOlY#ccr#f`k&MUZn)3W~JqFN`re%*A%5zK=c0QOwemX{>fMW*{pD|>pg=` z9r3T1KA}ui8tGcyqA8|0WV`;*p|m_2?ZK3Co!^Y+tY(F&xeb30bTWSXTtvCUMPKOg z_LFwI55_~*@U~|0%o8~R(GtX>GpL8$bm}^q$JDBjZ(^sDC&WGOa*`*V9||W1L>2jb z?-W|hUj}zk-6pSuBhJy+pCka^Ku zv&_f<9%py*9JrRN-P9NTZaFIiBF}Y#cD*Gt5E8IHacQZmgo+e?R8nspIDeTq&u^a3 z3H2gHP0+#n@`^wn|4ih3KdrVYyNiE_h)s=T3p{V&YY)X7LrJa|!|_isQ{8>MJ+_xk zvlIgs6Q2fu^v11Y7qs^9Jok0Dd!HDpxHjS4jadGCh#+@~O zDotq2uM1Rdq8ls(c9eOh-4~|TBiL2+N-?^j$%f>U_(V&een020o{Hm2@=ERZDRGbw zFVzp?HYN(a5F*#7oTyR3+Q(~cw+V{Z+%6fWv8{l26}w`l)X<|{6h(Zr4t;U4&LmRX ziRjRH*7+Q-(;}RT!t1_KnU=Fq?hMvt&-{)u^0sdetkgTP ztr@^OJzWWro6>AF4Qb(*Lhsi)`Mh0rwWFRoy$L#$Kr^OipA&C@;o$3AmR9meh3Y5X zu6u9mgXz$K@>d%q|<1b;l~;>jPW;2!TzW7U@6PvL%PbY@6+boZd(G6m61kheJ^ z`Vh44COyyBPV>68IJ1T%cc7l4!+E@8;*$F{rpf*B={bNLoZD7@NpI(;_cZ{2+_J#Nn3m)bTmPGHh z;f>vyIR(W*W}RVvV7}~_yE*Y$eL>A*Tuy@RrbSjcWddW&j-Ed3OskP5DF4tFLl)6J zu}CiN0B%!E3ATQ!RT~h`wIomzg5SugIlm%kWK}j7AbK0Gk&>iG(@)dHU!6UnyPi2Z|qc$R!n-O zJVcw8uzAP>Z(-4$g1=WFmA&`*Sf^w3ou0)=u$p}TRnK|c{>l}NHVrx@m9e|vnHN*X zU8g_Bk5K`Cf(6@Vx-hgzX*vR`Ju7Vf4mbW#OGim3&6$e*ZET3*1fk?@;Dv`TkxSoa4^=BE$h_xd z8e)|ey7aB-MK_{*zHS$(>?ev~2m;jlbM0LDJjz5dJ_S4D%QYP(0XU2yeI?YWt9dqY+&J8a5uh8S+7nZ-{T zmJ75sdS=u(iwNDPHNPu3=)6;su{^*iO?z@km<%FYQhGDP<%+pL)W@YCllR*NPB;;z zGLuiH2TE^cK+6s@zvz3zB?)#>*ZdEJvewqTWuu@*XVe>eEuoAAP60LUu@M(L>CGN* z*pM}kVz0AvMDAeozkWox*V}2D>FviCi80(|Jji2d-S;~eT&@JM7tidrKd6Is&`34c zb~Z_{j}K5qVp8hydLU#Y zJl-4P5Xx1C@lE}K_ai`mqj$>=UDqbcyk|2w-PV$0LkPOvGs3%2c!w&31g|MPi#ZtY z>inzXGKm3ri~1k1HlDk;O=R4wxoQScLNM48mZ88Dl#4;F!ycb$(Yj^j9!x{hov-=M zR`2QS9Ud1W*lc;U-QP>!Z0*356+;|0WMUfeF)XvmJ_ zpKp6PN=+n{;7Iqybt{!SAsF@5DN?&}a2EIzOiErd;1a}6wD(a!%Hq+lDZw1dEN?%? z<*(9h?>sSM`H3@A2kq46@B#Jh-PUvLp{iW}Kz>*tK=u7ih^~OsGVh^J9(c=f|7*B2 zyVo3@5zcfw=A=Pr5r{j*eoYZ~S6|dJzy3O!hri&UMarN3X1tI(p-js@tP`>(Y}Omh zEq*SJpAehJAvR?Di4@U0-jTkakjk6UQuW0-(MZL_@@@qL5l0T|?KLqqe|?}WL(}wF!p($Iu6X{(4Uxj$S&%jd=5JDVdiwMGn+BPJ!DmlzWa4Gk zYv~J>gH_hYUHz0vWv$)7;piTwom6Z|CYR5pD^zy~#iQb&r)!tN;Z;vriwIdJSbB|C zu7ViD|B39LgG11D*e7b4%Qn9VxyJUuH*yt|rSsSa!_+Xph&~ z>IZj^Jp?Q1X_TvHo34ZEU8^(fj)`92xY84O7SC-{P|B#wB2nl+0k^e2dNl|*0IfD z3YLu&b_3VxjPpH4-$QU}sePIz=fo?j7Wc918@m0$?dBVOo_#GUuQ(~VsOBU^(%EYt zmn!#t!0QGwJGFK~_!myPf_8B&A;?(@Q0Zbz3xTS=S6zFA*eXh#Gw4uWM3zFDUiCaX zJu|r8XfvZ`lNEO4j}R?ZWV*cE`$->ENAXM-JqtY7K6&dFqv%-FloQm_^_*@>_`oGC z)D)(>pB=IGJ>Ak&eECBYFvvW<3z-byG!Gc1mU{Ude1&NKp7Cns&5O7+n>@9GA zT}bK!GUeo)6cQ|)V1rljg#K7HWT^x$*dL;Eq(W>P*C+@ghYYWz&VO~OYi1gId=)Ve zwtpJGvx8UGC0OeCmwDR!Sr%}Mis3v|a7R?DI9u4jP(sf94Jd`{>3Bk{2TsAg;_B=T zKF*b)aSm}-+C&@FN})PN?amk;aQeaC<3a*w^WA0;(eFc6?Ju=Pko#KxC;S9Db>t#G zx*i!aPD$ySq$nB`V_?}*az0EKpEJuGW62w5o_Zeq@$EafK~!LD}HoUTYQzg7^Qyb-b?z?tXsq0>o|&f`$|d~0vSqz{W@ zoo`0^ku?IIIn9YXgmy3=FG*OZiUQ1ci*{gcP&NOpwQZBmvJF9ft?k7N!Uar_RISsYo^c zfJ#nMd?s39&k~x=|1rRLpSPT`2XSjAu0_($vV2oJy=v+6z*?=?Jz;+ycXmt&r&_yQ z^{UF5qhoa5`h%Z3%SZ1SJk1T2c(8*N;rVgT`D4B&T5lD>c%bYo@ZeUqTB=%uRAve= zT6Kn;u1D1(n=h1uuEFM9T_gjnv9QQ_E?RRKGqY|E;o6Ah!s#wdrif1u-y^wh4zHMCf z=esfBQ!Dcl3HHDjFu$k`A6-vsCZ;c+0A~eI9bM2_Nxk&}T6B`bTg>FPj;@ ztsu~NV&>+E5xWjm*71bu_W-c&^Horj(k3)QnnjO}vW> zPxrR=96PZn2dNDSlKxCly zFZ%*4_hSHYH9Z3U)c6(;VsHv|VTE z+cQtMc@zd3(ior|Pi}y1IIRiE*dnp|C@o4vBMeSi3DFQor5~=~uk~%mNY$?OzV_`p z8M4Zs-XE;_g6Q@^$%qWD4sC0;FD8_Drhe8`V1tyRvAoGXB-p=dRxtMI2^@=)@^-at z6K_3Iz)_c9TfxOi<8;UXeW4Io>6B{}5*~{)IW>Hp+USk-Y{5rfi4_|cK8D9D2h4ui zfqgL7<+@4T!(OFwt<;%Hh0R%Dx=ieHz-ZrwU`O{|4AgZ?npqy|pn+xfAEL?{9QWvo zDVlF(_umV>f+C2V@@d2|g|DJKnbn9Ap|`HQB=Eg2erSOsR0%dXO!>PdAJQid;m zDNAF=>Bkcb1A>bIJH7L)2d__cv5WgD_P#Ik8aSOktt@eCsaO;Ra)fL`?>8y}#Ght?ky&2~I_JkXt{k++hrKShxmBdB=!D~0!r$F(uslij4$$qAV>ly9i z>JQZg(7WRm1Q>3XqQPU#-|QxSKskTa1dF-#*PXI9#V@-N_O#n3pr=L?UMJSlum8pea9EO4DGHx zUQt6|e3qRZs=TSzDJ%a;$VBfm&NhCT8@GN~TiGfF|ES`~Zpf^G+XATCx(3Hcs>jg# zETk=5|06no&VoR1p0$rOe4=aAGPE4xHQ#<$>U-;^)bQYY^tGt<(L@Yo%v^uJwpBs7 zHZ!s&q#QD3&jKB6CO56rIPB;AWC7({2GsJ8!>*^FR6ASE_}l2;U-i&wmYBE7ySOj<)nOB(+zR2o=2M6oCU|ke<-2$ zf_CE6hbzX3s%}?Q2*zCuucxu}BG3DdrolI1A(bN3bLBY`5+v0H z)QtxU0d62c4sg1wfDIWnTs%OB_I-k7(0%zPiVAw(8JH--r}z(_Djwpf1? z1Fz&kis+C-K6K6ms4tm#S(~ze_hFeUg!8XL1fc#%M_-}8XoA__fod0Cd z&|0Pc@%lgIdP>M3AuSH2y#Gmgu3YjL;R=2_=%1h?ivIh*-~1D$`5RaLmt)O8xR90K z^P2!3V|fMV-v7YW!|n(0^>wrpXXxSk8R*@9I6*O z|FVzT$hq?UoXEMAXS(8A^)G%)D_4V`0>AKI47C7y>WF!5hb_o1( zz`7BkakG{nxegsMCgg8lweHrRvh3g9T<}#Zpay)we|vMmZnHxB!vp>oZ?3-v;a|PE znrP-Qss1N#E|_^Mj5y5d6>qM{jk^y1rPe^(1^xFk+8wjRG2_3+KYcR(fWTmsQ=3&@ju+`U<{b2^_T2M6$|;`GVquZZ3A+FkzG?Lxj#V$ z%lOJv`dnty3*#LOA3CG!1NXW2wRvt8?BR#juS%2CWz819Zo3`ps~{A z7xo+YeuBW=HdS_XS-_YiL8+=PQ^ky!A+l)5fk1orqad9R0uPW!&DU8ul6r%h(+;~p zTkhjOUKQG21;Rd_x;#9OlEuya&>*UtR(+8=RftP<0TG5wU+w`ZaAeALfq2Sp4=v9bni<1w+vN)OMO|jGXHOHzhT<+-dzd6Z= zs6umwIe`5&F9YZQ(G5t%nD$eyukyQ`9-8tYARkF`mjDl{$kxmgsVWd+sKAKi`+8DN z;@0sa!}HJ`v@Rz)t9=B&4;s!V0z(@QKRqRkQ}`ZvlR=M~TBzegAR@I3fM+++D#+MS z`BI$@1jY_KEir0jpqdF1jvo#@7`6F<9dFL7SFhx#7ebe7@KGH%J6}VF=hsD7-_dr{ z#bDM$r_mdDfm!FQa)NJAZ;>Yjd}c!xM#*bJt+cA}3dw{etOzwp)6a{(jPj}_IZODG znWawE6d;w&CVC3pH$v>3wA*{!E7fkj<+8D{a`o>24A8Hfaxa~q z{qd~oP2ZKCbkL|P`1$rF&rSDf1VZ`Q5y-Hw^y|lNE2H)i#!vgagKwt;HB^-kKkXVCp)s)sWlT}djRzkSH^sjSL*lViE7n!traK&(;bXT)&G^&s^1 zU_~l1x=i-qn_9)Q1QEHd=mjW|EOYoEv`}M@KCFhy{$^%f>%cN-l7k;w1ldGSD>T5G zd>q16+k^6ja?_con1F4|_45_U;?abZ?QAqOZ5#Ldyg8NfakW_eSO`kf`-!3L;T~FF z(J|xdbhs@yi@)U<9SFq~fiBSX0Y@#G%&SY%)Q5KObyxuwVkMV`EQSt!;I>WyjOPN) ziI1UsS{*y06cD}T!0GSHLhazpqxBsC9>4w*oC~QKI>q73P`7JNLysuP0bIa~%pk$q z>o73Jwb#_wjj6zsHYHjgUW$CD^4vB~nZy6paSF9@Ypq<=R3N1!YS) zseriL8%XZ6j1@Ri-hwt7tR6v4Xj=CC$i6?I)<}WIb`Mrla2k1YbuK}+d!%I!l3ju;@G8o}|_Yjv4^7I2+XW=9Z7M2OD9j>sHi zdJOTrUvNOXrL*Y;!H`)YPVB<`$_83*eiz$ReCffWMVWS3hv&OM33y%UQdHKkqoOEP z%I1?c+n3xakkXhh_{u7j!$iP$=pBBX3r;q!lul6$jhN?nd)pM`nIrk|NLBozP&wA{ z#G3TFZtMh;5woQAye*8q>7u8oTBm(T$tsKlQFxg43ZO8Gzicm~*boW#K3P19+3f!0 z(99lI&iq$cCex;QL~j$Ma``eM>s;MSUX<8p+jj)HxxQ-+5NKATL&`bA|e zjd)i(hx4%`5@v3a%gIJN!`*y(J@pHjdG6k-O67%iXbSOYO?ird?70UUVBcPe9`l`` zt)n5LNL$T^m?bgm%33i{)k+|s2y$GRTb07;wdQ5_60SwNO$Z_z>(IVlC2prpufbI9 zwbFh)9(_-j^P9oy#=AnI*aF_|N1u1P4@oaVHO_J%X2GIaXF&=4TMphd3Ef7&$tiqt zp4O&-@LkNDnQJ*=enG4Uk}=QF<`CDns?*w9m|kJ zOZE$Dhb`aT$7G*ibLC4N9-HHMn7$N|MH_i9xw=Yg{KxIFxe*G0&1GM3ML@EufF^Nn zA}c2YPGxO{1O|10QC4&b^L=(HF65c8-@~F%-FH3f^o+K=zNEm144)@U3RLZul{1Rn ze$j@f2RaJvW>`xis9ul1r{*4w*n2?G#w0*CY|7IbGTPe0Q$Xk&kZvKUwB=#+*bUy} zk{3U~Lt303#uwe$|E{&Qb+ku(Gb~7ow*Wh$FLK$WZ3>k?jC)&4?gSIPl7vzSZ*kh+l~XB4J=M`UXfPz^^;v@Q za=}+KK4t*+nr7&#mz;11T5zxNeCJ0~jwhvR_+0GryaR%y3wG-wvZgi}Y_{U8;eefI zQgWLf(-1UdI&+^j7*6U@H;1z~!txqad-ymI&oWq7Ikfkij>K+tpgO1cZAYI-RU3WY z_!ZIwb}a!vu1gA6c@qP{(j~PHD->Niz+3?gZ#*XIy574gX)fY>u07u#(=0hygYA|l z%uNf;p&@G6Nn_rOIIEG{U!dr+g%oOVF5Kp{Kt4GgoSiXQPaM0Sk^vkCG!c15feplz%A zvFXE8okqLlI#lIE@s>uyKT|2*eyz_LTnzvDiI&0hQZmwFPE7V+o`$;A#K>FHmX^;{ zwV01GYAlO=joucdDqqo^z+j0kM^Xhh^<5;=cKelYO)2hmuO~m)>&8e5(+Vlw_> z7AB9EQv6eu@^34k&Vy;8Pk+UMZ<_g$;!EG}<;0f59@fGtXdQF2L}{~p8a%H3L>r&J zT{%34I-a`%CegDDm}_?xc;JHPfsjvf%zzt~kEIfdf4sgm^{k$!P&-`aJJ2$5Vpb{46@X#i z!)QA-rou_J9}iqGv3A=L{O^8R{CPftykkQz$@X=UM(@Tg{;TAwEk=P~*| zke^?5jpKjB{T5Ml?tMIrd8W5^a9NMZeyri81tLVP=_4!$O-^#4_OdQd{uY*AVht{u z&|*ZgZ5H86u<|;M?tq6(O~aq0%%W z@u7R!ZZRwCYP%)6k{$z2`$z5~JTiPLu|l(OrrY5v7jhl3@ml7Rsw$a?N5ig;(J3zN z#lgJOrq+RC=ItG@tFnFf+!d7VWq62l4JsqB)|8ZeCT5w!tQ!!ee!|l#MACw9174z0 zf0n1DxgQq3xtpBJ=l72nTHxJf%$%Ztr5}%VpGy9K8J0=;c!x@s1fl4 zpYJ}qRmp(*nu5hRMrc4HYjA{3sw`ct_BmGveyk%w4Nh2hvufswVOCOeZ$#z8W$Iy= z9(wUQe>;M0n8Z&C&0?F$(1iN=5|qkqL4(Vdt3O^PR8JwVizi-Qg3v1CRYA8jckx4M zL=R4^q}BC37v3K8v=C!iu&@!2B5>F(?puOQH3hYs$p-)zFEKB1bMr~nRXOn>`rZ== z(I$>%1~z1E8_#O~?`VwK9YmdKp;HM1*LJz;{sRHPcnb)=|J`>@IkO)k^U%JpOBghU~3> z5QCQcjA3xase<|4{um3^U;xR|o9m zi#&g<0EhM=Ch@4<7fqWsuuOIOc;9R^NN5$&FC{f~20eW1HtFr6OzxVY#-=`mR`bNt zR?M;cg!|E+hvUe0NjlEwC%nyeH;yr~4M^I}(k2&B6w30!-xl&o0c7|V_0g4XDYp+( z1^g_%a7Uf0K_Wc@ufw8;+;eP8XBCTg!<_Ff0rIJu+9vqgEOocH(;fzmL_&(+5G)=H zLay0R*P|AvUeM{z$HATx?ez&d1(F6oz~>Ha#);8qZVqb?zg$voRNsnH=-k6U1QCb0 z>tJ{*HI-KK8L( zvS0WXL@7U(G3O_xz$l+A`$14C3Y>~fDmhZoq_1$OGNtH`V^id-kq(<=5!siI9@UgD z8*W_a9B666${%&KE0>W=(ij2Xka+oHEvtQAQs?>K=PQ;>YdLq!NnO;yEETCtP&PG> z+KRlKcBRh|DU=t4vQsp_QSXlQ2V0BrAE~ir3YkNfQ>C~nAS%z(Z1Ap|`h=x{Tn2sM}qA>E87Qm(7 zxr9-2cx#dlXO0HJm|9vqx%i{;Sb#oh`JBYRLbeU8`f58r(LjMo@x1P z$>f6Ifca)}tB>8`+k&kbM3EjjDqXBx{n!-apy!9hKKHYTcpCe0cX+A|!gnVXBv~4I%WhUi*%e_z%$>YjkY33-?rFT8Z(JAsNIQiCg&FoMx z*qTx*?XI&lhQWWl3=`{9moX_=RW$lE;j<8zPJr#k-f4H2BLfNXSqKk7EuGBaQt=2= z%Q7HzPB7~1$&MW)YE1zPL2DNQ^Zj0J*5Z!&bE)KA-ivuX{q+yk11u>|I!J!@A|bQt zH4@zKzC>gFBK(^K8G+VhT-UBZ(v@X`rjpox&KIk7Jj}GCB5Xtr3KX_bYB0;mD>9j~R?5*KeYMyGub*)u-CK`b+BlALrM4`;+9!vWkE3nxif z!fi<@PQS(8;=s+RHD#VB=*#AxM^kWPf%=wDV{+a5ACfnfb3?ZiCW#;gPG5p|)hk)_ zbV#H82D2<)tsq=7#@dna;NQ29c+_62D*W+!Uo^w)f!b+{t^y^Vs3)$R_Kq=DpNA>l zq?zKG0dXFVda01CT>90Uk7ZHwGiI@5*!gzV?(lmDG|f*T;W(u?Q!g%K7ZL(Es~xla z13DcA$EFfqO}>$ZdwT9i&v1CZB`Waq{<^Xe-_+eBZ2Wf0Ss5pS0?trfZ$%$CEK$p& zJYn-nXZnu+Y{A7-gBCFb<7^N$~r6L`4!je7FTsrHj%m?)fMDCdc@Xy`DEG7k~wup^+!1yF!+dJ z$7*KXN8K;R3cDgYqJDJB>j;_;;j!_uUm$0@=37lR_qi}1t@JuOx_K|3+!0=b&W_{4 zk5+%XecpMD`G9ppSz7-TufrP~jmww1UNX0BAn+atUn-OhCpcJRsnQTR8-#sw6Pw_! zA1QJeyH*sZD*+ELR`^Ixb2R_@;Q#@%)slVYu~H7=VwFqjgjbDk?Z>MEBInH$!cPbB zZP|X=|K*~EBWv*Ykp7os8#%f7BjX*VH_=2uMd5ecvNA8_V%z1BswS1NQO|kWbxY%0 z(O5+5_0?#Zk1hTzeL`W_W-4(&k;D1Ki%xUvSE7|ekR)@ukYe7GNu~ojM^@LFBF{A% zo3na2EY+R6^V*oYQ_KQn<9nj5n5vM{7>h1(GX)EaSu|z&$enC6U+U;W-xu*@mL_-j z_IN|KhR=PH;fEQ&BXxYc6qaS|gmo5l+`MxghI)nh$08Pw<|YS~h3di%q*Q&2rJ?km zR-;b|7CpZV1QfD;wWD6;BQfQ5ANr~C_~SXnNt})??MY^`ZlgjtpFVTy!jiHMp2$Qp|in!pP~|H}#bTeD!y} zw1Tmol6+-@Jb!f3*jhDcY4Es9jsI|m=e&=m8o6|@tM$B%#r5)T`#qw!nY>+??7ech z>f(pRzCN3v;zautaRKMRZX z^}U?$pAaFsD4*$mj8 z?dg4U!Sn|CqO+kS5*b9agoZILh?9o?@u|gq`F621EUxOGhUcOztyEcfPEIer=msdOvNLna{D0u2S7Ex+gOm zF)Z5hp*wH+uI00<3LWeSZ2!jd6v#2SV+iVHMfm~N6fqVu9OCg9TNU?%qMNZ(91~Fm zi{0>erjOal<(>%)BHYB;T#@B)ZJEiG$5A(uYTaDCa9orHL^&sUGhKK0cxkvU= zU0(_!6OD&CyJ5y=l+}F>FUBP%w4|y|my+H%up_$^=*pN3Bb<#L*+%o>%>}sTabs#( zvQEwl_;l#UZ(MW*u1gDT?gpgi40kahU&X!oa{x#162zcIIkZo^bC1%Rhc_@tnbBFD z9mCzbDYvH4)m1%$Kf9k?dvto9HrvN6u5ef?7&vd*!+UnD4{hW}CuroBQ1?*AIt2tSu1hAku3I?%y;_IgokYEOt)J(yg=PJh9H) zk5dATNy%Z_S5IqCzaLqxmWNHJc-I`^G7yk^?pxqd4?E2tW(wh0f%-&?+`#OZnDQU@ ztmL!9;pEvBYHi|6ARi(M?T9v6@noU!JpGj?KSuHP=6x;=%(`WH%Tc_urr*}tu!@qO zMa#4~-)4vd%*Sy;?U%cp3Cj+rRNS5VFLrq`#(IuT&@Z()W~H8vwo690 z_9P8Yi>?t*PBfG|z$D)2rzyZPpKefF&aem-XY`-LxP2icaN8n@a9p<$q{MLkXL(l8 zrMvBSnEwj*R=~$Y9O>^MC|e~;nwUDqW#HJg6yQ#Q=vN0DH{=-?C|f9IPQX1>*&>&? zYj?xOugU{0TGLW?aB6<^YA|3}Uuh%1?MUl#T*B|2Es5CL{2c$fE(fyRipRyvSSof# zlb!ROF&2$i(yvi$XE8_K86Qk2zqr?}Ogd-tnwhBgXb6t~uqrqE!vH^$lvBTaw zI2&XH^_U#KZN=kFS8ajly6)`tp%b?8s~2EfKTO&leT27I^Hj;pGRXE%N7J=*L5TZ*{oZAW=IMDM+XwtMeJ`-u-Zqo(4+T25`Hs!`h(cDM z%WVJsUP<$(m|~o8xijEZ)?|^W#t`~h8LrJaEBsA!?eAF15S?=_Px8%}#M!<=*!0ok znPsucx?=Y(L!Gd9cZH6aQwd2B;-@R+^xB#sl4%~SS6>KS!3k?9+PU<@CJYa`)_mB! z1kMKgIDcVKe zFg1=a8znyPESsjmS3dVmaqR48H1bLpY-(L--F}l13VYv~G2(!?*C`d}Q?{W`04jN) z<7Q1P;F`zbBPAX|y0?!V$#okrm&R3#?8tzW1MdiE9SXbj{f1oty8+0~@YE~BP($OG z7;VAdpiwQQXoL3aJOz>K3W-|Vj%`{@4Y(a#G^<$<@o}-&GlWzy?=Hn-j>8&W@rrgP zna(TU^f_@Gk83b5#(J7;8jpASG92nxZX^`WbcJ)uv5T?RMzqcVuePw{J76v9OH4gm zN!WLU10iaAvIb>eyYVU3;9c8{^n^%DHWYT6&}(x8m!Ek0nPa#Ab1@%avOjRvH9o`k7oJHt=0y$8j{aXfOJ& zkp`OLDB!iR8QfPj+K!8wl7DPFjz(+YhgkmQ8b9Cp8v*y{LG$##`OZIM;#+?wMl41+ zkg_xI8T7W((*N6}g zW3Ko>SYQcmJC$P__$T452fzL=wZI$nYM)<<{+*c&ZYx6u4dBx&f3KbWk8f@(Mg}>4 zy;uLw_t2YU`Rj9&|9meG8NB`1duCz(eD5_}@7H_r|9tNyT<_O=8UK6_y-VgluV+^9 z&-b3f^_a~B{6WyRaR{wqr@5ipAmN`o#`?SMNBNNUScbme4`H2oMjDeD79Qu?KOd*1 zB`<4mQqor!pw$rsk(-9580H9gqRJtQ*I}U01MF^GDWZ6`wqC{63<}A0Z&SaV2zrSi z6)!E3nK6JdR>l|-2K0CM#9O-1X%tFsO`b1tSS5(I*!s$&z8d?@K!MfMyD72G4d zrFl34V-6kQG}~Gu&ET3ppUR3Lf)6=WjCcS)o(^6GJGeuEEvM47{U>wvy8*o>IciM4 z*+0>oZcvS2KHXUB^0qo!hnzSWrWE;k2iUU%mpO{XH-IJk6Z zGnZ|EAhlnoHM+-l@Ezk2=Mnhl|E3i~IL_go3kxULHH2qEr#~DNHswDA{lMt?CcdInmZeJN!xgR*;d`7QZ=X*Mm9=*Zl~%y^Ko?x z$Yd<97~Iqs3sgxE*(iflId1}1O1trss~RX|=0?OA>d*i&tEi8KTQf!n9leCYu1hV) zpuGuD$+vo1+uJjMm6LM=u~#*T`YtC>t`vCbJ1HP9Dt!x1F|E)t35fW`ne}o(8pyBN zV*gGaQGcv zr98b*VLT)|=?f$L6r@dZ)e%*Y436%`cPb5=0yQYd`=;ea1`I@(^uvalX+-?B$mh86d{rgDOA1-v&#K zC0Mg}4Oorx!o5Wby(BpYvH->_0d+tlv9N6Z)g=(CjFE5O(<`xivI?YznE{-h*~DI` z!->P7#gLCuQBH&P(stACh2UVbU1Kk=$ zUZs}-_Pc8<2UYGyL4Ba6qF)0c!@R#WaiF)VmW5c1dT3;WI-t3nShI=02V2XU8%XFc zy}f@~a#a9q0diLG(01xWo}XJK$6f$pxRR^;je+l%sVaLGW2gfziJD{(OeO{2vRM0g z8keJ8y`cic0{rNZqEQO`Q;9)XgSqe7TFwn zK7f6^1j?fNkinClsnjKd9(^WzQiGbp2WI-R03r&y5t?twiFZ|P)46;M_(K}p2x|B9 zj2iB}UPhs6upA7CzC)qOmz>*HoUsCk!)I;#ir`xvz_O)R&Iv0!jS`d_2~4Xu$GnC^ zR>fnmVhoT|!;9aVo_q(p%VS`#e9l(b{A9ssF0(fi(2lnzyPyBi*=fqT`T@yCj82{f?c6p)?9uFh+Ft(cQ4^sS~K z-QXjDBld6(`%#7RFvGm5=M2BQu>t8pe(ZkUl0MFdu*-1vf~?IHIWX|MQ&?E z9Tg0u+#c2geshApbMd~WWb{-!=oaQ6+}o)zVD}1v9YD7%2sIMBmGymuR^#emA%<5^ zVL$`k#KK1^E+?M>DXLYm8=rh%weM03&HBmn^<%deFMG2iM$P9M$yCs&HqRNKS$CY~ z*Yd(RL6b&kPPd{fze`^U6o1Bes;tNk9yG=}Ck>J#OVLi$Tv>wZi*YcLuGpd2pu#}V2k(4?TJ0j8j+ zn;s&7Y=QcUqu^3qpC0wejoCpQ1H`+)>P28qJ*{qZ%3u7-BO_6Di(9ElOeZKndmNsb z!*fAupI4pSrsbfKD;u`tIXNv%?tbBo_qk=jzy_CX13mCxK`OZR?BHIxf#VK{2%rdX zD7nv-5k1?k_TJWheKI5>@Z{PbSvy@Uiy)fxSC6O4HVKY|rh)6O8#sw9Pjt7DssX5J9uXg9 zVuu;$#}QQ){mq_wWenPCh(v<5`?rRDO|K3Ux}+Z=5jF(7nv6dKS`UwrBd+UqytdiY zhw07Qvryhp*ppf@)`vgZ-E0WK<7JRUSz!4dLlJ zeN$vMx4L-&t*W=>7Y{Qe4`48!zGzpYalC_t2-ZZXQNc1V?aMM${x|wj)yu$MO`ZEI zs6eVJWVGu*VjPc(D(7IFGr>-47k7Ul#2?%sp_UyB_biFxj>J=@wT*0a*(RG9m7@-y);kO0Ime{8vEv<`f^2tcYeQ zgUe2fGedqcrC$$j8hdi_g%GXg-n{27-{q220F2qXSBqRS3@V$^-gM#3-k@xcxTV#A z{k;&ssK!$r=9{YCzV9NcW45CT`6dK47F`X5q^Y4B(<>km)`g0pgO*Fl{XJ&@*qegs zaVR&L=jodDsY+~P=wqfv@v}X(a$Z$~AU}Npj`C1tCv}c6L2iWeCO(Y;9mnVAM$ej2 zBRS0?g%Z^;YVO8QYGuSbw}431=K@Lh@B->6NPJ(^rklOdNL@|hqM!$edr|${!?0V~ z*I0vn`oEizolis;>*$XcO!&*7^9Rj=k*qUJ6HRbr7u|$o&Mgeme(iGe91m!&I&GB^w0w#SJ z;|Hp4r>;V^0%>ZM*`?vPRs0mANnf3TFQ~xFJ>rdK)}hvN{(XP2v*g~p@uWOFz~Xmy zWcD7iS=N;#e9Nzuji%ck_kJe6D|zMbRF(%;{a?BE&%1#X{0q|x!n6K&{K~I@s4KzE zLMg`IwroiGcd(+Pj|z`}9Z@SO@)|U@K)?C-T!CyonRDgP2JG#hU%meC**f~kl_cI{ z!%8j+-@THp|9Ra1{szX@4ZlvsmFyf)so$A8BxTY*>wmrW`-Xl`s{i=A|LyPliSqsPc7G4_%H009fri&Cj21wkwd)gjdwTPV{5cKn zw~-*_y>N$ui7k{u5A&5=;U9|vR?^=AqLqaLul*AOTY2IC_S(wihX3PbdW@{B(%;MJ zKQ6oy75zVWZRN+T{9V2WlRW@R-y75hE|`=DEx#5Ch|CfVBf_&m7<Wf@y^V z)Ay=%ZT~)ex=fElA=|j2Ga9qMS&Q6j+y;BT8L=3A5;IVYz~$Au_9JL!1kSUkLd@x@ zP#o{qSq{4CG}O1@GN{MbZB&sg1&7@4V0~}|t;IM6igsh@a(V2Fo}O8ytaXtjR6A*1 zo?N^FS$$y(wBkB71!Y}-pZ3AKULziWT`6>&Y(!hFo^pP4xf%MoJhH>UW^CS9V4h>^ z0twhLv|DR)td#M~izEoB$J`urJgt~OOt`$$xv>}AT05+n*FbYsm$*2)|J(tB5AJkn zPRk#Qx5_{bNd2Cd!>ODZ!mV9&-pC&R$fwbq0pQB(uX}OZ60GkPTBVGDmxrkg^sfWi zuHbR+-n~29vu?AxBKJHL zt@H%Q1lKf|V;K1#**2wt3>16gsNR`fjU|4hljLcw+cHdGmtgeIp&6`{MmB??kl&ku z4?YAM34UuLrtEtLu*g3^qZmYkLLN7-RImZ6m05cMEN3ztw`|GsJMW6mgrPop+u z?2HI&Fuw@`AJJ+?Yi`&xQ-iK1LDwx$Dny9sDCjf=I^Ak0?Kt09v`shMPH+~icSe~j zpsJ~3)Dy;05#rt}=!~c>7g&F{O~V`Ccnoqg9BVL&7`k)AT>Ud5heZKk7c)D8mIRh9 zm6f4j(Tj|X?d~4{qrKF1Heu{Z(1$BiwF}-fA{LL;xIAGJkPXsKN-h+VKmRgf@y32H zBykJr+n8Z=wRkbp%2)Q;JKM#^}(Oh%z#w>fjLqH zA$T*S>!&V3!Q$A^G6kP%*GmR0?V%XjUM@*9DuQ=M#tF<)iwhKCsPOZyw+snmK!xJ} z>F!J5p8<1xMmectP1&+{Bqy?T%2Jj|j*7^UCA&Folp>W#LW|{~kV3Xm zS;~@-EMqB>#x{1wjG6DcACykM|M$M{@BRMY_xsPU2KRHX*L^+LecjjUYzOgufw0VS z=!oV>+{Lj}@u{OEo4_?G(5?78xMPX)bAyp*7=Zy2y(rV=$0WHHEvsO(LVUwLCGZ9e zuewl3_9Fg4FN99jo zXjL4a)R`3D1;!%9@2>|B9G}>-zkP=Rzjh6Qr%e~f6o?AzKfB|Sa^RzfNE(koKe>Y=79&A`>~;zANwP0NHY z+`04jQ9Y*j`v+M!q^2}Hhpx9vS${(#K&5qv;}D3GsPG=>!R^n%H5Xj3WLi8rF4Il0 z%eLOhG-r79lrinh8R2ehc63$`%>%Q zSSUV&@43-`b7F<;YuxkkH+Xkn`Jk_xXTpQR#iAn*BZ)y~Q{A})9_}rkLY^N(S-&jA zD!2GCf1kTn95V3w{_Pz`z?$K_XTXNuarn$-ljl^LnJo^{zg2=qGxXt`N^`dajWk;c zM#0yGPvF~1UnlTQrCD|mwfOJv2c`mpnxz9*5hD*&l@&ua;vgZuD(x!0u`1ZYhDGRf zJj$&2x~J1nnqAv8NdNhXf8BK$`s+492XprFn{C4To`n+r6UKzk_m%Lzq59WKv$LG- zJBsJ)doo)#@7Cd6{1>=0J;XN$$MkCcKH}^|=iT$^Uf|JutHB?BzZ$f7eCaq`z5yo= zmw6`ewGy}jX)e_k(~q>OgTRBe6*q@#KEB$vwnc1gCEMZHEf3!hQ{6O)R&rX%WKy3C zL{QWBi?^#i(&f00BBownbfNY){mKb&r9A6nF=#dgd}TU$GBu=Q^Ar^me((yLGxE~TK8h=e5U6lbs4qU1ze4k?&-Tj*1-gb z3-{3B)(bMI^pVpn2FwI!XS5JXn$9Hn+G1uJ97({&EwmJm7{gUaU&bEHwT(*>| zmv#ASA%si6P2A_NVVOHt#<&p13yA?PUNq+z=~GEF6HjC}DYkyT9<&(pA0AJ`_&`C% zb0QF>9`ls??GuDFafc6F^@&`sMEyv;-+kg}#I*6)3xwQW^t66PFb zQ)-ap;b=i;gZi-Rs^$|;&0P18k1;*8l{liJFZ``Axye}wJoD{EIT_VPJ_>C}Qv&9pzZUf!n?b-<0mBUxrS^>ejps(1U(|++dLf|qhf<|c>c8a*o8B~QI_`j4WP-Q!mULn7Q zbj;?U$ch^TRe97_6bM@zl-S1pxixW`i+j4mN*^a*<11JCFn%$eGfRxoY( zapL#&Z9Nnx39@N+s7|!x@KCuEDB&LFkHwFSQCiBbOIO1BRi|77F7_QxYm4I4tcs?6 z@?CYFaSpu0%iHehw533pDbF9-0u|(unx0~7f5|p>h`+@x7QKpcQDS+KF1B~A$7mgU zRhy`KIb6SUEMUn@@M>0DBYb!17Uy<3|2qq35NrTUai;gB(j0?008^Ly6O6FWwMRAY zQRG3eyMqOec+m#iJ1@!Elr)3F&8|8&tq=4u;p4{Hyqe9zBHW|S#s0nbM63vLr02)s z9lkMAPi8$Z6HJt8%^hIDq?=EQWYX%L{%Ac4D6uLF@i)__0pJ7>H_|_33!Q2|od(S| zTUz~{5r;^TIF=se|G}OKTUn8{E|9Y5`bEm}ow6b(iv#;W5mV_C1(NmDhNDXZ+kNsz z->KMw#^;Hq^{wZQ3lEQS`2RJ#x|!D}40P+O$7>U+{xZtGS^$3j{w9=%kFkLU8^bk( z5Dq_!1O9c!^m&> zQ6tH==*o(w6YLLTwFtRKmf+EA7Bm) z4jA1!*Lhp)Cbp$n%frmgtjH_{FjR0kz!B?8O!sB_Oj3__{pnAwVS&ZH$=0|F(AkM)<<@i3Cf zsb*Ipz?qftBC7L7Kgkaud=OTfyx~aD{?qKL#>4j1u^+jY3x|&H%eK^n9I|@~95t_V z^*>Fp6do#dA1z-lLuT$;D|gJJSiK|N1K!YSc7p^w2hQ>n>;V^Mz=NaVHw+a*4}>8& zC7j{4pcX=1yv_Ga!S}}~YK`{{UpV5;R++;Q{FD7a(i7-mo_6?=`%UMt&6dpGqZ)dk z-s8j~Ax$eJL_ib3JAj{uI>EX~XCquv?3A}1sn|b_A^1db5X_31zn33+tCgKZjA#gxEdPnUx79tK69gQ%jN==XLF}~L zuyUe)SGL1G<7@KY-rE{G&+mL?v$JMKNs*8Rxjg(*V`PkXTfg6`J3{Clx z!(7-|>qp!3qq;164urbAR_iq*50ezLP-O7)7*v72^v;nN zHRT;-6vYX0F8AwiElH^-yNDS?U5)lUa&j35NM`(@XAI*Y!Rr7J#bPrTU__rm?MOu@ ztAm*iH^WlbDy2{Gd$W*{Mkjweit6M~gGr2v{b=)!;sci#BFlU0wnf;7RDWM{)YoDR zK>&kq`HfiMi^MP`_ICFao;4)h)gO!Q6M03Fcm_L{0b>^ zPCTXLPqYWo>6Zm$H_(10f_&YF0lcPK3xo}b3!A+){^5kY}I@2!i(nm zWK)?oHd00d9v;Yf2{#gd6}736+D`udjv?eD-&Td}vDyO6G(*ba4)I(LjBW(gP)-V& zXn@f>dR6*+tBCBX>?sHsbN$6xGXW>)zQ9to6zrKkVe46fH0!h6<__uFeo+uv`bKLN zGJu;x8N$L^&wx0y3;O`OERo*}F$;_fd>5?6t>@UL!4OH9spRYlBE8z7&T>62l1KBz zl=hw#IzI$R{IWx3jjQC!;-*^(4h&WWEYqtz1R zI6a0dv%Up$+IlWh!|{x?&#fSeuX)i}Dm<9J#>+xD=+(LWS7eBjaPA{AoN5-nbFMV^ zQ{?f2Ax~cj2kdFBeu9#0ntHNIG+2R;rx!$+RXk1UFNK^nn-%yoI*#&e^O+d%p)}-@ z{}?&_3&sb0f`u0a5KfA=n;6KAQmpxSs_s&4%gzIdc^D^&FJzy>mcV-9aGeppgoT@% zA>ESJP$xuDCw5^X(LG>wS}r8Dp7U};vPSSpBV)`cBJ4KjA?Cy&eF&LYGC~`#%bw+izce5l{;V8qgk`R&Z#p=Fsf@U}g4Mx>wuEeQyE0 z#`H-fGY^CE6-0Mgbus>wtS0+p<9==7al&|Yl5z4$o_brGvt}b9FBqkE-0dTr&eus7 zvo0?j@JPu{1@+Jk9<2RnSwV@}^^4=G4};E4J__3JTt@O=-ia_8S%O2qsC9Nj1@>PH$0=MzdRs6@fG<*RZ4Uhr4-Dh;L3nj%V zqm)|rmG?hm8*>z*n8mspgrL#%i57@@k?Lc0u1glI1C0yLBN00ND@{<}j&`}W!9`f;~ zIAVW*Cdnjc3fUI84YD5SV|*?^F1mWa(AZqMIq=@vBI>eBvPbmAp5Hwhb9=A~JES`~ z@PZ7|n>okCA*}^idbVIdMa&lKU&69v1UD3Z%Q9G-f8(Y0RoTz{Wjwj@BlE4i2 zaZR7-lFf|PRDBGk>S0EJskNk<*R$Q5ZeMpIkTq;B9k`ayPS|tP#A^v@qh9NS%u>+# zqoW60P7uWs!4mnfqB}GjCpsvQj6E4Zg0n{W=ygA0Q9#k@o{*e{E7^w^V!@sA%QF*5 zwYT!3#yv(#HwdZpE(emm=XtJEg^+}9pc#ncTBamId&&Tk)^$&z$c{Iur@5sh;<9rU zyE86;wHyM}snkt+z`=(PJ$-0j+<;Ah_r&m>@ebAg)tmSO%KIDDARHmH3x)YMZmma} zyi|0yCd*?G+<)DW@6N?Wbr6kNE+3Qvo_~5n6iWKQ2!O*iEbDT_`hFDVTYf8+4N5i> zubeXnGLFQ7mD8gpP7;Wg_S2(_e->_EycBeTum3DI6O)o0&i>Qp|x> zl|)NHnunUprwV&s%*to5*oTnY`$*3V)VUIt{x8=D+*fw%z7NtH5fr6QAB?+A{iM>< zEd7?hwe>U{%T5K2Md~hYY%sbghVtaNsoiqMVv+WoQ6Wt7z@wkq`U4Kt|aG^6_|s+g3SU?Dk?kg_qTUh+j`BK5UgXHUMh;IN*-9 z(Tb;TwK2s&oHOis$G?!oL4O1h1aGt|{6flBndlI1;Z7_b1ifnEKIDmAMvIImBB1mm0)whh=At6wIZMOsK-m0J%3)3go zg%`JutzPp-4usnbS!y&khP*8b@_P51Vn!aq$XxYl*NUp`EWyxUinpVnG*&&fF~h)+ zUR$epA}VB+QADHwc1cJ@fe^ReiumDaDd!Ye+g)X6DRYvPDz)-7oEZ=R=xI&$N@Nf# zh!wd&HtUOF`Zg8fM~g2Sf+%QThS`<2E20RkfXo50fVVLA7$>PgPkk(w43=`k?XKWO zPz%;pCSGRat0heCgW@R;4+@t;giLI9Lmywo1-03RNb?1}3lUwiN{s(%$0InR9@I?v zja2I(eCwZXs{GX*o)%zB<(bNwXuRm1yoNuw!?Wo4r7l%CL+;tS^(*$;b#M+e&mx4}G2 z{cfXBfsq>ie(J0IC5ys&f7s9v7?aw4YE6O`5Tw#6b?{x;{u5BD-Xhx84d;Pn`zWfq zpV?Bt94eG@PevP6KJ)vblhPHeW9`&`BY*o&h1g52)iWW#|Bc^?p}InjUP+ zcVH#m{Q>(_<jz{B3XMPW79{_d)5uiemrj z?H9d`g334QWD581aBPI!p<$nzqg>4z#bVv+b10i$!FT>K&9?XF)DN-KUpuEVhxK+kKl7^0K;9?{oNQuNo$GJOO%2x$MdlY$nGG9|ix4$P zrXbOEYJ^%lJo*7;Lyqgwpntsf7`bdc$ZA!VvdWu~AoPF~qAH7m;_g)yqnkVxP9mUuE=;u`2ZN4LHzYWp@~J>0a6)eRPKBPSU+NOY;T z&Jm0WI`CM9-DWp0Xt6`!C_*-}txIhxcCEx9gMymcaK%SC=k||zn`O|zU$&hzDu^?5 zo-5SHlv9=92o~qXAm->^>LfDMCMrUby(eA{2#Hpef>RUwSH19pa3lp0CB3?q5C>Lo zMySKD0)?J!7;b6;$$F#x=;cI{oD*QmX2_mQWk-$yvw(u~ndGp*`(`a!;^(d1XE5?5gx3=%N7+za-eg0b`;M zhAqRohHiZII(t@(6NZ6l>Ktzm@n_n^iEb`Ya#?V!)n7t53vEhAa?4Q2j#K5ifv3wCW)Q zw}(*cPs?pMH2Ax0s;3~Xt?n(y%mZEkXg%1&8i*%99Ao3G;rHpPp7d_Oo#U*V zix(W0^%{hrW^kb~M3M}vypU1~%wxDu5xh$tgW2Ej&J;G;=&{nG#m={~W3tuzUBIvA zS4bpJ>^vUi@jmfhaG3@{BLg`;FfM2ybHOnFmlCf_3I0)rp#w-52PSc8BYx<$^Rdhe zo{hdomoMu1VXzH(xK2U@#TztuL0Vs}C>}2u&li7j4onbb+fMCVCJPi?moS?ERsH(e%Jv zG5K0agnbNf&|4rUsk{ydD)1L=4!&O``M|auSid!J zA?@7*^R6D75Jt9R?^AWa-aL#9;RUY?dmge~$_uOyfk+3W$d6?nh*d(_#pq z=l&~fS&-15JDOQQn3A?)fs`VfQkTHCI&`IFdSB?O0iNB5j64siz9oAXZ`kPp7EB=c zy0>K2=^!v~y5YSHY_%%FOKIf-HVQ>WR17XcLsg<2s^$+?kPrrbIY-brdl&>CQENyx zp{k!ik^IU#t@OF8HR9CsCM?W)31Cyjx~X)@-+Bp0A&3qwsLiiebCDuI#6&5bGKoSd zGb`)eVAeI!lgI(ZYKz9uOHuOBl~Lzh6p_05!vv4>GYE$n0T-^JFb(2j?C_sz23khW z?R?BZ!47|kR>LT9k%vKBM2w!|o)NPC_oaTd8D_2k6p7`Pm(B z7o00x-#YHG{O~iW)-y1|r*cu%!0~oSQu%1D-KEAuEB&h=#w}5I4I6x-O&xXC&jFtcz>gul1rY3WpI zFZ~?kslUP6BUmZYTK_zhznvxe`)9buKV>`=z>5A_+Fr!~w@p*^ci`u2>O}x!&~lAo zWS5yJdYGidtGP$;&U(K!D-4@~GoibK6z%Z_Sfj{Fo+(I;p-XLNgN5URccm-QyFGV_ zg)c)zhoj$v>`))cyOhCVyiDkXI={nV!%=i}mjz^ns5K(Vusv*Y)l|bab^dZ2SszES zeii=u4p|h+KW~#yW9>hReqQhnbQj}dW2}&0@AS4Zl9ij?7VyG*|H_+e1-b>g{Oena zGzl)!V(E5wpu2w!t-_4;qmGE24pu5I1Zr}div$E^Mc)A zu?EW2`%Hm)qQCFcY>^{y_EN!$_m%fl_-zPt@bQ>PumRr=ZP*Bj7N=sM4R1qgg?hfbt>F*Ua_JMLobHnCrN8({ z9xScqY#&S4VI(cfC+MtbKxW9k5CB9`!(H+nQl@xv_*ufi{pMo*+JHA9d?E(7-hc!t zFHJZcJXr0Fqm|zybKcbTMWIVfR%5GzIr&nzONZR!DDrlGvtv=`xGNYj=p*OCIL3vE z*a0Pwjz1bk_VVSYKo&3pM6sp&zHI!#O)UMJO3u1gOwa%*iVHPrqivhR3VTAz>uX@T zejRBHs8`0$75D5o!`)eo=US*4OOEFuM(s=4vjaO35=5UQq~^F;PSv5C_-7TW@On*+{`7 zuy_(qHQ&xYbjl+i${3<*6;S4=mE38%TDZv8S(jvXHnn@Q?kUYoHTAWcL5FNRy?EH-R#&#zO4>d* zvarpiMzdXW;Rjc>FJggNn9eQxmqi8tt=D6mBxz3HQNIzF0GawX?(TT2Zv+stm)~i* z&A$XW;An7S`8P=jhz1se%6LXd_2up{=T1I<8MK0%N{=9h?!n+;2om`H-)y92rCWt; z>3v8h;{=Z@ZZpoK$6v@BDKhzZ{fPo2jzW90>_5`Kd4|C~A7{Yk42=tjrfI(BG=R}b zJ*Pv|NCcI9*9cGmofhyE006(vG@60NJdM6({$?9#qMF|~0s!JjIkyoS1ZvJXZAIV@ z4){-+p2##DG@)Rca^S$^{I(IQFM?|P6ARMB7lzLeA4X()qWC1BTNqRX@7%$syFM9t z+rq42F0qj;9Jd}TIgY}JXD!nr&;6;Qk&2QRm)CFH zxDj@ZglZ*P2P=1fhC4z(dBAM8mwi2A+QS^))py5z{=xx+8J$5ltz(&n>L+&_&Q@cD zR$lzXH5Rp9hVk1%fFOp&o;Q1Z%&ywu)>8k1_64)`PId7^cMMQmj}$K<9fWwU>bm<9 z)Wc8Y_Pv%n`Ee91Zuj=o8JqIzYXw;4w$j#++&~Wi(Po4|I!>jxak9lY(_|shH2Fm!3HbepugtPG4(^BdJrL|V2Pt(URnc8no1ndRaM7Fuf(ubp%c0OD6Y$y zMKQFtotVNBQ=(c*A}6U)l+h^0D+24c;tDx#DMv_K2h^Tl%Bw0|0<(Vr#5Tdwoqj`m z3u!|ZBo|2Vrui0yLyrO-L zW@wNQiz!-Yl z>8n@Yu^bn~ny7SK+7@J=`|$@M^9EsjzJB9G4~M}#xu9Q_3pEIv6M!MU}4Ss@2f!T-=z{ow1# z0wVTKpLtuuy;loDw0GTpx0H0yap3*%#S`YgXLsfGXKHi7You_gqe)SwY%*qQcO}`Un zRp8+t1;Goh-)&_z^u0WisfAA~iXp9(nW#Yu0GU_Z9j#RTpfzM#(2oFE*fcCn7_#+b zyB4i*4DzFNH0D#9mZ1%6NL#CrXgWeD(gM%ATCfu7leytwCh1#SnQfpGoYWYzU!v;ogZhdT+)OBV%dQhmmPB|^3 z?=`~AR8#W3C~j1W9kP^5G*whnY5u@Q+eFN$K6+}9LkNE)#7r@lpxnaC$=mBk^(xoa zkFTG8Ce^Y%`&M5i>Mim^RI8)!uZvI{GoAoNyDPAcyN)x@KD3RE?3ig2b?UGR*75{2~9WzOlp1C z2p(r_B>_=5l4GyAX}0`DwPR${Lj;w?r$;V*zI9N}?)?iD)LWr=vzLJ>B@7>(5|#jl zU+6>1$JhO&H6?WFx7``%)r+RVSQN3o#laBa`rBnM{HhxRJn-7$t}2gi_PsM)F3wVN`2qDND3^fRN2TA;w*5@QyI*>ODZS z&hT2mSZ1F9YNDcF5Pyng)bm0OJvHjx#jD)pZUe}!*{3jc>7GwEKFGy`A!C(}GWa_v z7))z;9^iwj$8MHCVI-sGW-CLvh!(gmV0Zn9LFGEd0c!$!zFAo@iu#6)rhU1hugiUO zrdT||RVv*Vji2VMeDCNw!X%n9>F%3&?Rz85PkbHM;Uh&MPzF0RHU#*i-VWU}q3Lx< zE5CNPMwF?fFI~?&eiv^y9k-6a93DSZdT_7r85*tqkDl$8zCWN=n1U`)e@B%qB$#iu z#Yx>oL>vW4mvys5Z^Z$AW$@yV@Gv#mN~Te&`$E(d%iA2d@7`a)B!QxnvQTGCvO=Tmh=mx3cMzY zca8D0IneHUW$eOjg^!%3Q+#bs*3d?D5@U&>%9-|8#Vl(nV;1On@@ftX|HI0;r_70B=s9U^93`}}X5@pf zL+L^oH7#D6ZnuaiKK<+tZErxrP0`6lceIE@j+fPQ_3WEtqh$op^TPU1%>_E2YQvk3 z;E#pW-0iB~#%qfb;P)E;W zb1Xc5Qz5G3&+OgWtEFl`9`~Y%O+V9iqdaw6N!*D)9ZmA=;HH)kg>6(MNw5fByVq`0 zHBOURhNC_7-|&T}baL(4`9%eQ1-`}#-eGTNw~QMpj- z;~nZtK5MNRPn%k)iM`jyHXjMGY}#h&bCU7)F97fjR4?|%vD&=7RwHEg^Nt#x`j}(p zo6z#hyqS+WhCe*x7Nm#^Ro@Mj`3>*%%-E2|Q@!0e%(uaI&Dy1n(La!2&hp!+k*#R= z?+;Ht(eqU%MC(Q>jM(C^O*)WKGP~_FN|JMG7IAZ^`$?!RU0eByd9tekEt7h2pGv&S zqEmWR7Io$BzhXdbravOHzkDqseJKKv&U|pRLBG#aq&ZV(<~D==nx_bD-t~pMNdHyQJTRE2Nb^e<|6}&+%O;6@S=*N)(wCwyu$ZR^(U$3t=Ik%? z6@7u&SFD+*NaRZwUuH2+5$Q{<|3MRTnuX*4ZLsvzv$@(5Pi|0g3OI%Uxm(*{=fhtP Go&H}w^#39N diff --git a/fastlane/screenshots/en-US/ipad-05.png b/fastlane/screenshots/en-US/ipad-05.png deleted file mode 100644 index f618d04ec9fcb9523f57a15214cceed9d2977ad2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225305 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

    (P-h5l+g2+?|Z zPCXUvjQ1uF0ikoYKoF=pfUqj(f#8pB(;RJ012kGIHPh(_37z8Ouz^1Rjvp?tKI;+{8~L(ufJG8Y2CN*0BB$_ zz}o9%*OYt%=*=G$5r&I_D;A;%R1>4eOlAdu?h11lLuskKD1iSF1Yvc4Wv^FO*tzP> z7xR1p+N&I@Om~^d`cjfdiB9}yqgIN&X8m|>R9b1jEzJfIjg~>wSqc8P*QUVwu%I7d zEC36n)b4*9=K7qfNbo{}7)WjRW=K1u=SD8V2F%6(QRFG#sW7+$CoH#Rm(#W0N59?+ z!insGjMOSGg9pPg7E&x)=ZI9!z%Lnh=gnr$_qL#W3OC~uRi1I?fYkn+ zKx|TZMW_&tz7e9*cXbBIBTB8-tqk9$xyaYB8@vimHn|w4(x?(dISuD!e(zDzhf+We z@w@%H#MNSuZO3vEb87cs0F}1Ew{xR$A(!)Gi!h8u^~RjZRPE_iM-`7OzTGf3w=eva z0hQWy{I)yKNl!OeaBwk&6D9(LfHwBifQM-Z#1lXgGSDG$ESJhwW^my;xj9Mzr=t=+$a+ z&YJw3gzByS{*0S}K;0a^@F$aSEj!d?Q7GbqQw}{`r)lwYNvTx!5erz3*d12r%9Ub^ zyn+l10ZHyc5gM!_{)`AfeWnd;qvPy`r#c*fb8pn>v2Aa8bSmKL|6HBo80xU*iVykY3&pi0K)oroi z1O%&}H#+QOE0TCV?o+j%bShKcdzKBva0MveYxZom{2R^Q(1B7~anso$AAm&0Y51=J zSZ@0ae}H@QyYjt%!irjq3MJrsyN%kJBtqb9kjsn+tfg^+6`*j61;P}(7UwL&V>Cvd zbx+nqYd;0-9EY122Y?iF6>a}g;Ban+<@)=@dvM!@;T=dg@d0^_ARvb`rV!lA*Xrh8 zCIq>8(ulE=1k z?pL#DNX_?-;Asi55rX@pq&zr^4Ym!w3T9AnketgMXKFfjga8!muKxALi`zn0y=$Dd zgwy&*?N^IAYXEYsK@QqQXxApRh@xiS0*eobfp9O$aB4%EAi#@*Xy4}0M~U%mN=Gkr zU-?x!NET9pcA<+sFKUI%C`1@^wf9de-aOlq_=kC4iM)fGMMKwalV`CG&`l7LdWMzT z%2%fqnDKo;#=YlViUleS$=Qt{0Yuu=pi$8*qC4QUqQ^*$9ChU)?XX-flIxNM3pl|Uc+Kzv5H z3~*$B8*hM^>>2B6d=_yXv%Y3xwD(iQey$;qr|?oqUp0YpRLnKD+TmyyRH-{{enk)u z1DSh#R)8UGTJls*zCwuvGKwPOa&PJ_tp8kn0`!V7+%xb~ya~WG6Xkx_d!hN`LtpY( z?-JJ_iAO&0a!+}TI~(Ky?D&l|l*Mqf%^)vAY%vWO8u zOF77w!-fgiV9^!~{wfFRZG;wA?Hnuz1DBgWj7h`zeIqnnF1(7w!m3J{n@K(P(?x2W zIoeOc3ApeVFrI$`8tKiOoy}7U`z0fTAvI1Qqy4D>QYoU$0Li2`XbBGc1{ zN7ePZ5jqK!%YQ0BW>SIXMIz4w)yqaYEB8{o`wVUVG2910>-k1?FIO`;|F?p{au?bv zib?u$Yg4y6a3#y}<{Io!c>%RL&tDnf=D(ZDA27ur4^ApLAwBJS9!f)aGOs z#|lqE`A#+QZdRy0l$Bd@&|maPyu5mvf zY(Tu6i_Jo@Qkh#k@HuQ)nC{E=-xhnof*5&xecVNJm;5B$;&*`js2uAq>SdxPe$yZS zteQVJvMg?icS79UtYFazL=Znp@>~N+Aiy>jMG=AUX>fKVNSQoaG6tArz_u=wmj@d3 zIC<}f`|IZ*=z;a9{ASL5b1##$G@vu!9YZ?3B$V$Qg#8M&%=dMc=Liqi2|{zRPCtfS%+h35S(#-)lV`R zN!K%qan(4)UVtP=FKx_wy+_U3QoD-WZd)DxhUQ zOVa2+ox+cm<09#zz#=OEK-WYAL2ZBlI16G?J(Qbk>!MX)t*&Z7E1~BbyFy;D8ibHe z#)N`F3yHC8tJ-jH{3reTKAIij#EGCo(L#bB8%nq$0zP0LyCFd8M6od)*4I3x%8k8} z;GACvUKL9)y>_tDfbMQXsO&a7;5_U$F;n6?I??PeSPilXwkHcvkIncH?qv)xfI4~> z$h!X^A)u+6p5)57;=glS)Qxdde_LATn3c1*Ggty7|BUs-7HslGQ!|jQsMM^U7NR#T z7Y5r%!0IucC(CbTfpO_zg5LNK_PGUOk;=NEsbF;`otI#2x+B3IK-19~76v6-Agj-P zBm(d|ffPNah|dWfIOiRr6_l)ziLieRJoy$d|G}7z9>jih&#KMbc|8g^p}3)9R)9sy zp280sF4XveLhkU$D8OdDDcUd7its;6S-nrWoV}k5_0cWsZQ&GsDjv85y@%@y;`L~X z{EY@Kd!aA+EuIIfI=j3=rn_8jtZ%Gi0;p#T_*VmeLrH9ciWi}jdmuGjH1gs)0^DEd zRW0_BE)Z2L1cV>G$uQ@b>FTUiM-#{2R7MaizbrlhFiuCg)ODlO!3%RBS8loTrP7Z< zVb(w-0T9lH%0I10)*txiW7QzxZ6LWLQAUu;fjkCoEOhiY0n2RU&V?8-L+%p1WIVuww;5bNU{^S`3S7{kx zvIW{R0DL1pL5$&#NgE4>z+4|}KfFxOQ;v8oMf?GJ01kt~J@6Ko7trJHCEOA6v9KlD z!f@Z8px`eF8}teEVXW%}7SV$#^Pq(P$N0j9J%8QZpgR7*WE(6APfiz!D5HQJutj9` zK1wV+2MK=;esU7Vv@aMtV%*2=SAj;dfoAAGtQ`hVn~KdM_qX}6m5wf!V5pU?>AsFU zC!C#OTha%)=+IL#Hd3qcHzEgQehhdn9?J*<`wc9?#446F7-!0cjz8-tk^UB{BxP$& zy!{>ofJZ=iwKn=%v1>71H+EAG`J4h*A2Zwso4`Lz5h+vPjWf$GQ@af|!E*$7g@K4h zZWcKu!~)&Fv#3Auc9j9!FlK#kUMUeoyBy)PD6qj41qy+)e-7m8aHFg^{}2O<%mh^3 z9V0~sby9SoA>i>w99vIjjGv7=jxf5G3@7S=O&H#7^jhT-Mf(spR~o#|i0d}sdlx|w zf&Vvw!$ApZm20d<3v2Lx z5Z{r$aNkH$$vb{&j}u_wg{R6eAQ04D4Q{|jqR*3OX%*VM&tM1UhCg)fChUt$YJ~m# zAa1T8N{>{@9DP=|JpC*Uq~O=i?Ur}$zvLGQoV^y`Hd6ILNk3U76Lfe_M92p$(6_-{ zy9pd!pf>=UO#Fj!0U-V^Tdx8AO}}QE@3_0|Lis)!+o*qZXS)@26W|2uL+T<;1_4dn z1A&Y~D3|`tg9@Y-0O`8Q+XmR@`v+a}RCpb@IX%uDo5L6}9J^}ohG(J4;aOSeEY8}y zDJgr;>y$Db&^vSbQtZ2>V-GyGypd-`Uw*b{q6~4|kty}C{IG~Gaj_gHd8lOkP>teA z%*iw}lofSt3z(}vduKbK54-w4A(>_}({kagVs$l6pBqZ3IjJ{wKchNqaXA1wc)Zu{`UK9@+)E_zD6#zC?XUF;6is_lSmu z_HJbth$oK5?_e!`VZRtNdsyxx&nfXB)syN$aYueo_>U?GLr0o7sU>Rn-oM+g;@Gbb zGU>41j6XLIQ$8-QJ2zE_2h3%(&P2GJpcgDNoISw9zewx;v;GQ@&-b1w%h7k46!SOc z=oQrbJVJI0B$|7tu@JO_h}Bvyljdl%ll;;}dK5AJg5K-5#Fv!aB{zvRVhY|P2+j1O zv6!HrJdX*?I`Bri(q#eT6f>xlEFc1%n%p;Fy%6ZgA<)3$(rG_J9+e*PB2!A5sWzAE zFooIvY{v>?$96#pN!Z1GU`Yp$FaInp>BDu=8GKNRnn?%ugq4vS2lTO`>%H2awF`RF zC+uTGM#?V<2I&j=r`le?6izsmj!zfN_T)?Td{u`YQ#MrwC1pP$;)rqex~cc=ulV zHDZ1MrjXp?{@@^VD$pp5gD~xj)=eww`fSMY%^)4RS5--HF-G zj4q&jMB$$)cx8SeN<2eKjgQyI;&EgLJ{9{sfTQ06xnV;CXoBCz$e@ZFa}V?;xSKch zQG(9U`6)dIBnPfS-vD|XX2B&T)tam9aYQU&Fe?ln&FC(-@vn#)9j*>LNf)15=94FY zUI6rGH1JRza$OrCCam|rqbcG4(YftO$O5nK0)Op44+clZ7luxGnrw%nNN4VK){h|0 zIFqK!mIbEBHVyYboLmg#=aw+qC+Jt`S65MZ*Yv4%!;%71u+=U|-0+jQ1#WsMRozY& zyn%Lu0mBv7c~s*x(dO2NVW_Qsq*flVxYaxc3G<#LrG4VZ`(ng*NTKyqt&z@x{<*e3 zGa)a}uf=65E*)!?=0EOn^@$QLY?0(LlwUZ&y435p3>FCaG7sGZFLGb1s7l|(* z@QjU~0>c^HcG7x9YQI^LjaX+WS=Ctr`jXpN6_r@_&E1hqL#r+^oUi&!b#S!w;u`#g z3fQWVanEP?NpAV<=LP+5+1PM?=UL%9QQDe>4~y&zxvbi9#f$G$TXx{cTjP2!I&(=R zkMd!qwJLw6V78r5ulJ-u3elx;MHvlNU)kWi!eC}@hqNTj)s@U5+7(cvX~{tX^u>V4 zvw?Hj9jh|0HwVAJGwt%t&yhSwRqQ!Yp-%?yU)6Y2tgFbW`^++5rk9uuJaH&3s!-zp& za-gBa-e%SSg~!ATT1OTVD3*Y& zJ~01a$1iEmA;w?g7XvT&T-yqLef;E)vzGmZ&V9S{T zIzBzia(4uo2fPV;Q;$FYs9PDGZ${Z2HxkifIjZOYA%8BY5yOaOSdLK9I zXl^9-l%y$^$8z<3y=7JVi+W7Y+s3X#taWy!tNa+$dD=pt8R7uW8ZiXTp|?G1>Y9$g=X>D2=mm5-sDa!BJDrOt+@^VsEjo`P2oi z_dHaT9_wEQ%)rm8_<2j;oU(s)KeI+vrKPocI=k{SfotVOf1|{xsgv_m9bV`20?;{J zxxQ$I5!vpcLa6`BjG~z8YYUI5L=sj+vSETyfHp>3_FBhYEsySmQfz54A%3R*D}2Lf z&flF5rt;c>;QZa7D71Oex$}@zg&yV$%CcY6a=BFXgkn^8nUrr5#W#?Yw}mPA=|1S3 zhC#;BPoun2+W#oWH9>1&>!Gg8+|V0*es;&s^e+0f15wsAky%`WbU>Qc;+Xrk7XcAC zX^>0Wi(6!d4$DBRIc|Mt6|+crJLy!QAcAH>Y8!Mt_TkR7Wc`aKrr@QBF4N?-wtlN1 zenm2WKxdR?QHA=+wQi3ox#Rfk*<5b>(DNGlEYOvk&@Rm+ImKD52N0B$K~GTFhRz7Y zf!fh)Z~dxs0>+IusqLTq=5Xnh$C31ILG0H*-X(X8%GB z$BX^0FA%hkxH4>UCgRYMEgZ@w$~`BLxTF!!`j7$t726upG#~)i)%oE^iYnPR93IDX zk$uYqEeRH7pi_@P4?ey_rqN3*5ynw>vgrrcy+Pa`R-9qJEexGP>@@LU(TK^G>|}ks zh%|co1iRAHH5H0fzaYvwT{|r2{rTyb`0~|LUd!=bm#BqP%q5vLr$C?AwxgfujsdD( z_NRP+-zeq&7U)_zf93t7s@$t_a(6mvgOdNowAcL^qn*QPMyzM`wK{H(r>fDtZr>S9cuTn{pd<+?fkW8)rA5$-HsTq^##nxKxQG0G9>q^{-HJ^wi%!9O z$eN2{y=!lEv@dI{NNQD=^41X4%TKIQ<&4&YJm{0alc^+FO8Yy~VmpFwZuzLd~k< z^tHLRDSGnph-k-~9Vy#fLo_gzL76>)ncQtR_|7h%e!<8bH4!1xL(@y#afZT!T4*V zX@^ra$G6UQOJ0;Zf34 zM|pe!**n#SnlxNpH(M27z#ArNfy9#nC%!CKJG49Pepxv8G=U`O%@TLYQ$J1xfpqUg zD)IUCgtwE-az(_A^G+y;DbBS^10~k7o8#G8;--V@Wi5CS(mB&|iMa?`+9<{)fX7~b z{Xjrxq5qyJHbE5?iUJ?dT*iveNgsQ-yD?>W^l5V6Y6;09yv=!!8~6R0vgAo!gS=&#uL_Jla(!U^$r4aY%`3Y{r;q$>TA& z@nP_INzJ(ksj|ZiFKgk}a!q;cwjac~(O1D6dw93OuHY}h@NQ%Kb?66uz{k`!PQbej z!3lp+gLfO-uR|Le!p0%tA7{WGRvI=o;h&%XS_^pAY;3_lKmVg*ziaWo75m*iTOjt0 z*$evXzxMyHo)!Mpv%e1gF6~#({>!1?{jc_`h`%2F->Kk#EB3p`e)Yw_9QwCO^8duV z(aOBT1p)aFV*vo|1cUz{+b??iOQ8A|8gk!*HyoU{9g|JCJeP-*Z+Ftza08qG2vg=|6e+X7A9M^C3A2}7N1(j zGiX9-I)#oUuFH|$)RIkqHSAW>6$4WjHwN1PoZheR5ieX;c+e@KXe_) zsRZFqr4e=yP}9_vgM}zwh^X{r-ENGp~8id(L&% z>s;qL*SW5WS~hF^IDuK ztIs3KA3AH~tR!f#z!7v3BnSyU{*mMxP(GFJTelSfcQ8Jx2r_;lgCb{@)#Jf1IbO#m_WuCp4yH4Ny9KL-QpU)5Z1zO3{~ z$l?4N1q!{qHsFGJ8i(`#xk-h)Rg%V7Be9Mr+^FE|^Dk{3T~(;E;EYqZQN+`WrJK}r z+deX#)nz2g5h|q&C>?m+y_ebZgdsK7iIh!mOo;FH%9jc%%yRr&273Sd{PK}xDueni zIN5fFd%Onmo9;EUG z^YV*hQ&rrT3MjSZ5hcp$pQ4cd?){Y96$_oW=E)LpDhwGzj?iPq=$3cDs4)dS94c27 zro3qYm%B!x*SqDT59z2_PVTRqOhf=v0BFivWekaaLWY`47r`5LnlSUf_*q?NClsrRFLJE{4@qv41rHA$^TYms5uh{H?OVznr;rfG}3W83J08U|J zd|VOGunVBix0kmm0L3iLbh`m39A7~!J2e|wJ)^*k%Ue4zm$Am^7;dWnIY6aNasCwl zSC?BfAwl;3u56(0Fc#rH2> zW9eSmi!e&dloQ|RX*)h_@#3Rq<3xKIz4c+;oRZvB)n;~F_2ZqSW<(&CRsl+BFQWV- zz~#CMl-$2sms46@i0Y4o=T|hcds6&i-A-2;TYm2N6X(bmE#kL!(yyd;#1=~Re!4c6 zlzG=v$xBqgbO!bxD{;DGI zrr-WAQFq=els&mTO{oe*ua$l~bF+bcDuL3FmhAwiOHCXU2oJME^@Qn48>KQunB^Qt z!e9Ppbt}87cQQExNPFZ1wP0yiK&9&GG-@msPACEzSzXv5GL5|3fpz8)<*c`N{PQc; zjUB&J$)Rf+u#ih+Y8(2n8ZC?d<)2v>%o-O+p~<5)7cE-6l@gT(dX~z^XW8rg4=5Z- zT*INp2J~#7v7&QXjeUvQkYMNRWo!14t;I_Sz$PR=MWeR`Wr>5Nv1V5EUUI7k|3m67M<)XfT(x-GJ|MD?9{vmi-`+OyXezh5c{ei?1( zP`kuU;W*w_lve7jAViT=x8fEr0)s~!u3VwoFt7Fs8^9B#PMV59hje&hi>RIAx4v=< ztg6$wJY>PeMnQ=iAcMg!f6n|B(R~`V_gcU1qh_QSyH#eB;H2_N=oWs{tnrp!YzVdH z34pcVvqAfr1WcBUeJYa|J5INg#ZBY9k@G`dsG3h}Us5q~JE6mVXw=@fL3`)=6yIi<<;&GdpBDgQm(9okF|nxPuD6&+(`bP zJVY+G)yGCqGp__3$KWj5DM@ea$>Mk%o>A<9_g2k~u>|SX`nZxdzeVjlkCozmu@I;j z1XZxsV*@rUtcJ2xtvX8$)^hEM9ck{-Kndot9$PQ_*o!Tdob-p|uXHb}&#sL7 z-AUvQgwO0%@W_@*4>w|XDpK?8DFMBDV7}5X&SM@v!zxYW;HXu9QIL`>Lu2SSGx^Cy zewo0KD9+8y1Nyw*<&h;#LGAS0St~uNy-Z^FvW6E!flBBT#Y#CAfsd;L)+nXk9%$vR z39;GIBzQeEDwvtQ>?xW&bUgib(vgw;;kju<$SV%+sB8GW3-lio?3Rm|V<-l5U? zw}#uFQY?F9<{R4W_RFgSreg&{byeK{iI^?FzI@+h{8Gu$U;X>G0v@_3%u5HxVGw3( zpRJmI{Bj*3Wm=@{-yrSZ=Jk%(=Pr|9FiRD<&7>U=8@camsLkPrt50W|SJngO?nYAB z6p*|s4w@7>Pb-+a-K&@)es)KNewgP#Y$0bd1GqdygQ1{;6&wEH2VJO)86& z9q{wy21PHK#4Zu?J|~cgIo4BpVb?ogMMAl?to(XcnlN$FAHGOnXuT6C5^qM@P@qw2 z0cL}Pqx}<3>DvY+9+Jdr#!n9N%S|#|62F^)A~0t87Wre14ji+3y=*$+VXAD?QEq`H zoOf>;I*-q&FhwrNnd;cUPI&H;-0)T#JcailB(axHA1%eL3FYdOeAfczBC;M&JaLi~ z-;*F^Io8=equ_S?1Ki14#F^)W0uIX+wCpFp1!s@kXBC})FVZi-&=6g?Qt;WgeI(6A zW0u(S)ovb#RjO{hVqr|ASooR|6Ij9TOEKb(&Mpc|YrjfbuHYW?DG~Ar0``pViwdSc z+M6dDaGiy8zmDJ9Bp{w?3L}WQ=NmQ6a3lWByBb78qvPT!91(h*erekm*s|lToTocd z%(-~lQaNP3&f_t;=574j-1)Ru;1!spD)Lgg?i;hI-p6QPJjE@WTHn= zl!O~UX6sAb;;h}Q#Jy=Gr_V>ybUooB&?~}> zENOBCqdBg!U$}NIYEJfed#Phrw(4;i?;HIw8~u-i7|1bYdraG&m_!P1u2kaWg92_o zdGbQr@^sbuTZnht2=60YN8pr+OgQPful+cLs>i|*NIO|+uOc@Rvpz7dp!lF2Li7xvyE4)n~sb(i!ON~5UPm1 zoRr}~q_X@@R%~?j+z0`u?7X$&Esq zul*_trwpbVAJ0$aq3VZBqJHVeM}$tn&*?{9JK}tvLqW7}%UynJ`5n#IFYmE;Oo~X; z6O$}Z!#Cfdj|x$wC9kG=TFg(f_=($y2;wb&(FuRQp5m=e5;;?aM6ucSB>S(bM5vtG z^qe0&0_gS3j^_CFX<*d9b*z6vxXs#aPI@#AnHjOdN3lSj8{w8x8P_~6=I57~MAC`4 z()@yX>1l8|>R}sL?mD~W60iJ%=1N<^i)iy#M0U^MSAh$CmR8Fc2@`y?`;#kvZ3C7Y z2e>YX*o}OVt41fgA6J;f{JH}*bKIJ3k1MlN_28B4#J*V3aK0kHP5xNkhE><=pEIhJM$)>K^dQWR9xPDh7S(ti4)Hixu$G}ow#dYuEwbaGz#kf} zb(K9U$0hCT@~Mj*nr)A7)Tecn>tN11t(Et<4kn$8w+x*BArAi(PTW3kJvf&(&Mo!m z)?u0k+qs0ZkX4lQ$dY6ejV~c)3$Yt=R^(*ZzEJwy!XJG_fxq2!r0$c73bzt$ttPzv z0%>~!``jc_?sL295X(t<++52AK(Q2ACrtzWO@ZHX8o6Gq_T?Tr`Fh5AU{(JdP(NjE z%r8=kXgS){a-r$c>;#93?AXJFC#S|p&I*Z5B6PrL;p{9Qjz_4)zLB{(-7gdqvX)Nt zY)(>E`w+D$C7%(W#HwNST;?*@i^H+}u1B3mPCkQbHn^o?_}lgh->*F#gOI!rbzqYs zHC~>Do=33K!8X)no<6QeoNiCyse+hq-eH%c@(v_rmT)BiciwX`X-b*z9Lb*x)ZXv;Rr=38*1&$t+9W z>(^T9n3A8m^TGH_U~kCfzImo&!Y%F!+Lk}nJkEUw!B8lv-L*v+?usErV}lh8U_TFv zfyJuXnR{caK^81TNT~Mmb6F@p|6uxqx$0MNP^mzbOats>;;Dn4OwYL^=vLMdvbgx{ zt(C!XA}=X`9)f|Efx3izo9iK@lxwGU$p|N^gZ&+s#yRT0 znohX*I}B^UZ*$px?I={nNQ?_FJpZt=@`&uZ-Y|#Z#Bhuc-5@*+q%0obN%pCUgo`Sm zXcT3$CczQaA|1qq%D4qVao0%9I|Za4Ria*epKf2udq6O*bo(?wv+!)rn~_C(2a_*OM#G0pBsca1|V4G>SbbrC~Z=fbdW z{c6lgr0oDVJJj$P`?81J_Q9Qh|A(lJYK6;oxAN~tw?U(M#JJN2$VOrOMBz)ihAq;8 zr_xzhT-qQW;|S6HHWT5DQaFKyF9%IjJu(l{!GsM;F&pvC-IfAG*N>`#zW~B7d?2iB z^7lPQj<$dX!5nlnJH7o5i!~_4y}8C@;?C`5Zcq#Cco;T@NoN?lLSMF0!4a-d$o%a|azV~A)0UEZUB&+SMR;`nu-HIt zEm-{%;eatI3doTyTaKV>Di;rEgOkedBVNCEmwa{n(&W4LGk^sw4rYOsyNgBY&H1|! zx^sXlY}K+SoV$$(UR+yCD#5<-Gp?kA9lzZ$(Uoa|`E1u1YmR(6m$y8pC)xgaqQJ;>YA6`dYSB;ulRWUY<{lTB!}HY7 z3WF>0p)aCu%5E2i8}4`Me9O{IjvyYv2#s6N!xt_HN@?+9WUn2DRz=65WbzwOR>mSr z@*#nt_e*Yaq*>ojHUZ1qh@99+N+I?@U8jtKn!N}FAS$>BOMA`@Dx7%jJ|{8yov_s^ zbBZq2Bsx!hn}gxG^8?ShkB;+!rHv6x15ymW&MC5qXA=E)lVc2Nc|-xGxy9B_?%g;3 zX&+dGG&7C)Bm;O_i5tK$j5EnBZ+9NJ1#P_W1-D7jLVGIl5Lsk59T4+d-S@(t?1ogr z(D}+2*V=A117_4~OTH;0_4-oRnm3`2&j2sJhSv4Jq>Zlk;$YpbJo%Gk(X3KRcH}yC zPCp?2_`wFFT~nflk6eD^v?lQ|hHsnvHDXoGJ|% z&UvJyPRe5>l~;+|TPe;tZ56bz@;xT+XcYab0i`7HqklNZG;R7+=x^N-SMVm*i^lwg z;*`2|)^z*xC)#ZyP{qRP%-hmLwzqaGwZ83%p9y976y0#!N`EjP^8&l02ggfYNe4J? z-dZWBJizF`+dnBj7;b?L@A%wE{;^sv$VC^lSNl<7-%7IvbdbD&NWz>7Dl3e9bW|U5 z`n9~r|Lu3v=4EkZ1p!L{9x7?~Y`zc{imkar*X)(P`7J1B&&V)2~WBA+0LYx(*HU=pM{_z(;O1)W1km;USL7G$^|eCD2rwC_XnyD)Pi~gtE^=yqX|76^WIe>% zK4I994;Z4d8VchRe}FCEP^mroMD5Jha3|chqgwkSrrY-`vDsqp#3}9^%m>@-HydQR z4dw%2HSOW30zH!R9L|YcQU}ARf-M#xD2u z8BRODKGr@SUREEX78 z^2-}(J5;Jk2P>E4W?hwWn-8pmc&cDzFbVoqZU;7-P2-mt`Jm^MetvmUV3DIvNTR9x zEN;TSrEh)=#hdz;^F%o3YeXZtyd*FnJYr{^fZ`a*yG^t?YW>1^`$)=#1RBMj(v`Ai zk)Wkx+_uxiBN~f_$GD7cqN~B`z};JgNktEPDE?{;MBKog)8Ui-8&oK-)iNU6eh|#s8jSbJkWPA1d(Fx zoo&}H)%4vr)C>>(ETUsYyc{U{DKgMe(Ie??w>{)#6I9Pl>BX~V zlV+kb;xSn|@ZL^U-ozQRYOS2+y_hqxWi!VrSJ_;|Xa!#(kGF3YtXRi&0FJxZsOR4$ zZ+Rz{7RK&CF8iw`w1M7?!ssANgB7saLx!fIXl3HqR?SAlzM9=>%GGeLtsDH&j&=jJ zmMOC2uA`8lCzft1jWT7W>Y;#y2EmSm$}lwy@5%0U2)LFYrZTKojh<7LW27jZz>q}) z17X1HP7Lrzk*YAFREmd^H%NlASQU5!M_CX5e~1L5gyi`Tkr-(Io-$==^-cx<2PspF z^Pf`ws}3M7kU2HPPD#P*?}Gd@LUw{vC|wbN{}u@bJa?-6FOjH4{aYl(-&p#4Bp#3o zz!pgUpCeK8R{UEeDxN`h{~U=D6@>g7(&+<#rq9<~+E;~uB~xo$&`v#Il)yaT&-ii3 zZF*3FLlSHO`|*Qu<(SA4MTt&r=D$kPC=5LhC0BXi_70SB%6P8-J&~i3-?}^6X|W^a z^@@b=_Cqw45UI4VgIY~PS{Puj`$&YX1luKY4x-SJQhdr<0Hj6E)i57nKcEb!7DI|sKPLaY?ZU@JpwbGEcznke%&EP%!-uLZ4DNk)x<3u>h8pC; zhUtgZCt)v7Zural_dPl3oj?)oxg1+cIcssCAt{Kb5Q6!$EA@!r$l>vi=-HCMr#{Du zx=yNlIrbNy+T6x86)mqhYh9Gz28y|0pfDuJo#6${J!aF_2yW{7WzXAa2mg>MAu#n2 zs=uMecqIMjPrUbq-Om*e6B*##d0Lp)RNyN%myxIfeby1jj@e=yU!oD4<5GVC$xP`a zSH#@Clg7HEZV}$;UOzv8m4N<1KBaT~dHgJw5gRNV)|KbX3frK_X>1=EpdFDle z+CZ_|c%*r^M6W=pc3g3l7pv!UkEYt-8_Xx3j7 zcnYx7dK#Mcxv<1`9jPqOaDY?2B2llB;8ybx87}9uKU~&iR=TO>y?}cBZEyQe2;=!a zRDS)SCH~9GFx?@fx-d3Bfy=v6=~qcsB2$u5>MqDW$KYGCBGiG8oj-y!ps-fJJbr({ z8>>Ea@a!UK-|;(-BHR}`+jSiKA2#MK-lYMovIH~Erk&)|$jqg+u%A=@u%27Dt+<9q z`31e}cFgouj^u9-e$l|^fHLguv)sVtbrFZY>c$295rK)mnm{t|WvA)#@+Kp+V%4MJ z8$>@6mjloXI~NR8yIa1MO>P<-GZUx+OR)viLO=WIxEltQvW1o5hRoU{;>7CJ;x8f+ zq+CxQm%9>NefLb9q+GsLx#>!28WDbha8F%JWoR30Mf#bDE+Q)4!F^Ge@(*gyP&E!j z!SCKLtc-;R3*CmiR%7-%Z2pQ_7){~(hFguYmr;}M#5vxBI&k6JBlyeXCIxUQvZv>1 zf^Rw*OFWq)KBaF7Q7Ej7;Jxpmc{$3Y=M7VZn|+VaBIVnG7> zo*qE2?13;*aP}DJ$NhZ%rTLq;%eDKT=97N$#MLD)T+06-9Sy$#S>2)eddctSuTh^2 z4V6tn$p6+26kc!5XS$&|(qlf=H8#qdFzIlnz<#qr2d#SKtffE#S);M7z4BR4NgDbQ zVov_siZnuC0hcdFnv<##c@Mo_@DX}{5UgkUx7Ke33Nb<3q?A;F`-hBO4RWp!`j?RQ zZMG~7_&{!!q%ABdI%?p{*|XN)kuR-Xhr#(>LE~QdXRTKv1e@vfb%U{-RfNhjm$HXq zXPK`=7>SQ;&}K|!8&})88{x9M9WV?24g)`IJf{~sA1K^XR=;VJ4DKhM&LSq)#q@cn z=WFKs+numUi+Yv3b;zf+GFDBOU(QG`zI!OY7UOmgx@S-{FcS3Aevq4GX0^H$6A{^$ zl@u&bXHrb;^woW=&iq5*Az6=9=JO_4S;*=Y#1nG`CGGdi>a)Mf2_L(WI*UzVLsMEs z@5$UzqEF9SRz5Mg(_!qbj_zlI%k6uR=2D>Eoa0Y;t@*VIcB%ZXC{(Fg^wv;;n_VQ) z!R{;#j~^EkE4ke=0nZ4{+t5P^m+a)H7ixkI9l3iC>Fwm#cssh=^|KuLYKScRiEHPc z`yZ=$h~Z|LKgBpb^bVCHcCU<4f8(dSNUXTy3v5qn0lTcrM-&GtN*?+7E`Rea3~z!f z64BOsxI*kleJx$d$KIY8ol-+m?n4>Nh5izRPv?HlOU?4gYgtTCa@H=0Wm$auIZFqT za}QUv;ADZ0+whl4pHx(hXCRMqo^jc?eA~o;LfiQgodivm+S0c@Y3^#V(wEi!^eZ0K z7{S-E9jAo)B(k8zK#iKih9(>HvsJngYDqOPG&4nL1CrS9?=A?&BnrLj#qZYbkukbn zi)Swz{5&xBu=v?`VvK~X>0&wKLLXDW%xtn`=6KCZP1~Hy_i<~8Sw_FwML{hd+4z$5 z;~ihdD=I&xy<9o##3X){WV)_1cPD}{NV`>=wp;%?-@fWKn_3pt-j$q(gVm!IKTfO! zA+6fvK1okI6&Dao2+08g&dS`JRW?3pokrA9HCB2j}_;b*YT|*o{mv z?>Z+kn!-*dyFP0xL4?rAA;?OdX7o+Jcv~rFRgf*Wno7@jWB!6u!q59gMN-rA z1uNaaY8m8y%WwrLVSK!!G?3{yGq)v zFV|PEU&AM6xCA*rASBfz|_6f~5fS++Oo{d#A zm@l!fIy%sP`03^TjC7KF z^SqvbSM5xqV^W-0-n*oL8_4TphvNJSYcBBBug%bJ;x&OJ^U-#0um#tRo|V!7GlQKy z{j{LhP~H@qcEQ~C9>C&!2Xmb7%1!lF!5>ZZC1XAZ>~9}qON8UsmXLXctMBt0RY)Hb z^T#Z7=JLTNi!9|_wmVxxlW+G+IE-+GObvm%ZR%?4$JwmJk9zbte}G$gXPqXl% zFqK#8TkQE^7DCAT7kY3R+*~r}AS;_EcM&r0p$_>R1RL0F>qkuV0TGUMLJuj)hR8$@=VXXkG#dHeL2>;cE2KL zR=}}t$piGzi^PC5!RvI>f3)HXHvbF*^(=m z?QK1Cu~v;^*vo#Pp%>GxzTh14ceSd@zm` z^SOGSMd_R3F6jAD=uTMdp>6i=yGJ%S)j6d2)(kQ~c;DX(UDf8}KP@|qSla5+-8jMuc2(UQGh&`5@3a<3m! zt3BuWOa}L2H?3Fm14Mp}L`3;Z>j3rp;^54FXwfC($*7#oy}@6B)s7?!G_Ed1Vwdjex`d|;5VVAzSX|px?p5}#^;=; zDBIDw)TFYZ&^?0`s&_&_}wM`XtM9(wx`PTA5nGjhs zl#o(qAmf>m@P`pgU z@C5DGwdSJn?Wl3G1Zn`Sn7RvA`EaFC1iBXHbyB5?7yy4w`&C=CC(*!G!oI}yTScux z0+To+tSxlA&|by^d2Dph;xZ61}G4e}`Zk{Wc z@fZ-LIuI9dBd8E~Nu%5zlnvl?0v%QUs_ z|E$sy<>oqH)Vq96{ZZ8sbIoA!!pX`G0639JA1=JIZX>Z>XJ8>cZ;+j#82IRFi zv%fT#3*5VbZVokq7O!)&yr}D3ztV_fIt5KT`mAT$kPHtu?n_{BQ#Y(gKRtb2zu)si zYhVI0M=Yx>=LU`DfdF#<>;Conw#cGm4e}GeX1MtMra9)g4XW+J=0ilE(?IbBP%>>z zy0n&7b#nW8p?q8O!`wy(fI>GddZ*{tX|MukCKM z?s?@4mUny}RPwKeo}ly!g&8%|y64ZU_egs$yA9z# z)UMQ}3Vu2aJw2-XPDbs*;xBE!Tj9^@K0dDnX+{V$`xbc5*4I1W27JGQ3BE&Pqtk(3 z)gwwnZAQL9Ql|b&xc$TL?p*$tb{c5e_Sz4si;ZVu89WzGtd9 z2S#t)zZl*=l_z5uJrp3}e@%%V+7hvT?!7gVb=gw;0DICIny(SNULQ{o5P1h_qRfiF z-r!%VH^GXPyOSJ{spUO#Lm&OSZtj08zKJeuvy^7YI(SUJVB_jti@Bl6b|HOSijwm1 z^TPM1_wa|WUbMKO<21qq?%0DcLXcG@pHV1fIyF7ajo%0#@E@8jVIMaa_P2bm7XQX= zRnem*4m^0#Wr30W#C9s`^);hEM9ET3a z`(jSrP6CVU_du+%jzdnVq=f?u9+!uG3aT)*3Z3%Ie}?srrYSf7%?fp9V`HVHQtX{~ zJx=Vwj4$k^Sq5KkGsl$a2fN~*sOiA=F+pSYna_36uXEW_6q&y>pD?Z|lcG%Y^VKtq%YsnA9tjOM2^0daG&?8MQc}1 zb(cI;YPYT|?QzdcudsPZ{DwaUMC7lHZE(MtoMIq3gK-Fa!P8Lx8rbLJDqqr}h zeThf5XC*%S69;u03A76)#5kBix$o`wFausj-?BoRZqS%%Itw#Rt0jQ^mU}2j{7w9< zyg(;9xS1=YtLF+%<%HfI7Y}&Z%02H2n4>(9+kxAe>?(pcMG8|Zzvunh3?N&x{U#*e zD;~GL4?zAJ<$wa4qQs^=NADbku00skK5zZUCv)W65r0sK=YJB5aR=lM?n$}7eF zEd~$O`>)bd{_O+-KRfPkxcaXED#Addzs2|s_?_^7s)pemznK=3PyTF_9{cxRD{?)b zOlV!GQYc3a`=M$U5=qtp`s2L3?WwT+$^$ zH9G%``@&!exa0v0c;@u5AclwmqPdn9Hxe9579EZ3ejlyj0WOQVsZZ!gnQ-XMwz+K8 zp^2<;^)#q0FHbV~{2)t?)wnMZEpq?M#d!iEqQJ?*;z$r~G&WY4PlcBGP4}5HX8l5?b2#fpms4bp#Gnb6LK=uigjS@DP z-ym@QGWN~OX=!WoG()I=CMMdT_3{lZQNy+V8eJu~$MGs34)HY&Ug#oqx4%Gj1kC8) zNK(sCAGQlDHVI`dcwSX|Xv3}~e0Emt4JmU%%zuMpdx3)S-^`2JrlWOxpp_|Mmk9Zd zYvzSl-R5J>t}}{<=OmLmlmb2HQJyYFmF5OC6Ehh}t`V}!ZftOc0voG`+T&<&xt32FX_ z;LwS)9;zR@iSv;f^0xHm!Uf0~yqwQbebW(99NZCA;wwB!(D~W7VeFM+uUT$V?i5p_ zetpiVP_FP^zD04wb|Eu+>7W^^bUxfq&D7Kp#R`uIkg2@!T;CX%W7%H&tzBAOw60$dS?J~7v&FvVKe+uiGT00ST3b_6fh8$f)L5U&-Ga3UpcM#%NmwI&*|9Ods(to6ZflqWu&ok@QZ zf?LATL&8ET)J`UHnMN_#jU|@h02dcB$mIGXmQkHWLa;YpQqS37*|0pi#`v;}d5piM z?%ms}hoNiPBb)T}HFN8NK$SSG)##@}Q~P}6C@rj(gijc`NAqBQkhwHMN{Zf@@1Qk5 zZH=gr0{=p&JUmL+&r$_Q=VY3^at&h9G8M}gwufgg z&*p#^jUrA?_9g93_v4{dkn&3V^*S%KM~x=AX|-YeIa_IOKbOc&pkJ+J{m6LGM(_X= zG&{exHlbmlQR$>{jWS%7zXMa%g%TaLkQjtY(y$RpcH8uZKWSKoF zTNrnpmh7K{$CkX%-Zf3qMiOAm#OCI=qLum(p@W$~<4QRHDo@Bxle=v^?T(@?6U+ogo zUELoV0Bq)gvKy->J`nnYLy$-_{fxBT_LyG1s)n%hPWiMjZXF&O83mQ7#cAoATBlTs5(wSfCwDG?}>#;^wEM`Mz!uVWufqGyUqXMuVihXF_P82Z29ZBpD<@qh+7!e3T-}2znn=($6nOWMQ_S z?tPCDhHk#=a97E;S9Q1z;#>O5`;2JN!$97^?I^4v2nIQ60UM8e=H&#ROW8LIp82pG zt7`#WZ)Gyu+2Gx~eXd28dW|f)hv}g_jhchKUU0hs8%k4_r_n=Xx#)bSIjxj?Eyq}i zss`qL7iVWEo#H`08SH8K?$b}4*0SmWG>d@OBE|I|2lSmM4l?))WE_S{?FLR%1jg0^ zjaV|GDt4c~ zdAPsa*&q$5Gtwrq@za&y0#b_mBk7NRJP7&G!F`x)o*RjKkecS*w4pSiS6(z}(KX*actDMIBR zcEPN>9~q>2hwM+7VB3hh1$9i=OD1z^`PXJeI_=L^ob0Me`b9H1-e=O37T zK7MUj+I{vMscm0G<&k5MpR-Zw^x6}+iLyV?Odhl9{P-R_R8gg}dyE$kbd`+5vla!2 z9wmk9K+v3?whi29Re6w=tB)a0oAg>8x>wZHD3F4Uw))h)+2x zp$HmP7VN?ZN?maF4qHsd+<0}Iy_yI{fOhMrd^MhAslSFaCoqG4w%!#Dzx5CK?rS4I zlxdmF)~(&D<5x=y>)@z3`;Z4z?dvDN52y357ThS+`eqXRYiUBDB0ip02q-`$PYJT+ ze3$cE`;aV|iz%))CN><=sB#!~nP9|$M(ePm+i*yb_4Zl32kJWF+7cz&kL71eI}G`m z8hnBAE3#CVaI!S&Y$AObaVEeJ5XHS}C{3dXt{+^(bAcl&ZBeo3Q@U=P>>{}3y3G}< z&67vJ)$=I?J*Erk?;w!~obm!RUvZ&*saN6VK`N2ygWIb!m(F`}2f%?HlWV>#Q3;eE zbVMN?=-?lnjNvs}m?odES0?IwEZgWh2DPhZ`A*7i4`z#Mx0&qk7*$o}{zbS=8U~C; zkjQl!o*`Ak>sGBQ1s^MG(LMEYHuqTwI(zg|j9PNau^V5 z_z!1#!UG*QMtX^EUPgzRi}Rh{7)Dqt94X8BSb76mCS?#)jW=E()KQ&8zn+pOeJS(7 zzCBnnkjoG(U5&3!xEf*mL{S7Wf0)k(_V_x+y(R?{EoySaTUJ~SHi8>(6dHdv;fNyi zN@|@vCv5|-Zy|AQvUPq7l(>q0|L(Qq)yMqb?*hL1tS@DT@!v;3*y(X5leIdQZ$_TO zt;|4$^OgP>^z{J3WIkB*{9g#Z?|X04s!RGxLGdd&}DllBidw8F|-f&$Ub{|69jcv1>jC9jAi7~0W(1!sz{Ywpll#jAg!2-Yxg zxkdkl%TA+;$WnU)Jx$F~FroZm#LoM)XL7nTRYXV#giErrN`9d1rh3K@QTs%0qmzUxr7j_uG)w`Ht( z4I+ZuQ#D$|)phEpE0~|SIM%K|io{jznvRWS2AArcwH2`WVIME)T$g8JVur8)w;Z2{ zws5c3EilGDYEQ)K=H9bbusr#v`#60A)1I>d+bc;`o^aBz?%l=el?0rd!q$w&a9e`R zL=?KzK8{_^$L$BLvYErllEfcBZt2tQ;cboTOl`^iz?p7_$j|pB8tNGiA$0EEb_Qde ziqA0E4QW>aZuO|TWZ7o!#w~i8X0#_u+hKc?-r?Jm>kIvb6RjKGmUp0gWey2dxLVQ> z2~FNE$F+M_PjD{u892JDMxA?Mu-(XNQjCFb%{x|I21}GV*dq=>)K-hV2yTHWu^k>C zuk{#?JzII;W_85P>WuzUd*3eiRT#}FLUle;EV9HjGsvg;oX-nOAEbvGKjpg z%uLTNc|re;RgEfKCBv;(1hwGx`1s8<|0FT%W$&<89*d(_fRg68O!}BRc5B+}RH@RL zL5H3T?d`ak-3PdA-d>$0#mwgyyIBpDZu*{(_e%qs<(rY)>bw-zLS zZ8A8q7Yh^IB3(d9m3`-w(HkW#Y)f!kBrA$H4n)P+`24X3h?U+i2uS~MTF$in&sITpbxm|+ag@n z@7d2yUPJJwTnYQ46tchM4J5ysa-d>%cJ?$%VrQJX*$wvD87Y%|cj4_cSVSSQV&pdH zGIri9u}4f&vCWU^7z`d8DUDt}ebxo*{`SKWro}hlc7Z+f5z1Z1Kj`(>y1Vvu^lMMbO_9^s`X)YL}|+P0fhL>5uIm#Ax_t zVmHwm!IF}`if1}~?LxY_HwOjKL3dEh==iL!V)lc@{jEm%wgX=*<{lO2ggtsalTx{t zH(K}3UTExR++{S|d(n?NJl#m(L?a>e9-9}ylr zAgzoqHf-TFnbG-OW#-&kw%Q#z`piVbZYpRTO%=uNJes zygY|7s`41{L=9EA23bhh^*@NnGl7rD=Y08c5t**WPOM`R{ooWWhzX{L>;bbJC`9+_ z8HFAbwmZu0A92IKRKNYRY5h=(D10u_pKu@aqX($lh8{CrpGp+~eLdgG7xo0*#zRAP z>Du6k6IGguwsC9C!CJk5&f4TmC)gOTH8DbT3{m=rd~qW+Z`!eyzC-1E!;V32qMg9* zg$+wO&P*=wzk30td@`S_+t=PoOz!bQNOlg`z96clPgHn;%*J0QO0lIRTego_7o>{E zJ|TE7jTdR#fYl9tZnujUCJ-hEj8J_qY1kg~>fi$W6F25cw&@u5OElwH{-rA^g3;x0 zqTh0}Pl$u|1lf0Fg^RuKUO^{(V?902;ibWps>#M%IdZ;dO^cCxuTCG`oqcR#-~S)# z-UF(st!o?I6hV-pD0)DO4GRb;RY003NKvdH9i;aTk`NL_K}AFXMWrgehTb74Dj*=8 z00Dv`og^ZJ03qaGfpgyD`=0mv??3Jx_l|Mn*tlUQd#|j$)?9Nw&ok#Pe;Y4#Njl~G zqnAC~Sxuv+@fb|L&h?#Xe7leQaZ#{S=*#F{L>%EBGv!B{?jox5Gu~S69`AZ6;*7t1Ko{UrqX(Gs(G3;7`VqjRudrPRZ@a61-G=J(hE%F_A&-jwa>p;$}es+4$J%GFaw5R3G z;o_ls!OtJ4naCYGBHSOgfdI>8$3XZ9SgbEG?_5)g0pp{y9s#F@1QE)x-BOv(%;FLf zBX8u(B1^#1%~9`*03oeS6!0c+w4dSXr6hespbMvn>c)&Aa;V>Tc_on_a%g*HgAZI& z<6l#wHL$B$^I4pUzO1(J$dDD^zLwP6yKOD-OYF+3<;|a1AIqJ+A=C1F{G02eROYm) znl!qz053*$c^G1`Lw_<-&vqLM$R!4T$;7mS2S}U_+ef z{>dqn1Q(2)@?E00pVgj_$TM*^bi`gMb33XGVy&&THTxm@Igg*!kC@9)r){-y&*C>q z+Eq3``r-G7X{wEyxY6f_b>e^cYA{y9e_4vGKs+2zwUkg;pF(bAwp%64I$Tx^&Na&C ze9S@^Dl18Dyl~fQ<5!%~4X3`G7r-V&X26bxP-^gHAMV3`Q1^F&^@GKUVrxO)i z;ce?4`dl!3ue7BL_l?HzD6W?lRX&mOYR=92L?iF$J}6yS-TlH;*T9v?vq8% z_GS||sHBQ1BJhT+gQTHa5`yGwMPI|Z=P)7Sc94l!-(=dnW2iF+z=~!#mxNb`eLJcy zMC`5V%QcSo$|UJ5>6AK%T)>36RP-uGM+~HVx1u#`2&mHJ8O&(b$ zEL^X2#&p={+*{=Sce|jNJUBQ=eB)YB#D;updGAfnt;QwK!D6u)wwqdfu2tX(pcjVQ zxP8;p({;5bU&O_kEokC?T|HKAb6(FK`SK!HYbsSzfz|$d0RGPSrMMR_#$gnq zXo4qDrhm>+g)e`UM4xjbjnd|WK(&}yDCHhTWWQXNT=sJx3Q@HmWpt&pXL7K2xpz?) zq!a`%D^KOzEj+Oey6^#;ptKn3yxT8W_PGJTN^9p-nke(0PTd?3eI<(is#NWgK+5g< zBy8vU<9*Qi?|aUE$*&l7>B#Oxa|xa44B2QD-Poxp>O#POI8OBl8N17Vuc;O~aN^l! zG~g2{O4GwqLX@Q}WOJ?aTo*r{sNN$DafzJmJu-M+J4$4~VrE?dK|Vc>vj>(K=bm{v z(c{y~N9Ve)74AB7z0|AU)J}Tlphy+@mb4*cT_DXIjyW|@u-f?iVV>YN3oD9yTtXXf!ge8&n|*%_z4dR#X3=EH~EaWOIb5=TxSKbNqwV;tbOCT6}kls^$$28n~{XKhpVsKP*O!{&C8m;(&5~}0F23k zPI=#cAenhk_65LTxoyNB=bpY2d09LsF3#{tox=m}3$O2l4A%rElVPIjA@BApxTTT5 zl6o>RWV=Uv(C4SZqE((Q=Wm22luzyF-@Oe5EC?%~<_%sk`716pg4`Mp?nu^nef!=_ z$PSDu$KC*R);oQJpP%URuKn_Nj`w{&x|}^NJoQLk6Fa4T}t{-~2umF(vh^@JF$>0ByS6!WL z(^u%ygLGFa7-;)9)P$s==^-;L;cD94E;O9|Qju7dk?JhsG<@pokj>n_leb=7ljxGEP5yOmtjYf6OltItS-q zyGkv1{xw)G^0i1$k%!y645*VHC8D|)7j^UKjjRd`F+G@*^YJC-i$dQH^l1KeAN8P% z2FYp&w<9R98o=M%&ak4wMMDPCm?DLKW*Z{DAjbFOy#j~5!)q45st^`{58~JJ<~X#n z9}_}b8x;B?N}JXhsTn0pnT0K`*-=4UJ6w9FUna;{$H4p&lIEy&8MAfM^J@^&^KkV`ji+{hSKmq%qkmjn;>+r}n& znBxGae1kI{bdFtXPSf=p(T4|{kM^!wox zRgf(9En}`7?HXXg5T*v-+catq z)LpojXAo<0aZJj7FypmtMsz@VlQ|0=P~tFUErZ0 zr0$%20i~=a;AzCb8YB&ij2yXR)Wlt+VEg%rHsGV3*_RT+)Gj}HEJ{MssWGgmpY65F za1fEdH*XG^wgYqRAyf#bSh^m+W+;e{IF<;Fb*PGuk?JR=^ z@~aH)i}S*GOftdv*ZI<*8gYK^nQLKQysd()33XoT#K25=^+r1Bl&7 z^W85#d^iW+03Hf&J zW;BoWQLFB_@?N!1&O%T?gQ{l#rBs_xqP@3g?(>rq`ZWnp^@h&Q z*>xEyDF-|T0S*VR1twf~t_46_g5Pf`=E6>%+;>0XD2%udvvQ&P()^E>7=jWo50h}> zaMe-SBT^E(G+RTKOOn%HgzmhZZ3vz5n=a&TN83-fz22wnD7FI%=M^mqQjrgLI-@MT z`j*D8%Ve6|A3t1KhE0m#gXEsre-}zJtq^QmstqF=zhgzs&XSj3Y5(!i<;eBMOhIPa zl{A+t*T+-w?4s@5IVV`Y8bh5hqXKi`J#_hP8W|CEy`!wC_IO3yMcL@CYr1|e)_v28 zf)^Y+Q--uhKs2k}{=D|(Ko&JrbiE--RMEqHgyh(`4N7;%l`s2(RW2rkcS%^;wf|&A z@ao`m(ZBAW&IMNsT!CrX(O*F$$EJsFVZVQS7i6mgbv9cM4hHF74^4EZ+`2utU*5$n z6(3qK9>$YTsKVUwUUSZtBfokXb3P$BGUN+D6W-+I%^8SVjU@vRD(zMZ{E6w{9gEau zv!-)RHz_x96*^HaDXvC!6+<0P{y*;^m>WRo9h2rTLb~{@Qx3|uV-wcD#GiuDBb&%8 z{03EOZbNyDRGVng8TX|Ez+s>a!NV)0U{(6ccoch-VZ1^+Ozr4$4)#)E*a+6^!?*aO zkC>7AB?DD0K8F~G6IIo{8@>N`u_SF z7L&oavASYV)&Dud<9xDlZmUy41-lbWrq zpl+`b3)KF6_bFP7$edmJJ=>k?^uW4GN&Q@V{<&t?_HD4*G`ow1ZZDH;kM-&9{KCP0=wc1?^_(xzmE|etG zPI{;UG_kPBv+`S5CH^&-WrC4YhecN(Mt+bDa0?#)l}ulEG+R!Ov*Z-f+QjmjCz1eK zTHuN$Dm=D9P`Ii`Db9J&n3$<<`J)~_kuzSMlet*`x(rTNgHnX_N&Uin>5$5e`T5~W z_kTB%l-Skg+_knjHP_uV64|+ zoJLWf_IuWLAyyhi%bSqvigw3bn&amO0NM|C_pf zl$@L|i0`|TPdSg_HwgG)44sOJ-;;7L{AnBv&v))(M=3e$*yG2ubue<|9;jDE zw>9UgUJsL#9+Ny@j*TmA?M-LMksVOk+@NF64yRS%iwvJIitr z-JLF3C#8tHaZN%MUf*u3NKF9~eCun1QqyDl8(gUpY$F_Re3TWEmn(Pf`CQ+)WRXrf zF297BQo(zRQU{vm7p!Qr#@;>_%1j`x5b?sA`$i(rqX9T~qHOZ&6GX=>T>7k@p)Ckw z=-54~=g>V%XVyge){v{MR-ehs=l&c(LYE@aTx~2OGG}!QoJvnxXoW|7*a&$aQUB;- z{Ya6mTrk4P~T37F5@fp(x#$qnSc))Nj6&wz5H!4~M0H*hlpzNHX1` z9I7^ael~^H+#$`WeIlaTvLD_B@1_#_a+4o@h)%0BIN<%woO2S^UK@0?T%?Xyn3ta> zrUn;)ul&5Kd-(0D?a|ZkQ>jO!Z#df9q=MCGQlIi^5G)zU#}W@q zU9n#u@55Rl>-fiSR$k$y<2*4VkJlcxeEnKJRZ0VBU!{L`c>3f8Bby0eVUmD`Bbh(C zH%iBXU*Om+KKyW3YN+oU z*gGdo@Axzj3V3|~$ce291ZjzajeJvlFSybtTEBb&rY?1tLDJbi@{DYQC7J>Z{(N(o zwmjeEH#eLkJ0I(zWWWs)Xk&&+b; z?w1Jvj<-qc)$G|LQRiY1VnWoX{Mp320IhMP?Ba_MqD(b%`zh;&u>o(BK08%9;y2F^XomKT z^ychKfwj)z!}ff&kJd3+gc&URDW|Fxoys8SjQFkk%a=A~z3jQ)b`HueRhw zieR<*cUM0Teg7o4FW6*Kxm3BGDfAPsBHl(N8Opy?SQ-F`Fmj!|W)K`@?=!Lq?51r5 zaF)5tO`4werFy@6j|HWXFQ8R|e%**6)({`{E~kyZBfHXNg4{|~h3P|tM7Lg56We=W ztpCYy13r_{!{#2&JWON3(coFz4DNmBIVl2TLTqtW;3xRg{{^`Y zl`TI6ysus0ALre(c>>V(i@uY3{7`)W!T)a^%oczB8bC~pZ^xkdeZ@E+#o#G8F~f}H zU9pZyu1;QGJNSEg68Hws+SoR)3_jGIP!-LJG9y(-DLDTbM{hMbZT0`}`T)6uR_ovQ zp|=z3D3-(w#@A+J{q1X0i8Tz_iy3K+cPQ=e>@CLoCU^YZp}(=@TT+exPjwTKlOQ7T z&NKwl90&y)z#x$^oRH9U#vld-)&E^d5($JnL_f0%A{av`SXRO4KpJyHJ%YOVX6Twv zlW^bx#y&G+(-`l(ayy(C!%(o03vHW3GX5I9r?#Fezxl4s_ijxT#svC(JvjhA2$q*W zC)V%sb%=>^=&zo>2cf`kTN~piV~TE$)%#!$F-H5=#`p<#8CLt|GEv^|8ClU z^bWXp;KgY3e;oL&(VK?pf4*`5>Y6{>%m`4nTL1Sgy~nu9za5BdeYE?SIf%V1E?@q7 z0fPp6jHHE!@p8`H+wgH~c%k+>Gj9L0>I7x~FNBer4xktLL>R5Zg?Qv7 zfC5|PUsXL?U*>yEeYGHh$n+l_=e4i{0#vG(v4#JO8o-T#lnm+{yF}00g)khLIPn>`Dt1G12^iM=Op#rg;ci%Rxjkh(*2h6sl>uBJ$d ziU|qvjIEJy0QCO9#ze1zh}u%8meKTHKqg!&wtU2zys?xy0?3%at{qUSPE*3x^r=(3z8I42VZ+m{{~?cR|Z0&k=2}ipPpT)UJ6o z7)Wf$9w-AIrPT=zR1SJo_17~m*8skry;bk>D^+;GekGsM7EV|& z@L{Lq1RFrV+M

    n=*W-JUr$H7CeZTfNE52}Nt)hn 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�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%0DZbIpQ*` zo-OeUE#|

    NFG+KTU`_FD~T>3QKY*e_p7l(D)sio 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

    c5U2P&E~B0CN}b;MwX+ z;#)X)$TB!e*!6yI&M+T{0pM^Ve=uu%7(~{NAx-Dqqp8ai%%t)cS6A~h#_iwG#7$>W8Gp_{B68s+t0PRx)P2!c(J+p z%kOcUD;Ra&;>%f zNFXHjn|`XZx-f4v9RKP(F7>uGUVU~WH#Oa!>J{K=+fBPc9QLj5-_FT>?jJfgwQOm4 zI6DVvflE$vt{d5vehqsvs$|54VRm*OMK?>3k?Ox4CC2LIAXCiN^kPlyc0Tn_e-}>q z0+LIRme#_|F}s97OOcu{8hq9SK3Y;px`&=8<>Wc}X~wma!ET5f;K(!D=NiC|*e##? zw;JBWvlG`|`_-w8H;}y;|hX=qxvbmPv$Zp$M_y zvR^C)!~AI392gt< zA$HPO*C@ZYiKnec3H=Fee07^^E9FDMsOGh`gEV|Y9mtzw43UTtSrPVEJ-wvKM4?aV&%@!eJX)}3{2mi^X&V0^U@jgrc` zfYa4nRvnpiYpjJ2dE&X6N1t|}*Cl^QL_S|@G|1sGX-4VrqjY3T$IrFAVLr*0XCZJ| z_ADS?S;QlwRJmtzO~)EJd^d5|)(+m6MBh^XEo=6bH53xz%=AmMXN`aA8f>G6TQ4$~ z2HdWQ$1m#`=Gxbl+#6Hkpt3=zaDduqcGPBkybDmxJDS^`c0nr&QP=xA87H-+OZ{?A7f{mj&#=lAJ$sqD84(cEhyXP{f ze)p%BVh8)Y9?=RxzM8F_|(Wl-^sm{5EV z+2JE!hWcP|$MoBFQ!S6x_{v46;tl1~oSY=T*{t@1jT#GSb`4D@k&LhADODZ?m-m?= zmcg!H#v{V{s`z8WfL6>`e2^Ux0tKfeKdVG*ZRfJLn96xHx5fTON+GxH9(lFb^ua54 z)cyv&-RW_69U0jmVAz6tYHLZ0zDvE;7@EILq@xKtHE}VId(|_F7ch)CeERln2&n12 zW{>3(i&kePNtdcc6sMP1xjH2=c>KHC#C~qd0d9wEzf-Y z`p`hha?65WC-&&e$8t|lTf03~fqz;zS`HPTq(hdQW^^{pIMzSH>p&vBC5p<@4vKG- z@P!`Fyh&Y=*y}u6AO=hE#~t0)VpbZo_%patIQrQ4FspTz{7tPg!SDR zjq3n}#}=~H7Fvf1+*46WnH=XyLtTFe)7-*2sze;@1=}Us=-hc*Rt^KeqthVqvUrE* z{&m0#t-xJvRI0}?d@^z>F&7d(14^q_b~1bY;I7KU!9}gm9r~qS`lQEn$k}m{u!SrIqqk@^Q9Wa^o zodR`Mn!%1f#|AX}`{&N@_lH!)4)f}EjE?B8t!1n0D1{k{oeoNme$FX_f;0tg6CUGClQn7#gRu50Ie= zX}Lw*3g3OkzswdE)QTPKZ;VOi^=g}&WyKriVb3}6zB{25rIL53Iqom5Z5i-NxirW7 zsrwdE{e`K#54$Eqjaz@^WS8Oe)~Y+&T0{a}z`22>M5pApx(6Q~OE0c_8Sthxa^Biv zyNFH~76pYk^l!4mdPR_VMUPwQHZse|A@(P^w_fb@qJm*7nuqhd8dpVlevPehw1*(D z8Na%{4Gj}gML8AkE#sRx0&qD`GpMIthz|VT+p#{j%>(7L-=$SgwAHoRZ#Z0owRT|U)OGeq`ZH?^OFFbm?amL?e zXuPIdst)Dizu#q2i(i#g+;T>K6XDc#fI>?Xssg4)Dt0TBObOjsj^oe$^AyxuJucXPH-1hqOq#?eD`$(Yj50%K=GALzd?C;5)x} zMu+N*?MxT8mg|-YC_b$tA~O2^GXNXyn})$3DGZBKis%Dw?lcbZ_m82x3oaZ*S_rV6p{--GG!K0E(KxUDuVMOo+CYS8v(qI^VRTjBi=k z-M~G)%%Y*0Xe)e5PclRuS$)SG4=Hi1`_|A@=8P)HP*Z+IeLx>PANR49m+J_B`KG?5 zcc(baXJ&MqXPFBER`R*&f_@30N}IwyE|`JzFw9<>tnf6>exEJJvgAJWOFiz*?{Du> z)kT!dlT89`l{rVen1X{6cP{&0ReFk-7i##ebhdr!9`S`7NcGRUQ*l(I!|mhU=2vQQ zhj9d1%EYE>Aj2!ng!zG(ZMHA@VWwvb+-lEJL43tc-t+|ZK-7t7U9*ULHh}K zNxTfhGO0Qzn83R%1E^88=1C1v^Ww+;lUQDCKlPVS-BaLDg_3lkQW$zH!DWB42*C6;D_w1o<Y3O@#tjHFLa_2v#Gowk3sio&^9R{z{G-Z{|NKW2w{YWTj^_7%jcCGK~u>}IR)<0 z&vS=$OZWr>+uVCegH@Ud9mh<9uQ@BQTHxN%j%y;^9y*%r?gD>s;Vxi^6ULTmcsPhD z_`SJ6hg;q3FIK>bOG)Q=*8Rk}WqY{ra|XI*&FV>O_D=Pgl~|CG4*A}!>izJb?x`Pd zvE6gUf=j>MmZ3G(sDVwsmHrPEznA;Nczp`&+c`ZFmqX62KfplSKmS>Se>iCjk@%a4 zAa23muJ;C*DoapcU~)i9TDwhvj90JLaq^b%ae(M>uz9Oei^1>3^|{5-iriIs9p5NBK-ZfQGJR+j4+k?a#x_ohKBP0s*RWy`^#+j~+a3`MNA{&Ife?JKv` zJs_8`jU4^$L8mpAd)W10Ma&HB@nhMC&{B$nAq~M;R1{E|Z=`Q9> z5|@{;vAcQ59M`~=Owx^pk@bZYBzmqZItD^Ldrat%VokI>eYFQI;Q?N@5#)~*ZghlQ zh07oU+kKAtrMdW$6no@layQ2>Ma5L34)^AFqmSdT8XG^%micdGI9fZrKx;NcI~%aq zm+%Zuj+(Geq_TDVc0ppQWw^OjTSkp}wTy}}{ZRe@mo9#^f&>Y{!w?ra;W>~%kFWvK<1%I{qV zLmk>c%2$(nCdpJUiQyUu6pethdf^X^4Yep|J>2YO^}7%(jOH?2-fJ}*IC0xzdUo0; zM^-KDnRm~4XAjC!V#jH0Y%DsNRJ?16ab|sk4)e}W`$mW0Un1uB*nLcIYl#`QoZrVh zY=Q>_M$1c8@8K=R?qSfz2js2>3KHX2Ohkq;KJv>EiwzhkM=f^&)^0hVoFsB~wOAue z`SGO$L~QIe3PWt|1M&_1COD8AUC*VDGBBjTT&Ks=1j`huBdyd&Vj35KWU9{bNp%BALev|$*U*{KH^zqiJ&Gbr>jZ_fe~BP5 zjZ)RW)`8@yQWH8nZu>?umvV;LoPHnO6NS$o2GZA}uRoD?W2-~Epsw98=wZ#t*&(eJ zz2aNnh-te5FHAQpRO{WnVKyU_iGveaak-)=UO>zzSugA_#k{v0(yGR*WMA*MX-+$1 zwp3i;Vn}yL4#^D}8dQcwgKI;dm9K{i$67^P%-AVPBPY@IY|gGS0$E`q{K@L!ye5Ld zlYtcF5fxKxqZIOWe8$Dj*dtFFWaL8#OpmTP{Qbyo@d0V`0Qh7SN|Woh66Sx8mOL}8 z1%I@-+4F5({{krF@cY^fNAAf%bKOa2hUqJJuL1#=rPk=g6gqLwV#W)zx(O>wm>#q2 z91Xy&ZqISkyOf+e>KPZYcrZ;tI=Ve%ttj%Hk)QQ2vpOD{lo0Egk0Izga~@*{1Z=Vr zw%P)~E{2f5lodimr_%%O>2%cLCuWdt*@+|9CuVlQW%p{#{Ol7h}RL2YoRGoFU}{8&ImwGNxEvMtBmxNp5|wdM7U9!4fgB0Y3DhB4=b5Fvf_@At3Ipj z85_hc+O#`&FWL<0Iq^*ej+n27v zHHIzAQPf=0c>1Kg2>4v26hNk-m1uDeyg3{VS2Jzi?hkmuW;PRkHh5qv<#~dH|8&K< zI~vLo>^9qe-b14RqLQ(Sl@c4TkZF*qzn@m6P!p!qC$(baYpKQJWJ45w?)$<9ypRPm zm^tS!1`lCsSMI&JFcX$L^Ej*%_Y}Z!I;_{$Dx6H&vuH?fY=VpIJ1Ts^S{GnyfLH4e zusjy06mzmjW^dB(fHMLzi~50gExl!pzr{PoUODT*?=#^GOHHVOS|ryT`?wo&Du5?$SQ*e!1|!ODxRb zQ^ZOcO@rF2luX?Eo#%a4@n6HDw{m^kUf)2mSMBdsbM8o;Y~L)cDW7o_@7P%1vNb5X z=Rrb#R@FK>Tco>PkDFq08L+VoBc~M(nP90wUSI4lPTW3nP~(N&d{ARs{HU0w9_r9b zqZ({+f#XpCgF8pv(oKNExnE#Ryo0AjZ=9rm5Je;<6Shbg%9-=$hGc#FrnjAiSqA*+m0eD-C zUul%YH{3!(3PYq{VWu7(`0UOCm^1hM)$jgAdDbGK8)qY}v_@jG>fZTJ%vv0LYms{* znIo`3SM$yYqRt--(lJ-On;$h1pC>0y|L2 z<^y>mIo@wdwY2rZ+4}1kr)6m_OxDyyO+^O38^V$x#l06uxi{!+Q?+=WQpTh8kGS+yS??@5{uv%gXvn38Di(N)amm8C%`XX{eEa}=p) zgH^AKI%M{D(1=r(2w6Ajd*EWX- zP($@FFn1*~Mpk?UpO~kI2ZDPk#mxipSmQSG6g z0C8{j+Z{L4F}||sk~CGDEbHoQ36l9}la+H~U3T%LEV5&?R)$vWf~P(J^M)STugYm& z2%)9JeEIHa8bkiFcW)i_5!f{DiHXF(bM@awGX)G!$r@I6!EyyH&|VQ<|fY0R;`wPYFP+i4uwkoW9M-`|`U8y25*}-R$f&2uZnIbxPAAtw> z6nmXbE3gDsTMOuN_s8YXQXZSb#dG<8kWgw4D2AtumRZ=-`Awzt`^>&+nPjnVwTNg) zJ&{0*-j-G<;;NrMx4;(X+Cu(D33X3ccU8~RhV!MnQ>JyGv+Jt|KdYj9Mga;YWtUNa z!23Pf&xv7I19Zb#J;A4ve<7rmD9EMzBt)w)^})^Vrv_Pll|(o9*}K8{L+Ln>g;c|m zg%sIKpWVZ~>`%fG7#m=pPOL{5iN(XtbF1J|F1J5mXaMjxFJ#e}J+Z~Zne7Jk`6Klm^=5_X+kYt@O^6Q>X&tQ)7d6uI04^DLMAJOO}S z-M_z_677#0l>>SyYQg8jFAc{ZJTfx1U@!3Y8};Ew^Ms|Ta1Y?W#AEl#0NKOyPxl9l z-oL17fb>oK4b9}w>HWiHXY!LTVvK5s9%A&nE4Az;Q21Dmp>LcJ{Sjn-M#t2o1wmVWWNafk1d~^CX*`z`-T_*- z@fhwhngRy+XxBvtHr3OwL=4x8aISZk*e@$e{UVW&I7nx@$5;Pj+q?=4&A zBqDjRokij0m~^UM*!b%ZAz21Bvb>9Ng3y~H1Zds%?@0D@xobnt29}DM8J^D#C{aS} zyVqpT?NJx;-5o+D6eEH-djsm+3>FhjUP`t9#uO(n}`#qJ4sNx7#KYT~Z9 zRc`fsL{y|NQefnX*Vw}~S-5h&f}M=W6}!3 zC}t~#04_&{aNf%1W;_Yr=&WW#3$;>jpY;hI{|{9Ida!#;nGD~{yiR0T^UpODM3RF`lm9iPNX z%-GTyJzNq<`3~I3&^yN@tHUp4PMWk{CY=RxV=L)KfehF8p7W$+7#O66)3}qLlMq5Q z1f2XF$NFax@>Ra$gYx6%Fd(lT$kg1CZA=|~O&3(Jt zQPg~r2>$)(_!WHIg_`q_a4ZR+2Sr;S7Hf>NK~{yOYY*o-tUtGwD66apuuM+1Q~?wo zO%WND{->HF$R*nh&smhEW=JIjGI zxQ7c~g>$I1_2x-`12t|<=JIl7hP2MuzGzyp$pVm2YFie^%yZ#uLoUun!WjET1H~|j z4-^y_Q+8AXibxgoY?UJ>`MitdU`@a5(yi( z_sAoe)U~1t@L!?HzBO5)TP9yxT5$fHVV;HtTeHa-Zq0sI>c9HNZ_YT&+~>4I<}DLI z&xL@grt_6+ER8JZ5jh@8s=Q44wyzOr>Q;(V$Py8J7P1*r5?5Q4*;aWDZY%up>Onz= z_UYbZgDPR3^XvVY0(N4C7(*Ta<)Y*uEXlo1il-J4`8fGh(zT9~%||RG7&YS0^Pl8y~X9)u@_9*}ohooN_Yy zF z8JNtMN(BuKGx`Q&Gim`jkaCF|uj^W-N^@#Wkp@(D;Ui=yk8Rw)fzbCpcvQeXA11Sy!F4RT2dNyd#;| zmI&X{-@IB*C5rTeO)U};N8+S_2q$~rLY`wFt4jSKhktm!bj$l9==KZgiOiWw1dx?o zpW6CiNzC<2A!xTM@DMlSuV=RLK{)k=o3n=H`p;KH{}C826%g>3VJAy#PU<&%Ed#u2 zn=FxGMl84O4q&s4+{&A9h7>q(Rz-fg6=r%>Lz51G38PX&{C6^*$A=EzS&-K~(xmUG z?$Ehl1h&oGA-x=+0VpWmdK&;%0whl1^soB0G#BHLd=kiX-wOK}`@&SOi7en;lH|JU z>q$l1C3U=)t$~ZU-HdJ~fCV%g8}55rg;p5874OeB<2$e3d4hO7(s#T z6wTNpb?|1yaecV*s4bi_LY**92Y|Nq=N??Ie}ReSps<4h#Sdg7qwC0d^Can_Q**Hw`YJ9E4_3q zie_qKc;U@5dV~SA4z87$$kFr7?GR5LaSA|rT-%g4@j@7T*}LSKsCZ+?#~s?DtY{!Y zW+&MDN3?0s-!@u+=Lt@ppEF%rIkn4?xecP-MO4uEOR<89cC$h6pMyQzr7#B#?fH|^ zwi-QafOMp4EWiV!x$M8m$j?R(m>=s{VMi9C#f$x9a z*xzm(V5qq2u!jX{g&sRagjb0@51dmYOJA$g8G9UsK1ME!M6k7xwu`buuGPt5t=e>X z@C?}44^2w=D)>{g`kLhLH8;?{bJ7Z3wtTWLZ+Q8Lf|+^sQLu9e(!V&x2rK*+X16$! zE3FF)jftlANF$M6mlU`Fgnd;YCYsAWf zcXKj@wdnRH0Di$SKGim>H1{2`IL}7x*uBMuz-g{=zCfs-Xb(CYEPaS|1Uq=^ByN=~6PATmP^GRg3Uc+ZWi z!SQoYxqHh5!(2VLpxkBmMxUp1Q+YYsuCO9lqM_H10pqD`YFugS+r-b^mXL@r!EOTt zXq)}V52JnLU|{Lj>rXQODK7Jezn{}oho4B)3ydMrEF^Ma^KxrX6-~eUb`r^1-QENDMSV<>(Yy7~NLUDVH`Dm21R}&4jqs zw57CIKPFA1Uxfz@qWbx2fB^uI;JDM?QeAyj2Y(xg_8!1F8W=9|KV4DX_o7|OkXy~_ z)5fvuu5ZZW+5BK*<0RdDgSh@Q-*I4T37)=lR=Svg;I`EPC^1V*2B`mX0ZJIW80tD> zOSDjFahzeRPfhrHZiNMf7$_)ItXkp5joR;<%3YF#;EwXF14sa~mc?nR_kb3(tT{s6 z)&r0-ol2~+?KdaFULH11hbt@37{LO*jT@r)>)uy%L=x+Z&8?3cSxhiEFuonS!|sfP z>jX)sdI~qSwESELtVXn=Opa8Rb~1q#kL)%7A5@d zmA5pty&;mxE2piZ%8ymtsKc%(m5+6A3CYkq)VVJr_}fhrZU<*<-a)Gosm4Bgwz|rD$g?9r_070q70>-r zS-E`PqBHt^%GDg+h8lXEb@kn4^n<^_E0szcMubTHd%J(KQm?)nxY{~AwRgrv|D`F^ zs%LT^0%CP(Q=^*iVUeuc{G`s2wUL#?F`^TECaviFGuFxWd}q8&UD*s$fABK>LGKtH zle)s}24=?5)L+xc*C(<4VqoG(VDg!~i7_uz-@Jkz<<>09rTRS%gb&M&$Or-x z$s}iun`gMH?=DrpL7iwNLkv8J@o%HxD*JtwE}-cg%N58|RxLj+{5`)&?Cq;=n~nGr zB~c~g#gX{ANXI2=v*c@aB&XvDiJvK1FnaK2J>fY@pR5!^(Hd2`4&JOKY}y1AwWwz$ zEl&NIi+pSP@rc2_Bhs(5xA+(=O(cG*@PABdQ+XwmhU<^74{V>461Z2|A0H_=_TtI$ zHIn1kGi4pK#Te1ny#Q9kN#%`uAEe8KMe@fc@^wvL_Uq9Kb~C+Q%Sd~?Hci)}j4IfC zqE37ngNeOV&oJ#*hclA75KgtIX{>9+c<*evHbc3j$c>Udk9%RZ>h(6#;Efs=uhxVu z2H7WNo9_f|PlMB$O$2pP`@jnWnG0Rjdb)7Z%*2G-_=2r^Y>0=w^zFp+>L%enM$0bu(~8ffrd&5k z=MPd-m_K{J%uU;My%GOBQQu!lT54~)TPzOr`0{;@$5z@d$agi2>irKd3Uo6i5Aewm zZ_ZqDk$wD~;~n*%Uam%W?z%78=Bhq+;_=#Avjt0n{swXVA(qYtdiF+>YU_D zZe+xqjRF3sLt|u1*k7wiFHWmCKjY^->d0EV)aO9g=aQjTV85yreB7%R*KkJN<0Z9> z$J2A1M{IeSS4_%`L{H6iC!;=3fl)S- zWK*A6^_p3=8jcva!}FWx)p`T^56_N80{=a1go1eQ!abyvBr}0cD6&i78Cc&s@jF9flwKE z?uN6n*o3LynbhyH63sBho%EMT2CE&0OioTnuVpvRBR>}`TwS}wL*#*U7_R2ElavUs zBMP|+x@BaeK7P^f-z7y|2jAE{7Dq}@&5D)p^pnd4b^VU{QSm-nucMbs#4ZUvODRlU zx{dW)>|OfZgqUOcC$B}8`?Ip9mbR6=B|oI396!(Dv*gPpbip^7tqn?)gYbf;_BFL* z{-67|0fO1zXWQVM$KsEtDK}>c%pxD`z4>1kv5oWH5s{i9$twTnI*8YtK%4if%O$^f zJ1_^nuy{*aw6uO-a*m7p-#BmFnv<6wDlC4F>%J}U5o^fWZep5zi#t2($1>}u)Imqn zC*cjcadfsvVs_Hm`YH#9In|#3u3i#;Fd{v4a2$0N96O5FP|gh%{i(6E{H(mLNtL(z z(Cd|J_xWHS*$uC<3Y9rd#O1$|y#c$3>B-!Ki>9Srf6p~FIm#66c}0krlN6?S92MCT z0u$M!{{73B`!v$PPEuv^-yKe>Kb~vO%GQSMN4@SLzJAWBSpsgobriITwd;jTYy5Cr z)cSjqRpddB*Mr3$zHTzE&eLwL@x!ZA<8HQa6F}Nj_4M-3Kh2YxdUI_#qCNjg4fL7; z5Zl8*!@QHwE%oA_x#Rubi6I1HameeG6d2sz@rhuEt`b<(HcSuSkQZX!7dlc@Xk^?~J82)!uPyOUmL9}8p*l>Pdm$i%WF z$it)0<|3f`@Zr1hg?C?{KyF-l2Tc6PCkR$4Y<&~|D8#Apuc~l{#)c|KRN~HAe7}3i zp}0iw|6%VvqoT;7u3=^j7)XjJ85I!}2}+WzA|P3E&XS>#)MQXmk^}_-$&z!$L^Q`r)_5S~Uy|acNGu2gf@2z{!*=O&4t2p>%s`xdfW#l5q=RS?E zhPAGSjn9R3%&Bl*3BzFBXWd`8OGb?eRu2yLr!#it6?t(XkI^pRiw*4qBC+%5*9x(I zeszrW@+M|!Ik}aO-r=k6{^(JAtXE!K^5E0QgzTo%3Qb#Q#cnt`I$|H$`0T6|46S*V zjj22Q_}<+bc{)_vx9eQa@cP9c*e%WC{6WJCtl_dT zS%8Lzo+cX?qg;4)hl-+FZea0Eir*%ze1gg(en)TT=_qOYzg0Jml{+Nrc{%w}Q^&F` zQ$h#*ZCk|Er^y1H$P3lHQ01tT4LL*1$i3^{+E@^*Vh~3UOpCmqW3seEb(F^1CXUYPX_T z598(fK14+4@8)TxU+m`BkjAJDr<6C6Nc?hJBC@rBP+kwF=Fj#Vb<+18h7EW zD-i>d$-o+!V%_m;P)e3O)~bq;@b<-+xn_h1ta7)n+YrLHUGL~`_d>w0;~ zo?2=Q-Y6Sz02*W^WNE*xEnt6S=$ch?vGVr7_(}49qmU93Z9ad?OYs+kNWCt&;CQrh zps!+QsFyqbIL^LCcYll+vuLcYPrId?cwn_`TrF~(SCz&#%=Rn{BD~{xg-8M9onR+c zxX#zlPkMbTRX-%AFnDaab$u4NF`Re3`xZ0vvOAw{2HqjPxtc;M5PMNfB9@UYWr6p3 z#dsPPc_xYVoWpr=0RrQ*k7;JKjFKh!ynkuQ#j8+Z)ySB2*fUV|8(I*Jn&5n;>trgc zNi7-`uQA*_p&@iO1zbd8iHAQ9oR;5=7NL;*L`i;bjBGbf-mf0r$Ri{XcxfXmR3|+E zHo>80iT$W!9_GBfVu7+yX5p@8Kg9=U<45N1-f0j0uM?S)y=R|EOUw3N%Rk`Yr`^%0 zcw@Kn3C~rwT^fEbmV@$w#Y=Myy#j@A=NhAr2>BCjxHtAamKT=;oM_g6ZdBq%tqLfM zwCx~LzA6gTmb`C?Kl%seZcavpexqK2he$)MNaEq~D;;@19rmaPT>YP-6YgegHHk)a zNMG3gCZo309c*+B>=g)@tK=c=u^7P@b6B*qUnhp+94-4Rt9p@w&px43sJ- zUqATz`OT4@rZ{){_sfwvdw~cDKNBmms;ZyNms6$F(r!yms5_ZtsofJ4R}iWZnL%*F ztBsH^#P=atrN)e%rL%mP+`=g7l$xfRXA{4?yf*Z+_oarz2$5K`xND4tYWf+646B`> zwoB`>g5GmVkcGr~80d5tZW*o!diDv;&A*7DuP`~#LvrC*wZpXg@cyZPoE*_PDJ9xY z#B#Ryn%quD1ixLJm&bHkkWZh>Fm{5sd+0YLcp4h3U|ihE_|<4FEC#mk3~k~M$4VO1 zYIf)c>tn>SvuvI#*m^f@jS-2Jn8^tCmc8&Q z5vXy)Ww_G^wT-1r%Ft9;Y?V)r)p{2AvJqYMN&3KRGnpp`!3yBp{-7iWS6w5UAggXh zypUv1f%i~x{og0>mTQc2&CwB!?XIEkRd3k32tyW2?>+XNzrC&9|B0EuI)u>d{CmVT zQ`oJg8qvc%lN;mX#6%=Z0cIF%$Mi8iQ_zK>e}2_{yPtKOjd*kl1z~!BhR+LPL05V! zyEZq+1v(_h&z^cr(~<`;Xn)z+I|hSQ0 zq_E^e7N@r^${!NR(KfoC;b+hKCXW#RQA0qKubiN4aP)(so6?hTdjjO_neWpKZW5lJ zr_x(G6Yk%Up1eMldYk#3?)Y#YRkQr7*_wl6Nx30~%)9TEnBkPKBj5n2K$I1?=M^Z>; zkvGK}a8jae)Fia72>vrQxlgR!m@g;$hlP=iDe%9RkweQQV8+o|SX`_Tfv0`vHa-5- zR99~y-^$o#|4or~GIIA_Omucnr)=o|v<$gRvHSXCWt{k#Ukpa1wXq@H`Gr=i=vY9% z9B|=Q_307oY!P7|e(CtX{l5lxX`ebZkGB3jXDSZu3U6V|OJ6RibV(~N8DV?-aR_E@ zQqr$NY&bl#5d^q#@?I*vk6REn2Tvz?PSm3 z3jFULNKXPs;>)f0Vub}e=+K8)= z0UJl|vAu)qz~bKN_9Sf=e*aUb-V)N+S zf2Kmz+x!I~k{Mzymwvl@;<87jd}AGpRB_OwwY{Y-0q5q+|MERmWw{dQbP>7J=N1PB zf5FK*PeXls2++wB#53X@edx*E0%oV7gPve>4+*Wn{HoM2Q$aA5rPsnh>Hp4=Rm#vbUO;!lJALYPp;bzu>*?q4NIZ`kyeT3k&F0eH z?eF=q_pN*5Z9KQzFGj?MTi~hv^WSZmE~|?kX6M%*3OzxJ4TB&o9kCYeyI3c0iw>b;-rZsP?TQ6Ca^{Q24&NwdAFLAD@U$J`?y=1Jen~KCUtQuU0 z;Hf|GeMYy)&Mk9zyK8XN70aDC;bA1I+BbP1@WG8Of7M32Id!lfElm+RRW4=DVShH= zVrE*N=g`XuPz7j#Adj!-fA%R7_!k}V;PzYC8v1sa^xF`+XI*y*3TC%Hz&-g^sAV>u*#uthzhfn1w>88G4g^Z}ZUe zXLsk*J2~!TdcS-QP)8&Y>i8Qqllc$>&Y!0TfWXSkDt5+o6i`!C$6V>pJS1lTt$BTZ z1x;@(l#r4~w?9xvx|DywFl52pGu+OlFp#=z-!ZQsyS<3z)5}>u**>{c-uy@p6`5aY zZqhUhFa?<_TDzN9hlcptY-c3q_)4gJ+dBdgnn$;A(~;@6+s(D}a36nXAX@KTI~P+k z8ZpUz5)F-xaVoIvs#aIk)5>({)=Gse{G#okYtDXICh@4S{xB~w2X7vGX7Z*^lz!#S zHaF20&O^l}ii zf|Q;-*tVyvKAkGKR;$2paOmu~dlZ^gld=AGK~`RR5SMuPh3I{cPh(9-w=`x(S^j}A z>d2REzf&DGw0wvAzNN`+T}I_|)Gcq!xVNChY^zc^gR()1pYiliw_{1HC-RdAvr zX|{X5i!ZBM2Qpa$u`h8KX>j4whvJaQ6qga;{x#sH`6+{{Z%KyAII5*A z$x>?$Uh)AWIIwS)^L1O zcOlw^0hxo8uE@9o2eM|@vXZ;a;&fRQpz1OHM@jXXOojQXOe|vzBb31~LV=Zj2GtUf7g96O83Usj55MUV&{Yu(~OLTaUypuc>}*T1(#y z`_6(UPfXCRQA8M}bP*Y4Sl7jgWT_zJ0!aX#bon9c@! zuBN_{MWOrQ)UPXSvE^&S00+hfKi5v&W0G{?7eD!GFj5w9o_-+epP*|2=jWfa_@+m) zI3X?gYPo^eCV7= zrz&;xH7ej7g6py{aLGncpDW|u%O{Yh$rmE&*DbVlA|wX`v_?#J0SjxOIZ$fAT4jr{ z{com6I{Ye=lcp5VwdH*2dBx@1^<~bEvDwZKzc*ak>e3qTJYxfV=+n|}4ZepDUu27L zaTU|~BKMR)e2OaMnI-_I9@^~D^-ujEx6|H2p zJ+dDzg~b3MNIp;6;Y@LUjil=2%&T9nza0@S9Qui2J#)3@H{y~JvYiWB`7l7RPMg&^u!qbh87`~ zBsRNYv6hQb&ng$GUUCAqR$wVQc57yc7cnBOSG!?;ij1eskGiZOeQNOYcIlPL!*^Ev z1XDLhHJ1cj_4aC70C#GINYIzAj(C1m@ifu=sK%y$Wy8&QC`5ODNnGmc(U=e+WOXTFiaC2_vO2db*K{S3Uo92 zX8^_`L-_Rq^30dtUE|AX`yH*)U!?ua7C*nRofWE=UK`iR;>c?+L|-8vBdi*wTlu5` z{|mF-xIXb^OPyWSRAL(yevjkMU}(LA4-m$(!Q-V)nDcq#7||~_f;-XFvoA-S27(y| znit~l)Cg}f$Usl4SH4qJ&oc92k-D5K>Yl$#zPUSoXcZz6C(ms@X5|X6Ew^~@9VO*o z2z+_o!lm7CM>`sy~FdzXz0?n#a{kUtULr0{qHvdiq1zc6;qwm<4dZO zpAJzl?f)TU??rg8Ql|=D+v$|*{oC(k*Uq|^K=(GtEub^Y|t5L_Z zeqJ^0!PGXdLbL|e#yFXcm-i!u0$0sz2{oOAm2fYHs!h-8y+bbCpaX~H?0kGWLys4q zui+2F&<1S-B#yJfTa5jyqx448k+LnnO$@JZ#ziETsFb&)oXsSa^!%CbWE~KS1BIBJ zN7q@R25w{wAT(st=}@IGa>*{aVDh`6C+BhvDS@t6Qf5|N&hF@rz$^^>N>34(7|Gq~ zMmag*vU4)j8yofThsS*1#iKgz>{{8Hq1AjLt*dH%D%kA*PVN?~4uEkjq29l>VJ%I) zJS(k?F*)A9ia)w~W+oym_0jdr`~*GRE@`H>!E;~3@Q$VDPu@sIFJ%F_b7GetmMp}? zbQ_LwCRZ?y9dG>M(yF&kf(0fUDkmd1oObOV2L9B6_Fi75ajMJ`m+Q(~US}8t!qi8s z@xr?&#iK-{Ht137mZBcI3T^rdnScQLv|G$~SQ+K;RhoC%JHuONL%wSx>8gno;vwS< zrlCQ-p%T|2EhR7TtBR=cxrAHxgMMYU#e4hTg;_i29J7mapGBC6E3PfZpY`)~f+VZ; z0C?I#Pg0?z9=(ItoEmjed{^QeY3(j!;%rw_cAq=T33jb=OGE}; zQnyxBR$#tc?-SW|E$a?BtI_0l@9jM<>~{M+L|r6Rz7mHZ5%k$ca2Jbds9AX1eS^jd zsGMZCrPmaH$MB%vRAzzb-IM*f^|ijQKR={x#qf;z@Jj9DPbSjF#Df3lGKf$dl)0ck zk(xNUp^o=B)~I-JQ{n(sPDrnr2TSdl$~=mHEPvcCWP>G*5<>1xH>u)za zcO@H`tp5X#$he{)LF2l#ZPnc+)pNB2s$ce)(O3X@YdD+~-rt(04_p=)cV5MWdLJ

    SrJo!}4BL)e{trvW5x_O?7wtZZ7ug*e--cDtTpf{_ zeU~G|>Ee1Jz*JrD0aDz=STJMp6qMZCI5;~dv^@BSn=K$0q1)IP9w?yUW@bm*I}MpR zHGIRXFmMF^1Qj9wez^6HdvhV3n1mP`BDg+4-jk1+yB41Z3}LVfX)F1;(?h)@xpjog zrSAH9K#b6B=!hQU63fhg(XwehlvKX0+HOjD6>ZraGD+xo;-g?O-hISazw=Ejc>fUN zmD<6sl?0&wX4C-H5bjCR2aqN*&4z2O@py;6@}0DJfwmSyqP&iH)jn8kc)fPGam4X;#dx0H5+U5;8q z;bXtp5DCw^lO`Z*3U-B){pj^m9Mtdi6*q6O9X%xUdAvHRpAn@$nvbI?&#WsMFRqdt zgChCF19Y9eJqImL=jzA=UInfU`46qL^nD^omeU$XsPACOknE%)abmeHOL!GlZ|@)f z9R!dBo%zewi(*dxv75K`-b;!z^tIU){*$_P)H9DJEA0$l-#Wz=Bn1EOLCC@Eq2mE@k6_R; zUzCh~ii*WWif*|~Y`RQD=GnojJ#n)xGucAG1p(Q5CDA{W?=EZ>1ILuY>kZkj!25&` zGDPOzTASceEudbBBtFpx)WqI2I0&f6x7&Lo>;>nO&aiqVyP$px=+do0#CA zCf07`v>BEa^DV-EtG5bB;q|1*0Wv0N7K@6C!D>i3F#EWzlPVctm?FCo3XOo^80qM{ zT!EB4$eal2CcLw)b>`p4GV=(2B_L=8(In^reW>=4kB_wM_EYYubyD+#wIig$&hvJC zfB5=UGu_{b^lJ7#d-cBW^W0c4BFr(pi{VbvQKewId-sQ;yjnV_dmu?LNde;ko(>QS zm8{$|fJ<_O=YlZ&y}d7kY6y`#UOz5Ofw5nvj#0t%Zik3gj9Mcq*%jp2tG<@2@Yp|# z{VhcazApav=?ggW{~TAy_z?U*$JO6q`2Wdq^|Gn@9|C_f(3ug@pRHTn!tV9)@y`M9 z7ZsuYt}imgMM!zW6#z3Uy9=WVEBpwOC@uPch6kbo℘iAVnw>$;7$R<$H&s5;MZS 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 Qf6kYrsN9v*%hx>q7ipY?KL7v# diff --git a/fastlane/screenshots/en-US/iphone55-02.png b/fastlane/screenshots/en-US/iphone55-02.png deleted file mode 100644 index b6608a4296ec925ca0507cd78084625df299a132..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191843 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�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℞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