diff --git a/ubuntu-bionic-18.04-cloudimg-console.log b/ubuntu-bionic-18.04-cloudimg-console.log new file mode 100644 index 0000000000000000000000000000000000000000..185d9d43fa0e47d31b632f4999e099663a882cb2 --- /dev/null +++ b/ubuntu-bionic-18.04-cloudimg-console.log @@ -0,0 +1,611 @@ +[ 0.000000] Linux version 4.15.0-161-generic (buildd@lcy01-amd64-012) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #169-Ubuntu SMP Fri Oct 15 13:41:54 UTC 2021 (Ubuntu 4.15.0-161.169-generic 4.15.18) +[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-161-generic root=UUID=b4821a18-e421-4128-97a6-636c3c3a9a1c ro console=tty1 console=ttyS0 +[ 0.000000] KERNEL supported cpus: +[ 0.000000] Intel GenuineIntel +[ 0.000000] AMD AuthenticAMD +[ 0.000000] Centaur CentaurHauls +[ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' +[ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' +[ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' +[ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 +[ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format. +[ 0.000000] e820: BIOS-provided physical RAM map: +[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable +[ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved +[ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved +[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007ffeffff] usable +[ 0.000000] BIOS-e820: [mem 0x000000007fff0000-0x000000007fffffff] ACPI data +[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved +[ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved +[ 0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved +[ 0.000000] NX (Execute Disable) protection: active +[ 0.000000] SMBIOS 2.5 present. +[ 0.000000] DMI: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006 +[ 0.000000] Hypervisor detected: KVM +[ 0.000000] e820: last_pfn = 0x7fff0 max_arch_pfn = 0x400000000 +[ 0.000000] MTRR: Disabled +[ 0.000000] x86/PAT: MTRRs disabled, skipping PAT initialization too. +[ 0.000000] CPU MTRRs all blank - virtualized system. +[ 0.000000] x86/PAT: Configuration [0-7]: WB WT UC- UC WB WT UC- UC +[ 0.000000] found SMP MP-table at [mem 0x0009fff0-0x0009ffff] +[ 0.000000] Scanning 1 areas for low memory corruption +[ 0.000000] RAMDISK: [mem 0x3581f000-0x36c06fff] +[ 0.000000] ACPI: Early table checksum verification disabled +[ 0.000000] ACPI: RSDP 0x00000000000E0000 000024 (v02 VBOX ) +[ 0.000000] ACPI: XSDT 0x000000007FFF0030 00003C (v01 VBOX VBOXXSDT 00000001 ASL 00000061) +[ 0.000000] ACPI: FACP 0x000000007FFF00F0 0000F4 (v04 VBOX VBOXFACP 00000001 ASL 00000061) +[ 0.000000] ACPI: DSDT 0x000000007FFF0470 002325 (v02 VBOX VBOXBIOS 00000002 INTL 20190509) +[ 0.000000] ACPI: FACS 0x000000007FFF0200 000040 +[ 0.000000] ACPI: FACS 0x000000007FFF0200 000040 +[ 0.000000] ACPI: APIC 0x000000007FFF0240 00005C (v02 VBOX VBOXAPIC 00000001 ASL 00000061) +[ 0.000000] ACPI: SSDT 0x000000007FFF02A0 0001CC (v01 VBOX VBOXCPUT 00000002 INTL 20190509) +[ 0.000000] ACPI: Reserving FACP table memory at [mem 0x7fff00f0-0x7fff01e3] +[ 0.000000] ACPI: Reserving DSDT table memory at [mem 0x7fff0470-0x7fff2794] +[ 0.000000] ACPI: Reserving FACS table memory at [mem 0x7fff0200-0x7fff023f] +[ 0.000000] ACPI: Reserving FACS table memory at [mem 0x7fff0200-0x7fff023f] +[ 0.000000] ACPI: Reserving APIC table memory at [mem 0x7fff0240-0x7fff029b] +[ 0.000000] ACPI: Reserving SSDT table memory at [mem 0x7fff02a0-0x7fff046b] +[ 0.000000] No NUMA configuration found +[ 0.000000] Faking a node at [mem 0x0000000000000000-0x000000007ffeffff] +[ 0.000000] NODE_DATA(0) allocated [mem 0x7ffc5000-0x7ffeffff] +[ 0.000000] kvm-clock: cpu 0, msr 0:7ff44001, primary cpu clock +[ 0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d00 +[ 0.000000] kvm-clock: using sched offset of 3630853417 cycles +[ 0.000000] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns +[ 0.000000] Zone ranges: +[ 0.000000] DMA [mem 0x0000000000001000-0x0000000000ffffff] +[ 0.000000] DMA32 [mem 0x0000000001000000-0x000000007ffeffff] +[ 0.000000] Normal empty +[ 0.000000] Device empty +[ 0.000000] Movable zone start for each node +[ 0.000000] Early memory node ranges +[ 0.000000] node 0: [mem 0x0000000000001000-0x000000000009efff] +[ 0.000000] node 0: [mem 0x0000000000100000-0x000000007ffeffff] +[ 0.000000] Reserved but unavailable: 104 pages +[ 0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000007ffeffff] +[ 0.000000] ACPI: PM-Timer IO Port: 0x4008 +[ 0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23 +[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) +[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level) +[ 0.000000] Using ACPI (MADT) for SMP configuration information +[ 0.000000] smpboot: Allowing 2 CPUs, 0 hotplug CPUs +[ 0.000000] PM: Registered nosave memory: [mem 0x00000000-0x00000fff] +[ 0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff] +[ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000effff] +[ 0.000000] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff] +[ 0.000000] e820: [mem 0x80000000-0xfebfffff] available for PCI devices +[ 0.000000] Booting paravirtualized kernel on KVM +[ 0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645519600211568 ns +[ 0.000000] random: get_random_bytes called from start_kernel+0x99/0x500 with crng_init=0 +[ 0.000000] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:2 nr_cpu_ids:2 nr_node_ids:1 +[ 0.000000] percpu: Embedded 45 pages/cpu s147456 r8192 d28672 u1048576 +[ 0.000000] PV qspinlock hash table entries: 256 (order: 0, 4096 bytes) +[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 515961 +[ 0.000000] Policy zone: DMA32 +[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-161-generic root=UUID=b4821a18-e421-4128-97a6-636c3c3a9a1c ro console=tty1 console=ttyS0 +[ 0.000000] Memory: 2014044K/2096696K available (12300K kernel code, 2483K rwdata, 4320K rodata, 2448K init, 2724K bss, 82652K reserved, 0K cma-reserved) +[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 +[ 0.000000] Kernel/User page tables isolation: enabled +[ 0.000000] ftrace: allocating 39475 entries in 155 pages +[ 0.004000] Hierarchical RCU implementation. +[ 0.004000] RCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=2. +[ 0.004000] Tasks RCU enabled. +[ 0.004000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2 +[ 0.004000] NR_IRQS: 524544, nr_irqs: 440, preallocated irqs: 16 +[ 0.004000] Console: colour VGA+ 80x25 +[ 0.004000] console [tty1] enabled +[ 0.004000] console [ttyS0] enabled +[ 0.004000] ACPI: Core revision 20170831 +[ 0.004000] ACPI: 2 ACPI AML tables successfully acquired and loaded +[ 0.004000] APIC: Switch to symmetric I/O mode setup +[ 0.004000] x2apic enabled +[ 0.004000] Switched APIC routing to physical x2apic. +[ 0.004000] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 +[ 0.004004] tsc: Detected 2596.188 MHz processor +[ 0.004783] Calibrating delay loop (skipped) preset value.. 5192.37 BogoMIPS (lpj=10384752) +[ 0.005383] pid_max: default: 32768 minimum: 301 +[ 0.006319] Security Framework initialized +[ 0.008006] Yama: becoming mindful. +[ 0.008697] AppArmor: AppArmor initialized +[ 0.010323] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes) +[ 0.012701] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes) +[ 0.014002] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes) +[ 0.015490] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes) +[ 0.016310] Last level iTLB entries: 4KB 1024, 2MB 1024, 4MB 1024 +[ 0.017299] Last level dTLB entries: 4KB 1024, 2MB 1024, 4MB 1024, 1GB 4 +[ 0.018393] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization +[ 0.020004] Spectre V2 : Mitigation: Full generic retpoline +[ 0.020967] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch +[ 0.022294] Speculative Store Bypass: Vulnerable +[ 0.023108] SRBDS: Unknown: Dependent on hypervisor status +[ 0.024003] MDS: Mitigation: Clear CPU buffers +[ 0.024930] Freeing SMP alternatives memory: 36K +[ 0.136755] smpboot: CPU0: Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz (family: 0x6, model: 0x45, stepping: 0x1) +[ 0.138642] Performance Events: unsupported p6 CPU model 69 no PMU driver, software events only. +[ 0.140000] Hierarchical SRCU implementation. +[ 0.140763] NMI watchdog: Perf event create on CPU 0 failed with -2 +[ 0.141831] NMI watchdog: Perf NMI watchdog permanently disabled +[ 0.142867] smp: Bringing up secondary CPUs ... +[ 0.143723] x86: Booting SMP configuration: +[ 0.144004] .... node #0, CPUs: #1 +[ 0.004000] kvm-clock: cpu 1, msr 0:7ff44041, secondary cpu clock +[ 0.148024] smp: Brought up 1 node, 2 CPUs +[ 0.148750] smpboot: Max logical packages: 1 +[ 0.149691] smpboot: Total of 2 processors activated (10384.75 BogoMIPS) +[ 0.152203] devtmpfs: initialized +[ 0.152819] x86/mm: Memory block size: 128MB +[ 0.153793] evm: security.selinux +[ 0.154431] evm: security.SMACK64 +[ 0.155022] evm: security.SMACK64EXEC +[ 0.156005] evm: security.SMACK64TRANSMUTE +[ 0.156696] evm: security.SMACK64MMAP +[ 0.157383] evm: security.apparmor +[ 0.157989] evm: security.ima +[ 0.158512] evm: security.capability +[ 0.159180] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns +[ 0.160024] futex hash table entries: 512 (order: 3, 32768 bytes) +[ 0.162001] pinctrl core: initialized pinctrl subsystem +[ 0.164127] RTC time: 19:16:48, date: 11/03/21 +[ 0.165080] NET: Registered protocol family 16 +[ 0.165920] audit: initializing netlink subsys (disabled) +[ 0.166841] audit: type=2000 audit(1635967014.381:1): state=initialized audit_enabled=0 res=1 +[ 0.168040] cpuidle: using governor ladder +[ 0.168730] cpuidle: using governor menu +[ 0.169464] ACPI: bus type PCI registered +[ 0.170165] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5 +[ 0.172101] PCI: Using configuration type 1 for base access +[ 0.173081] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages +[ 0.176085] ACPI: Added _OSI(Module Device) +[ 0.176868] ACPI: Added _OSI(Processor Device) +[ 0.177630] ACPI: Added _OSI(3.0 _SCP Extensions) +[ 0.178436] ACPI: Added _OSI(Processor Aggregator Device) +[ 0.180007] ACPI: Added _OSI(Linux-Dell-Video) +[ 0.180750] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio) +[ 0.181665] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics) +[ 0.182778] ACPI: Executed 1 blocks of module-level executable AML code +[ 0.187390] ACPI: Interpreter enabled +[ 0.188016] ACPI: (supports S0 S5) +[ 0.188711] ACPI: Using IOAPIC for interrupt routing +[ 0.189824] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug +[ 0.192226] ACPI: Enabled 2 GPEs in block 00 to 07 +[ 0.200150] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) +[ 0.201286] acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM Segments MSI] +[ 0.202916] acpi PNP0A03:00: _OSC: not requesting OS control; OS requires [ExtendedConfig ASPM ClockPM MSI] +[ 0.204016] acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. +[ 0.206270] PCI host bridge to bus 0000:00 +[ 0.207003] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window] +[ 0.208005] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window] +[ 0.209120] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window] +[ 0.211049] pci_bus 0000:00: root bus resource [mem 0x80000000-0xfdffffff window] +[ 0.212007] pci_bus 0000:00: root bus resource [bus 00-ff] +[ 0.216045] pci 0000:00:01.1: legacy IDE quirk: reg 0x10: [io 0x01f0-0x01f7] +[ 0.217279] pci 0000:00:01.1: legacy IDE quirk: reg 0x14: [io 0x03f6] +[ 0.218361] pci 0000:00:01.1: legacy IDE quirk: reg 0x18: [io 0x0170-0x0177] +[ 0.219510] pci 0000:00:01.1: legacy IDE quirk: reg 0x1c: [io 0x0376] +[ 0.250742] pci 0000:00:07.0: quirk: [io 0x4000-0x403f] claimed by PIIX4 ACPI +[ 0.252016] pci 0000:00:07.0: quirk: [io 0x4100-0x410f] claimed by PIIX4 SMB +[ 0.265697] ACPI: PCI Interrupt Link [LNKA] (IRQs 5 9 10 *11) +[ 0.267100] ACPI: PCI Interrupt Link [LNKB] (IRQs 5 9 *10 11) +[ 0.268121] ACPI: PCI Interrupt Link [LNKC] (IRQs 5 *9 10 11) +[ 0.269202] ACPI: PCI Interrupt Link [LNKD] (IRQs 5 9 10 *11) +[ 0.270560] SCSI subsystem initialized +[ 0.271283] pci 0000:00:02.0: vgaarb: setting as boot VGA device +[ 0.271283] pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none +[ 0.272016] pci 0000:00:02.0: vgaarb: bridge control possible +[ 0.273033] vgaarb: loaded +[ 0.273656] ACPI: bus type USB registered +[ 0.276039] usbcore: registered new interface driver usbfs +[ 0.277051] usbcore: registered new interface driver hub +[ 0.277967] usbcore: registered new device driver usb +[ 0.279068] EDAC MC: Ver: 3.0.0 +[ 0.280234] PCI: Using ACPI for IRQ routing +[ 0.281020] NetLabel: Initializing +[ 0.281728] NetLabel: domain hash size = 128 +[ 0.282488] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO +[ 0.284021] NetLabel: unlabeled traffic allowed by default +[ 0.284994] clocksource: Switched to clocksource kvm-clock +[ 0.296017] VFS: Disk quotas dquot_6.6.0 +[ 0.296856] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) +[ 0.298063] AppArmor: AppArmor Filesystem Enabled +[ 0.299017] pnp: PnP ACPI init +[ 0.300661] pnp: PnP ACPI: found 3 devices +[ 0.310893] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns +[ 0.313561] NET: Registered protocol family 2 +[ 0.314645] IP idents hash table entries: 32768 (order: 6, 262144 bytes) +[ 0.316750] TCP established hash table entries: 16384 (order: 5, 131072 bytes) +[ 0.318527] TCP bind hash table entries: 16384 (order: 6, 262144 bytes) +[ 0.320829] TCP: Hash tables configured (established 16384 bind 16384) +[ 0.322347] UDP hash table entries: 1024 (order: 3, 32768 bytes) +[ 0.323701] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes) +[ 0.325189] NET: Registered protocol family 1 +[ 0.326204] pci 0000:00:00.0: Limiting direct PCI/PCI transfers +[ 0.327496] pci 0000:00:01.0: Activating ISA DMA hang workarounds +[ 0.329185] pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff] +[ 0.331174] Unpacking initramfs... +[ 0.600761] Freeing initrd memory: 20384K +[ 0.601888] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x256c2b17ef9, max_idle_ns: 440795271172 ns +[ 0.604163] platform rtc_cmos: registered platform RTC device (no PNP device found) +[ 0.605913] Scanning for low memory corruption every 60 seconds +[ 0.608181] Initialise system trusted keyrings +[ 0.608975] Key type blacklist registered +[ 0.609756] workingset: timestamp_bits=36 max_order=19 bucket_order=0 +[ 0.612094] zbud: loaded +[ 0.613145] squashfs: version 4.0 (2009/01/31) Phillip Lougher +[ 0.614408] fuse init (API version 7.26) +[ 0.617719] Key type asymmetric registered +[ 0.618713] Asymmetric key parser 'x509' registered +[ 0.619866] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246) +[ 0.621647] io scheduler noop registered +[ 0.622579] io scheduler deadline registered +[ 0.623604] io scheduler cfq registered (default) +[ 0.625085] ACPI: AC Adapter [AC] (on-line) +[ 0.626137] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 +[ 0.628033] ACPI: Power Button [PWRF] +[ 0.628998] input: Sleep Button as /devices/LNXSYSTM:00/LNXSLPBN:00/input/input1 +[ 0.630662] ACPI: Sleep Button [SLPF] +[ 0.633892] ACPI: Battery Slot [BAT0] (battery present) +[ 0.635580] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled +[ 0.658226] 00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A +[ 0.667283] Linux agpgart interface v0.103 +[ 0.671226] loop: module loaded +[ 0.672614] scsi host0: ata_piix +[ 0.673635] scsi host1: ata_piix +[ 0.674426] ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0xd000 irq 14 +[ 0.675913] ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0xd008 irq 15 +[ 0.678120] libphy: Fixed MDIO Bus: probed +[ 0.679365] tun: Universal TUN/TAP device driver, 1.6 +[ 0.681012] PPP generic driver version 2.4.2 +[ 0.682193] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver +[ 0.684016] ehci-pci: EHCI PCI platform driver +[ 0.685307] ehci-platform: EHCI generic platform driver +[ 0.686808] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver +[ 0.688465] ohci-pci: OHCI PCI platform driver +[ 0.689814] ohci-platform: OHCI generic platform driver +[ 0.691735] uhci_hcd: USB Universal Host Controller Interface driver +[ 0.694058] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f03:PS2M] at 0x60,0x64 irq 1,12 +[ 0.696785] serio: i8042 KBD port at 0x60,0x64 irq 1 +[ 0.698156] serio: i8042 AUX port at 0x60,0x64 irq 12 +[ 0.699752] mousedev: PS/2 mouse device common for all mice +[ 0.701589] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2 +[ 0.704048] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0 +[ 0.705782] rtc_cmos rtc_cmos: alarms up to one day, 114 bytes nvram +[ 0.707503] i2c /dev entries driver +[ 0.708574] device-mapper: uevent: version 1.0.3 +[ 0.709874] device-mapper: ioctl: 4.37.0-ioctl (2017-09-20) initialised: dm-devel@redhat.com +[ 0.712549] ledtrig-cpu: registered to indicate activity on CPUs +[ 0.714406] NET: Registered protocol family 10 +[ 0.720693] Segment Routing with IPv6 +[ 0.721717] NET: Registered protocol family 17 +[ 0.722889] Key type dns_resolver registered +[ 0.724524] mce: Using 0 MCE banks +[ 0.725508] RAS: Correctable Errors collector initialized. +[ 0.726990] sched_clock: Marking stable (724476675, 0)->(894611429, -170134754) +[ 0.729649] registered taskstats version 1 +[ 0.730874] Loading compiled-in X.509 certificates +[ 0.736305] Loaded X.509 cert 'Build time autogenerated kernel key: 1542c441293f32312405dc023a70312e7f0d3f0a' +[ 0.739184] Loaded X.509 cert 'Canonical Ltd. Live Patch Signing: 14df34d1a87cf37625abec039ef2bf521249b969' +[ 0.742446] Loaded X.509 cert 'Canonical Ltd. Kernel Module Signing: 88f752e560a1e0737e31163a466ad7b70a850c19' +[ 0.745030] zswap: loaded using pool lzo/zbud +[ 0.752375] Key type big_key registered +[ 0.753148] Key type trusted registered +[ 0.756153] Key type encrypted registered +[ 0.757121] AppArmor: AppArmor sha1 policy hashing enabled +[ 0.758361] ima: No TPM chip found, activating TPM-bypass! (rc=-19) +[ 0.759770] ima: Allocated hash algorithm: sha1 +[ 0.761739] evm: HMAC attrs: 0x1 +[ 0.762921] Magic number: 13:989:292 +[ 0.764092] tty tty25: hash matches +[ 0.765179] rtc_cmos rtc_cmos: setting system clock to 2021-11-03 19:16:49 UTC (1635967009) +[ 0.767358] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found +[ 0.768735] EDD information not available. +[ 0.868669] Freeing unused kernel image memory: 2448K +[ 1.144954] Write protecting the kernel read-only data: 20480k +[ 1.151329] Freeing unused kernel image memory: 2008K +[ 1.154942] Freeing unused kernel image memory: 1824K +[ 1.165470] x86/mm: Checked W+X mappings: passed, no W+X pages found. +[ 1.166598] x86/mm: Checking user space page tables +[ 1.174652] x86/mm: Checked W+X mappings: passed, no W+X pages found. +Loading, please wait... +starting version 237 +[ 1.244278] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI +[ 1.246023] e1000: Copyright (c) 1999-2006 Intel Corporation. +[ 1.250501] Fusion MPT base driver 3.04.20 +[ 1.252906] Copyright (c) 1999-2008 LSI Corporation +[ 1.265972] Fusion MPT SPI Host driver 3.04.20 +[ 1.286949] AVX2 version of gcm_enc/dec engaged. +[ 1.288268] AES CTR mode by8 optimization enabled +[ 1.469408] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input4 +[ 1.652804] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 02:2f:77:f1:0c:e0 +[ 1.654908] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection +[ 1.657770] mptbase: ioc0: Initiating bringup +[ 1.658236] e1000 0000:00:03.0 enp0s3: renamed from eth0 +[ 2.328849] ioc0: LSI53C1030 A0: Capabilities={Initiator} +[ 4.625219] scsi host2: ioc0: LSI53C1030 A0, FwRev=00000000h, Ports=1, MaxQ=256, IRQ=20 +[ 7.077502] scsi 2:0:0:0: Direct-Access VBOX HARDDISK 1.0 PQ: 0 ANSI: 5 +[ 7.192234] scsi target2:0:0: Beginning Domain Validation +[ 7.198705] scsi target2:0:0: Domain Validation skipping write tests +[ 7.200274] scsi target2:0:0: Ending Domain Validation +[ 7.201391] scsi target2:0:0: asynchronous +[ 7.202833] scsi 2:0:1:0: Direct-Access VBOX HARDDISK 1.0 PQ: 0 ANSI: 5 +[ 8.147448] scsi target2:0:1: Beginning Domain Validation +[ 8.154133] random: fast init done +[ 8.157163] scsi target2:0:1: Domain Validation skipping write tests +[ 8.158958] scsi target2:0:1: Ending Domain Validation +[ 8.160131] scsi target2:0:1: asynchronous +[ 8.164298] random: systemd-udevd: uninitialized urandom read (16 bytes read) +[ 8.165818] random: systemd-udevd: uninitialized urandom read (16 bytes read) +[ 8.168254] random: systemd-udevd: uninitialized urandom read (16 bytes read) +[ 8.170293] sd 2:0:0:0: Attached scsi generic sg0 type 0 +[ 8.171572] sd 2:0:0:0: [sda] 83886080 512-byte logical blocks: (42.9 GB/40.0 GiB) +[ 8.173546] sd 2:0:0:0: [sda] Write Protect is off +[ 8.175532] sd 2:0:1:0: Attached scsi generic sg1 type 0 +[ 8.177049] sd 2:0:0:0: [sda] Incomplete mode parameter data +[ 8.177051] sd 2:0:0:0: [sda] Assuming drive cache: write through +[ 8.178247] sd 2:0:1:0: [sdb] 20480 512-byte logical blocks: (10.5 MB/10.0 MiB) +[ 8.183981] sd 2:0:1:0: [sdb] Write Protect is off +[ 8.186014] sd 2:0:1:0: [sdb] Incomplete mode parameter data +[ 8.187523] sd 2:0:1:0: [sdb] Assuming drive cache: write through +[ 8.189890] sda: sda1 +[ 8.191385] sd 2:0:0:0: [sda] Attached SCSI disk +[ 8.193881] sd 2:0:1:0: [sdb] Attached SCSI disk +Begin: Loading essential drivers ... [ 9.675988] raid6: sse2x1 gen() 12018 MB/s +[ 9.730388] raid6: sse2x1 xor() 8077 MB/s +[ 9.776855] raid6: sse2x2 gen() 12098 MB/s +[ 9.824013] raid6: sse2x2 xor() 7684 MB/s +[ 9.884066] raid6: sse2x4 gen() 17129 MB/s +[ 9.939891] raid6: sse2x4 xor() 10260 MB/s +[ 9.995963] raid6: avx2x1 gen() 23309 MB/s +[ 10.051851] raid6: avx2x1 xor() 15215 MB/s +[ 10.109797] raid6: avx2x2 gen() 26903 MB/s +[ 10.164008] raid6: avx2x2 xor() 16227 MB/s +[ 10.215847] raid6: avx2x4 gen() 28083 MB/s +[ 10.264356] raid6: avx2x4 xor() 16052 MB/s +[ 10.265393] raid6: using algorithm avx2x4 gen() 28083 MB/s +[ 10.266503] raid6: .... xor() 16052 MB/s, rmw enabled +[ 10.267678] raid6: using avx2x2 recovery algorithm +[ 10.270850] xor: automatically using best checksumming function avx +[ 10.273861] async_tx: api initialized (async) +done. +Begin: Running /scripts/init-premount ... done. +Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done. +Begin: Running /scripts/local-premount ... [ 10.328739] Btrfs loaded, crc32c=crc32c-intel +Scanning for Btrfs filesystems +done. +Begin: Will now check root file system ... fsck from util-linux 2.31.1 +[/sbin/fsck.ext4 (1) -- /dev/sda1] fsck.ext4 -a -C0 /dev/sda1 +cloudimg-rootfs: clean, 232179/5120000 files, 1100707/10485499 blocks +done. +[ 10.387851] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) +done. +Begin: Running /scripts/local-bottom ... done. +Begin: Running /scripts/init-bottom ... done. +[ 10.606451] ip_tables: (C) 2000-2006 Netfilter Core Team +[ 10.623601] systemd[1]: systemd 237 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid) +[ 10.628658] systemd[1]: Detected virtualization oracle. +[ 10.629873] systemd[1]: Detected architecture x86-64. + +Welcome to [1mUbuntu 18.04.6 LTS[0m! + +[ 10.637465] systemd[1]: Set hostname to <ubuntu-bionic>. +[ 10.967584] systemd[1]: Reached target System Time Synchronized. +[[0;32m OK [0m] Reached target System Time Synchronized. +[ 10.972210] systemd[1]: Created slice User and Session Slice. +[[0;32m OK [0m] Created slice User and Session Slice. +[ 10.975444] systemd[1]: Created slice System Slice. +[[0;32m OK [0m] Created slice System Slice. +[ 11.076720] systemd[1]: Reached target Slices. +[[0;32m OK [0m] Reached target Slices. +[ 11.079281] systemd[1]: Listening on udev Control Socket. +[[0;32m OK [0m] Listening on udev Control Socket. +[ 11.190117] systemd[1]: Listening on LVM2 poll daemon socket. +[[0;32m OK [0m] Listening on LVM2 poll daemon socket. +[[0;32m OK [0m] Listening on LVM2 metadata daemon socket. +[[0;32m OK [0m] Listening on Journal Socket (/dev/log). +[[0;32m OK [0m] Created slice system-serial\x2dgetty.slice. +[[0;32m OK [0m] Listening on Journal Audit Socket. +[[0;32m OK [0m] Listening on Journal Socket. + Starting Set the console keyboard layout... + Starting Create list of required st…ce nodes for the current kernel... + Starting Uncomplicated firewall... + Starting Load Kernel Modules... + Mounting POSIX Message Queue File System... + Mounting Huge Pages File System... +[[0;32m OK [0m] Listening on Device-mapper event daemon FIFOs. + Starting Monitoring of LVM2 mirrors…ng dmeventd or progress polling... +[[0;32m OK [0m] Listening on Network Service Netlink Socket. +[[0;32m OK [0m] Listening on Syslog Socket. + Starting Journal Service... +[[0;32m OK [0m] Set up automount Arbitrary Executab…rmats File System Automount Point. + Mounting Kernel Debug File System... +[[0;32m OK [0m] Listening on fsck to fsckd communication Socket. + Starting Remount Root and Kernel File Systems... +[[0;32m OK [0m] Listening on /dev/initctl Compatibility Named Pipe. +[[0;32m OK [0m] Reached target User and Group Name Lookups. +[[0;32m OK [0m] Listening on udev Kernel Socket. + Starting udev Coldplug all Devices... +[[0;32m OK [0m] Reached target Swap. +[ 12.179575] Loading iSCSI transport class v2.0-870. +[ 12.187768] iscsi: registered transport (tcp) +[[0;32m OK [0m] Started Forward Password Requests to Wall Directory Watch. +[[0;32m OK [0m] Started Create list of required sta…vice nodes for the current kernel. +[[0;32m OK [0m] Mounted POSIX Message Queue File System. +[[0;32m OK [0m] Mounted Huge Pages File System. +[[0;32m OK [0m] Mounted Kernel Debug File System. +[[0;32m OK [0m] Started LVM2 metadata daemon. + Starting Create Static Device Nodes in /dev... +[[0;32m OK [0m] Started Journal Service. +[ 12.236264] EXT4-fs (sda1): re-mounted. Opts: (null) +[[0;32m OK [0m] Started Remount Root and Kernel File Systems. + Starting Flush Journal to Persistent Storage... + Starting Load/Save Random Seed... +[[0;32m OK [0m] Started Set the console keyboard layout. +[[0;32m OK [0m] Started udev Coldplug all Devices. +[[0;32m OK [0m] Started Create Static Device Nodes in /dev. + Starting udev Kernel Device Manager... +[[0;32m OK [0m] Started Monitoring of LVM2 mirrors,…sing dmeventd or progress polling. +[[0;32m OK [0m] Reached target Local File Systems (Pre). +[[0;32m OK [0m] Reached target Local File Systems. + Starting Tell Plymouth To Write Out Runtime Data... + Starting ebtables ruleset management... +[ 12.312415] nf_conntrack version 0.5.0 (16384 buckets, 65536 max) + Starting AppArmor initialization... + Starting Set console font and keymap... +[ 12.323998] systemd-journald[430]: Received request to flush runtime journal from PID 1 +[[0;32m OK [0m] Started Load/Save Random Seed. +[[0;32m OK [0m] Started udev Kernel Device Manager. +[[0;32m OK [0m] Started Dispatch Password Requests to Console Directory Watch. +[[0;32m OK [0m] Reached target Local Encrypted Volumes. +[[0;32m OK [0m] Started Tell Plymouth To Write Out Runtime Data. +[[0;32m OK [0m] Started Set console font and keymap. +[ 12.438745] iscsi: registered transport (iser) +[[0;32m OK [0m] Started Load Kernel Modules. + Starting Apply Kernel Variables... + Mounting FUSE Control File System... + Mounting Kernel Configuration File System... +[[0;32m OK [0m] Mounted FUSE Control File System. +[[0;32m OK [0m] Mounted Kernel Configuration File System. +[[0;32m OK [0m] Started Apply Kernel Variables. +[[0;32m OK [0m] Started Flush Journal to Persistent Storage. + Starting Create Volatile Files and Directories... +[[0;32m OK [0m] Started Create Volatile Files and Directories. + Starting Update UTMP about System Boot/Shutdown... +[[0;32m OK [0m] Found device /dev/ttyS0. +[[0;32m OK [0m] Started ebtables ruleset management. +[[0;32m OK [0m] Started Update UTMP about System Boot/Shutdown. +[[0;32m OK [0m] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch. +[[0;32m OK [0m] Started AppArmor initialization. + Starting Initial cloud-init job (pre-networking)... + Starting Load AppArmor profiles managed internally by snapd... +[[0;32m OK [0m] Started Load AppArmor profiles managed internally by snapd. +[[0;32m OK [0m] Started Uncomplicated firewall. +[ 14.369168] cloud-init[592]: Cloud-init v. 21.3-1-g6803368d-0ubuntu1~18.04.4 running 'init-local' at Wed, 03 Nov 2021 19:17:02 +0000. Up 14.16 seconds. +[[0;32m OK [0m] Started Initial cloud-init job (pre-networking). +[[0;32m OK [0m] Reached target Network (Pre). + Starting Network Service... +[[0;32m OK [0m] Started Network Service. + Starting Wait for Network to be Configured... + Starting Network Name Resolution... +[[0;32m OK [0m] Started Network Name Resolution. +[[0;32m OK [0m] Reached target Network. +[[0;32m OK [0m] Reached target Host and Network Name Lookups. +[[0;32m OK [0m] Started Wait for Network to be Configured. + Starting Initial cloud-init job (metadata service crawler)... +[ 16.962371] cloud-init[760]: Cloud-init v. 21.3-1-g6803368d-0ubuntu1~18.04.4 running 'init' at Wed, 03 Nov 2021 19:17:05 +0000. Up 16.83 seconds. +[ 16.964443] cloud-init[760]: ci-info: +++++++++++++++++++++++++++++++++++++Net device info++++++++++++++++++++++++++++++++++++++ +[ 16.966192] cloud-init[760]: ci-info: +--------+------+---------------------------+---------------+--------+-------------------+ +[ 16.967962] cloud-init[760]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address | +[ 16.970529] cloud-init[760]: ci-info: +--------+------+---------------------------+---------------+--------+-------------------+ +[ 16.972116] cloud-init[760]: ci-info: | enp0s3 | True | 10.0.2.15 | 255.255.255.0 | global | 02:2f:77:f1:0c:e0 | +[ 16.973862] cloud-init[760]: ci-info: | enp0s3 | True | fe80::2f:77ff:fef1:ce0/64 | . | link | 02:2f:77:f1:0c:e0 | +[ 16.975633] cloud-init[760]: ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | host | . | +[ 16.977581] cloud-init[760]: ci-info: | lo | True | ::1/128 | . | host | . | +[ 16.979311] cloud-init[760]: ci-info: +--------+------+---------------------------+---------------+--------+-------------------+ +[ 16.981078] cloud-init[760]: ci-info: ++++++++++++++++++++++++++++Route IPv4 info+++++++++++++++++++++++++++++ +[ 16.982645] cloud-init[760]: ci-info: +-------+-------------+----------+-----------------+-----------+-------+ +[ 16.984232] cloud-init[760]: ci-info: | Route | Destination | Gateway | Genmask | Interface | Flags | +[ 16.985872] cloud-init[760]: ci-info: +-------+-------------+----------+-----------------+-----------+-------+ +[ 16.987222] cloud-init[760]: ci-info: | 0 | 0.0.0.0 | 10.0.2.2 | 0.0.0.0 | enp0s3 | UG | +[ 16.989240] cloud-init[760]: ci-info: | 1 | 10.0.2.0 | 0.0.0.0 | 255.255.255.0 | enp0s3 | U | +[ 17.000279] cloud-init[760]: ci-info: | 2 | 10.0.2.2 | 0.0.0.0 | 255.255.255.255 | enp0s3 | UH | +[ 17.001761] cloud-init[760]: ci-info: +-------+-------------+----------+-----------------+-----------+-------+ +[ 17.003750] cloud-init[760]: ci-info: +++++++++++++++++++Route IPv6 info+++++++++++++++++++ +[ 17.016354] cloud-init[760]: ci-info: +-------+-------------+---------+-----------+-------+ +[ 17.017647] cloud-init[760]: ci-info: | Route | Destination | Gateway | Interface | Flags | +[ 17.018900] cloud-init[760]: ci-info: +-------+-------------+---------+-----------+-------+ +[ 17.020015] cloud-init[760]: ci-info: | 1 | fe80::/64 | :: | enp0s3 | U | +[ 17.021372] cloud-init[760]: ci-info: | 3 | local | :: | enp0s3 | U | +[ 17.022595] cloud-init[760]: ci-info: | 4 | ff00::/8 | :: | enp0s3 | U | +[ 17.023700] cloud-init[760]: ci-info: +-------+-------------+---------+-----------+-------+ +[[0;32m OK [0m] Started Initial cloud-init job (metadata service crawler). +[[0;32m OK [0m] Reached target System Initialization. +[[0;32m OK [0m] Started Ubuntu Advantage Timer for running repeated jobs. + Starting LXD - unix socket. +[[0;32m OK [0m] Started Discard unused blocks once a week. + Starting Socket activation for snappy daemon. +[[0;32m OK [0m] Listening on UUID daemon activation socket. +[[0;32m OK [0m] Started Daily apt download activities. +[[0;32m OK [0m] Listening on Open-iSCSI iscsid Socket. +[[0;32m OK [0m] Started Message of the Day. +[[0;32m OK [0m] Started Daily Cleanup of Temporary Directories. +[[0;32m OK [0m] Started ACPI Events Check. +[[0;32m OK [0m] Listening on cloud-init hotplug hook socket. +[[0;32m OK [0m] Started Trigger to poll for Ubuntu …(Only enabled on GCP LTS non-pro). +[[0;32m OK [0m] Reached target Paths. +[[0;32m OK [0m] Listening on D-Bus System Message Bus Socket. +[[0;32m OK [0m] Started Daily apt upgrade and clean activities. +[[0;32m OK [0m] Reached target Timers. +[[0;32m OK [0m] Listening on ACPID Listen Socket. +[[0;32m OK [0m] Reached target Network is Online. +[[0;32m OK [0m] Reached target Remote File Systems (Pre). +[[0;32m OK [0m] Reached target Remote File Systems. + Starting Availability of block devices... +[[0;32m OK [0m] Reached target Cloud-config availability. +[[0;32m OK [0m] Listening on LXD - unix socket. +[[0;32m OK [0m] Listening on Socket activation for snappy daemon. +[[0;32m OK [0m] Reached target Sockets. +[[0;32m OK [0m] Reached target Basic System. + Starting System Logging Service... +[[0;32m OK [0m] Started D-Bus System Message Bus. + Starting LSB: automatic crash report generation... + Starting Login Service... + Starting OpenBSD Secure Shell server... +[[0;32m OK [0m] Started FUSE filesystem for LXC. + Starting LSB: Record successful boot for GRUB... + Starting Permit User Sessions... + Starting Accounts Service... + Starting Virtualbox guest utils... +[[0;32m OK [0m] Started Regular background program processing daemon. + Starting LXD - container startup/shutdown... +[[0;32m OK [0m] Started Deferred execution scheduler. +[[0;32m OK [0m] Started irqbalance daemon. + Starting The Apache HTTP Server... + Starting Dispatcher daemon for systemd-networkd... + Starting Snap Daemon... +[[0;32m OK [0m] Started System Logging Service. +[[0;32m OK [0m] Started Availability of block devices. +[[0;32m OK [0m] Started Permit User Sessions. +[[0;32m OK [0m] Started Login Service. +[[0;32m OK [0m] Started OpenBSD Secure Shell server. + Starting Authorization Manager... +[[0;32m OK [0m] Started Unattended Upgrades Shutdown. + Starting Hold until boot process finishes up... + Starting Terminate Plymouth Boot Screen... +[[0;32m OK [0m] Started Hold until boot process finishes up. +[[0;32m OK [0m] Started Serial Getty on ttyS0. + Starting Set console scheme... +[[0;32m OK [0m] Started Terminate Plymouth Boot Screen. +[[0;32m OK [0m] Started Set console scheme. +[[0;32m OK [0m] Created slice system-getty.slice. +[[0;32m OK [0m] Started Getty on tty1. +[[0;32m OK [0m] Reached target Login Prompts. +[[0;32m OK [0m] Started LSB: Record successful boot for GRUB. +[[0;32m OK [0m] Started LSB: automatic crash report generation. +[[0;32m OK [0m] Started Authorization Manager. +[[0;32m OK [0m] Started Accounts Service. +[[0;32m OK [0m] Started Virtualbox guest utils. +[[0;32m OK [0m] Started LXD - container startup/shutdown. +[[0;32m OK [0m] Started The Apache HTTP Server. +[[0;32m OK [0m] Started Dispatcher daemon for systemd-networkd. +[[0;32m OK [0m] Started Snap Daemon. + Starting Wait until snapd is fully seeded... +[[0;32m OK [0m] Started Wait until snapd is fully seeded. + Starting Apply the settings specified in cloud-config... +[[0;32m OK [0m] Reached target Multi-User System. +[[0;32m OK [0m] Reached target Graphical Interface. + Starting Update UTMP about System Runlevel Changes... +[[0;32m OK [0m] Started Update UTMP about System Runlevel Changes. +[[0;32m OK [0m] Created slice User Slice of vagrant. + Starting User Manager for UID 1000... +[[0;32m OK [0m] Started Session 1 of user vagrant. +[[0;32m OK [0m] Started User Manager for UID 1000. +[ 19.364369] cloud-init[1285]: Cloud-init v. 21.3-1-g6803368d-0ubuntu1~18.04.4 running 'modules:config' at Wed, 03 Nov 2021 19:17:07 +0000. Up 19.16 seconds. +[[0;32m OK [0m] Started Apply the settings specified in cloud-config. + Starting Execute cloud user/final scripts... +[ 20.047162] cloud-init[1366]: Cloud-init v. 21.3-1-g6803368d-0ubuntu1~18.04.4 running 'modules:final' at Wed, 03 Nov 2021 19:17:08 +0000. Up 19.92 seconds. +[ 20.049622] cloud-init[1366]: Cloud-init v. 21.3-1-g6803368d-0ubuntu1~18.04.4 finished at Wed, 03 Nov 2021 19:17:08 +0000. Datasource DataSourceNoCloud [seed=/dev/sdb][dsmode=net]. Up 20.03 seconds +[[0;32m OK [0m] Started Execute cloud user/final scripts. +[[0;32m OK [0m] Reached target Cloud-init target. + +Ubuntu 18.04.6 LTS ubuntu-bionic ttyS0 + +ubuntu-bionic login: \ No newline at end of file diff --git a/www/i18n/locale-en-GB.json b/www/i18n/locale-en-GB.json index e9ddd3a84dea60b2b2d74721028d3332360ed07a..b617c340a1bf35d6d401d8158626fd1946863580 100644 --- a/www/i18n/locale-en-GB.json +++ b/www/i18n/locale-en-GB.json @@ -565,6 +565,24 @@ "SELECT_WALLET_MODAL": { "TITLE": "Wallet selection" }, + "CERTIFICATION_MODAL": { + "CHECKLIST_TITLE": "Certification check list", + "INFOS": "Each member is responsible for the security of Ğ1 currency. Before certifying this person's identity, you should have performed few checks. Please answer following questions:", + "BTN_ALL_CHECK": "Certify", + "CHECKLIST_CONDITIONS_NOT_MET": "Certification has not been sent. All answers are not right. Please double-check each point with the person you want to certify.", + "QUESTIONS": { + "WELL_KNOWN": "Do you know <b>well</b> the person you are about to certify? Do you know other people who also know thes person well?", + "REVOCATION": "Has this person downloaded their <b>revocation document</b> and do they know where to find it?", + "CONTACT": "Have you <b>had contact</b> with this person by many means, and did they answer?", + "DOUBLE_IDENTITY": "The person should own <b>only one active member identity</b>. Do you think they own another one?", + "MASTER_ACCOUNT": "Does this person own their accounts secrets? Have they already <b>sent money from their account</b> at least once?", + "LICENSE": "Has this person <b>understood the Duniter license</b>? Do they agree to comply with it for future certifications?", + "CREDENTIALS": "Was the account created with <b>long and complex ID/Password</b> (ex. passphrases) ? Did the person understand that both ID and password must remain secret ? Are they <b>sure to remember them</b> or to be able to find them?", + "PUBLIC_KEY_DIFFERENT": "The <b>public key</b> that is shown must be <b>identical</b> to the one the person gave you. The public keys are they <b>different</b> ?" + }, + "REMINDER_TITLE": "Reminder", + "SHORT_LICENSE_REMINDER": "<p>You may remind the person to certify different certification parameters:</p><p>- Each member can certify 100 other identities at most.</p><p>- The certifications are saved with a 5 days interval.</p><p>- A new identity must gather at least 5 certifications in less than 2 months.</p><p>- A member must renew its membership at least once a year.</p><p>- Certifications have a lifespan of two years.</p>" + }, "WALLET_LIST": { "TITLE": "My wallets", "BTN_NEW": "Add a wallet", diff --git a/www/i18n/locale-en.json b/www/i18n/locale-en.json index 8e328acf2bd937d49e138a4bf18e1a28ac240c4e..e927c4d38e107f37c0862a0caec56c80b6560efe 100644 --- a/www/i18n/locale-en.json +++ b/www/i18n/locale-en.json @@ -565,6 +565,24 @@ "SELECT_WALLET_MODAL": { "TITLE": "Wallet selection" }, + "CERTIFICATION_MODAL": { + "CHECKLIST_TITLE": "Certification check list", + "INFOS": "Each member is responsible for the security of Ğ1 currency. Before certifying this person's identity, you should have performed few checks. Please answer following questions:", + "BTN_ALL_CHECK": "Certify", + "CHECKLIST_CONDITIONS_NOT_MET": "Certification has not been sent. All answers are not right. Please double-check each point with the person you want to certify.", + "QUESTIONS": { + "WELL_KNOWN": "Do you know <b>well</b> the person you are about to certify? Do you know other people who also know thes person well?", + "REVOCATION": "Has this person downloaded their <b>revocation document</b> and do they know where to find it?", + "CONTACT": "Have you <b>had contact</b> with this person by many means, and did they answer?", + "DOUBLE_IDENTITY": "The person should own <b>only one active member identity</b>. Do you think they own another one?", + "MASTER_ACCOUNT": "Does this person own their accounts secrets? Have they already <b>sent money from their account</b> at least once?", + "LICENSE": "Has this person <b>understood the Duniter license</b>? Do they agree to comply with it for future certifications?", + "CREDENTIALS": "Was the account created with <b>long and complex ID/Password</b> (ex. passphrases) ? Did the person understand that both ID and password must remain secret ? Are they <b>sure to remember them</b> or to be able to find them?", + "PUBLIC_KEY_DIFFERENT": "The <b>public key</b> that is shown must be <b>identical</b> to the one the person gave you. The public keys are they <b>different</b> ?" + }, + "REMINDER_TITLE": "Reminder", + "SHORT_LICENSE_REMINDER": "<p>You may remind the person to certify different certification parameters:</p><p>- Each member can certify 100 other identities at most.</p><p>- The certifications are saved with a 5 days interval.</p><p>- A new identity must gather at least 5 certifications in less than 2 months.</p><p>- A member must renew its membership at least once a year.</p><p>- Certifications have a lifespan of two years.</p>" + }, "WALLET_LIST": { "TITLE": "My wallets", "BTN_NEW": "Add a wallet", diff --git a/www/i18n/locale-fr-FR.json b/www/i18n/locale-fr-FR.json index 8622064c4589fffe14d56ca9d8c5243757c5bc7f..b0a88d90324ea77bcd70f6b0a89decc357f5f107 100644 --- a/www/i18n/locale-fr-FR.json +++ b/www/i18n/locale-fr-FR.json @@ -565,6 +565,24 @@ "SELECT_WALLET_MODAL": { "TITLE": "Sélection du portefeuille" }, + "CERTIFICATION_MODAL": { + "CHECKLIST_TITLE": "Vérifications avant certification", + "INFOS": "La sécurité de la monnaie Ğ1 repose sur chaque membre. Avant de certifier l'identité de cette personne, vous devez avoir fait quelques vérifications à son propos. Veuillez répondre aux questions suivantes :", + "BTN_ALL_CHECK": "Certifier", + "CHECKLIST_CONDITIONS_NOT_MET": "La certification n'a pas été envoyée. Les vérifications semblent insuffisantes. Veuillez vérifier de nouveau chaque point auprès de la personne à certifier.", + "QUESTIONS": { + "WELL_KNOWN": "<b>Connaissez-vous bien</b> la personne que vous certifiez, et connaissez-vous des gens qui la connaissent bien également ?", + "REVOCATION": "A-t-elle téléchargé son <b>document de révocation</b> et sait-elle où le retrouver ?", + "CONTACT": "Avez-vous <b>contacté</b> cette personne par plusieurs moyens et vous a-t-elle répondu ?", + "DOUBLE_IDENTITY": "La personne doit posséder <b>une seule identité membre active</b>. En possède-t-elle une <b>autre</b> ?", + "MASTER_ACCOUNT": "Maîtrise-t-elle son compte, et a-t-elle déjà <b>effectué au moins un virement</b> depuis son compte ?", + "LICENSE": "A-t-elle <b>compris la licence</b>, et accepte-t-elle de s'y conformer pour la certification d'autres membres ?", + "CREDENTIALS": "L’identifiant et le mot de passe de son compte sont-ils <b>longs et complexes</b> (phrases de passe) ? A-t-elle compris que l’identifiant doit également rester secret ? Est-elle <b>certaine de s’en souvenir</b> ou de pouvoir les retrouver ?", + "PUBLIC_KEY_DIFFERENT": "La <b>clef publique</b> indiquée doit être <b>identique</b> à celle que vous a communiqué cette personne. Les clefs sont-elles <b>différentes</b> ?" + }, + "REMINDER_TITLE": "Rappel", + "SHORT_LICENSE_REMINDER": "<p>Vous pouvez rappeler à la personne certifiée les paramètres des certifications :</p><p>- Chaque membre peut avoir émis 100 certifications valides au maximum.</p><p>- Les certifications sont enregistrées à un intervalle de 5 jours.</p><p>- Une nouvelle identité membre doit réunir au minimum 5 certifications en moins de deux mois.</p><p>- Un membre doit renouveler son adhésion chaque année.</p><p>- Les certifications sont valides durant deux ans.</p>" + }, "WALLET_LIST": { "TITLE": "Mes portefeuilles", "BTN_NEW": "Ajouter un portefeuille", @@ -787,7 +805,8 @@ "UNKNOWN_WALLET_ID": "Portefeuille secondaire inconnu.", "RESTORE_WALLET_LIST_FAILED": "Échec de la restauration des portefeuilles secondaires.", "INVALID_FILE_FORMAT": "Format de fichier invalide.", - "SAME_TX_RECIPIENT": "Le destinataire doit être différent de l'émetteur." + "SAME_TX_RECIPIENT": "Le destinataire doit être différent de l'émetteur.", + "SELF_CERTIFICATION": "Vous ne pouvez pas certifier votre propre identité." }, "INFO": { "POPUP_TITLE": "Information", diff --git a/www/js/controllers/wot-controllers.js b/www/js/controllers/wot-controllers.js index b7d9cd2c2b31cfbaa38f359d0c9eae164a11a8f6..1a3c597e00d2669410de8fc4a31e94202fb5bcd0 100644 --- a/www/js/controllers/wot-controllers.js +++ b/www/js/controllers/wot-controllers.js @@ -157,6 +157,8 @@ angular.module('cesium.wot.controllers', ['cesium.services']) .controller('WotCertificationsViewCtrl', WotCertificationsViewController) + .controller('WotCertificationChecklistCtrl', WotCertificationChecklistController) + .controller('WotSelectPubkeyIdentityModalCtrl', WotSelectPubkeyIdentityModalController) ; @@ -773,63 +775,43 @@ function WotIdentityAbstractController($scope, $rootScope, $state, $translate, $ return; } - // Check identity not expired - if ($scope.formData.requirements.expired) { - UIUtils.alert.error('ERROR.IDENTITY_EXPIRED'); + if ( ! $scope.commonCertificationVerifications($scope.formData, wallet) ) { return; } - // Check not already certified - var previousCert = _.find($scope.formData.received_cert, function(cert) { - return cert.pubkey === wallet.data.pubkey && cert.valid && cert.expiresIn > csSettings.data.timeWarningExpire; - }); - if (previousCert) { - $translate('ERROR.IDENTITY_ALREADY_CERTIFY', previousCert) - .then(function(message) { - UIUtils.alert.error(message, 'ERROR.UNABLE_TO_CERTIFY_TITLE'); - }); - return; - } + // Prepare actions after user confirmation + let answers_are_right = $q.defer(); + answers_are_right.promise.then( function (cert_status) { + return $scope.showLicenseReminderIfNewCert(cert_status) + }) + .then(function(confirm){ + if (! confirm) {return} + UIUtils.loading.show(); + wallet.certify($scope.formData.uid, + $scope.formData.pubkey, + $scope.formData.blockUid || ($scope.formData.requirements && $scope.formData.requirements.meta && $scope.formData.requirements.meta.timestamp), + $scope.formData.requirements && $scope.formData.requirements.meta && $scope.formData.requirements.meta.sig, + $scope.formData.isMember, + $scope.formData.wasMember) + .then(function(cert) { + UIUtils.loading.hide(); + if (cert) { + $scope.prepareNewCert(wallet, cert); + $scope.alreadyCertified = true; + UIUtils.toast.show('INFO.CERTIFICATION_DONE'); + $scope.formData.received_cert_pending.unshift(cert); + $scope.formData.requirements.pendingCertificationCount++; + $scope.doMotion(); + } + }) + .catch(UIUtils.onError('ERROR.SEND_CERTIFICATION_FAILED')); + }) + .catch( + UIUtils.onError('ACCOUNT.CERTIFICATION_MODAL.CHECKLIST_CONDITIONS_NOT_MET') + ); - // Check no pending certification - previousCert = _.findWhere($scope.formData.received_cert_pending, { pubkey: wallet.data.pubkey, valid: true}); - if (previousCert) { - $translate('ERROR.IDENTITY_ALREADY_CERTIFY_PENDING', previousCert) - .then(function(message) { - UIUtils.alert.error(message, 'ERROR.UNABLE_TO_CERTIFY_TITLE'); - }); - return; - } + return $scope.displayConfirmationModalOrLicenseQuestions($scope.formData, wallet, answers_are_right ) - UIUtils.alert.confirm('CONFIRM.CERTIFY_RULES', 'CONFIRM.POPUP_SECURITY_WARNING_TITLE', { - cssClass: 'warning', - okText: 'WOT.BTN_YES_CERTIFY', - okType: 'button-assertive' - }) - .then(function(confirm){ - if (!confirm) { - return; - } - UIUtils.loading.show(); - wallet.certify($scope.formData.uid, - $scope.formData.pubkey, - $scope.formData.blockUid || ($scope.formData.requirements && $scope.formData.requirements.meta && $scope.formData.requirements.meta.timestamp), - $scope.formData.requirements && $scope.formData.requirements.meta && $scope.formData.requirements.meta.sig, - $scope.formData.isMember, - $scope.formData.wasMember) - .then(function(cert) { - UIUtils.loading.hide(); - if (cert) { - $scope.prepareNewCert(wallet, cert); - $scope.alreadyCertified = true; - UIUtils.toast.show('INFO.CERTIFICATION_DONE'); - $scope.formData.received_cert_pending.unshift(cert); - $scope.formData.requirements.pendingCertificationCount++; - $scope.doMotion(); - } - }) - .catch(UIUtils.onError('ERROR.SEND_CERTIFICATION_FAILED')); - }); }) .catch(function(err) { if (err === 'CANCELLED') return; @@ -838,6 +820,85 @@ function WotIdentityAbstractController($scope, $rootScope, $state, $translate, $ }); }; + $scope.commonCertificationVerifications = function (receiver_idty, sender_wallet) { + + // Check it is no self-certification + if (receiver_idty.pubkey === sender_wallet.data.pubkey) { + UIUtils.alert.error('ERROR.SELF_CERTIFICATION'); + return false; + } + + // Check identity not expired + if (receiver_idty.requirements.expired) { + UIUtils.alert.error('ERROR.IDENTITY_EXPIRED'); + return false; + } + + // Check not already certified + var previousCert = _.find(receiver_idty.received_cert, function (cert) { + return cert.pubkey === sender_wallet.data.pubkey && cert.valid && cert.expiresIn > csSettings.data.timeWarningExpire; + }); + if (previousCert) { + $translate('ERROR.IDENTITY_ALREADY_CERTIFY', previousCert) + .then(function (message) { + UIUtils.alert.error(message, 'ERROR.UNABLE_TO_CERTIFY_TITLE'); + }); + return false; + } + + // Check no pending certification + previousCert = _.findWhere(receiver_idty.received_cert_pending, { pubkey: sender_wallet.data.pubkey, valid: true }); + if (previousCert) { + $translate('ERROR.IDENTITY_ALREADY_CERTIFY_PENDING', previousCert) + .then(function (message) { + UIUtils.alert.error(message, 'ERROR.UNABLE_TO_CERTIFY_TITLE'); + }); + return false; + } + + return true; + } + + $scope.showLicenseReminderIfNewCert = function (cert_status) { + if (cert_status == "new_cert") { + return UIUtils.alert.confirm( + 'ACCOUNT.CERTIFICATION_MODAL.SHORT_LICENSE_REMINDER', + 'ACCOUNT.CERTIFICATION_MODAL.REMINDER_TITLE', + { + cssClass: 'positive', + okText: 'COMMON.BTN_OK', + okType: 'button-positive' + } + ) + } + return true; + } + + $scope.displayConfirmationModalOrLicenseQuestions = function (certified_idty, sender_wallet, answers_are_right) { + + if (isCertificationRenewal(certified_idty.received_cert, sender_wallet.data.pubkey)) { + return $scope.certRenewalConfirmationModal(answers_are_right) + } + + return Modals.showCertificationCheckList({ + answers_are_right: answers_are_right, + identity: certified_idty, + }); + } + + $scope.certRenewalConfirmationModal = function (answers_are_right) { + return UIUtils.alert.confirm('CONFIRM.CERTIFY_RULES', 'CONFIRM.CERTIFY_RULES_TITLE_UID', { + cssClass: 'warning', + okText: 'WOT.BTN_YES_CERTIFY', + okType: 'button-assertive' + }) + .then(function (confirm) { + if (confirm) { + answers_are_right.resolve("renewal"); + } + }) + } + // Select an identity and certify $scope.selectAndCertify = function() { @@ -881,62 +942,43 @@ function WotIdentityAbstractController($scope, $rootScope, $state, $translate, $ return; } - // Check identity not expired - if (identity.requirements.expired) { - UIUtils.alert.error('ERROR.IDENTITY_EXPIRED'); + if ( ! $scope.commonCertificationVerifications(identity, wallet) ) { return; } - // Check not already certified - var previousCert = _.findWhere(identity.received_cert, {pubkey: wallet.data.pubkey, valid: true}); - if (previousCert) { - $translate('ERROR.IDENTITY_ALREADY_CERTIFY', previousCert) - .then(function (message) { - UIUtils.alert.error(message, 'ERROR.UNABLE_TO_CERTIFY_TITLE'); - }); - return; - } + // Prepare actions after user confirmation + let answers_are_right = $q.defer(); + answers_are_right.promise.then( function (cert_status) { + return $scope.showLicenseReminderIfNewCert(cert_status) + }) + .then(function(confirm){ + if (! confirm) {return} + UIUtils.loading.show(); + // Send certification + wallet.certify(identity.uid, + identity.pubkey, + identity.blockUid || (identity.requirements && identity.requirements.meta && identity.requirements.meta.timestamp), + identity.requirements && identity.requirements.meta && identity.requirements.meta.sig, + identity.isMember, + identity.wasMember) + .then(function (cert) { + UIUtils.loading.hide(); + if (!cert) return; + return csWot.extendAll([cert], 'pubkey') + .then(function () { + UIUtils.toast.show('INFO.CERTIFICATION_DONE'); + $scope.formData.given_cert_pending.unshift(cert); + $scope.doMotion(); + }); + }) + .catch(UIUtils.onError('ERROR.SEND_CERTIFICATION_FAILED')); + }) + .catch( + UIUtils.onError('ACCOUNT.CERTIFICATION_MODAL.CHECKLIST_CONDITIONS_NOT_MET') + ); - // Check not pending certification - previousCert = _.findWhere(identity.received_cert_pending, {pubkey: wallet.data.pubkey, valid: true}); - if (previousCert) { - $translate('ERROR.IDENTITY_ALREADY_CERTIFY_PENDING', previousCert) - .then(function (message) { - UIUtils.alert.error(message, 'ERROR.UNABLE_TO_CERTIFY_TITLE'); - }); - return; - } + return $scope.displayConfirmationModalOrLicenseQuestions(identity, wallet, answers_are_right ) - // Ask confirmation - $translate('CONFIRM.CERTIFY_RULES_TITLE_UID', {uid: identity.uid}) - .then(function (confirmTitle) { - return UIUtils.alert.confirm('CONFIRM.CERTIFY_RULES', confirmTitle); - }) - .then(function (confirm) { - if (!confirm) { - return; - } - UIUtils.loading.show(); - - // Send certification - wallet.certify(identity.uid, - identity.pubkey, - identity.blockUid || (identity.requirements && identity.requirements.meta && identity.requirements.meta.timestamp), - identity.requirements && identity.requirements.meta && identity.requirements.meta.sig, - identity.isMember, - identity.wasMember) - .then(function (cert) { - UIUtils.loading.hide(); - if (!cert) return; - return csWot.extendAll([cert], 'pubkey') - .then(function () { - UIUtils.toast.show('INFO.CERTIFICATION_DONE'); - $scope.formData.given_cert_pending.unshift(cert); - $scope.doMotion(); - }); - }) - .catch(UIUtils.onError('ERROR.SEND_CERTIFICATION_FAILED')); - }); }) .catch(function (err) { if (err === 'CANCELLED') return; @@ -1447,6 +1489,88 @@ function WotCertificationsViewController($scope, $rootScope, $controller, csSett }; } +/** + * Certification checklist controller + * @param $controller + */ + function WotCertificationChecklistController($scope, $controller, parameters){ + + // allow to display license + $controller('CurrencyViewCtrl', {$scope: $scope}); + + let answers_are_right = parameters.answers_are_right; + $scope.identity = parameters.identity; + + $scope.prepare_cert_checklist = function() { + const original_cert_checklist = [ + { + question: 'ACCOUNT.CERTIFICATION_MODAL.QUESTIONS.WELL_KNOWN', + expected_answer: true, + answer: false + }, + { + question: 'ACCOUNT.CERTIFICATION_MODAL.QUESTIONS.REVOCATION', + expected_answer: true, + answer: false + }, + { + question: 'ACCOUNT.CERTIFICATION_MODAL.QUESTIONS.CONTACT', + expected_answer: true, + answer: false + }, + { + question: 'ACCOUNT.CERTIFICATION_MODAL.QUESTIONS.MASTER_ACCOUNT', + expected_answer: true, + answer: false + }, + { + question: 'ACCOUNT.CERTIFICATION_MODAL.QUESTIONS.LICENSE', + expected_answer: true, + answer: false + }, + { + question: 'ACCOUNT.CERTIFICATION_MODAL.QUESTIONS.CREDENTIALS', + expected_answer: true, + answer: false + }, + // questions with negative answers + { + question: 'ACCOUNT.CERTIFICATION_MODAL.QUESTIONS.DOUBLE_IDENTITY', + expected_answer: false, + answer: false + }, + { + question: 'ACCOUNT.CERTIFICATION_MODAL.QUESTIONS.PUBLIC_KEY_DIFFERENT', + expected_answer: false, + answer: false + }, + ]; + + // Fisher-Yates shuffle + function shuffle(array) { + for (let i = array.length - 1; i > 0; i--) { + let j = Math.floor(Math.random() * (i + 1)); // random index from 0 to i + let t = array[i]; array[i] = array[j]; array[j] = t + } + return array; + } + + return shuffle(original_cert_checklist).slice(0, 5); + } + $scope.cert_checklist = $scope.prepare_cert_checklist(); + + $scope.verifyAnswers = function() { + $scope.cert_checklist.map( question => { + if (question.answer !== question.expected_answer) { + // TODO message should be changed. + answers_are_right.reject(); + } + }); + answers_are_right.resolve("new_cert"); + + $scope.closeModal(); + } +} /** * Select identities from a pubkey (useful when many self on the same pubkey) @@ -1491,3 +1615,9 @@ function WotSelectPubkeyIdentityModalController($scope, $q, csWot, parameters) { }; $scope.$on('modal.shown', $scope.load); } + +function isCertificationRenewal(identity_current_certs, certifier_pubkey) { + return _.find(identity_current_certs, function(certification) { + return certification.pubkey == certifier_pubkey; + }) +} diff --git a/www/js/services/modal-services.js b/www/js/services/modal-services.js index 3ff97d62e0d469c9653ee2644194a38a42a6bdf6..4cd65471a2a62aa944379cf7c0a9927ef24a1cdd 100644 --- a/www/js/services/modal-services.js +++ b/www/js/services/modal-services.js @@ -232,6 +232,10 @@ angular.module('cesium.modal.services', ['cesium.utils.services']) parameters); } + function showCertificationCheckList(parameters) { + return ModalUtils.show('templates/wot/modal_certification_checklist.html','WotCertificationChecklistCtrl', parameters); + } + function showSelectPubkeyIdentity(parameters) { return ModalUtils.show('templates/wot/modal_select_pubkey_identity.html', 'WotSelectPubkeyIdentityModalCtrl', parameters); @@ -294,6 +298,7 @@ angular.module('cesium.modal.services', ['cesium.utils.services']) showHelp: showHelp, showAccountSecurity: showAccountSecurity, showLicense: showLicense, + showCertificationCheckList: showCertificationCheckList, showSelectPubkeyIdentity: showSelectPubkeyIdentity, showSelectWallet: showSelectWallet, showPassword: showPassword diff --git a/www/templates/wot/item_checklist_certification.html b/www/templates/wot/item_checklist_certification.html new file mode 100644 index 0000000000000000000000000000000000000000..a4e5b9834b3c1b066d3d2882ef18b86dcd17a11e --- /dev/null +++ b/www/templates/wot/item_checklist_certification.html @@ -0,0 +1,17 @@ +<div class="col col-80"> + <div class="ion-text text-wrap" ng-bind-html="check.question | translate"></div> + </div> + <div class="col text-right"> + <div class="ion-text" style="text-transform: uppercase;"> + <b ng-if="check.answer" translate>COMMON.BTN_YES</b> + <b ng-if="!check.answer" translate>COMMON.BTN_NO</b> + </div> + </div> + <div class="col float-left"> + <label class="toggle toggle-royal"> + <input type="checkbox" ng-model="check.answer"> + <div class="track"> + <div class="handle"></div> + </div> + </label> + </div> \ No newline at end of file diff --git a/www/templates/wot/modal_certification_checklist.html b/www/templates/wot/modal_certification_checklist.html new file mode 100644 index 0000000000000000000000000000000000000000..6fdfd8af4fad51664f97da1aaabb60d1d052d5ec --- /dev/null +++ b/www/templates/wot/modal_certification_checklist.html @@ -0,0 +1,82 @@ +<ion-modal-view class="modal-full-height"> + + <!-- TOP BAR --> + <ion-header-bar class="bar-positive"> + + <button class="button button-clear visible-xs" + ng-if="!slides.slider.activeIndex" + ng-click="closeModal()" translate>COMMON.BTN_CANCEL + </button> + <button class="button button-icon button-clear icon ion-ios-arrow-back buttons header-item" + ng-click="doPrev()" + ng-if="slides.slider.activeIndex && slideBehavior.hasPreviousButton"> + </button> + <button class="button button-icon button-clear icon ion-ios-help-outline visible-xs" + ng-if="slideBehavior.helpAnchor" + ng-click="showHelpModal(slideBehavior.helpAnchor)"> + </button> + + <h1 class="title" translate>ACCOUNT.CERTIFICATION_MODAL.CHECKLIST_TITLE</h1> + + <!-- next --> + <button class="button button-clear icon-right visible-xs" + ng-if="slideBehavior.hasNextButton" + ng-click="doNext()"> + <span translate>COMMON.BTN_NEXT</span> + <i class="icon ion-ios-arrow-right"></i> + </button> + <!-- accept --> + <button class="button button-clear icon-right visible-xs" + ng-class="{'button-text-stable': !isLicenseRead}" + ng-if="slideBehavior.hasAcceptButton" + ng-click="isLicenseRead ? doNext() : undefined"> + <span translate>ACCOUNT.NEW.BTN_ACCEPT</span> + <i class="icon ion-ios-arrow-right"></i> + </button> + <!-- send --> + <button class="button button-clear icon-right visible-xs" + ng-if="slideBehavior.hasSendButton" + ng-click="doNewAccount()"> + <i class="icon ion-android-send"></i> + </button> + </ion-header-bar> + + + <!-- CONTENT --> + <ion-content class="has-header" scroll="true"> + + <div class="padding text-center" ><b> + {{ identity.uid }} - {{:rebind:identity.pubkey|formatPubkey: {full: true, checksum: formData.checksum} }} + </b></div> + + <div class="padding" translate>ACCOUNT.CERTIFICATION_MODAL.INFOS</div> + + <div class="card padding"> + <div class="row nowrap row-center" + ng-repeat="check in cert_checklist" + ng-include="::'templates/wot/item_checklist_certification.html'"> + </div> + </div> + + + <div class="padding text-right"> + + <button class="button button-clear button-dark ink hidden-xs" ng-click="closeModal()" type="button" translate> + COMMON.BTN_CANCEL + </button> + + <button class="button button-stable icon-right ink" + ng-if="formData.licenseUrl" + ng-click="showLicenseModal()"> + <i class="icon ion-document-text"></i> + {{'CURRENCY.VIEW.BTN_SHOW_LICENSE' | translate}} + </button> + + <button class="button button-positive icon-right ion-chevron-right ink" ng-click="verifyAnswers()" + type="button" translate> + ACCOUNT.CERTIFICATION_MODAL.BTN_ALL_CHECK + </button> + + </div> + </ion-content> +</ion-modal-view> \ No newline at end of file