<?xml version="1.0" ?><!DOCTYPE TS><TS language="id" version="2.1">
<context>
    <name>AboutDialog</name>
    <message>
        <source>About Flacon</source>
        <translation>Tentang Flacon</translation>
    </message>
    <message>
        <source>About</source>
        <translation>Tentang</translation>
    </message>
    <message>
        <source>Author</source>
        <translation>Pembuat</translation>
    </message>
    <message>
        <source>Thanks</source>
        <translation>Terimakasih</translation>
    </message>
    <message>
        <source>Translations</source>
        <translation>Terjemahan</translation>
    </message>
    <message>
        <source>External programs</source>
        <translation>Program eksternal</translation>
    </message>
    <message>
        <source>Homepage: %1</source>
        <translation>Halaman utama: %1</translation>
    </message>
    <message>
        <source>License: %1</source>
        <translation>Lisensi: %1</translation>
    </message>
    <message>
        <source>Special thanks to:</source>
        <translation>Ucapan terimakasih untuk:</translation>
    </message>
    <message>
        <source>Flacon uses external programs. Many thanks to their authors!</source>
        <translation>Flacon menggunakan program pihak ketiga. Terimakasih banyak kepada para pengembang! </translation>
    </message>
    <message>
        <source>Extracts individual tracks from one big audio file containing the entire album.</source>
        <translation>Ekstrak setiap lagu dari satu file audio besar yang berisi seluruh album.</translation>
    </message>
    <message>
        <source>Copyright: %1-%2 %3</source>
        <translation>Copyright: %1-%2 %3</translation>
    </message>
    <message>
        <source>Bug tracker %1</source>
        <comment>About dialog, About tab</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Flacon is translated into many languages thanks to the work of the Flacon translation teams on Transifex.</source>
        <translation>Flacon telah diterjemahkan kedalam banyak bahasa, terimakasih atas kerja keras Tim Penerjemah Flacon dalam Transifex</translation>
    </message>
    <message>
        <source>WavPack support patch</source>
        <comment>Thanks on the about page</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Packaging, testing</source>
        <comment>Thanks on the about page</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Improvements in the UI</source>
        <comment>Thanks on the about page</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Flacon account on github.com</source>
        <comment>Thanks on the about page</comment>
        <translation>Akun Flacon di github.com</translation>
    </message>
    <message>
        <source>Icon for application</source>
        <comment>Thanks on the about page</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Icons for application</source>
        <comment>Thanks on the about page</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>AddProfileDialog</name>
    <message>
        <source>To create a profile, fill out the following information:</source>
        <extracomment>Add profile dialog, capton</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>New profile name:</source>
        <extracomment>Add profile dialog, profile name label</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Audio format:</source>
        <extracomment>Add profile dialog, audio format label</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Create a profile</source>
        <extracomment>Add profile dialog title</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Create a profile</source>
        <comment>Button caption</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>CodePageComboBox</name>
    <message>
        <source>Auto detect</source>
        <comment>Codepage auto detection</comment>
        <translation>Deteksi otomatis</translation>
    </message>
    <message>
        <source>Unicode (UTF-8)</source>
        <translation>Unicode (UTF-8)</translation>
    </message>
    <message>
        <source>Unicode (UTF-16LE)</source>
        <translation>Unicode (UTF-16LE)</translation>
    </message>
    <message>
        <source>Unicode (UTF-16BE)</source>
        <translation>Unicode (UTF-16BE)</translation>
    </message>
    <message>
        <source>Cyrillic (Win-1251)</source>
        <translation>Cyrillic (Win-1251)</translation>
    </message>
    <message>
        <source>Cyrillic (CP-866)</source>
        <translation>Cyrillic (CP-866)</translation>
    </message>
    <message>
        <source>Latin-1 (ISO-8859-1)</source>
        <translation>Latin-1 (ISO-8859-1)</translation>
    </message>
    <message>
        <source>Latin-2 (ISO-8859-2)</source>
        <translation>Latin-2 (ISO-8859-2)</translation>
    </message>
    <message>
        <source>Latin-3 (ISO-8859-3)</source>
        <translation>Latin-3 (ISO-8859-3)</translation>
    </message>
    <message>
        <source>Latin-4 (ISO-8859-4)</source>
        <translation>Latin-4 (ISO-8859-4)</translation>
    </message>
    <message>
        <source>Latin-5 (ISO-8859-5)</source>
        <translation>Latin-5 (ISO-8859-5)</translation>
    </message>
    <message>
        <source>Latin-6 (ISO-8859-6)</source>
        <translation>Latin-6 (ISO-8859-6)</translation>
    </message>
    <message>
        <source>Latin-7 (ISO-8859-7)</source>
        <translation>Latin-7 (ISO-8859-7)</translation>
    </message>
    <message>
        <source>Latin-8 (ISO-8859-8)</source>
        <translation>Latin-8 (ISO-8859-8)</translation>
    </message>
    <message>
        <source>Latin-9 (ISO-8859-9)</source>
        <translation>Latin-9 (ISO-8859-9)</translation>
    </message>
    <message>
        <source>Latin-10 (ISO-8859-10)</source>
        <translation>Latin-10 (ISO-8859-10)</translation>
    </message>
    <message>
        <source>Latin-13 (ISO-8859-13)</source>
        <translation>Latin-13 (ISO-8859-13)</translation>
    </message>
    <message>
        <source>Latin-14 (ISO-8859-14)</source>
        <translation>Latin-14 (ISO-8859-14)</translation>
    </message>
    <message>
        <source>Latin-15 (ISO-8859-15)</source>
        <translation>Latin-15 (ISO-8859-15)</translation>
    </message>
    <message>
        <source>Latin-16 (ISO-8859-16)</source>
        <translation>Latin-16 (ISO-8859-16)</translation>
    </message>
    <message>
        <source>Windows 1250</source>
        <translation>Windows 1250</translation>
    </message>
    <message>
        <source>Windows 1252</source>
        <translation>Windows 1252</translation>
    </message>
    <message>
        <source>Windows 1253</source>
        <translation>Windows 1253</translation>
    </message>
    <message>
        <source>Windows 1254</source>
        <translation>Windows 1254</translation>
    </message>
    <message>
        <source>Windows 1255</source>
        <translation>Windows 1255</translation>
    </message>
    <message>
        <source>Windows 1256</source>
        <translation>Windows 1256</translation>
    </message>
    <message>
        <source>Windows 1257</source>
        <translation>Windows 1257</translation>
    </message>
    <message>
        <source>Windows 1258</source>
        <translation>Windows 1258</translation>
    </message>
</context>
<context>
    <name>ConfigDialog</name>
    <message>
        <source>Preferences</source>
        <translation>Setelan</translation>
    </message>
    <message>
        <source>General configuration</source>
        <translation>Konfigurasi umum</translation>
    </message>
    <message>
        <source>Thread count:</source>
        <translation>Jumlah antrian:</translation>
    </message>
    <message>
        <source>The number of threads in the conversion process.</source>
        <translation>Jumlah antrian dalam proses konversi.</translation>
    </message>
    <message>
        <source>Rescan</source>
        <translation>Pindai ulang</translation>
    </message>
    <message>
        <source>Full path of the external applications</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>General</source>
        <extracomment>Config fialog tab title</extracomment>
        <translation>Umum</translation>
    </message>
    <message>
        <source>Programs</source>
        <extracomment>Config fialog tab title</extracomment>
        <translation>Program</translation>
    </message>
    <message>
        <source>Select temporary directory</source>
        <translation>Pilih direktori lama</translation>
    </message>
    <message>
        <source> px</source>
        <translation>px</translation>
    </message>
    <message>
        <source>Temporary directory:</source>
        <translation>Direktori sementara:</translation>
    </message>
    <message>
        <source>Default codepage:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Cover image</source>
        <translation>Gambar sampul</translation>
    </message>
    <message>
        <source>Do not copy image</source>
        <translation>Tidak dapat menyalin gambar</translation>
    </message>
    <message>
        <source>Update</source>
        <extracomment>Preferences tab title </extracomment>
        <translation>Memperbarui</translation>
    </message>
    <message>
        <source>Automatically check for updates</source>
        <translation>Otomatis mengecek pembaruan</translation>
    </message>
    <message>
        <source>Check now</source>
        <translation>Cek sekarang</translation>
    </message>
    <message>
        <source>Last check was %1</source>
        <comment>Information about last update</comment>
        <translation>Cek terakhir pada %1</translation>
    </message>
    <message>
        <source>Never checked</source>
        <comment>Information about last update</comment>
        <translation>Jangan pernah mengecek</translation>
    </message>
    <message>
        <source>Keep original image size</source>
        <translation>Pertahankan ukuran gambar original</translation>
    </message>
    <message>
        <source>Resize if image size greater than</source>
        <translation>Sesuaikan ketika gambar berukuran besar</translation>
    </message>
    <message>
        <source>Audio formats</source>
        <extracomment>Config fialog tab title</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>+</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>-</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Are you sure you want to delete the profile "%1"?</source>
        <comment>Message box text</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Delete the profile</source>
        <comment>Button caption</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1:</source>
        <comment>Template for the program name label on the preferences form. %1 is a program name.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>CDDB server: </source>
        <comment>Preferences dialog label</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>ConfigPage_Mp3</name>
    <message>
        <source>VBR medium</source>
        <translation>VBR medium</translation>
    </message>
    <message>
        <source>VBR standard</source>
        <translation>VBR standard</translation>
    </message>
    <message>
        <source>VBR extreme</source>
        <translation>VBR ekstrem</translation>
    </message>
    <message>
        <source>VBR quality</source>
        <translation>VBR kualitas</translation>
    </message>
    <message>
        <source>CBR insane</source>
        <translation>CBR super</translation>
    </message>
    <message>
        <source>CBR kbps</source>
        <translation>CBR kbps</translation>
    </message>
    <message>
        <source>ABR kbps</source>
        <translation>ABR kbps</translation>
    </message>
    <message>
        <source>
VBR medium

By using a medium Variable BitRate, this preset should provide near transparency to most people and most music.

VBR standard

By using a standard Variable BitRate, this preset should generally be transparent to most people on most music and is already quite high in quality.

VBR extreme

By using the highest possible Variable BitRate, this preset provides slightly higher quality than the standard mode if you have extremely good hearing or high-end audio equipment.

VBR quality

This Variable BitRate option lets you specify the output quality.

CBR insane

If you must have the absolute highest quality with no regard to file size, you'll achieve it by using this Constant BitRate.

CBR kbps

Using this Constant BitRate preset will usually give you good quality at a specified bitrate.

ABR kbps

Using this Average BitRate preset will usually give you higher quality than the Constant BitRate option for a specified bitrate.

      </source>
        <comment>Tooltip for the Mp3 presets combobox on preferences dialog.</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>ConfigPage_Opus</name>
    <message>
        <source>Opus encoding configuration</source>
        <translation>Konfigurasi kode Opus</translation>
    </message>
    <message>
        <source>Bitrate type:</source>
        <translation>Tipe bitrate:</translation>
    </message>
    <message>
        <source>Bitrate:</source>
        <translation>Bitrate:</translation>
    </message>
    <message>
        <source>Sets the target bitrate in kb/s (6-256 per channel).

In VBR mode, this sets the average rate for a large and diverse collection of audio.

In CBR mode, it sets the specific output bitrate.
</source>
        <translation>Set target bitrate dalam kb/s (2-256 per chennel)

Dalam mode VBR, ini menetapkan rata - rata bitrate untuk </translation>
    </message>
    <message>
        <source>
VBR - variable bitrate

Use variable bitrate encoding (recommended). In VBR mode, the bitrate may go up and down freely depending on the content ensure quality consistency.

CVBR - constrained variable bitrate

Use constrained variable bitrate encoding. Outputs to a specific bitrate. This mode is analogous to CBR in AAC/MP3 encoders and managed mode in vorbis coders. This delivers less consistent quality than VBR mode but consistent bitrate.
</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>VBR - variable bitrate</source>
        <comment>Opus encoding mode</comment>
        <translation>VBR - variable bitrate (Statis)</translation>
    </message>
    <message>
        <source>CVBR - constrained variable bitrate</source>
        <comment>Opus encoding mode</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>Converter</name>
    <message>
        <source>Conversion is not possible:</source>
        <translation>Konversi tidak memungkinkan:</translation>
    </message>
</context>
<context>
    <name>CoverDialog</name>
    <message>
        <source>Select cover image</source>
        <translation>Pilih gambar cover</translation>
    </message>
    <message>
        <source>Without cover image</source>
        <translation>Tanpa gambar cover</translation>
    </message>
</context>
<context>
    <name>CueDiscSelectDialog</name>
    <message>
        <source>Select disc</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>The CUE file contains information about multiple discs. Which disc do you want to use?</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1 [ disc %2 ]</source>
        <comment>Cue disc select dialog, string like 'The Wall [disc 1]'</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>Decoder</name>
    <message>
        <source>I can't write file %1:
%2</source>
        <comment>Error string, %1 is a filename, %2 error message</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>Disc</name>
    <message>
        <source>Audio file not set.</source>
        <translation>Berkas audio tidak diset</translation>
    </message>
    <message>
        <source>Cue file not set.</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Audio file shorter than expected from CUE sheet.</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>A maximum of %1-bit per sample is supported by this format. This value will be used for encoding.</source>
        <comment>Warning message</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>A maximum sample rate of %1 is supported by this format. This value will be used for encoding.</source>
        <comment>Warning message</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>DiscPipeline</name>
    <message>
        <source>I can't rename file:
%1 to %2
%3</source>
        <translation>Tidak dapat menamai:
%1 to %2
%3</translation>
    </message>
</context>
<context>
    <name>Encoder</name>
    <message>
        <source>Encoder error:
</source>
        <translation>Pengkodean eror:
</translation>
    </message>
    <message>
        <source>I can't read %1 file</source>
        <comment>Encoder error. %1 is a file name.</comment>
        <translation>Tidak dapat membaca %1 berkas</translation>
    </message>
    <message>
        <source>I can't rename file:
%1 to %2
%3</source>
        <translation>Tidak dapat menamai:
%1 to %2
%3</translation>
    </message>
</context>
<context>
    <name>EncoderConfigPage</name>
    <message>
        <source>Sets encoding quality, between %1 (lowest) and %2 (highest).</source>
        <translation>Tentukan kualitas encode, antara %1 (rendah) dan %2 (tinggi)</translation>
    </message>
    <message>
        <source>Sets compression level, between %1 (fastest) and %2 (highest compression).
This only affects the file size. All settings are lossless.</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1 kbps</source>
        <translation>%1 kbps</translation>
    </message>
    <message>
        <source>Default</source>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>Gain</name>
    <message>
        <source>Gain error:
</source>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>MainWindow</name>
    <message>
        <source>Flacon</source>
        <translation>Flacon</translation>
    </message>
    <message>
        <source>Result Files</source>
        <translation>Berkas Hasil</translation>
    </message>
    <message>
        <source>Directory:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Pattern:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Format:</source>
        <translation>Format:</translation>
    </message>
    <message>
        <source>Output format</source>
        <comment>Main form tooltip for "Format" edit</comment>
        <translation>Format keluaran</translation>
    </message>
    <message>
        <source>Tags</source>
        <translation>Tag</translation>
    </message>
    <message>
        <source>Genre:</source>
        <translation>Aliran:</translation>
    </message>
    <message>
        <source>Year:</source>
        <translation>Tahun:</translation>
    </message>
    <message>
        <source>Artist:</source>
        <translation>Artis:</translation>
    </message>
    <message>
        <source>Album:</source>
        <translation>Album:</translation>
    </message>
    <message>
        <source>Start num:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Disc ID:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Codepage:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>&File</source>
        <translation>&Berkas</translation>
    </message>
    <message>
        <source>&Settings</source>
        <translation>&Setelan</translation>
    </message>
    <message>
        <source>&Help</source>
        <translation>&Bantuan</translation>
    </message>
    <message>
        <source>Add CUE or audio file</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Ctrl+O</source>
        <translation>Ctrl+O</translation>
    </message>
    <message>
        <source>Convert</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Start conversion process</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Ctrl+W</source>
        <translation>Ctrl+W</translation>
    </message>
    <message>
        <source>Abort</source>
        <translation>Batalkan</translation>
    </message>
    <message>
        <source>Abort conversion process</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Exit</source>
        <translation>Keluar</translation>
    </message>
    <message>
        <source>Ctrl+Q</source>
        <translation>Ctrl+Q</translation>
    </message>
    <message>
        <source>Program preferences</source>
        <translation>Pengaturan program</translation>
    </message>
    <message>
        <source>Ctrl+Del</source>
        <translation>Ctrl+Del</translation>
    </message>
    <message>
        <source>Configure encoder</source>
        <translation>Konfigurasi pengkodean</translation>
    </message>
    <message>
        <source>Get from CDDB</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Get album information from CDDB</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Ctrl+I</source>
        <translation>Ctrl+I</translation>
    </message>
    <message>
        <source>Recursive album search</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Some albums will not be converted, they contain errors.
Do you want to continue?</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1 files</source>
        <comment>OpenFile dialog filter line, like "WAV files"</comment>
        <translation>%1 berkas</translation>
    </message>
    <message>
        <source>All supported formats</source>
        <comment>OpenFile dialog filter line</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>All files</source>
        <comment>OpenFile dialog filter line like "All files"</comment>
        <translation>Semua berkas</translation>
    </message>
    <message>
        <source>Select audio file</source>
        <comment>OpenFile dialog title</comment>
        <translation>Pilih berkas audio</translation>
    </message>
    <message>
        <source>Select directory</source>
        <translation>Pilih direktori</translation>
    </message>
    <message>
        <source>
Tokens start with %. You can use the following tokens:

%n	  - Track number
        %N	  - Total number of tracks

%a	  - Artist
        %A	  - Album title

%t	  - Track title
        %y	  - Year

%g	  - Genre

If you surround sections of text that contain a token with braces, these sections will be hidden if the token is empty.</source>
        <comment>Main form tooltip for "Pattern" edit</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>You can browse to the destination directory. You can also input it manually.

If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source>
        <comment>Main form tooltip for "Directory" edit</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Delete current pattern from history</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Preferences</source>
        <translation>Setelan</translation>
    </message>
    <message>
        <source>About Flacon</source>
        <translation>Tentang Flacon</translation>
    </message>
    <message>
        <source>Remove current directory from history</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Get data from CDDB</source>
        <comment>context menu</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Select CUE file</source>
        <comment>OpenFile dialog title</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Add CUE or audio file</source>
        <comment>OpenFile dialog title</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Edit all tags…</source>
        <comment>Button text</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Check for Updates…</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Edit tags…</source>
        <comment>context menu</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Select another audio file…</source>
        <comment>context menu</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Select another CUE file…</source>
        <comment>context menu</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Album performer:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Convert selected</source>
        <extracomment>Main menu item</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Start conversion process for the selected tracks</source>
        <extracomment>Main menu item tooltip</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Ctrl+Shift+W</source>
        <extracomment>Main menu item shortcut</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Remove disc</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Remove disc from project</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Ctrl+Shift+O</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Add disc…</source>
        <comment>Main menu item</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Add disc</source>
        <comment>Toolbar item</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Add folder…</source>
        <comment>Main menu item</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Add folder</source>
        <comment>Toolbar item</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>MultiValuesComboBox</name>
    <message>
        <source>Multiple values</source>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>MultiValuesLineEdit</name>
    <message>
        <source>Multiple values</source>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>MultiValuesSpinBox</name>
    <message>
        <source>Multiple values</source>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>OutDirButton</name>
    <message>
        <source>Select directory…</source>
        <comment>Menu item for output direcory button</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Standard music location</source>
        <comment>Menu item for output direcory button</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Desktop</source>
        <comment>Menu item for output direcory button</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Same directory as CUE file</source>
        <comment>Menu item for output direcory button</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Select result directory</source>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>OutDirComboBox</name>
    <message>
        <source>Same directory as CUE file</source>
        <comment>Placeholder for output direcory combobox</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>OutPatternButton</name>
    <message>
        <source>Insert "Track number"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Total number of tracks"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Artist"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Album title"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Track title"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Year"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Genre"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Disc number"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Total number of discs"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Use "%1"</source>
        <comment>Predefined out file pattern, string like 'Use "%a/%A/%n - %t"'</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>ProfileWidget</name>
    <message>
        <source>Resampling settings:</source>
        <extracomment>Preferences dialog: group caption</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Maximum bit depth:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Maximum sample rate:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>ReplayGain settings:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Calculate gain:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Disabled</source>
        <translation>Dinonaktifkan</translation>
    </message>
    <message>
        <source>Create per track CUE sheet</source>
        <extracomment>Preferences dialog: group caption</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>File name format:</source>
        <extracomment>Settings dialog, label for the edit control with name of the created CUE file.</extracomment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>First track pregap:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Artist"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Album title"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Year"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Insert "Genre"</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Use "%1"</source>
        <comment>Predefined CUE file name, string like 'Use "%a/%A/%n - %t.cue"'</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Extract to separate file</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Add to first track</source>
        <translation>Tambahkan ke trek pertama</translation>
    </message>
    <message>
        <source>Same as source</source>
        <comment>Item in combobox</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>16-bit</source>
        <comment>Item in combobox</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>24-bit</source>
        <comment>Item in combobox</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>32-bit</source>
        <comment>Item in combobox</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>44100 Hz</source>
        <comment>Item in combobox</comment>
        <translation>44100 Hz</translation>
    </message>
    <message>
        <source>48000 Hz</source>
        <comment>Item in combobox</comment>
        <translation>48000 Hz</translation>
    </message>
    <message>
        <source>96000 Hz</source>
        <comment>Item in combobox</comment>
        <translation>96000 Hz</translation>
    </message>
    <message>
        <source>192000 Hz</source>
        <comment>Item in combobox</comment>
        <translation>192000 Hz</translation>
    </message>
    <message>
        <source>Disabled</source>
        <comment>ReplayGain type combobox</comment>
        <translation>Dinonaktifkan</translation>
    </message>
    <message>
        <source>Per Track</source>
        <comment>ReplayGain type combobox</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Per Album</source>
        <comment>ReplayGain type combobox</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>ReplayGain is a standard to normalize the perceived loudness of computer audio formats.

The analysis can be performed on individual tracks, so that all tracks will be of equal volume on playback.
Using the album-gain analysis will preserve the volume differences within an album.</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Result Files</source>
        <translation>Berkas Hasil</translation>
    </message>
    <message>
        <source>Directory:</source>
        <comment>Preferences form label text</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>You can browse to the destination directory. You can also input it manually.

If the path is left empty or starts with "." (dot), the result files will be placed in the same directory as the source.</source>
        <comment>Preferences form tooltip for "Directory" edit</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Pattern:</source>
        <comment>Preferences form label text</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>
Tokens start with %. You can use the following tokens:

%n	  - Track number
        %N	  - Total number of tracks

%a	  - Artist
        %A	  - Album title

%t	  - Track title
        %y	  - Year

%g	  - Genre

If you surround sections of text that contain a token with braces, these sections will be hidden if the token is empty.</source>
        <comment>Preferences form tooltip for "Pattern" edit</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1 format</source>
        <comment>Preferences dialog: format name label, %1 is a audio format name</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Same directory as CUE file</source>
        <comment>Placeholder for output direcory combobox</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1 encoder settings:</source>
        <comment>Preferences group title, %1 is a audio format name</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>ProgramEdit</name>
    <message>
        <source>Select program file</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>All files</source>
        <comment>This is part of filter for 'select program' dialog. 'All files (*)'</comment>
        <translation>Semua berkas</translation>
    </message>
    <message>
        <source>%1 program</source>
        <comment>This is part of filter for 'select program' dialog. %1 is a name of required program. Example: 'flac program (flac)'</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>QObject</name>
    <message>
        <source>I can't find program %1.</source>
        <translation>Tidak dapat menemukan program %1</translation>
    </message>
    <message>
        <source>File %1 is not a supported audio file.

Verify that all required programs are installed and in your preferences.</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Flacon</source>
        <comment>Error</comment>
        <translation>Flacon</translation>
    </message>
    <message>
        <source>File "%1" does not exist</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>The audio file name is not set</source>
        <translation>Nama berkas audio tidak diset</translation>
    </message>
    <message>
        <source>you can't use 'ReplayGain' for files with sample rates above 48kHz. Metaflac doesn't support such files.</source>
        <comment>This string should begin with a lowercase letter. This is a part of the complex sentence.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>The audio file "%1" does not exist</source>
        <translation>Berkas audio "%1" tidak ditemukan</translation>
    </message>
    <message>
        <source>I can't create directory "%1".</source>
        <translation>Tidak dapat membuat direktori "%1".</translation>
    </message>
    <message>
        <source>I can't write to directory "%1".</source>
        <translation>Tidak dapat menulis di direktori "%1".</translation>
    </message>
    <message>
        <source>I can't copy cover file %1:
%2</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>I can't read cover image %1:
%2</source>
        <comment>%1 - is a file name, %2 - an error text</comment>
        <translation>Tidak bisa membaca gambar cover %1:
%2</translation>
    </message>
    <message>
        <source>Multiple values</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>I can't write CUE file %1:
%2</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1 is not a valid CUE file. Incorrect track number on line %2.</source>
        <comment>Cue parser error.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1 is not a valid CUE file. Incorrect track index on line %2.</source>
        <comment>Cue parser error.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1 is not a valid CUE file. The CUE sheet has no FILE tag.</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>I can't save cover image %1:
%2</source>
        <comment>%1 - is file name, %2 - an error text</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1 is not a valid CUE file. Disc %2 has no tags.</source>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>Splitter</name>
    <message>
        <source>I can't read %1:
%2</source>
        <comment>Splitter error. %1 is a file name, %2 is a system error text.</comment>
        <translation>Tidak dapat membaca %1:
%2</translation>
    </message>
</context>
<context>
    <name>TagEditor</name>
    <message>
        <source>Edit tags</source>
        <comment>Dialog title</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>of</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Artist:</source>
        <comment>Music tag name</comment>
        <translation>Artis:</translation>
    </message>
    <message>
        <source>Album:</source>
        <comment>Music tag name</comment>
        <translation>Album:</translation>
    </message>
    <message>
        <source>Genre:</source>
        <comment>Music tag name</comment>
        <translation>Aliran:</translation>
    </message>
    <message>
        <source>Year:</source>
        <comment>Music tag name</comment>
        <translation>Tahun:</translation>
    </message>
    <message>
        <source>Track title:</source>
        <comment>Music tag name</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Comment:</source>
        <comment>Music tag name</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Start track number:</source>
        <comment>Music tag name</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Album performer:</source>
        <comment>Music tag name</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Disc number:</source>
        <comment>Music tag name</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>TrackView</name>
    <message>
        <source>Get data from CDDB</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Select another CUE file…</source>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>TrackViewDelegate</name>
    <message>
        <source>Tracks:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Audio:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Error</source>
        <comment>Status of the track conversion.</comment>
        <translation>Kesalahan</translation>
    </message>
    <message>
        <source>Aborted</source>
        <comment>Status of the track conversion.</comment>
        <translation>Dibatalkan</translation>
    </message>
    <message>
        <source>OK</source>
        <comment>Status of the track conversion.</comment>
        <translation>OK</translation>
    </message>
    <message>
        <source>Extracting</source>
        <comment>Status of the track conversion.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Encoding</source>
        <comment>Status of the track conversion.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Queued</source>
        <comment>Status of the track conversion.</comment>
        <translation>Diantrekan</translation>
    </message>
    <message>
        <source>Calculating gain</source>
        <comment>Status of the track conversion.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Writing gain</source>
        <comment>Status of the track conversion.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Waiting for gain</source>
        <comment>Status of the track conversion.</comment>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>TrackViewModel</name>
    <message>
        <source>Track</source>
        <comment>Table header.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Title</source>
        <comment>Table header.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Artist</source>
        <comment>Table header.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Album</source>
        <comment>Table header.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Comment</source>
        <comment>Table header.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>File</source>
        <comment>Table header.</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Multiple values</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Length</source>
        <comment>Table header.</comment>
        <translation>Durasi</translation>
    </message>
    <message>
        <source>%1:%2:%3</source>
        <comment>Track length, string like '01:02:56'</comment>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>%1:%2</source>
        <comment>Track length, string like '02:56'</comment>
        <translation>%1:%2</translation>
    </message>
    <message>
        <source>The conversion is not possible.
%1</source>
        <translation type="unfinished"/>
    </message>
</context>
<context>
    <name>aacConfigPage</name>
    <message>
        <source>AAC encoding configuration</source>
        <translation>Konfigurasi kode AAC</translation>
    </message>
    <message>
        <source>Use quality setting (recommended)</source>
        <translation>Gunakan pengaturan kualitas (Rekomendasi)</translation>
    </message>
    <message>
        <source>Quality:</source>
        <extracomment>ACC preferences: label caption</extracomment>
        <translation>Kualitas:</translation>
    </message>
    <message>
        <source>Bitrate:</source>
        <extracomment>ACC preferences: label caption</extracomment>
        <translation>Bitrate:</translation>
    </message>
    <message>
        <source>Sets target bitrate (in kb/s).</source>
        <translation>Atur target bitrate (dalam kb/s) </translation>
    </message>
</context>
<context>
    <name>flacConfigPage</name>
    <message>
        <source>FLAC encoding configuration</source>
        <translation>Konfigurasi kode FLAC</translation>
    </message>
    <message>
        <source>Compression:</source>
        <translation>Kompresi:</translation>
    </message>
</context>
<context>
    <name>mp3ConfigPage</name>
    <message>
        <source>MP3 encoding configuration</source>
        <translation>Konfigurasi kode MP3</translation>
    </message>
    <message>
        <source>Preset:</source>
        <translation type="unfinished"/>
    </message>
    <message>
        <source>Bitrate:</source>
        <translation>Bitrate:</translation>
    </message>
    <message>
        <source>Sets target bitrate (in kb/s).</source>
        <translation>Atur target bitrate (dalam kb/s) </translation>
    </message>
    <message>
        <source>Quality:</source>
        <translation>Kualitas:</translation>
    </message>
</context>
<context>
    <name>oggConfigPage</name>
    <message>
        <source>Ogg encoding configuration</source>
        <translation>Konfigurasi kode Ogg</translation>
    </message>
    <message>
        <source>Use quality setting (recommended)</source>
        <translation>Gunakan pengaturan kualitas (Rekomendasi)</translation>
    </message>
    <message>
        <source>Quality:</source>
        <extracomment>OGG preferences: label caption</extracomment>
        <translation>Kualitas:</translation>
    </message>
    <message>
        <source>Minimal bitrate:</source>
        <translation>Bitrate minimum:</translation>
    </message>
    <message>
        <source>Sets minimum bitrate (in kb/s).</source>
        <translation>Tentukan bitrate minimum (dalam kb/s)</translation>
    </message>
    <message>
        <source>Nominal bitrate:</source>
        <translation>Bitrate normal</translation>
    </message>
    <message>
        <source>Sets target bitrate (in kb/s).</source>
        <translation>Atur target bitrate (dalam kb/s) </translation>
    </message>
    <message>
        <source>Maximum bitrate:</source>
        <translation>Bitrate Maksimum:</translation>
    </message>
    <message>
        <source>Sets maximum bitrate (in kb/s).</source>
        <translation>Tentukan bitrate maksimum (dalam kb/s)</translation>
    </message>
</context>
<context>
    <name>wvConfigPage</name>
    <message>
        <source>WavPack encoding configuration</source>
        <translation>Konfigurasi kode WavPack</translation>
    </message>
    <message>
        <source>Compression:</source>
        <translation>Kompresi:</translation>
    </message>
</context>
</TS>


package org.batfish.datamodel.questions;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.collect.Ordering.natural;
import static java.util.Comparator.comparing;
import static org.batfish.datamodel.questions.BgpRoute.PROP_AS_PATH;
import static org.batfish.datamodel.questions.BgpRoute.PROP_COMMUNITIES;
import static org.batfish.datamodel.questions.BgpRoute.PROP_LOCAL_PREFERENCE;
import static org.batfish.datamodel.questions.BgpRoute.PROP_METRIC;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedSet;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.SortedSet;
import java.util.function.Function;
import java.util.stream.Stream;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;

/** A representation of one difference between two routes. */
@ParametersAreNonnullByDefault
public final class BgpRouteDiff implements Comparable<BgpRouteDiff> {
  private static final String PROP_FIELD_NAME = "fieldName";
  private static final String PROP_OLD_VALUE = "oldValue";
  private static final String PROP_NEW_VALUE = "newValue";

  /*
   * We require the field names to match the route field names.
   */
  private static final Set<String> ROUTE_DIFF_FIELD_NAMES =
      ImmutableSet.of(PROP_AS_PATH, PROP_COMMUNITIES, PROP_LOCAL_PREFERENCE, PROP_METRIC);

  private final String _fieldName;
  private final String _oldValue;
  private final String _newValue;

  public BgpRouteDiff(String fieldName, String oldValue, String newValue) {
    checkArgument(
        ROUTE_DIFF_FIELD_NAMES.contains(fieldName),
        "fieldName must be one of " + ROUTE_DIFF_FIELD_NAMES);
    checkArgument(!oldValue.equals(newValue), "oldValue and newValule must be different");
    _fieldName = fieldName;
    _oldValue = oldValue;
    _newValue = newValue;
  }

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof BgpRouteDiff)) {
      return false;
    }
    BgpRouteDiff diff = (BgpRouteDiff) o;
    return Objects.equals(_fieldName, diff._fieldName)
        && Objects.equals(_oldValue, diff._oldValue)
        && Objects.equals(_newValue, diff._newValue);
  }

  @JsonCreator
  private static BgpRouteDiff jsonCreator(
      @Nullable @JsonProperty(PROP_FIELD_NAME) String fieldName,
      @Nullable @JsonProperty(PROP_OLD_VALUE) String oldValue,
      @Nullable @JsonProperty(PROP_NEW_VALUE) String newValue) {
    checkNotNull(fieldName);
    checkNotNull(oldValue);
    checkNotNull(newValue);
    return new BgpRouteDiff(fieldName, oldValue, newValue);
  }

  @JsonProperty(PROP_FIELD_NAME)
  public String getFieldName() {
    return _fieldName;
  }

  @JsonProperty(PROP_OLD_VALUE)
  public String getOldValue() {
    return _oldValue;
  }

  @Override
  public int hashCode() {
    return Objects.hash(_fieldName, _oldValue, _newValue);
  }

  @JsonProperty(PROP_NEW_VALUE)
  public String getNewValue() {
    return _newValue;
  }

  /** Compute the differences between two routes */
  public static SortedSet<BgpRouteDiff> routeDiffs(
      @Nullable BgpRoute route1, @Nullable BgpRoute route2) {
    if (route1 == null || route2 == null || route1.equals(route2)) {
      return ImmutableSortedSet.of();
    }

    checkArgument(
        route1
            .toBuilder()
            .setAsPath(route2.getAsPath())
            .setCommunities(route2.getCommunities())
            .setLocalPreference(route2.getLocalPreference())
            .setMetric(route2.getMetric())
            .build()
            .equals(route2),
        "routeDiffs only supports differences of fields: " + ROUTE_DIFF_FIELD_NAMES);

    return Stream.of(
            routeDiff(route1, route2, PROP_AS_PATH, BgpRoute::getAsPath),
            routeDiff(route1, route2, PROP_COMMUNITIES, BgpRoute::getCommunities),
            routeDiff(route1, route2, PROP_LOCAL_PREFERENCE, BgpRoute::getLocalPreference),
            routeDiff(route1, route2, PROP_METRIC, BgpRoute::getMetric))
        .filter(Optional::isPresent)
        .map(Optional::get)
        .collect(ImmutableSortedSet.toImmutableSortedSet(natural()));
  }

  private static Optional<BgpRouteDiff> routeDiff(
      BgpRoute route1, BgpRoute route2, String name, Function<BgpRoute, Object> getter) {
    Object o1 = getter.apply(route1);
    Object o2 = getter.apply(route2);
    return o1.equals(o2)
        ? Optional.empty()
        : Optional.of(new BgpRouteDiff(name, o1.toString(), o2.toString()));
  }

  @Override
  public int compareTo(BgpRouteDiff that) {
    return comparing(BgpRouteDiff::getFieldName)
        .thenComparing(BgpRouteDiff::getOldValue)
        .thenComparing(BgpRouteDiff::getNewValue)
        .compare(this, that);
  }
}


<template>
  <Card style="height:100%">

      <Select
        v-model="searchKey"
        class="search-col"
      >
        <Option
          v-for="item in columns"
          v-if="item.key !== 'handle' && item.key !== 'status' && item.key !== ''"
          :value="item.key"
        >{{ item.title }}</Option>
      </Select>
      <Input
        @on-change="handleClear"
        clearable
        placeholder="输入关键字搜索"
        class="search-input"
        v-model="searchValue"
      />
      <Button
        @click="handleSearch"
        class="search-btn"
        type="primary"
      >搜索</Button>
      <slot name="new_btn"><Button
          type="primary"
          @click="editModal('', 'post', '新建事件')"
          class="search-btn"
        >新建事件</Button></slot>

    <Modal
      v-model="modalMap.modalVisible"
      :title="modalMap.modalTitle"
      :loading=true
      :footer-hide=true
    >
      <Alert show-icon>记录一些运维过程中的事件信息。</Alert>
      <Form ref="formValidate" :model="formValidate" :rules="ruleValidate" :label-width="85">

          <FormItem
            label="事件名称"
            prop="event_name"
          >
            <Input
              v-model="formValidate.event_name"
              disabled
              :maxlength="45"
              placeholder="请输入事件名称"
            ></Input>
          </FormItem>

          <FormItem
            label="事件名称"
            prop="event_name"
          >
            <Input
              v-model="formValidate.event_name"
              :maxlength="45"
              placeholder="请输入事件名称"
            ></Input>
          </FormItem>

        <FormItem
          label="事件状态"
          prop="event_status"
        >
          <Select
            v-model="formValidate.event_status"
            placeholder="请选择状态"
          >
            <Option value="未开始" >未开始</Option>
            <Option value="处理中" >处理中</Option>
            <Option value="已完成" >已完成</Option>
          </Select>
        </FormItem>
        <FormItem
          label="事件等级"
          prop="event_level"
        >
          <Select
            v-model="formValidate.event_level"
            placeholder="等级程度"
          >
            <Option value="警告" >警告</Option>
            <Option value="严重" >严重</Option>
            <Option value="灾难" >灾难</Option>
          </Select>
        </FormItem>
        <FormItem
          label="开始时间"
          prop="event_start_time"
        >
            <DatePicker
              v-model="formValidate.event_start_time"
              type="datetime"
              format="yyyy-MM-dd HH:mm:ss"
              show-week-numbers
              editable
              placeholder="记录你事件的开始时间"
              style="width: 330px"
            ></DatePicker>
        </FormItem>
        <FormItem
          label="结束时间"
          prop="event_end_time"
        >
            <DatePicker
              v-model="formValidate.event_end_time"
              type="datetime"
              format="yyyy-MM-dd HH:mm:ss"
              show-week-numbers
              editable
              placeholder="记录你事件的结束时间"
              style="width: 330px"
            ></DatePicker>
        </FormItem>
        <FormItem
          label="处理人员"
          prop="event_processing"
        >
          <Input
            v-model="formValidate.event_processing"
            type="text"
            :autosize="{minRows: 2,maxRows: 5}"
            :maxlength="200"
            placeholder="事件处理人员，接手人，参与人"
          ></Input>
        </FormItem>
        <FormItem>
          <Button
            type="primary"
            @click="handleSubmit('formValidate')"
          >提交</Button>
          <Button
            @click="handleReset('formValidate')"
            style="margin-left: 8px"
          >重置</Button>
        </FormItem>
      </Form>
    </Modal>

          <Page :total="pageTotal" :current="pageNum" :page-size="pageSize" :page-size-opts=[10,15,25,35,50,100] show-sizer show-total @on-change="changePage" @on-page-size-change="handlePageSize"></Page>

  </Card>
</template>


#pragma once
// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.

extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument   = {0x2933BF90, 0x7B36, 0x11d2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument20  = {0xF6D90F11, 0x9C73, 0x11D3, {0xB3, 0x2E, 0x00, 0xC0, 0x4F, 0x99, 0x0B, 0xB4}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument26 = {0xf5078f1b, 0xc551, 0x11d3, {0x89, 0xb9, 0x00, 0x00, 0xf8, 0x1f, 0xe2, 0x21}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument30 = {0xf5078f32, 0xc551, 0x11d3, {0x89, 0xb9, 0x00, 0x00, 0xf8, 0x1f, 0xe2, 0x21}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument40 = {0x88d969c0, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument50 = {0x88d969e5, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument60 = {0x88d96a05, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
extern __declspec(selectany) const CLSID XmlUtil_CLSID_XMLSchemaCache = {0x88d969c2, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};

extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMDocument =  {0x2933BF81, 0x7B36, 0x11D2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMDocument2 = {0x2933BF95, 0x7B36, 0x11D2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMSchemaCollection = {0x373984C8, 0xB845, 0x449B, {0x91, 0xE7, 0x45, 0xAC, 0x83, 0x03, 0x6A, 0xDE}};

typedef enum XML_LOAD_ATTRIBUTE
{
    XML_LOAD_PRESERVE_WHITESPACE = 1,
} XML_LOAD_ATTRIBUTE;

#ifdef __cplusplus
extern "C" {
#endif

HRESULT DAPI XmlInitialize();
void DAPI XmlUninitialize();

HRESULT DAPI XmlCreateElement(
    __in IXMLDOMDocument *pixdDocument,
    __in_z LPCWSTR wzElementName,
    __out IXMLDOMElement **ppixnElement
    );
HRESULT DAPI XmlCreateDocument(
    __in_opt LPCWSTR pwzElementName,
    __out IXMLDOMDocument** ppixdDocument,
    __out_opt IXMLDOMElement** ppixeRootElement = NULL
    );
HRESULT DAPI XmlLoadDocument(
    __in_z LPCWSTR wzDocument,
    __out IXMLDOMDocument** ppixdDocument
    );
HRESULT DAPI XmlLoadDocumentEx(
    __in_z LPCWSTR wzDocument,
    __in DWORD dwAttributes,
    __out IXMLDOMDocument** ppixdDocument
    );
HRESULT DAPI XmlLoadDocumentFromFile(
    __in_z LPCWSTR wzPath,
    __out IXMLDOMDocument** ppixdDocument
    );
HRESULT DAPI XmlLoadDocumentFromBuffer(
    __in_bcount(cbSource) const BYTE* pbSource,
    __in DWORD cbSource,
    __out IXMLDOMDocument** ppixdDocument
    );
HRESULT DAPI XmlLoadDocumentFromFileEx(
    __in_z LPCWSTR wzPath,
    __in DWORD dwAttributes,
    __out IXMLDOMDocument** ppixdDocument
    );
HRESULT DAPI XmlSelectSingleNode(
    __in IXMLDOMNode* pixnParent,
    __in_z LPCWSTR wzXPath,
    __out IXMLDOMNode **ppixnChild
    );
HRESULT DAPI XmlSetAttribute(
    __in IXMLDOMNode* pixnNode,
    __in_z LPCWSTR pwzAttribute,
    __in_z LPCWSTR pwzAttributeValue
    );
HRESULT DAPI XmlCreateTextNode(
    __in IXMLDOMDocument *pixdDocument,
    __in_z LPCWSTR wzText,
    __out IXMLDOMText **ppixnTextNode
    );
HRESULT DAPI XmlGetText(
    __in IXMLDOMNode* pixnNode,
    __deref_out_z BSTR* pbstrText
    );
HRESULT DAPI XmlGetAttribute(
    __in IXMLDOMNode* pixnNode,
    __in_z LPCWSTR pwzAttribute,
    __deref_out_z BSTR* pbstrAttributeValue
    );
HRESULT DAPI XmlGetAttributeEx(
    __in IXMLDOMNode* pixnNode,
    __in_z LPCWSTR wzAttribute,
    __deref_out_z LPWSTR* psczAttributeValue
    );
HRESULT DAPI XmlGetYesNoAttribute(
    __in IXMLDOMNode* pixnNode,
    __in_z LPCWSTR wzAttribute,
    __out BOOL* pfYes
    );
HRESULT DAPI XmlGetAttributeNumber(
    __in IXMLDOMNode* pixnNode,
    __in_z LPCWSTR pwzAttribute,
    __out DWORD* pdwValue
    );
HRESULT DAPI XmlGetAttributeNumberBase(
    __in IXMLDOMNode* pixnNode,
    __in_z LPCWSTR pwzAttribute,
    __in int nBase,
    __out DWORD* pdwValue
    );
HRESULT DAPI XmlGetAttributeLargeNumber(
    __in IXMLDOMNode* pixnNode,
    __in_z LPCWSTR pwzAttribute,
    __out DWORD64* pdw64Value
    );
HRESULT DAPI XmlGetNamedItem(
    __in IXMLDOMNamedNodeMap *pixnmAttributes,
    __in_opt LPCWSTR wzName,
    __out IXMLDOMNode **ppixnNamedItem
    );
HRESULT DAPI XmlSetText(
    __in IXMLDOMNode* pixnNode,
    __in_z LPCWSTR pwzText
    );
HRESULT DAPI XmlSetTextNumber(
    __in IXMLDOMNode *pixnNode,
    __in DWORD dwValue
    );
HRESULT DAPI XmlCreateChild(
    __in IXMLDOMNode* pixnParent,
    __in_z LPCWSTR pwzElementType,
    __out IXMLDOMNode** ppixnChild
    );
HRESULT DAPI XmlRemoveAttribute(
    __in IXMLDOMNode* pixnNode,
    __in_z LPCWSTR pwzAttribute
    );
HRESULT DAPI XmlSelectNodes(
    __in IXMLDOMNode* pixnParent,
    __in_z LPCWSTR wzXPath,
    __out IXMLDOMNodeList **ppixnChild
    );
HRESULT DAPI XmlNextAttribute(
    __in IXMLDOMNamedNodeMap* pixnnm,
    __out IXMLDOMNode** pixnAttribute,
    __deref_opt_out_z_opt BSTR* pbstrAttribute
    );
HRESULT DAPI XmlNextElement(
    __in IXMLDOMNodeList* pixnl,
    __out IXMLDOMNode** pixnElement,
    __deref_opt_out_z_opt BSTR* pbstrElement
    );
HRESULT DAPI XmlRemoveChildren(
    __in IXMLDOMNode* pixnSource,
    __in_z LPCWSTR pwzXPath
    );
HRESULT DAPI XmlSaveDocument(
    __in IXMLDOMDocument* pixdDocument,
    __inout LPCWSTR wzPath
    );
HRESULT DAPI XmlSaveDocumentToBuffer(
    __in IXMLDOMDocument* pixdDocument,
    __deref_out_bcount(*pcbDest) BYTE** ppbDest,
    __out DWORD* pcbDest
    );

#ifdef __cplusplus
}
#endif


[``botocore``] Update glue client to latest version

[``botocore``] Update ec2 client to latest version


Frequently Asked Questions

Some answers to the most commonly asked questions If your question and its answer is not listed below, you can e-mail it to contact@openbeautyfacts.org
or through the Idea Forum.

How can I contact the Open Beauty Facts team, ask questions or make suggestions?

Is the information and data on products verified?

Can I add product pictures or data from the manufacturer's site, shopping sites or other sites?

I am a cosmetics product manufacturer, can I add my own products?

What is the difference with other web sites, services and mobile applications that already allow to view cosmetics products information?

What is Open Beauty Facts' economic model

How can I contact the Open Beauty Facts team, ask questions or make suggestions?

You can ask questions or make suggestions on the Idea Forum or contact us by e-mail: contact@openbeautyfacts.org

Is the information and data on products verified?

The information and data is submited by the Open Beauty Facts contributors. The contributors also send pictures of the product, its labels, ingredients lists and health and beauty claims.
When in doubt, visitors can thus check the accuracy by themselves, and if there is an error, they can correct it on the spot.

To detect potential errors more easily, we will progressively add automated checks. e.g. if the ingredients of a product are very different from
products of the same category, it may be an error.

Can I add product pictures or data from the manufacturer's site, shopping sites or other sites?

Almost all other sites forbid reproduction and reuse of their data and images, and that's actually the reason why we are creating Open Beauty Facts: to make all this data available to all and for all uses.

To avoid any legal problem, we therefore ask contributors to only add pictures that they took themselves, and only data that is coming from the product packaging and label.

I am a cosmetics product manufacturer, can I add my own products?

Bəli! The only condition is to accept that the data and the pictures be made available under an open licence. (see the Terms of contribution)

If you have a large number of products to add (more than 50), we can try to find a way to automatically add the products and their data. Contact-us to discuss how we could proceed: contact@openbeautyfacts.org

What is the difference with other web sites, services and mobile applications that already allow to view cosmetics products information?

The main difference is for us a critical one: our data is freely available to all and for all uses. It's what is called open data.

Almost all other sites, services and applications forbid others from reproducting and reusing their data. Quite to the contrary, the jealously keep it for themselves. In almost all cases,
their terms of service explicitly forbid any non-personal use and any extraction of all the data or parts of the data.

We consider that cosmetics products information is too important and useful to keep it locked in a safe. So we decided to do exactly the opposite: not only we allow use and reuse of our database, freely and without fee,
to everyone and for all uses (including commercial), but we also encourage it!

Making the data publicly available (what is know as open data) allows individuals, associations, companies, researchers etc. from all around the world to think up and develop applications for the data that
we certainly would never have thought about.

What is Open Beauty Facts' economic model

Contributors are volunteers. Their contributions are gathered in an open database that can be used by everyone and for all uses.
(see the Terms of reuse)

Everyone (including but not limited to Open Beauty Facts contributors and creator) can thus redistribute and/or reuse the data to build web sites, services, software, mobile applications, or to
write articles and studies. They are free to make the resulting work freely available, or to sell or monetize it (e.g. with ads), as long as they respect the terms of reuse.

Do you have other questions? Ask them!


#
# Configuration for Atmel's SAM3N series
#

source [find target/swj-dp.tcl]

if { [info exists CHIPNAME] } {
	set _CHIPNAME $CHIPNAME
} else {
	set _CHIPNAME at91sam3n
}

if { [info exists CPUTAPID] } {
	set _CPUTAPID $CPUTAPID
} else {
	set _CPUTAPID 0x4ba00477
}

swj_newdap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
dap create $_CHIPNAME.dap -chain-position $_CHIPNAME.cpu

set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME cortex_m -endian little -dap $_CHIPNAME.dap

set _FLASHNAME $_CHIPNAME.flash
flash bank flash0 at91sam3 0x00400000 0 0 0 $_TARGETNAME

if {![using_hla]} {
   # if srst is not fitted use SYSRESETREQ to
   # perform a soft reset
   cortex_m reset_config sysresetreq
}


/*******************************************************************************
**NOTE** This code was generated by a tool and will occasionally be
overwritten. We welcome comments and issues regarding this code; they will be
addressed in the generation tool. If you wish to submit pull requests, please
do so for the templates in that tool.

This code was generated by Vipr (https://github.com/microsoft/vipr) using
the T4TemplateWriter (https://github.com/msopentech/vipr-t4templatewriter).

Copyright (c) Microsoft Corporation. All Rights Reserved.
Licensed under the Apache License 2.0; see LICENSE in the source repository
root for authoritative license information.
******************************************************************************/

#ifndef MSGRAPHSERVICEVIDEO_H
#define MSGRAPHSERVICEVIDEO_H

#import <Foundation/Foundation.h>
#import "core/MSOrcChangesTrackingArray.h"

#import "core/MSOrcBaseEntity.h"
#import "api/MSOrcInteroperableWithDictionary.h"

/** Interface MSGraphServiceVideo
 *
 */
@interface MSGraphServiceVideo : MSOrcBaseEntity <MSOrcInteroperableWithDictionary>

/** Property bitrate
 *
 */
@property (nonatomic,  setter=setBitrate:, getter=bitrate) int bitrate;

/** Property duration
 *
 */
@property (nonatomic,  setter=setDuration:, getter=duration) long long duration;

/** Property height
 *
 */
@property (nonatomic,  setter=setHeight:, getter=height) int height;

/** Property width
 *
 */
@property (nonatomic,  setter=setWidth:, getter=width) int width;

+ (NSDictionary *) $$$_$$$propertiesNamesMappings;

@end

#endif


require('../modules/web.dom.iterable');
require('../modules/es6.string.iterator');
module.exports = require('../modules/core.is-iterable');


en:
  frontend:
    tags_input:
      label: Tags


//
//     Generated by class-dump 3.5 (64 bit) (Debug version compiled Oct 15 2018 10:31:50).
//
//     class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2015 by Steve Nygard.
//

#import <Catalyst/CATTaskResultObject.h>

@class NSDictionary;

@interface CRKFetchIdentitiesTaskResultObject : CATTaskResultObject
{
    NSDictionary *_courseIdentityInfosByGroupIdentifier;
}

+ (BOOL)supportsSecureCoding;
- (void).cxx_destruct;
@property(copy, nonatomic) NSDictionary *courseIdentityInfosByGroupIdentifier; // @synthesize courseIdentityInfosByGroupIdentifier=_courseIdentityInfosByGroupIdentifier;
- (id)initWithCoder:(id)arg1;
- (void)encodeWithCoder:(id)arg1;

@end


//===----------------------------------------------------------------------===//
//                         DuckDB
//
// duckdb/planner/operator/logical_delim_join.hpp
//
//
//===----------------------------------------------------------------------===//

#pragma once

#include "duckdb/planner/operator/logical_comparison_join.hpp"

namespace duckdb {

//! LogicalDelimJoin represents a special "duplicate eliminated" join. This join type is only used for subquery
//! flattening, and involves performing duplicate elimination on the LEFT side which is then pushed into the RIGHT side.
class LogicalDelimJoin : public LogicalComparisonJoin {
public:
	LogicalDelimJoin(JoinType type) : LogicalComparisonJoin(type, LogicalOperatorType::DELIM_JOIN) {
	}

	//! The set of columns that will be duplicate eliminated from the LHS and pushed into the RHS
	vector<unique_ptr<Expression>> duplicate_eliminated_columns;
};

} // namespace duckdb


Fuse API functions and commands

The fuse API allows to control a fusebox and how it is used by the upper
hardware layers.

A fuse corresponds to a single non-volatile memory bit that can be programmed
(i.e. blown, set to 1) only once. The programming operation is irreversible. A
fuse that has not been programmed reads 0.

Fuses can be used by SoCs to store various permanent configuration and data,
e.g. boot configuration, security configuration, MAC addresses, etc.

A fuse word is the smallest group of fuses that can be read at once from the
fusebox control IP registers. This is limited to 32 bits with the current API.

A fuse bank is the smallest group of fuse words having a common ID, as defined
by each SoC.

Upon startup, the fusebox control IP reads the fuse values and stores them to a
volatile shadow cache.

See the README files of the drivers implementing this API in order to know the
SoC- and implementation-specific details.

Functions / commands:

   int fuse_read(u32 bank, u32 word, u32 *val);
   fuse read <bank> <word> [<cnt>]
      Read fuse words from the shadow cache.

   int fuse_sense(u32 bank, u32 word, u32 *val);
   fuse sense <bank> <word> [<cnt>]
      Sense - i.e. read directly from the fusebox, skipping the shadow cache -
      fuse words. This operation does not update the shadow cache.

      This is useful to know the true value of fuses if an override has been
      performed (see below).

   int fuse_prog(u32 bank, u32 word, u32 val);
   fuse prog [-y] <bank> <word> <hexval> [<hexval>...]
      Program fuse words. This operation directly affects the fusebox and is
      irreversible. The shadow cache is updated accordingly or not, depending on
      each IP.

      Only the bits to be programmed should be set in the input value (i.e. for
      fuse bits that have already been programmed and hence should be left
      unchanged by a further programming, it is preferable to clear the
      corresponding bits in the input value in order not to perform a new
      hardware programming operation on these fuse bits).

   int fuse_override(u32 bank, u32 word, u32 val);
   fuse override <bank> <word> <hexval> [<hexval>...]
      Override fuse words in the shadow cache.

      The fusebox is unaffected, so following this operation, the shadow cache
      may differ from the fusebox values. Read or sense operations can then be
      used to get the values from the shadow cache or from the fusebox.

      This is useful to change the behaviors linked to some cached fuse values,
      either because this is needed only temporarily, or because some of the
      fuses have already been programmed or are locked (if the SoC allows to
      override a locked fuse).

Configuration:

   CONFIG_CMD_FUSE
      Define this to enable the fuse commands.


/*
 * drivers/pcmcia/sa1100_assabet.c
 *
 * PCMCIA implementation routines for Assabet
 *
 */
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/device.h>
#include <linux/init.h>
#include <linux/gpio.h>

#include <asm/mach-types.h>
#include <mach/assabet.h>

#include "sa1100_generic.h"

static int assabet_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
{
	skt->stat[SOC_STAT_CD].gpio = ASSABET_GPIO_CF_CD;
	skt->stat[SOC_STAT_CD].name = "CF CD";
	skt->stat[SOC_STAT_BVD1].gpio = ASSABET_GPIO_CF_BVD1;
	skt->stat[SOC_STAT_BVD1].name = "CF BVD1";
	skt->stat[SOC_STAT_BVD2].gpio = ASSABET_GPIO_CF_BVD2;
	skt->stat[SOC_STAT_BVD2].name = "CF BVD2";
	skt->stat[SOC_STAT_RDY].gpio = ASSABET_GPIO_CF_IRQ;
	skt->stat[SOC_STAT_RDY].name = "CF RDY";

	return 0;
}

static void
assabet_pcmcia_socket_state(struct soc_pcmcia_socket *skt, struct pcmcia_state *state)
{
	state->vs_3v  = 1; /* Can only apply 3.3V on Assabet. */
	state->vs_Xv  = 0;
}

static int
assabet_pcmcia_configure_socket(struct soc_pcmcia_socket *skt, const socket_state_t *state)
{
	unsigned int mask;

	switch (state->Vcc) {
	case 0:
		mask = 0;
		break;

	case 50:
		printk(KERN_WARNING "%s(): CS asked for 5V, applying 3.3V...\n",
			__func__);

	case 33:  /* Can only apply 3.3V to the CF slot. */
		mask = ASSABET_BCR_CF_PWR;
		break;

	default:
		printk(KERN_ERR "%s(): unrecognized Vcc %u\n", __func__,
			state->Vcc);
		return -1;
	}

	/* Silently ignore Vpp, speaker enable. */

	if (state->flags & SS_RESET)
		mask |= ASSABET_BCR_CF_RST;
	if (!(state->flags & SS_OUTPUT_ENA))
		mask |= ASSABET_BCR_CF_BUS_OFF;

	ASSABET_BCR_frob(ASSABET_BCR_CF_RST | ASSABET_BCR_CF_PWR |
			ASSABET_BCR_CF_BUS_OFF, mask);

	return 0;
}

/*
 * Disable card status IRQs on suspend.
 */
static void assabet_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt)
{
	/*
	 * Tristate the CF bus signals.  Also assert CF
	 * reset as per user guide page 4-11.
	 */
	ASSABET_BCR_set(ASSABET_BCR_CF_BUS_OFF | ASSABET_BCR_CF_RST);
}

static struct pcmcia_low_level assabet_pcmcia_ops = {
	.owner			= THIS_MODULE,
	.hw_init		= assabet_pcmcia_hw_init,
	.socket_state		= assabet_pcmcia_socket_state,
	.configure_socket	= assabet_pcmcia_configure_socket,
	.socket_suspend		= assabet_pcmcia_socket_suspend,
};

int __devinit pcmcia_assabet_init(struct device *dev)
{
	int ret = -ENODEV;

	if (machine_is_assabet() && !machine_has_neponset())
		ret = sa11xx_drv_pcmcia_probe(dev, &assabet_pcmcia_ops, 1, 1);

	return ret;
}


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="lists_title">Your lists</string>
    </resources>


[EN](./readme.md) | [ZH](./readme-zh.md)
### MIPS basic content.

This is based on MIPS32 as an introduction.

### 0x01 Register

#### (1) General purpose registers

MIPS has 32 general purpose registers, represented by the dollar sign ($). Can be expressed as $0~$31, and can also be represented by register names such as $sp, $t9, $fp, and so on.

| Register Number | Conventional Name | Usage | Usage |
| --------------- | ----------------- | ------------------------------------------------------ | --------------------------------------------------------- |
| $0 | $zero | Hard-wired to 0 | |
| $1 | $at | Reserved for pseudo-instructions | |
$2 - $3 | $v0, $v1 | Return values from functions | Save expression or function return value |
| $4 - $7 | $a0 - $a3 | Arguments to functions - not preserved by subprograms |
| $8 - $15 | $t0 - $t7 | Temporary data, not preserved by subprograms | |
| $16 - $23 | $s0 - $s7 | Saved registers, preserved by subprograms | |
| $24 - $25 | $t8 - $t9 | More temporary registers, not preserved by subprograms | Temporary registers, as a complement to $t0 - $t7, $t9 is usually related to calling functions |
| $26 - $27 | $k0 - $k1 | Reserved for kernel. Do not use. | |
| $28 | $gp | Global Area Pointer (base of global data segment) | |

MIPS as a load-store architecture means that when we want to access memory we must access it through load and store instructions. All other instructions (add, sub, mul, div, and so on) must fetch their operands from the register and store their results in registers. For example, the following example:

```
sum = x + y
```
We assume that sum and x , y are variables in the program, and their MIPS assembly is expressed as:

```
    # sum = x + y

    lw      $t0, x          # Load x from memory into a CPU register
    lw      $t1, y          # Load y from memory into a CPU register
    add     $t0, $t0, $t1   # Add x and y
    sw      $t0, sum        # Store the result from the CPU register to memory
```

#### ( 2 ) Special registers

The MIPS32 architecture also defines three special registers, PC (program counter), HI (multiply and divide result high register), and LO (multiply and divide result low register). When multiplying, HI and LO hold the result of the multiplication, where HI holds the upper 32 bits and LO holds the lower 32 bits. In the division operation, HI saves the remainder and the LO saves the quotient.

### 0x2 Instruction Instruction

**ADD – Add (with overflow)**

| Description: | Adds two registers and stores the result in a register |
| ------------ | ------------------------------------------------------ |
| Operation: | $d = $s + $t; advance_pc (4); |
| Syntax: | add $d, $s, $t |
| Encoding: | `0000 00ss ssh tttt dddd d000 0010 0000` |

**ADDI -- Add immediate (with overflow)**

| Description: | Adds a register and a sign-extended immediate value and stores the result in a register |
| ------------ | ------------------------------------------------------------ |
| Operation: | $t = $s + imm; advance_pc (4); |
| Syntax: | addi $t, $s, imm |
| Encoding: | `0010 00ss ssst tttt iiii iiii iiii iiii` |

**ADDIU -- Add immediate unsigned (no overflow)**

| Description: | Adds a register and a sign-extended immediate value and stores the result in a register |
| ------------ | ------------------------------------------------------------ |
| Operation: | $t = $s + imm; advance_pc (4); |
| Syntax: | add $ t, $ s, imm |
| Encoding: | `0010 01ss ssst tttt iiii iiii iiii iiii` |

**ADDU -- Add unsigned (no overflow)**

| Description: | Adds two registers and stores the result in a register |
| ------------ | ------------------------------------------------------ |
| Operation: | $d = $s + $t; advance_pc (4); |
| Syntax: | addu $d, $s, $t |
| Encoding: | `0000 00ss ssst tttt dddd d000 0010 0001` |

**AND -- Bitwise and**

| Description: | Bitwise ands two registers and stores the result in a register |
| ------------ | ------------------------------------------------------------ |
| Operation: | $d = $s & $t; advance_pc (4); |
| Syntax: | and $d, $s, $t |
| Encoding: | `0000 00ss ssst tttt dddd d000 0010 0100` |

**ANDI -- Bitwise and immediate**

| Description: | Bitwise ands a register and an immediate value and stores the result in a register |
| ------------ | ------------------------------------------------------------ |
| Operation: | $t = $s & imm; advance_pc (4); |
| Syntax: | andi $t, $s, imm |
| Encoding: | `0011 00ss ssst tttt iiii iiii iiii iiii` |

**BEQ -- Branch on equal**

| Description: | Branches if the two registers are equal |
| ------------ | ----------------------------------------------------------- |
| Operation: | if $s == $t advance_pc (offset << 2)); else advance_pc (4); |
| Syntax: | beq $s, $t, offset |
| Encoding: | `0001 00ss ssst tttt iiii iiii iiii iiii` |

**BGEZ -- Branch on greater than or equal to zero**

| Description: | Branches if the register is greater than or equal to zero |
| ------------ | ---------------------------------------------------------- |
| Operation: | if $s >= 0 advance_pc (offset << 2)); else advance_pc (4); |
| Syntax: | bgez $s, offset |
| Encoding: | `0000 01ss sss0 0001 iiii iiii iiii iiii` |

**BGEZAL -- Branch on greater than or equal to zero and link**

| Description: | Branches if the register is greater than or equal to zero and saves the return address in $31 |
| ------------ | ------------------------------------------------------------ |
| Operation: | if $s >= 0 $31 = PC + 8 (or nPC + 4); advance_pc (offset << 2)); else advance_pc (4); |
| Syntax: | bgezal $s, offset |
| Encoding: | `0000 01ss sss1 0001 iiii iiii iiii iiii` |

**BGTZ -- Branch on greater than zero**

| Description: | Branches if the register is greater than zero |
| ------------ | --------------------------------------------------------- |
| Operation: | if $s > 0 advance_pc (offset << 2)); else advance_pc (4); |
| Syntax: | bgtz $s, offset |
| Encoding: | `0001 11ss sss0 0000 iiii iiii iiii iiii` |

**BLEZ -- Branch on less than or equal to zero**

| Description: | Branches if the register is less than or equal to zero |
| ------------ | ---------------------------------------------------------- |
| Operation: | if $s <= 0 advance_pc (offset << 2)); else advance_pc (4); |
| Syntax: | blez $s, offset |
| Encoding: | `0001 10ss sss0 0000 iiii iiii iiii iiii` |

**BLTZ -- Branch on less than zero**

| Description: | Branches if the register is less than zero |
| ------------ | --------------------------------------------------------- |
| Operation: | if $s < 0 advance_pc (offset << 2)); else advance_pc (4); |
| Syntax: | bltz $s, offset |
| Encoding: | `0000 01ss sss0 0000 iiii iiii iiii iiii` |

**BLTZAL -- Branch on less than zero and link**

| Description: | Branches if the register is less than zero and saves the return address in $31 |
| ------------ | ------------------------------------------------------------ |
| Operation: | if $s < 0 $31 = PC + 8 (or nPC + 4); advance_pc (offset << 2)); else advance_pc (4); |
| Syntax: | bltzal $s, offset |
| Encoding: | `0000 01ss sss1 0000 iiii iiii iiii iiii` |

**BNE -- Branch on not equal**

| Description: | Branches if the two registers are not equal |
| ------------ | ----------------------------------------------------------- |
| Operation: | if $s != $t advance_pc (offset << 2)); else advance_pc (4); |
| Syntax: | bne $s, $t, offset |
| Encoding: | `0001 01ss ssst tttt iiii iiii iiii iiii` |

**DIV -- Divide**

| Description: | Divides $s by $t and stores the quotient in $LO and the remainder in $HI |
| ------------ | ------------------------------------------------------------ |
| Operation: | $LO = $s / $t; $HI = $s % $t; advance_pc (4); |
| Syntax: | div $s, $t |
| Encoding: | `0000 00ss ssst tttt 0000 0000 0001 1010` |

**DIVU - Divide unsigned**

| Description: | Divides $s by $t and stores the quotient in $LO and the remainder in $HI |
| ------------ | ------------------------------------------------------------ |
| Operation: | $LO = $s / $t; $HI = $s % $t; advance_pc (4); |
| Syntax: | divu $s, $t |
| Encoding: | `0000 00ss ssst tttt 0000 0000 0001 1011` |

**J -- Jump**

| Description: | Jumps to the calculated address |
| ------------ | --------------------------------------------------- |
| Operation: | PC = nPC; nPC = (PC & 0xf0000000) | (target << 2); |
| Syntax: | j target |
| Encoding: | `0000 10ii iiii iiii iiii iiii iiii iiii` |

**JAL -- Jump and link**

| Description: | Jumps to the calculated address and stores the return address in $31 |
| ------------ | ------------------------------------------------------------ |
| Operation: | $31 = PC + 8 (or nPC + 4); PC = nPC; nPC = (PC & 0xf0000000) | (target << 2); |
| Syntax: | jal target |
| Encoding: | `0000 11ii iiii iiii iiii iiii iiii iiii` |

**JR -- Jump register**

| Description: | Jump to the address contained in register $s |
| ------------ | -------------------------------------------- |
| Operation: | PC = nPC; nPC = $s; |
| Syntax: | jr $s |
| Encoding: | `0000 00ss sss0 0000 0000 0000 0000 1000` |

**LB -- Load byte**

| Description: | A byte is loaded into a register from the specified address. |
| ------------ | ------------------------------------------------------------ |
| Operation: | $t = MEM[\$s + offset]; advance_pc (4); |
| Syntax: | lb $t, offset(\$s) |
| Encoding: | `1000 00ss ssst tttt iiii iiii iiii iiii` |

**LUI -- Load upper immediate**

| Description: | The immediate value is shifted left 16 bits and stored in the register. The lower 16 bits are zeroes. |
| ------------ | ------------------------------------------------------------ |
| Operation: | $t = (imm << 16); advance_pc (4); |
| Syntax: | lui $t, imm |
| Encoding: | `0011 11-- ---t tttt iiii iiii iiii iiii` |

**LW -- Load word**

| Description: | A word is loaded into a register from the specified address. |
| ------------ | ------------------------------------------------------------ |
| Operation: | $t = MEM[\$s + offset]; advance_pc (4); |
| Syntax: | lw $t, offset(\$s) |
| Encoding: | `1000 11ss ssst tttt iiii iiii iiii iiii` |

**MFHI -- Move from HI**

| Description: | The contents of register HI are moved to the specified register. |
| ------------ | ------------------------------------------------------------ |
| Operation: | $d = $HI; advance_pc (4); |
| Syntax: | mfhi $d |
| Encoding: | `0000 0000 0000 0000 dddd d000 0001 0000` |

**MFLO -- Move from LO**

| Description: | The contents of register LO are moved to the specified register. |
| ------------ | ------------------------------------------------------------ |
| Operation: | $d = $LO; advance_pc (4); |
| Syntax: | mflo $d |
| Encoding: | `0000 0000 0000 0000 dddd d000 0001 0010` |

**MULT - Multiply**

| Description: | Multiplies $s by $t and stores the result in $LO. |
| ------------ | ------------------------------------------------- |
| Operation: | $LO = $s * $t; advance_pc (4); |
| Syntax: | mult $s, $t |
| Encoding: | `0000 00ss ssst tttt 0000 0000 0001 1000` |

**MULTU - Multiply unsigned**

| Description: | Multiplies $s by $t and stores the result in $LO. |
| ------------ | ------------------------------------------------- |
| Operation: | $LO = $s * $t; advance_pc (4); |
| Syntax: | multu $s, $t |
| Encoding: | `0000 00ss ssst tttt 0000 0000 0001 1001` |

**NOOP -- no operation**

| Description: | Performs no operation. |
| ------------ | ----------------------------------------- |
| Operation: | advance_pc (4); |
| Syntax: | noop |
| Encoding: | `0000 0000 0000 0000 0000 0000 0000 0000` |

Note: The encoding for a NOOP represents the instruction SLL $0, $0, 0 which has no side effects. In fact, nearly every instruction that has $0 as its destination register will have no side effect and can thus be considered a NOOP instruction.

 **OR -- Bitwise or**

| Description: | Bitwise logical ors two registers and stores the result in a register |
| ------------ | ------------------------------------------------------------ |
| Operation: | $d = $s | $t; advance_pc (4); |
| Syntax: | or $d, $s, $t |
| Encoding: | `0000 00ss ssst tttt dddd d000 0010 0101` |

**ORI -- Bitwise or immediate**

| Description: | Bitwise ors a register and an immediate value and stores the result in a register |
| ------------ | ------------------------------------------------------------ |
| Operation: | $t = $s | imm; advance_pc (4); |
| Syntax: | ori $t, $s, imm |
| Encoding: | `0011 01ss ssst tttt iiii iiii iiii iiii` |

**SB -- Store byte**

| Description: | The least significant byte of $t is stored at the specified address. |
| ------------ | ------------------------------------------------------------ |
| Operation: | MEM[\$s + offset] = (0xff & $t); advance_pc (4); |
| Syntax: | sb $t, offset(\$s) |
| Encoding: | `1010 00ss ssst tttt iiii iiii iiii iiii` |

**SLL -- Shift left logical**

| Description: | Shifts a register value left by the shift amount listed in the instruction and places the result in a third register. Zeroes are shifted in. |
| ------------ | ------------------------------------------------------------ |
| Operation: | $d = $t << h; advance_pc (4); |
| Syntax: | sll $d, $t, h |
| Encoding: | `0000 00ss ssst tttt dddd dhhh hh00 0000` |

**SLLV -- Shift left logical variable**

| Description: | Shifts a register value left by the value in a second register and places the result in a third register. Zeroes are shifted in. |
| ------------ | ------------------------------------------------------------ |
| Operation: | $d = $t << $s; advance_pc (4); |
| Syntax: | sllv $d, $t, $s |
| Encoding: | `0000 00ss ssst tttt dddd d--- --00 0100` |

**SLT -- Set on less than (signed)**

| Description: | If $s is less than $t, $d is set to one. It gets zero otherwise. |
| ------------ | ------------------------------------------------------------ |
| Operation: | if $s < $t $d = 1; advance_pc (4); else $d = 0; advance_pc (4); |
| Syntax: | slt $d, $s, $t |
| Encoding: | `0000 00ss ssst tttt dddd d000 0010 1010` |

**SLTI -- Set on less than immediate (signed)**

| Description: | If $s is less than immediate, $t is set to one. It gets zero otherwise. |
| ------------ | ------------------------------------------------------------ |
| Operation: | if $s < imm $t = 1; advance_pc (4); else $t = 0; advance_pc (4); |
| Syntax: | slti $t, $s, imm |
| Encoding: | `0010 10ss ssst tttt iiii iiii iiii iiii` |

**SLTIU -- Set on less than immediate unsigned**

| Description: | If $s is less than the unsigned immediate, $t is set to one. It gets zero otherwise. |
| ------------ | ------------------------------------------------------------ |
| Operation: | if $s < imm $t = 1; advance_pc (4); else $t = 0; advance_pc (4); |
| Syntax: | sltiu $t, $s, imm |
| Encoding: | `0010 11ss ssst tttt iiii iiii iiii iiii` |

**SLTU -- Set on less than unsigned**

| Description: | If $s is less than $t, $d is set to one. It gets zero otherwise. |
| ------------ | ------------------------------------------------------------ |
| Operation: | if $s < $t $d = 1; advance_pc (4); else $d = 0; advance_pc (4); |
| Syntax: | sltu $d, $s, $t |
| Encoding: | `0000 00ss ssst tttt dddd d000 0010 1011` |

**SRA -- Shift right arithmetic**

| Description: | Shifts a register value right by the shift amount (shamt) and places the value in the destination register. The sign bit is shifted in. |
| ------------ | ------------------------------------------------------------ |
| Operation: | $d = $t >> h; advance_pc (4); |
| Syntax: | sra $d, $t, h |
| Encoding: | `0000 00-- ---t tttt dddd dhhh hh00 0011` |

**SRL -- Shift right logical**

| Description: | Shifts a register value right by the shift amount (shamt) and places the value in the destination register. Zeroes are shifted in. |
| ------------ | ------------------------------------------------------------ |
| Operation: | $d = $t >> h; advance_pc (4); |
| Syntax: | srl $d, $t, h |
| Encoding: | `0000 00-- ---t tttt dddd dhhh hh00 0010` |

**SRLV -- Shift right logical variable**

| Description: | Shifts a register value right by the amount specified in $s and places the value in the destination register. Zeroes are shifted in. |
| ------------ | ------------------------------------------------------------ |
| Operation: | $d = $t >> $s; advance_pc (4); |
| Syntax: | srlv $d, $t, $s |
| Encoding: | `0000 00ss ssst tttt dddd d000 0000 0110` |

**SUB -- Subtract**

| Description: | Subtracts two registers and stores the result in a register |
| ------------ | ----------------------------------------------------------- |
| Operation: | $d = $s - $t; advance_pc (4); |
| Syntax: | sub $d, $s, $t |
| Encoding: | `0000 00ss ssst tttt dddd d000 0010 0010` |

**SUBU -- Subtract unsigned**

| Description: | Subtracts two registers and stores the result in a register |
| ------------ | ----------------------------------------------------------- |
| Operation: | $d = $s - $t; advance_pc (4); |
| Syntax: | subu $d, $s, $t |
| Encoding: | `0000 00ss ssst tttt dddd d000 0010 0011` |

**SW -- Store word**

| Description: | The contents of $t is stored at the specified address. |
| ------------ | ------------------------------------------------------ |
| Operation: | MEM[\$s + offset] = $t; advance_pc (4); |
| Syntax: | sw $t, offset(\$s) |
| Encoding: | `1010 11ss ssst tttt iiii iiii iiii iiii` |

**SYSCALL -- System call**

| Description: | Generates a software interrupt. |
| ------------ | ----------------------------------------- |
| Operation: | advance_pc (4); |
| Syntax: | syscall |
| Encoding: | `0000 00-- ---- ---- ---- ---- --00 1100` |

**XOR -- Bitwise exclusive or**

| Description: | Exclusive ors two registers and stores the result in a register |
| ------------ | ------------------------------------------------------------ |
| Operation: | $d = $s ^ $t; advance_pc (4); |
| Syntax: | xor $d, $s, $t |
| Encoding: | `0000 00ss ssst tttt dddd d--- --10 0110` |

**XORI -- Bitwise exclusive or immediate**

| Description: | Bitwise exclusive ors a register and an immediate value and stores the result in a register |
| ------------ | ------------------------------------------------------------ |
| Operation: | $t = $s ^ imm; advance_pc (4); |
| Syntax: | xori $t, $s, imm |
| Encoding: | `0011 10ss ssst tttt iiii iiii iiii iiii` |

### Reference
[MIPS Instruction Reference](http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html)


CREATE TABLE {$NAMESPACE}_user.user_status (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `userPHID` varchar(64) NOT NULL,
  `dateFrom` int unsigned NOT NULL,
  `dateTo` int unsigned NOT NULL,
  `status` tinyint unsigned NOT NULL,
  `dateCreated` int unsigned NOT NULL,
  `dateModified` int unsigned NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `userPHID_dateFrom` (`userPHID`, `dateTo`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


/****************************************************************************
**
** https://www.qxorm.com/
** Copyright (C) 2013 Lionel Marty (contact@qxorm.com)
**
** This file is part of the QxOrm library
**
** This software is provided 'as-is', without any express or implied
** warranty. In no event will the authors be held liable for any
** damages arising from the use of this software
**
** Commercial Usage
** Licensees holding valid commercial QxOrm licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Lionel Marty
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file 'license.gpl3.txt' included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met : http://www.gnu.org/copyleft/gpl.html
**
** If you are unsure which license is appropriate for your use, or
** if you have questions regarding the use of this file, please contact :
** contact@qxorm.com
**
****************************************************************************/

namespace qx {
namespace dao {
namespace detail {

template <class T>
struct QxSqlQueryHelper_DeleteById
{

   static void sql(QString & sql, qx::IxSqlQueryBuilder & builder, bool bSoftDelete)
   {
      static_assert(qx::trait::is_qx_registered<T>::value, "qx::trait::is_qx_registered<T>::value");
      qx::IxSqlQueryBuilder::sql_DeleteById(sql, builder, bSoftDelete);
   }

   static void resolveInput(T & t, QSqlQuery & query, qx::IxSqlQueryBuilder & builder)
   {
      static_assert(qx::trait::is_qx_registered<T>::value, "qx::trait::is_qx_registered<T>::value");
      qx::IxDataMember * pId = builder.getDataId(); qAssert(pId);
      pId->setSqlPlaceHolder(query, (& t));
   }

   static void resolveOutput(T & t, QSqlQuery & query, qx::IxSqlQueryBuilder & builder)
   { Q_UNUSED(t); Q_UNUSED(query); Q_UNUSED(builder); }

};

} // namespace detail
} // namespace dao
} // namespace qx