This implements the attack described in Carlo Meijer, Roel Verdult, "Ciphertext-only Cryptanalysis on Hardened Mifare Classic Cards" in Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, 2015 It uses precomputed tables for many bitflip properties (not only two as in the paper) and is therefore quite efficient. To prevent failing it doesn't do differential analysis with several nonce bytes' Sum(a8) properties (each of them may be wrongly guessed) - instead it concentrates on one nonce byte and tries all Sum(a8) property guesses sequentially (ordered by probability). The brute force phase makes use of aczid's bit sliced brute forcer (https://github.com/aczid/crypto1_bs). Includes runtime CPU-detection to leverage modern (and old) SIMD instructions with a single executable.
1 line
2.0 MiB
1 line
2.0 MiB
糿瓿糿瓿糿瓿糿瓿糿瓿糿瓿瓿糿糿瓿瓿糿糿糿瓿糿瓿瓿糿糿瓿瓿糿瓿糿糿糿糿糿瓿糿瓿糿糿糿瓿瓿糿瓿糿瓿糿糿糿瓿糿糿糿糿糿糿糿糿瓿糿瓿糿瓿糿瓿糿瓿糿瓿糿瓿糿瓿糿糿瓿糿糿糿糿糿瓿糿糿糿糿糿糿瓿糿糿糿瓿糿瓿︼㠾︼〾︼〾︼瓿㠾︼糿︼〾︼㠾︼〾︼瓿︼〾︼㠾︼〾︼㠾︼〾㠾︼〾㠾︼㠾︼〾糿︼瓿㠾︼糿︼〾︼㠾︼〾︼㠾︼〾︼㠾︼〾︼㠾︼〾㠾︼瓿︼糿︼〾㠾︼瓿︼糿︼〾︼〾㠾㠾︼糿︼〾︼〾㠾㠾︼㠾︼〾︼㠾︼㠾︼瓿︼㠾㠾︼㠾︼㠾︼糿︼〾︼糿︼瓿㠾︼瓿︼糿︼〾︼㠾︼〾︼㠾︼〾︼㠾︼〾︼㠾︼〾︼瓿糿㠾︼糿︼〾︼㠾︼〾︼瓿︼〾︼㠾︼〾︼㠾︼〾︼〾㠾㠾︼糿︼〾︼〾㠾㠾︼㠾︼〾︼瓿糿㠾︼糿︼〾︼瓿糿㠾︼糿︼〾泯泯泯泯泯擯泯擯泯擯泯泯泯瓿擯泯瓿泯擯泯泯泯泯泯擯糿泯泯瓿泯糿泯泯泯擯泯泯泯擯泯擯泯泯擯泯泯泯擯擯泯擯泯擯泯糿泯泯糿泯泯瓿泯擯⠮⠮⠮⠮⠮擯泯⠮擯泯︼㠾︼⠮︼〾⠮︼瓿泯︼㠾︼⠮︼〾︼⠮︼〾⠮⠮擯︼⠮︼〾⠮泯擯擯⠮擯泯泯泯泯泯泯擯泯擯糿瓿泯泯泯擯擯泯擯泯擯糿泯泯糿泯擯糿泯泯瓿泯糿泯泯糿瓿泯泯糿瓿泯擯泯擯泯擯泯擯泯擯泯擯泯擯泯瓿擯泯瓿泯擯泯泯泯泯泯擯糿泯泯瓿泯糿泯泯泯擯泯泯泯擯泯擯⠮擯⠮︼瓿泯⠮擯⠮⠮︼⠮︼〾︼瓿︼⠮︼〾⠮︼泯︼〾︼瓿擯⠮︼瓿泯〼㠼〼〼〼㠼〼〼〼㠼〼〼〼㠼〼〼瓿濿㠼〼濿瓿濿〼濿糿濿〼〼瓿濿㠼〼濿瓿濿〼濿糿濿〼〼〼〼㠼㠼〼濿糿濿〼〼〼〼㠼㠼〼㠼〼〼︼㠾︼㠾㠼㠼㠼㠼㠾〼濿瓿濿︼糿︼〾㠼㠼㠾㠼㠼㠼㠼㠼㠾︼糿〼濿糿濿〼〼㠾㠼濿糿濿︼糿︼㠾㠾〼濿瓿濿︼糿︼〾瓿濿㠼〼濿瓿濿〼濿糿濿〼〼瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿糿濿瓿瓿濿瓿濿糿瓿瓿濿糿濿瓿濿瓿濿糿瓿瓿糿瓿濿瓿濿糿瓿瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿瓿濿糿濿糿濿瓿瓿濿瓿濿瓿濿瓿濿糿濿糿濿瓿濿糿濿瓿濿瓿濿瓿糿濿瓿瓿濿瓿濿瓿糿濿瓿瓿濿瓿濿㠼㠼㠼㠼㠼㠼㠼㠼〼㠼〼〼〼㠼〼〼糿濿㠼㠼濿糿濿〼濿糿濿〼〼糿濿㠼㠼濿糿濿㠼濿糿濿㠼㠼︼㠾㠼㠾︼糿︼㠾〼〼㠾㠼〼㠼〼〼㠼㠼㠼㠼㠼㠼㠼㠼瓿濿㠼〼濿瓿濿〼濿糿濿〼〼㠼㠼㠼㠼㠼㠼㠼㠼糿濿㠼㠼濿糿濿〼濿糿濿〼〼糿濿㠼㠼濿糿濿㠼濿糿濿㠼㠼瓿濿㠼〼濿瓿濿〼濿糿濿〼〼瓿濿㠼〼濿瓿濿〼濿糿濿〼〼︼㠾︼㠾㠼㠼㠼㠼︼㠾〼〼︼㠾︼〾㠼濿糿濿糿㠼㠼濿糿濿㠼㠼︼㠾︼㠾〼㠼〼〼㠾㠼濿糿濿︼糿︼㠾︼㠾〼〼︼㠾︼〾〼㠼〼〼〼㠼〼〼︼㠾㠼㠾︼糿︼〾㠼㠼㠾㠼㠼㠼㠼㠼︼糿糿濿㠾︼糿︼㠾〼濿瓿濿糿㠼〼濿糿濿〼〼擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣泫擣擫擫擫泣擣泣泫擣擫擫擫泣擣泣瓿濿糿濿擫泣擣泣瓿濿泫擣瓿濿瓿濿泫擣瓿擫擫泣擣泣瓿濿糿濿擫泣擣泣瓿濿泫擣瓿濿瓿濿瓿濿泫擣瓿濿瓿濿擫泫泫擣擫泣擣泣泯擯擫泫泫擣擫泣擣泣泯擫擯糿擫泣擣泣泯瓿瓿濿泫擣瓿濿瓿濿擫泫泫擣擫泣擣泣泯擫擫泣擣泣泯擫擯泯擫擯泫擣擫擫擫泣擣泣泫泫泫泫泫泫泫泫泫泫泫泫泫泫泫泫擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣糿濿泫瓿瓿濿瓿濿泫泫糿泫泫泫泫泫泯泯擫泫泫擣擫泣擣泣泯泫泯泯擫泣擣泣泯擯擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣糿濿糿濿泫泫泫泫糿濿泫泫糿濿糿濿泫擣瓿擫擫泣擣泣糿濿糿濿泫泫泫泫瓿濿泫擣瓿濿瓿濿糿濿泫泫糿濿糿濿泫泫泫泫泫泫泫泫糿濿泫瓿瓿濿瓿濿泫泫糿泫泫泫泫泫糿濿擫瓿瓿濿瓿濿泫擣瓿擫擫泣擣泣瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿糿濿瓿瓿瓿濿瓿濿糿濿瓿瓿瓿濿瓿濿瓿糿濿糿瓿瓿濿瓿濿糿糿濿瓿濿糿濿瓿濿瓿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿瓿瓿瓿濿瓿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿糿瓿瓿濿瓿濿糿濿糿糿糿濿糿濿糿濿瓿瓿瓿濿瓿濿糿濿瓿瓿瓿濿瓿濿︼㠾︼〾〼㠼〼〼︼㠾〼〼︼㠾︼〾〼濿瓿濿糿㠼〼濿糿濿〼〼︼㠾︼〾〼㠼〼〼㠾〼濿瓿濿︼糿︼〾︼㠾〼〼︼㠾︼〾〼㠼〼〼〼㠼〼〼︼〾㠼㠾︼糿︼〾〼〼㠾㠼〼㠼〼〼︼瓿糿濿㠾︼糿︼〾〼濿瓿濿糿㠼〼濿糿濿〼〼〼㠼〼〼〼㠼〼〼〼㠼〼〼〼㠼〼〼瓿濿㠼〼濿瓿濿〼濿糿濿〼〼瓿濿㠼〼濿瓿濿〼濿糿濿〼〼〼〼㠼㠼〼濿糿濿〼〼〼〼㠼㠼〼㠼〼〼︼㠾︼㠾㠼㠼㠼㠼㠾〼濿瓿濿︼糿︼〾㠼㠼㠾㠼㠼㠼㠼㠼㠾︼糿〼濿糿濿〼〼㠾㠼濿糿濿︼糿︼㠾㠾〼濿瓿濿︼糿︼〾瓿濿㠼〼濿瓿濿〼濿糿濿〼〼〼㠼〼〼〼㠼〼〼〼㠼〼〼〼㠼〼〼〼濿瓿濿糿濿㠼〼濿糿濿〼〼︼㠾︼〾〼㠼〼〼㠾〼濿瓿濿︼糿︼〾︼㠾〼〼︼㠾︼〾〼㠼〼〼〼㠼〼〼〼〼㠼㠼〼濿糿濿〼〼〼〼㠼㠼〼㠼〼〼〼濿瓿濿糿濿㠼〼濿糿濿〼〼〼濿瓿濿糿濿㠼〼濿糿濿〼〼泫泫泫泫泫泫泫泫泫泫泫泫泫泫泫泫擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣泫泫泫擫擫泣擣泣泫泫泫泫泫泫泫泫糿泯瓿濿泫擣瓿濿瓿濿泯糿泯糿擫泣擣泣泯瓿瓿濿泫擣瓿濿瓿濿擫泫泫擣擫泣擣泣泫泫泫泫泫泫泫泫泫泫泫泫泫泫泫泫泫擣擫擫擫泣擣泣糿濿糿濿泫泫泫泫瓿濿泫擣瓿濿瓿濿糿濿泫泫糿濿糿濿泫泫泫泫泫泫泫泫泫泫泫擫擫泣擣泣泫泫泫泫泫泫泫泫泫擣擫擫擫泣擣泣泫擣擫擫擫泣擣泣泯泯泫泫泫泫泫泫泫泫泯擫泣擣泣泯擯糿泫瓿泫泫糿泫泫泫泫泫泯泯擫泫泫擣擫泣擣泣泯泫泯泯擫泣擣泣泯擯擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣糿泯糿濿泫泫糿濿糿濿泯瓿擯糿泫泫泫泫泯瓿糿濿泫泫糿濿糿濿泫泫泫泫泫泫泫泫糿瓿瓿濿瓿濿泯糿泯糿擫瓿泫擣瓿擫擫泣擣泣擯擯擯擯︼〾︼︼〾︼瓿擯︼〾︼︼〾︼︼〾擯︼︼〾擯擯擯擯擯泯擯泯擯擯擯擯擯糿瓿泯擯擯擯擯擯擯擯擯糿擯泯瓿擯擯糿擯擯瓿泯瓿泯擯糿瓿泯擯瓿瓿擯擯瓿瓿瓿瓿瓿瓿瓿瓿瓿瓿瓿瓿瓿瓿瓿瓿瓿糿瓿糿瓿瓿瓿瓿瓿糿糿瓿糿瓿糿瓿瓿瓿瓿瓿︼〾︼〾︼〾︼瓿〾︼瓿︼〾︼〾︼〾︼瓿︼〾︼〾︼〾︼〾︼〾〾︼〾〾︼〾︼〾瓿︼瓿〾︼瓿︼〾擯擯擯擯︼〾︼︼〾︼瓿擯︼〾︼︼〾︼︼〾⠮擯︼⠮︼〾⠮擯擯擯擯擯擯擯擯擯擯擯擯擯瓿瓿擯擯擯擯擯擯擯擯擯瓿擯擯瓿擯擯瓿擯擯瓿擯瓿擯擯瓿瓿擯擯瓿瓿擯擯⠮⠮⠮擯擯⠮擯泯︼︼〾︼瓿︼︼〾⠮⠮擯擯︼㠾︼︼〾︼⠮︼〾⠮⠮擯擯⠮擯泯擯擯擯擯⠮擯⠮︼瓿泯擯︼⠮︼〾︼瓿︼⠮︼〾⠮︼擯︼〾︼瓿擯︼瓿擯瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿濿瓿濿瓿瓿瓿瓿濿瓿濿瓿瓿濿瓿濿瓿濿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿瓿瓿瓿瓿瓿瓿濿瓿瓿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿糿濿瓿瓿濿瓿濿糿瓿瓿濿瓿濿瓿濿瓿濿糿瓿瓿瓿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿瓿濿瓿濿瓿濿瓿濿瓿濿糿濿瓿濿糿濿瓿濿瓿濿瓿糿濿瓿瓿濿瓿濿瓿瓿濿瓿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿瓿濿瓿瓿瓿濿瓿濿瓿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿濿瓿濿瓿濿糿濿瓿濿糿濿瓿濿瓿濿糿濿瓿瓿瓿濿瓿濿糿濿瓿瓿瓿濿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿濿瓿瓿瓿濿瓿濿︼〾︼〾〼〼〼〼︼〾〼〼︼〾︼〾〼濿瓿濿瓿〼〼濿瓿濿〼〼︼〾︼〾〼〼〼〼〾〼濿瓿濿︼瓿︼〾︼〾〼〼︼〾︼〾〼〼〼〼〼〼〼〼︼〾〼〾︼瓿︼〾〼〼〾〼〼〼〼〼︼瓿瓿濿〾︼瓿︼〾〼濿瓿濿瓿〼〼濿瓿濿〼〼︼〾︼〾︼〾︼〾︼〾︼〾︼〾︼〾〾︼瓿︼瓿︼〾〾︼瓿︼瓿︼〾︼〾〾〾︼瓿︼〾︼〾〾〾︼〾︼〾︼㠾︼〾︼瓿︼〾㠾︼㠾︼〾︼瓿︼〾︼瓿︼瓿〾︼瓿︼瓿︼〾︼〾︼〾︼〾︼〾︼〾︼〾︼〾︼〾︼瓿瓿〾︼瓿︼〾︼〾︼〾︼瓿︼〾︼〾︼〾︼〾︼〾︼〾〾〾︼瓿︼〾︼〾〾〾︼〾︼〾︼瓿瓿〾︼瓿︼〾︼瓿瓿〾︼瓿︼〾泯擯泯擯擯擯擯擯泯擯泯擯擯瓿擯擯瓿擯擯泯擯泯擯擯擯糿擯擯瓿泯瓿泯擯泯擯泯擯擯擯擯擯泯擯擯泯擯擯擯擯擯擯擯擯泯瓿擯泯瓿泯擯瓿擯擯擯擯擯擯︼〾︼︼〾︼瓿擯︼〾︼︼〾︼︼〾擯︼︼〾擯擯擯擯擯泯擯泯擯擯擯擯擯糿瓿泯擯擯擯擯擯擯擯擯糿擯泯瓿擯擯糿擯擯瓿泯瓿泯擯糿瓿泯擯瓿瓿擯擯擯擯擯擯擯擯擯擯擯擯擯擯擯瓿擯擯瓿擯擯泯擯泯擯擯擯糿擯擯瓿泯瓿泯擯泯擯泯擯擯擯擯擯擯︼瓿擯擯︼︼〾︼瓿︼︼〾︼擯︼〾︼瓿擯︼瓿擯〼〼〼〼〼〼〼〼〼〼〼〼〼〼〼〼瓿濿〼〼濿瓿濿〼濿瓿濿〼〼瓿濿〼〼濿瓿濿〼濿瓿濿〼〼〼〼〼〼〼濿瓿濿〼〼〼〼〼〼〼〼〼〼︼㠾︼〾〼㠼〼〼〾〼濿瓿濿︼瓿︼〾〼〼〾㠼〼㠼〼〼㠾︼瓿〼濿瓿濿〼〼㠾〼濿瓿濿︼糿︼〾〾〼濿瓿濿︼瓿︼〾瓿濿〼〼濿瓿濿〼濿瓿濿〼〼瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿瓿濿瓿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿濿瓿濿瓿瓿瓿瓿瓿濿瓿濿瓿瓿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿濿瓿瓿濿瓿瓿濿瓿濿瓿瓿濿瓿瓿濿瓿濿〼㠼〼〼〼㠼〼〼〼〼〼〼〼〼〼〼瓿濿㠼〼濿瓿濿〼濿瓿濿〼〼瓿濿㠼〼濿瓿濿〼濿糿濿〼〼︼〾〼㠾︼糿︼〾〼〼〾〼〼〼〼〼〼㠼〼〼〼㠼〼〼瓿濿〼〼濿瓿濿〼濿瓿濿〼〼〼〼〼㠼〼㠼〼〼瓿濿㠼〼濿瓿濿〼濿瓿濿〼〼瓿濿㠼〼濿瓿濿〼濿糿濿〼〼瓿濿〼〼濿瓿濿〼濿瓿濿〼〼瓿濿〼〼濿瓿濿〼濿瓿濿〼〼︼㠾︼〾〼㠼〼〼︼〾〼〼︼〾︼〾〼濿瓿濿瓿㠼〼濿糿濿〼〼︼㠾︼〾〼〼〼〼㠾〼濿瓿濿︼糿︼〾︼〾〼〼︼〾︼〾〼〼〼〼〼〼〼〼︼〾㠼〾︼瓿︼〾〼〼〾㠼〼㠼〼〼︼瓿瓿濿㠾︼糿︼〾〼濿瓿濿瓿〼〼濿瓿濿〼〼擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣泫擣擫擫擫泣擣泣泫擣擫擫擫泣擣泣瓿濿糿濿擫泣擣泣瓿濿泫擣瓿濿瓿濿泫擣瓿擫擫泣擣泣瓿濿糿濿擫泣擣泣瓿濿泫擣瓿濿瓿濿瓿濿泫擣瓿濿瓿濿擫泫泫擣擫泣擣泣泯擯擫泫泫擣擫泣擣泣泯擫擯糿擫泣擣泣泯瓿瓿濿泫擣瓿濿瓿濿擫泫泫擣擫泣擣泣泯擫擫泣擣泣泯擫擯泯擫擯泫擣擫擫擫泣擣泣泫泫泫泫泫泫泫泫泫泫泫泫泫泫泫泫擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣糿濿泫瓿瓿濿瓿濿泫泫糿泫泫泫泫泫泯泯擫泫泫擣擫泣擣泣泯泫泯泯擫泣擣泣泯擯擫泫泫擣擫泣擣泣擫泫泫擣擫泣擣泣糿濿糿濿泫泫泫泫糿濿泫泫糿濿糿濿泫擣瓿擫擫泣擣泣糿濿糿濿泫泫泫泫瓿濿泫擣瓿濿瓿濿糿濿泫泫糿濿糿濿泫泫泫泫泫泫泫泫糿濿泫瓿瓿濿瓿濿泫泫糿泫泫泫泫泫糿濿擫瓿瓿濿瓿濿泫擣瓿擫擫泣擣泣瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿瓿濿糿濿瓿濿瓿濿糿濿瓿瓿瓿濿瓿濿糿濿瓿瓿瓿濿瓿濿瓿糿濿糿瓿瓿濿瓿濿糿糿濿瓿濿糿濿瓿濿瓿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿瓿瓿瓿濿瓿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿糿濿糿瓿瓿濿瓿濿糿濿糿糿糿濿糿濿糿濿瓿瓿瓿濿瓿濿糿濿瓿瓿瓿濿瓿濿︼㠾︼〾〼㠼〼〼︼㠾〼〼︼㠾︼〾〼濿瓿濿糿㠼〼濿糿濿〼〼︼㠾︼〾〼㠼〼〼㠾〼濿瓿濿︼糿︼〾︼㠾〼〼︼㠾︼〾〼㠼〼〼〼㠼〼〼︼〾㠼㠾︼糿︼〾〼〼㠾㠼〼㠼〼〼︼瓿糿濿㠾︼糿︼〾〼濿瓿濿糿㠼〼濿糿濿〼〼︼㠾︼〾︼㠾︼〾︼㠾︼〾︼㠾︼〾㠾︼瓿︼糿︼〾㠾︼瓿︼糿︼〾︼〾㠾㠾︼糿︼〾︼〾㠾㠾︼㠾︼〾︼㠾︼㠾︼瓿︼㠾㠾︼㠾︼㠾︼糿︼〾︼糿︼瓿㠾︼瓿︼糿︼〾︼㠾︼〾︼㠾︼〾︼㠾︼〾︼㠾︼〾︼瓿糿㠾︼糿︼〾︼㠾︼〾︼瓿︼〾︼㠾︼〾︼㠾︼〾︼〾㠾㠾︼糿︼〾︼〾㠾㠾︼㠾︼〾︼瓿糿㠾︼糿︼〾︼瓿糿㠾︼糿︼〾泯泯泯泯泯擯泯擯泯擯泯泯泯瓿擯泯瓿泯擯泯泯泯泯泯擯糿泯泯瓿泯糿泯泯泯擯泯泯泯擯泯擯泯泯擯泯泯泯擯擯泯擯泯擯泯糿泯泯糿泯泯瓿泯擯(⠨⠨ |