Electrum-1.9.7/0000755000000000000000000000000012264174460013254 5ustar rootroot00000000000000Electrum-1.9.7/RELEASE-NOTES0000664000175000017500000001626312264173041016713 0ustar voegtlinvoegtlin00000000000000# Release 1.9.7 * Fix for offline signing * Various bugfixes * GUI usability improvements * Coinbase Buyback plugin # Release 1.9.6 * During wallet creation, do not write seed to disk until it is encrypted. * Confirmation dialog if the transaction fee is higher than 1mBTC. * bugfixes # Release 1.9.5 * Coin control: select addresses to send from * Put addresses that have been used in a minimized section (Qt GUI) * Allow non ascii chars in passwords # Release 1.9.4 bugfixes: offline transactions # Release 1.9.3 bugfixes: connection problems, transactions staying unverified # Release 1.9.2 * fix a syntax error # Release 1.9.1 * fix regression with --offline mode * fix regression with --portable mode: use a dedicated directory # Release 1.9 * The client connects to multiple servers in order to retrieve block headers and find the longest chain * SSL certificate validation (to prevent MITM) * Deterministic signatures (RFC 6979) * Menu to create/restore/open wallets * Create transactions with multiple outputs from CSV (comma separated values) * New text gui: stdio * Plugins are no longer tied to the qt GUI, they can reach all GUIs * Proxy bugs have been fixed # Release 1.8.1 * Notification option when receiving new tranactions * Confirm dialogue before sending large amounts * Alternative datafile location for non-windows systems * Fix offline wallet creation * Remove enforced tx fee * Tray icon improvements * Various bugfixes # Release 1.8 * Menubar in classic gui * Updated the QR Code plugin to enable offline/online wallets to transmit unsigned/signed transactions via QR code. * Fixed bug where never-confirmed transactions prevented further spending # Release 1.7.4 * Increase default fee * fix create and restore in command line * fix verify message in the gui # Release 1.7.3: * Classic GUI can display amounts in mBTC * Account selector in the classic GUI * Changed the way the portable flag uses without supplying a -w argument * Classic GUI asks users to enter their seed on wallet creation # Release 1.7.2: * Transactions that are in the same block are displayed in chronological order in the history. * The client computes transaction priority and rejects zero-fee transactions that need a fee. * The default fee was lowered to 200 uBTC per kb. * Due to an internal format change, your history may be pruned when you open your wallet for the first time after upgrading to 1.7.2. If this is the case, please visit a full server to restore your full history. You will only need to do that once. # Release 1.7.1: bugfixes. # Release 1.7 * The Classic GUI can be extended with plugins. Developers who want to add new features or third-party services to Electrum are invited to write plugins. Some previously existing and non-essential features of Electrum (point-of-sale mode, qrcode scanner) were removed from the core and are now available as plugins. * The wallet waits for 2 confirmations before creating new addresses. This makes recovery from seed more robust. Note that it might create unwanted gaps if you use Electrum 1.7 together with older versions of Electrum. * An interactive Python console replaces the 'Wall' tab. The provided python environment gives users access to the wallet and gui. Most electrum commands are available as python function in the console. Custom scripts an be loaded with a "run(filename)" command. Tab-completions are available. * The location of the Electrum folder in Windows changed from LOCALAPPDATA to APPDATA. Discussion on this topic can be found here: https://bitcointalk.org/index.php?topic=144575.0 * Private keys can be exported from within the classic GUI: For a single address, use the address menu (right-click). To export the keys of your entire wallet, use the settings dialog (import/export tab). * It is possible to create, sign and redeem multisig transaction using the command line interface. This is made possible by the following new commands: dumpprivkey, listunspent, createmultisig, createrawtransaction, decoderawtransaction, signrawtransaction The syntax of these commands is similar to their bitcoind counterpart. For an example, see Gavin's tutorial: https://gist.github.com/gavinandresen/3966071 * Offline wallets now work in a way similar to Armory: 1. user creates an unsigned transaction using the online (watching-only) wallet. 2. unsigned transaction is copied to the offline computer, and signed by the offline wallet. 3. signed transaction is copied to the online computer, broadcasted by the online client. 4. All these steps can be done via the command line interface or the classic GUI. * Many command line commands have been renamed in order to make the syntax consistent with bitcoind. # Release 1.6.2 == Classic GUI * Added new version notification # Release 1.6.1 (11-01-2013) == Core * It is now possible to restore a wallet from MPK (this will create a watching-only wallet) * A switch button allows to easily switch between Lite and Classic GUI. == Classic GUI * Seed and MPK help dialogs were rewritten * Point of Sale: requested amounts can be expressed in other currencies and are converted to bitcoin. == Lite GUI * The receiving button was removed in favor of a menu item to keep it consistent with the history toggle. # Release 1.6.0 (07-01-2013) == Core * (Feature) Add support for importing, signing and verifiying compressed keys * (Feature) Auto reconnect to random server on disconnect * (Feature) Ultimate fallback to HTTP port 80 if TCP doesn't work on any server * (Bug) Under rare circumstances changing password with incorrect password could damage wallet == Lite GUI * (Chore) Use blockchain.info for exchange rate data * (Feature) added currency conversion for BRL, CNY, RUB * (Feature) Saraha theme * (Feature) csv import/export for transactions including labels == Classic GUI * (Chore) pruning servers now called "p", full servers "f" to avoid confusion with terms * (Feature) Debits in history shown in red * (Feature) csv import/export for transactions including labels # Release 1.5.8 (02-01-2013) == Core * (Bug) Fix pending address balance on received coins for pruning servers * (Bug) Fix history command line option to show output again (regression by SPV) * (Chore) Add timeout to blockchain headers file download by HTTP * (Feature) new option: -L, --language: default language used in GUI. == Lite GUI * (Bug) Sending to auto-completed contacts works again * (Chore) Added version number to title bar == Classic GUI * (Feature) Language selector in options. # Release 1.5.7 (18-12-2012) == Core * The blockchain headers file is no longer included in the packages, it is downloaded on startup. * New command line option: -P or --portable, for portable wallets. With this flag, all preferences are saved to the wallet file, and the blockchain headers file is in the same directory as the wallet == Lite GUI * (Feature) Added the ability to export your transactions to a CSV file. * (Feature) Added a label dialog after sending a transaction. * (Feature) Reworked receiving addresses; instead of a random selection from one of your receiving addresses a new widget will show listing unused addresses. * (Chore) Removed server selection. With all the new server options a simple menu item does not suffice anymore. Electrum-1.9.7/MANIFEST.in0000664000175000017500000000066612236532564016570 0ustar voegtlinvoegtlin00000000000000include README LICENCE RELEASE-NOTES AUTHORS include electrum.conf.sample include electrum.desktop include *.py include electrum recursive-include lib *.py recursive-include gui *.py recursive-include plugins *.py recursive-include ecdsa *.py recursive-include aes *.py include app.fil include icons.qrc recursive-include icons * recursive-include scripts * recursive-include data * recursive-include locale *.mo recursive-include docs * Electrum-1.9.7/aes/0000755000000000000000000000000012264174460014024 5ustar rootroot00000000000000Electrum-1.9.7/aes/__init__.py0000755000175000017500000006605412040515241017701 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/python # # aes.py: implements AES - Advanced Encryption Standard # from the SlowAES project, http://code.google.com/p/slowaes/ # # Copyright (c) 2008 Josh Davis ( http://www.josh-davis.org ), # Alex Martelli ( http://www.aleax.it ) # # Ported from C code written by Laurent Haan ( http://www.progressive-coding.com ) # # Licensed under the Apache License, Version 2.0 # http://www.apache.org/licenses/ # import os import sys import math def append_PKCS7_padding(s): """return s padded to a multiple of 16-bytes by PKCS7 padding""" numpads = 16 - (len(s)%16) return s + numpads*chr(numpads) def strip_PKCS7_padding(s): """return s stripped of PKCS7 padding""" if len(s)%16 or not s: raise ValueError("String of len %d can't be PCKS7-padded" % len(s)) numpads = ord(s[-1]) if numpads > 16: raise ValueError("String ending with %r can't be PCKS7-padded" % s[-1]) return s[:-numpads] class AES(object): # valid key sizes keySize = dict(SIZE_128=16, SIZE_192=24, SIZE_256=32) # Rijndael S-box sbox = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16] # Rijndael Inverted S-box rsbox = [0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb , 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb , 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e , 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25 , 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92 , 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84 , 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06 , 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b , 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73 , 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e , 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b , 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4 , 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f , 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef , 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61 , 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d] def getSBoxValue(self,num): """Retrieves a given S-Box Value""" return self.sbox[num] def getSBoxInvert(self,num): """Retrieves a given Inverted S-Box Value""" return self.rsbox[num] def rotate(self, word): """ Rijndael's key schedule rotate operation. Rotate a word eight bits to the left: eg, rotate(1d2c3a4f) == 2c3a4f1d Word is an char list of size 4 (32 bits overall). """ return word[1:] + word[:1] # Rijndael Rcon Rcon = [0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb ] def getRconValue(self, num): """Retrieves a given Rcon Value""" return self.Rcon[num] def core(self, word, iteration): """Key schedule core.""" # rotate the 32-bit word 8 bits to the left word = self.rotate(word) # apply S-Box substitution on all 4 parts of the 32-bit word for i in range(4): word[i] = self.getSBoxValue(word[i]) # XOR the output of the rcon operation with i to the first part # (leftmost) only word[0] = word[0] ^ self.getRconValue(iteration) return word def expandKey(self, key, size, expandedKeySize): """Rijndael's key expansion. Expands an 128,192,256 key into an 176,208,240 bytes key expandedKey is a char list of large enough size, key is the non-expanded key. """ # current expanded keySize, in bytes currentSize = 0 rconIteration = 1 expandedKey = [0] * expandedKeySize # set the 16, 24, 32 bytes of the expanded key to the input key for j in range(size): expandedKey[j] = key[j] currentSize += size while currentSize < expandedKeySize: # assign the previous 4 bytes to the temporary value t t = expandedKey[currentSize-4:currentSize] # every 16,24,32 bytes we apply the core schedule to t # and increment rconIteration afterwards if currentSize % size == 0: t = self.core(t, rconIteration) rconIteration += 1 # For 256-bit keys, we add an extra sbox to the calculation if size == self.keySize["SIZE_256"] and ((currentSize % size) == 16): for l in range(4): t[l] = self.getSBoxValue(t[l]) # We XOR t with the four-byte block 16,24,32 bytes before the new # expanded key. This becomes the next four bytes in the expanded # key. for m in range(4): expandedKey[currentSize] = expandedKey[currentSize - size] ^ \ t[m] currentSize += 1 return expandedKey def addRoundKey(self, state, roundKey): """Adds (XORs) the round key to the state.""" for i in range(16): state[i] ^= roundKey[i] return state def createRoundKey(self, expandedKey, roundKeyPointer): """Create a round key. Creates a round key from the given expanded key and the position within the expanded key. """ roundKey = [0] * 16 for i in range(4): for j in range(4): roundKey[j*4+i] = expandedKey[roundKeyPointer + i*4 + j] return roundKey def galois_multiplication(self, a, b): """Galois multiplication of 8 bit characters a and b.""" p = 0 for counter in range(8): if b & 1: p ^= a hi_bit_set = a & 0x80 a <<= 1 # keep a 8 bit a &= 0xFF if hi_bit_set: a ^= 0x1b b >>= 1 return p # # substitute all the values from the state with the value in the SBox # using the state value as index for the SBox # def subBytes(self, state, isInv): if isInv: getter = self.getSBoxInvert else: getter = self.getSBoxValue for i in range(16): state[i] = getter(state[i]) return state # iterate over the 4 rows and call shiftRow() with that row def shiftRows(self, state, isInv): for i in range(4): state = self.shiftRow(state, i*4, i, isInv) return state # each iteration shifts the row to the left by 1 def shiftRow(self, state, statePointer, nbr, isInv): for i in range(nbr): if isInv: state[statePointer:statePointer+4] = \ state[statePointer+3:statePointer+4] + \ state[statePointer:statePointer+3] else: state[statePointer:statePointer+4] = \ state[statePointer+1:statePointer+4] + \ state[statePointer:statePointer+1] return state # galois multiplication of the 4x4 matrix def mixColumns(self, state, isInv): # iterate over the 4 columns for i in range(4): # construct one column by slicing over the 4 rows column = state[i:i+16:4] # apply the mixColumn on one column column = self.mixColumn(column, isInv) # put the values back into the state state[i:i+16:4] = column return state # galois multiplication of 1 column of the 4x4 matrix def mixColumn(self, column, isInv): if isInv: mult = [14, 9, 13, 11] else: mult = [2, 1, 1, 3] cpy = list(column) g = self.galois_multiplication column[0] = g(cpy[0], mult[0]) ^ g(cpy[3], mult[1]) ^ \ g(cpy[2], mult[2]) ^ g(cpy[1], mult[3]) column[1] = g(cpy[1], mult[0]) ^ g(cpy[0], mult[1]) ^ \ g(cpy[3], mult[2]) ^ g(cpy[2], mult[3]) column[2] = g(cpy[2], mult[0]) ^ g(cpy[1], mult[1]) ^ \ g(cpy[0], mult[2]) ^ g(cpy[3], mult[3]) column[3] = g(cpy[3], mult[0]) ^ g(cpy[2], mult[1]) ^ \ g(cpy[1], mult[2]) ^ g(cpy[0], mult[3]) return column # applies the 4 operations of the forward round in sequence def aes_round(self, state, roundKey): state = self.subBytes(state, False) state = self.shiftRows(state, False) state = self.mixColumns(state, False) state = self.addRoundKey(state, roundKey) return state # applies the 4 operations of the inverse round in sequence def aes_invRound(self, state, roundKey): state = self.shiftRows(state, True) state = self.subBytes(state, True) state = self.addRoundKey(state, roundKey) state = self.mixColumns(state, True) return state # Perform the initial operations, the standard round, and the final # operations of the forward aes, creating a round key for each round def aes_main(self, state, expandedKey, nbrRounds): state = self.addRoundKey(state, self.createRoundKey(expandedKey, 0)) i = 1 while i < nbrRounds: state = self.aes_round(state, self.createRoundKey(expandedKey, 16*i)) i += 1 state = self.subBytes(state, False) state = self.shiftRows(state, False) state = self.addRoundKey(state, self.createRoundKey(expandedKey, 16*nbrRounds)) return state # Perform the initial operations, the standard round, and the final # operations of the inverse aes, creating a round key for each round def aes_invMain(self, state, expandedKey, nbrRounds): state = self.addRoundKey(state, self.createRoundKey(expandedKey, 16*nbrRounds)) i = nbrRounds - 1 while i > 0: state = self.aes_invRound(state, self.createRoundKey(expandedKey, 16*i)) i -= 1 state = self.shiftRows(state, True) state = self.subBytes(state, True) state = self.addRoundKey(state, self.createRoundKey(expandedKey, 0)) return state # encrypts a 128 bit input block against the given key of size specified def encrypt(self, iput, key, size): output = [0] * 16 # the number of rounds nbrRounds = 0 # the 128 bit block to encode block = [0] * 16 # set the number of rounds if size == self.keySize["SIZE_128"]: nbrRounds = 10 elif size == self.keySize["SIZE_192"]: nbrRounds = 12 elif size == self.keySize["SIZE_256"]: nbrRounds = 14 else: return None # the expanded keySize expandedKeySize = 16*(nbrRounds+1) # Set the block values, for the block: # a0,0 a0,1 a0,2 a0,3 # a1,0 a1,1 a1,2 a1,3 # a2,0 a2,1 a2,2 a2,3 # a3,0 a3,1 a3,2 a3,3 # the mapping order is a0,0 a1,0 a2,0 a3,0 a0,1 a1,1 ... a2,3 a3,3 # # iterate over the columns for i in range(4): # iterate over the rows for j in range(4): block[(i+(j*4))] = iput[(i*4)+j] # expand the key into an 176, 208, 240 bytes key # the expanded key expandedKey = self.expandKey(key, size, expandedKeySize) # encrypt the block using the expandedKey block = self.aes_main(block, expandedKey, nbrRounds) # unmap the block again into the output for k in range(4): # iterate over the rows for l in range(4): output[(k*4)+l] = block[(k+(l*4))] return output # decrypts a 128 bit input block against the given key of size specified def decrypt(self, iput, key, size): output = [0] * 16 # the number of rounds nbrRounds = 0 # the 128 bit block to decode block = [0] * 16 # set the number of rounds if size == self.keySize["SIZE_128"]: nbrRounds = 10 elif size == self.keySize["SIZE_192"]: nbrRounds = 12 elif size == self.keySize["SIZE_256"]: nbrRounds = 14 else: return None # the expanded keySize expandedKeySize = 16*(nbrRounds+1) # Set the block values, for the block: # a0,0 a0,1 a0,2 a0,3 # a1,0 a1,1 a1,2 a1,3 # a2,0 a2,1 a2,2 a2,3 # a3,0 a3,1 a3,2 a3,3 # the mapping order is a0,0 a1,0 a2,0 a3,0 a0,1 a1,1 ... a2,3 a3,3 # iterate over the columns for i in range(4): # iterate over the rows for j in range(4): block[(i+(j*4))] = iput[(i*4)+j] # expand the key into an 176, 208, 240 bytes key expandedKey = self.expandKey(key, size, expandedKeySize) # decrypt the block using the expandedKey block = self.aes_invMain(block, expandedKey, nbrRounds) # unmap the block again into the output for k in range(4): # iterate over the rows for l in range(4): output[(k*4)+l] = block[(k+(l*4))] return output class AESModeOfOperation(object): aes = AES() # structure of supported modes of operation modeOfOperation = dict(OFB=0, CFB=1, CBC=2) # converts a 16 character string into a number array def convertString(self, string, start, end, mode): if end - start > 16: end = start + 16 if mode == self.modeOfOperation["CBC"]: ar = [0] * 16 else: ar = [] i = start j = 0 while len(ar) < end - start: ar.append(0) while i < end: ar[j] = ord(string[i]) j += 1 i += 1 return ar # Mode of Operation Encryption # stringIn - Input String # mode - mode of type modeOfOperation # hexKey - a hex key of the bit length size # size - the bit length of the key # hexIV - the 128 bit hex Initilization Vector def encrypt(self, stringIn, mode, key, size, IV): if len(key) % size: return None if len(IV) % 16: return None # the AES input/output plaintext = [] iput = [0] * 16 output = [] ciphertext = [0] * 16 # the output cipher string cipherOut = [] # char firstRound firstRound = True if stringIn != None: for j in range(int(math.ceil(float(len(stringIn))/16))): start = j*16 end = j*16+16 if end > len(stringIn): end = len(stringIn) plaintext = self.convertString(stringIn, start, end, mode) # print 'PT@%s:%s' % (j, plaintext) if mode == self.modeOfOperation["CFB"]: if firstRound: output = self.aes.encrypt(IV, key, size) firstRound = False else: output = self.aes.encrypt(iput, key, size) for i in range(16): if len(plaintext)-1 < i: ciphertext[i] = 0 ^ output[i] elif len(output)-1 < i: ciphertext[i] = plaintext[i] ^ 0 elif len(plaintext)-1 < i and len(output) < i: ciphertext[i] = 0 ^ 0 else: ciphertext[i] = plaintext[i] ^ output[i] for k in range(end-start): cipherOut.append(ciphertext[k]) iput = ciphertext elif mode == self.modeOfOperation["OFB"]: if firstRound: output = self.aes.encrypt(IV, key, size) firstRound = False else: output = self.aes.encrypt(iput, key, size) for i in range(16): if len(plaintext)-1 < i: ciphertext[i] = 0 ^ output[i] elif len(output)-1 < i: ciphertext[i] = plaintext[i] ^ 0 elif len(plaintext)-1 < i and len(output) < i: ciphertext[i] = 0 ^ 0 else: ciphertext[i] = plaintext[i] ^ output[i] for k in range(end-start): cipherOut.append(ciphertext[k]) iput = output elif mode == self.modeOfOperation["CBC"]: for i in range(16): if firstRound: iput[i] = plaintext[i] ^ IV[i] else: iput[i] = plaintext[i] ^ ciphertext[i] # print 'IP@%s:%s' % (j, iput) firstRound = False ciphertext = self.aes.encrypt(iput, key, size) # always 16 bytes because of the padding for CBC for k in range(16): cipherOut.append(ciphertext[k]) return mode, len(stringIn), cipherOut # Mode of Operation Decryption # cipherIn - Encrypted String # originalsize - The unencrypted string length - required for CBC # mode - mode of type modeOfOperation # key - a number array of the bit length size # size - the bit length of the key # IV - the 128 bit number array Initilization Vector def decrypt(self, cipherIn, originalsize, mode, key, size, IV): # cipherIn = unescCtrlChars(cipherIn) if len(key) % size: return None if len(IV) % 16: return None # the AES input/output ciphertext = [] iput = [] output = [] plaintext = [0] * 16 # the output plain text string stringOut = '' # char firstRound firstRound = True if cipherIn != None: for j in range(int(math.ceil(float(len(cipherIn))/16))): start = j*16 end = j*16+16 if j*16+16 > len(cipherIn): end = len(cipherIn) ciphertext = cipherIn[start:end] if mode == self.modeOfOperation["CFB"]: if firstRound: output = self.aes.encrypt(IV, key, size) firstRound = False else: output = self.aes.encrypt(iput, key, size) for i in range(16): if len(output)-1 < i: plaintext[i] = 0 ^ ciphertext[i] elif len(ciphertext)-1 < i: plaintext[i] = output[i] ^ 0 elif len(output)-1 < i and len(ciphertext) < i: plaintext[i] = 0 ^ 0 else: plaintext[i] = output[i] ^ ciphertext[i] for k in range(end-start): stringOut += chr(plaintext[k]) iput = ciphertext elif mode == self.modeOfOperation["OFB"]: if firstRound: output = self.aes.encrypt(IV, key, size) firstRound = False else: output = self.aes.encrypt(iput, key, size) for i in range(16): if len(output)-1 < i: plaintext[i] = 0 ^ ciphertext[i] elif len(ciphertext)-1 < i: plaintext[i] = output[i] ^ 0 elif len(output)-1 < i and len(ciphertext) < i: plaintext[i] = 0 ^ 0 else: plaintext[i] = output[i] ^ ciphertext[i] for k in range(end-start): stringOut += chr(plaintext[k]) iput = output elif mode == self.modeOfOperation["CBC"]: output = self.aes.decrypt(ciphertext, key, size) for i in range(16): if firstRound: plaintext[i] = IV[i] ^ output[i] else: plaintext[i] = iput[i] ^ output[i] firstRound = False if originalsize is not None and originalsize < end: for k in range(originalsize-start): stringOut += chr(plaintext[k]) else: for k in range(end-start): stringOut += chr(plaintext[k]) iput = ciphertext return stringOut def encryptData(key, data, mode=AESModeOfOperation.modeOfOperation["CBC"]): """encrypt `data` using `key` `key` should be a string of bytes. returned cipher is a string of bytes prepended with the initialization vector. """ key = map(ord, key) if mode == AESModeOfOperation.modeOfOperation["CBC"]: data = append_PKCS7_padding(data) keysize = len(key) assert keysize in AES.keySize.values(), 'invalid key size: %s' % keysize # create a new iv using random data iv = [ord(i) for i in os.urandom(16)] moo = AESModeOfOperation() (mode, length, ciph) = moo.encrypt(data, mode, key, keysize, iv) # With padding, the original length does not need to be known. It's a bad # idea to store the original message length. # prepend the iv. return ''.join(map(chr, iv)) + ''.join(map(chr, ciph)) def decryptData(key, data, mode=AESModeOfOperation.modeOfOperation["CBC"]): """decrypt `data` using `key` `key` should be a string of bytes. `data` should have the initialization vector prepended as a string of ordinal values. """ key = map(ord, key) keysize = len(key) assert keysize in AES.keySize.values(), 'invalid key size: %s' % keysize # iv is first 16 bytes iv = map(ord, data[:16]) data = map(ord, data[16:]) moo = AESModeOfOperation() decr = moo.decrypt(data, None, mode, key, keysize, iv) if mode == AESModeOfOperation.modeOfOperation["CBC"]: decr = strip_PKCS7_padding(decr) return decr def generateRandomKey(keysize): """Generates a key from random data of length `keysize`. The returned key is a string of bytes. """ if keysize not in (16, 24, 32): emsg = 'Invalid keysize, %s. Should be one of (16, 24, 32).' raise ValueError, emsg % keysize return os.urandom(keysize) if __name__ == "__main__": moo = AESModeOfOperation() cleartext = "This is a test!" cypherkey = [143,194,34,208,145,203,230,143,177,246,97,206,145,92,255,84] iv = [103,35,148,239,76,213,47,118,255,222,123,176,106,134,98,92] mode, orig_len, ciph = moo.encrypt(cleartext, moo.modeOfOperation["CBC"], cypherkey, moo.aes.keySize["SIZE_128"], iv) print 'm=%s, ol=%s (%s), ciph=%s' % (mode, orig_len, len(cleartext), ciph) decr = moo.decrypt(ciph, orig_len, mode, cypherkey, moo.aes.keySize["SIZE_128"], iv) print decr Electrum-1.9.7/test2.py0000775000175000017500000000111012247427207016430 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python import sys, time, electrum try: addr = sys.argv[1] except Exception: print "usage: watch_address " sys.exit(1) # 1. start the interface and wait for connection interface = electrum.Interface('ecdsa.org:50002:s') interface.start(wait = True) if not interface.is_connected: print "not connected" exit() # 2. send the subscription callback = lambda _,result: electrum.print_json(result.get('result')) interface.send([('blockchain.address.subscribe',[addr])], callback) # 3. wait for results while True: time.sleep(1) Electrum-1.9.7/setup-release.py0000644000175000017500000000550612263170434020150 0ustar voegtlinvoegtlin00000000000000""" py2app/py2exe build script for Electrum Litecoin Usage (Mac OS X): python setup.py py2app Usage (Windows): python setup.py py2exe """ from setuptools import setup import os import re import shutil import sys from lib.util import print_error from lib.version import ELECTRUM_VERSION as version name = "Electrum" mainscript = 'electrum' if sys.version_info[:3] < (2, 6, 0): print_error("Error: " + name + " requires Python version >= 2.6.0...") sys.exit(1) if sys.platform == 'darwin': from plistlib import Plist plist = Plist.fromFile('Info.plist') plist.update(dict(CFBundleIconFile='electrum.icns')) shutil.copy(mainscript, mainscript + '.py') mainscript += '.py' extra_options = dict( setup_requires=['py2app'], app=[mainscript], options=dict(py2app=dict(argv_emulation=True, includes=['PyQt4.QtCore', 'PyQt4.QtGui', 'PyQt4.QtWebKit', 'PyQt4.QtNetwork', 'sip'], packages=['lib', 'gui', 'plugins'], iconfile='electrum.icns', plist=plist, resources=["data", "icons"])), ) elif sys.platform == 'win32': extra_options = dict( setup_requires=['py2exe'], app=[mainscript], ) else: extra_options = dict( # Normally unix-like platforms will use "setup.py install" # and install the main script as such scripts=[mainscript], ) setup( name=name, version=version, **extra_options ) from distutils import dir_util if sys.platform == 'darwin': # Remove the copied py file os.remove(mainscript) resource = "dist/" + name + ".app/Contents/Resources/" dir_util.copy_tree("locale", resource + "locale/") # Try to locate qt_menu # Let's try the port version first! if os.path.isfile("/opt/local/lib/Resources/qt_menu.nib"): qt_menu_location = "/opt/local/lib/Resources/qt_menu.nib" else: # No dice? Then let's try the brew version if os.path.exists("/usr/local/Cellar"): qt_menu_location = os.popen("find /usr/local/Cellar -name qt_menu.nib | tail -n 1").read() # no brew, check /opt/local else: qt_menu_location = os.popen("find /opt/local -name qt_menu.nib | tail -n 1").read() qt_menu_location = re.sub('\n', '', qt_menu_location) if (len(qt_menu_location) == 0): print "Sorry couldn't find your qt_menu.nib this probably won't work" else: print "Found your qib: " + qt_menu_location # Need to include a copy of qt_menu.nib shutil.copytree(qt_menu_location, resource + "qt_menu.nib") # Need to touch qt.conf to avoid loading 2 sets of Qt libraries fname = resource + "qt.conf" with file(fname, 'a'): os.utime(fname, None) Electrum-1.9.7/docs/0000755000000000000000000000000012264174460014204 5ustar rootroot00000000000000Electrum-1.9.7/docs/android.html0000644000175000017500000000500412044441755020253 0ustar voegtlinvoegtlin00000000000000

Electrum for Android

This page explains how to install Electrum on Android devices.

Please note that Electrum is not distributed as a binary package, but as python source code; this gives users the possibility to see what the code is doing, and to check that it does not contain malware. The downside is that installation is slightly more complicated than downloading an app on the Android market, but it remains very simple.

It is possible to print this page on paper and to install everything from QR codes. If you encounter problems, you may find help at this link.

1. Download and install Google Scripting Layer for Android

You can get it here, or by scanning the following qr code:

2. Download and install Python for Android

You can get it here, or by scanning the following qr code:

Once you have installed the apk, launch the Python for Android application and click 'install'

3. Download the Electrum install script

Download e4a_install.py and install it in your sl4a/scripts directory. You can do it manually, or from QR code, as follows:
1. Launch SL4A.
2. Press the Menu button.
3. Tap Add.
4. Tap Scan Barcode.
5. Scan the following QRcode:
This will install a script named e4a_install.py

4. Download and install Electrum

1. Tap e4a_install.py: it will download and install a directory named "Electrum-0.43d"
2. To launch Electrum, visit the "Electrum-0.43d" directory and tap 'electrum4a.py'
Electrum-1.9.7/docs/offline_wallets0000644000175000017500000000605312133031644021041 0ustar voegtlinvoegtlin00000000000000Here is how to sign a transaction with an offline Electrum wallet. 1. With your online (seedless) wallet, create the transaction using mktx: ./electrum mktx 1Cpf9zb5Rm5Z5qmmGezn6ERxFWvwuZ6UCx 0.1 { "complete": false, "hex": "010000000296f054a6eccd3051444aec20e9c5c9b58739e70c7d958e4eb03587acf99d02e70000000000ffffffffdf350752fe6e27534633bb59327d9feb347756fe8d6e5b0b56312aca57df0eb30000000000ffffffff02f4345c35000000001976a914aaf437e25805f288141bfcdc27887ee5492bd13188ac80969800000000001976a91481acc8b7f9ec7cbf45a02dd8b758c6ac6a1481ca88ac00000000", "input_info": "[{'scriptPubKey':'76a91411bbdc6e3a27c44644d83f783ca7df3bdc2778e688ac','electrumKeyID':(15,False),'vout':0,'txid':u'e7029df9ac8735b04e8e957d0ce73987b5c9c5e920ec4a445130cdeca654f096'},{'scriptPubKey':'76a914aaf437e25805f288141bfcdc27887ee5492bd13188ac','electrumKeyID':(112,True),'vout':0,'txid':u'b30edf57ca2a31560b5b6e8dfe567734eb9f7d3259bb334653276efe520735df'}]" } Note that returned json contains the unsigned tx in "hex". The field "complete" is false because the transaction is not signed, and "input_info" contains parameters that need to be passed to the offline wallet so that it knows which private keys to generate. 2. Sign the transaction with your offline wallet: pass "hex" and "input_info" to 'signrawtransaction': ./electrum signrawtransaction 010000000296f054a6eccd3051444aec20e9c5c9b58739e70c7d958e4eb03587acf99d02e70000000000ffffffffdf350752fe6e27534633bb59327d9feb347756fe8d6e5b0b56312aca57df0eb30000000000ffffffff0280969800000000001976a91481acc8b7f9ec7cbf45a02dd8b758c6ac6a1481ca88acf4345c35000000001976a914aaf437e25805f288141bfcdc27887ee5492bd13188ac00000000 "[{'scriptPubKey':'76a91411bbdc6e3a27c44644d83f783ca7df3bdc2778e688ac','electrumKeyID':(15,False),'vout':0,'txid':u'e7029df9ac8735b04e8e957d0ce73987b5c9c5e920ec4a445130cdeca654f096'},{'scriptPubKey':'76a914aaf437e25805f288141bfcdc27887ee5492bd13188ac','electrumKeyID':(112,True),'vout':0,'txid':u'b30edf57ca2a31560b5b6e8dfe567734eb9f7d3259bb334653276efe520735df'}]" Password: { "complete": true, "hex": "010000000296f054a6eccd3051444aec20e9c5c9b58739e70c7d958e4eb03587acf99d02e7000000008b483045022100893c91ffcf3886aeb9dd6b11e5063b501546924d888826c3a92e5c7f3cf5e43602207667a4bd014d7eda2d48a651f18540937f4aeaae629e2a8851826bcfdf0967cb01410483aab8cc5fb1497bf438fef22556d1d3ccda8e96c36d39c616ae56979f939057f1eee07212e7d02080d62e366a1d7eaaa25d0740d8f8f61c01b3405577204ad3ffffffffdf350752fe6e27534633bb59327d9feb347756fe8d6e5b0b56312aca57df0eb3000000008c493046022100d6086e63e3f0beac314cb71f29c52159ad2e6dccfb257b2378eeff1cbb0c2038022100eb1808698c2275565418731e16a6377c69c57209aba46c5fb65dc4240f1c06ba014104315efb3001e2452f7848c43329234f11e54a4e59df7bcadd8b32f4dd9c3ca384dac96820f39860011243586e30fe79be920378d3709ec71b504e59bb450f5066ffffffff0280969800000000001976a91481acc8b7f9ec7cbf45a02dd8b758c6ac6a1481ca88acf4345c35000000001976a914aaf437e25805f288141bfcdc27887ee5492bd13188ac00000000" } The command returns a fully signed transaction, as indicated by the "complete" field. This transaction can be sent to the network with 'sendrawtransaction' Electrum-1.9.7/docs/console.html0000644000175000017500000000521712133031644020272 0ustar voegtlinvoegtlin00000000000000 This is the documentation for the Electrum Console.

Most Electrum command-line commands are also available in the console.
The results are Python objects, even though they are sometimes rendered as JSON for clarity.

Let us call listunspent(), to see the list of unspent outputs in the wallet:
>> listunspent()
[
    {
        "address": "12cmY5RHRgx8KkUKASDcDYRotget9FNso3", 
        "index": 0, 
        "raw_output_script": "76a91411bbdc6e3a27c44644d83f783ca7df3bdc2778e688ac", 
        "tx_hash": "e7029df9ac8735b04e8e957d0ce73987b5c9c5e920ec4a445130cdeca654f096", 
        "value": 0.01
    }, 
    {
        "address": "1GavSCND6TB7HuCnJSTEbHEmCctNGeJwXF", 
        "index": 0, 
        "raw_output_script": "76a914aaf437e25805f288141bfcdc27887ee5492bd13188ac", 
        "tx_hash": "b30edf57ca2a31560b5b6e8dfe567734eb9f7d3259bb334653276efe520735df", 
        "value": 9.04735316
    }
]
Note that the result is rendered as JSON.
However, if we save it to a Python variable, it is rendered as a Python object:
>> u = listunspent()
>> u
[{'tx_hash': u'e7029df9ac8735b04e8e957d0ce73987b5c9c5e920ec4a445130cdeca654f096', 'index': 0, 'raw_output_script': '76a91411bbdc6e3a27c44644d83f783ca7df3bdc2778e688ac', 'value': 0.01, 'address': '12cmY5RHRgx8KkUKASDcDYRotget9FNso3'}, {'tx_hash': u'b30edf57ca2a31560b5b6e8dfe567734eb9f7d3259bb334653276efe520735df', 'index': 0, 'raw_output_script': '76a914aaf437e25805f288141bfcdc27887ee5492bd13188ac', 'value': 9.04735316, 'address': '1GavSCND6TB7HuCnJSTEbHEmCctNGeJwXF'}]

This makes it possible to combine Electrum commands with Python.
For example, let us pick only the addresses in the previous result:
>> map(lambda x:x.get('address'), listunspent())
[
    "12cmY5RHRgx8KkUKASDcDYRotget9FNso3", 
    "1GavSCND6TB7HuCnJSTEbHEmCctNGeJwXF"
]
Here we combine two commands, listunspent and dumpprivkeys, in order to dump the private keys of all adresses that have unspent outputs:
>> dumpprivkeys( map(lambda x:x.get('address'), listunspent()) )
{
    "12cmY5RHRgx8KkUKASDcDYRotget9FNso3": "***************************************************", 
    "1GavSCND6TB7HuCnJSTEbHEmCctNGeJwXF": "***************************************************"
}
Note that dumpprivkey will ask for your password if your wallet is encrypted.
The GUI methods can be accessed through the gui variable. For example, you can display a QR code from a string using gui.show_qrcode. Example:
gui.show_qrcode(dumpprivkey(listunspent()[0]['address']))
Electrum-1.9.7/PKG-INFO0000644000000000000000000000035512264174460014354 0ustar rootroot00000000000000Metadata-Version: 1.0 Name: Electrum Version: 1.9.7 Summary: Lightweight Bitcoin Wallet Home-page: http://electrum.org Author: ecdsa Author-email: ecdsa@github License: GNU GPLv3 Description: Lightweight Bitcoin Wallet Platform: UNKNOWN Electrum-1.9.7/LICENCE0000644000175000017500000010451312044441755016007 0ustar voegtlinvoegtlin00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . Electrum-1.9.7/mki18n.py0000775000175000017500000000400312247641560016502 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/python from StringIO import StringIO import urllib2, os, zipfile, pycurl crowdin_identifier = 'electrum' crowdin_file_name = 'electrum-client/messages.pot' locale_file_name = 'locale/messages.pot' if os.path.exists('build/crowdin_api_key.txt'): crowdin_api_key = open('build/crowdin_api_key.txt').read() # Generate fresh translation template if not os.path.exists('locale'): os.mkdir('locale') cmd = 'xgettext -s --no-wrap -f app.fil --output=locale/messages.pot' print 'Generate template' os.system(cmd) # Push to Crowdin print 'Push to Crowdin' url = ('http://api.crowdin.net/api/project/' + crowdin_identifier + '/update-file?key=' + crowdin_api_key) c = pycurl.Curl() c.setopt(c.URL, url) c.setopt(c.POST, 1) fields = [('files[' + crowdin_file_name + ']', (pycurl.FORM_FILE, locale_file_name))] c.setopt(c.HTTPPOST, fields) c.perform() # Build translations print 'Build translations' response = urllib2.urlopen('http://api.crowdin.net/api/project/' + crowdin_identifier + '/export?key=' + crowdin_api_key).read() print response # Download & unzip print 'Download translations' zfobj = zipfile.ZipFile(StringIO(urllib2.urlopen('http://crowdin.net/download/project/' + crowdin_identifier + '.zip').read())) print 'Unzip translations' for name in zfobj.namelist(): if not name.startswith('electrum-client/locale'): continue if name.endswith('/'): if not os.path.exists(name[16:]): os.mkdir(name[16:]) else: output = open(name[16:],'w') output.write(zfobj.read(name)) output.close() # Convert .po to .mo print 'Installing' for lang in os.listdir('./locale'): if lang.startswith('messages'): continue # Check LC_MESSAGES folder mo_dir = 'locale/%s/LC_MESSAGES' % lang if not os.path.exists(mo_dir): os.mkdir(mo_dir) cmd = 'msgfmt --output-file="%s/electrum.mo" "locale/%s/electrum.po"' % (mo_dir,lang) print 'Installing',lang os.system(cmd) Electrum-1.9.7/scripts/0000755000000000000000000000000012264174460014743 5ustar rootroot00000000000000Electrum-1.9.7/scripts/get_balance0000775000175000017500000000502012247641560020657 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python import sys from electrum import Interface from electrum import bitcoin, Transaction, Network def get_transaction(network, tx_hash, tx_height): raw_tx = network.synchronous_get([( 'blockchain.transaction.get', [tx_hash, tx_height])])[0] tx = Transaction(raw_tx) return tx def get_history(network, addr): transactions = network.synchronous_get([( 'blockchain.address.get_history', [addr])])[0] transactions.sort(key=lambda x: x["height"]) return [(i["tx_hash"], i["height"]) for i in transactions] def get_addr_balance(network, address): prevout_values = {} h = get_history(network, address) if h == ['*']: return 0, 0 c = u = 0 received_coins = [] # list of coins received at address transactions = {} # fetch transactions for tx_hash, tx_height in h: transactions[(tx_hash, tx_height)] = get_transaction( network, tx_hash, tx_height) for tx_hash, tx_height in h: tx = transactions[(tx_hash, tx_height)] if not tx: continue update_tx_outputs(tx, prevout_values) for i, (addr, value) in enumerate(tx.outputs): if addr == address: key = tx_hash + ':%d' % i received_coins.append(key) for tx_hash, tx_height in h: tx = transactions[(tx_hash, tx_height)] if not tx: continue v = 0 for item in tx.inputs: addr = item.get('address') if addr == address: key = item['prevout_hash'] + ':%d' % item['prevout_n'] value = prevout_values.get(key) if key in received_coins: v -= value for i, (addr, value) in enumerate(tx.outputs): key = tx_hash + ':%d' % i if addr == address: v += value if tx_height: c += v else: u += v return c, u def update_tx_outputs(tx, prevout_values): for i, (addr, value) in enumerate(tx.outputs): key = tx.hash() + ':%d' % i prevout_values[key] = value def main(address): network = Network() network.start(wait=True) c, u = get_addr_balance(network, address) print("Balance - confirmed: %d (%.8f BTC), unconfirmed: %d (%.8f BTC)" % (c, c / 100000000., u, u / 100000000.)) if __name__ == "__main__": try: address = sys.argv[1] except Exception: print "usage: get_balance " sys.exit(1) main(address) Electrum-1.9.7/scripts/peers0000775000175000017500000000063012253646707017560 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python import time, electrum electrum.set_verbosity(False) # default is True network = electrum.Network({'auto_cycle':True}) network.register_callback('peers',lambda: electrum.print_json(network.irc_servers.keys())) if not network.start(wait=True): print "Not connected" exit(1) print "Connected to", network.interface.server while not network.irc_servers: time.sleep(1) Electrum-1.9.7/scripts/watch_address0000775000175000017500000000112112247641560021244 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python import sys, time, electrum try: addr = sys.argv[1] except Exception: print "usage: watch_address " sys.exit(1) # 1. start the interface and wait for connection interface = electrum.Interface('electrum.no-ip.org:50002:s') interface.start(wait = True) if not interface.is_connected: print "not connected" exit() # 2. send the subscription callback = lambda _,result: electrum.print_json(result.get('result')) interface.send([('blockchain.address.subscribe',[addr])], callback) # 3. wait for results while True: time.sleep(1) Electrum-1.9.7/scripts/block_headers0000775000175000017500000000103412236532564021222 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python # A simple script that connects to a server and displays block headers import time, electrum # 1. start the interface and wait for connection interface = electrum.Interface('electrum.no-ip.org:50002:s') interface.start(wait = True) if not interface.is_connected: print "not connected" exit() # 2. send the subscription callback = lambda _,result: electrum.print_json(result.get('result')) interface.send([('blockchain.headers.subscribe',[])], callback) # 3. wait for results while True: time.sleep(1) Electrum-1.9.7/scripts/servers0000775000175000017500000000225612236532564020135 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python from electrum import Interface, SimpleConfig, set_verbosity from electrum.network import DEFAULT_SERVERS, filter_protocol import time, Queue from collections import defaultdict set_verbosity(False) config = SimpleConfig() servers = filter_protocol(DEFAULT_SERVERS,'t') interfaces = map ( lambda server: Interface(server, config), servers ) q = Queue.Queue() results_queue = Queue.Queue() for i in interfaces: i.start(q) reached_servers = [] while servers: i = q.get(timeout=1000) servers.remove(i.server) if i.is_connected: i.send([('blockchain.numblocks.subscribe',[])], lambda i,x: results_queue.put((i,x))) reached_servers.append(i.server) i.status = "ok" else: i.status = "unreachable" d = defaultdict(int) while reached_servers: i, r = results_queue.get(timeout=1000) i.blocks = r.get('result') d[i.blocks] += 1 reached_servers.remove(i.server) v = d.values() numblocks = d.keys()[v.index(max(v))] for i in interfaces: if i.status == "ok": if abs(i.blocks-numblocks)>1: i.status = "lagging" else: i.blocks = 0 print "%30s %d %s "%(i.host, i.blocks, i.status) Electrum-1.9.7/scripts/get_history0000775000175000017500000000052312247641560020776 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python import sys from electrum import Network try: addr = sys.argv[1] except Exception: print "usage: get_history " sys.exit(1) n = Network() n.start(wait=True) h = n.synchronous_get([ ('blockchain.address.get_history',[addr]) ])[0] for item in h: print item['tx_hash'], item['height'] Electrum-1.9.7/scripts/#peers#0000775000175000017500000000063012253661476017666 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python import time, electrum electrum.set_verbosity(False) # default is True network = electrum.Network({'auto_cycle':True}) network.register_callback('peers',lambda: electrum.print_json(network.irc_servers.keys())) if not network.start(wait=True): print "Not connected" exit(1) print "Connected to", network.interface.server while not network.irc_servers: time.sleep(1) Electrum-1.9.7/scripts/merchant/0000755000000000000000000000000012264174460016544 5ustar rootroot00000000000000Electrum-1.9.7/scripts/merchant/no_path0000600000175000017500000000113712224332373021646 0ustar voegtlinvoegtlin00000000000000{'labels': {"m/0'/0": 'Main account'}, 'master_public_keys': {"m/0'/": ('3c835d6b71e7861645828e9749f7e46b6160629057a91f0a354370fba32ded56', 'eac569df8b1132ced485292d7ebad1f252ebf2195f63c1e6f0aea50e7e609eb72a2ef3eb6f52a0fe4f4d2e5b54fac0a93ae355aebcf803ec5edf3717529d7fcb', '')}, 'accounts': {"m/0'/0": {'1': [], '0': [], 'c': '456d18f3fad84534f06779601480e13623202d7497de78b019a819409a221e42', 'K': '2876a1cc4a8cb44a12634baaa058676a1bb7eb08724f57def26461ff8d28dfdd5d13d02876e5514473311b977bce23cbc672f124bd064990f01f58ce18e5e9db', 'cK': '032876a1cc4a8cb44a12634baaa058676a1bb7eb08724f57def26461ff8d28dfdd'}}}Electrum-1.9.7/scripts/merchant/merchant.conf.template0000664000175000017500000000105412236532564024574 0ustar voegtlinvoegtlin00000000000000[main] host = hostname of the machine where you run this program port = choose a port number password = choose a password [sqlite3] database = database filename [electrum] mpk = the master public key of your wallet (in hexadecimal) chain = second part of the mastrer public key (hexadecimal) wallet_path = path where the script will save the wallet [callback] received = URL where we POST json data when payment has been received expired = URL where we POST json data if payment has expired password = password sent in the json data, for authentication Electrum-1.9.7/scripts/merchant/test.db0000644000175000017500000000400012224333750021561 0ustar voegtlinvoegtlin00000000000000SQLite format 3@  -â' **S//‚Utableelectrum_paymentselectrum_paymentsCREATE TABLE electrum_payments (address VARCHAR(40), amount FLOAT, confirmations INT(8), received_at TIMESTAMP, expires_at TIMESTAMP, paid INT(1), processed INT(1)) 9¥Jï”9YQ331Ar61nuTfshipeTy4nqcDywaudCB1WtTUv?¹™™™™™š2013-10-06 19:20:082013-10-06 19:32:08YQ331Fg1e3XfmX4Uqumz3ww2XmSfBLzjCTVZrK?¹™™™™™š2013-10-06 18:58:512013-10-06 19:10:51YQ3318K77pveTsPvdUq3n8GgZRySNeBnab2vAR?¹™™™™™š2013-10-06 18:58:292013-10-06 19:10:29YQ331PExRzC7JMkAnuSYFzim7Vc3LSFFXmwPUu?¹™™™™™š2013-10-06 18:58:212013-10-06 19:10:21YQ33 1PdVwE8yh1yodSZ9h7YpdWJGT1fWvmekPR?¹™™™™™š2013-10-06 18:57:562013-10-06 19:09:56Electrum-1.9.7/scripts/merchant/merchant.conf~0000644000175000017500000000076112042617343023154 0ustar voegtlinvoegtlin00000000000000[main] host = localhost port = 12345 password = dyhodep [db] instance = localhost name = mydb user = root password = dyhodep [electrum] server = ecdsa.org mpk = 8d2cdcd2640d20986dbb354aae1ab990733db8e37403b1326c997a303768c458c65efa902acadf54af0ac13306ad34246f0e564d7709a5f0272bc86ae7e74991 [callback] received = URL where we POST json data when payment has been received expired = URL where we POST json data if payment has expired password = password sent in the json data, for authentication Electrum-1.9.7/scripts/merchant/merchant.readme0000664000175000017500000000237312236532564023277 0ustar voegtlinvoegtlin00000000000000merchant.py is a daemon that manages payments for a web server. It creates Bitcoin addresses using a master public key (so you do not leave your private keys on the server), detects when payments are received and notifies your web application. The workflow goes like this: - the server sends a request to the daemon via POST. the request contains an amount to be paid, a number of confirmations, and an expiration period in hours. - the daemon answers with a Bitcoin address, where the customer needs to send the coins. - later, the daemon will send a POST to the webserver, to notify that the payment has been received OR that the request has expired Since addresses are generated using an Electrum master public key, it is possible to visualize payments in the Electrum client; you will, however, need to manually adjust your "gap limit". In order to use this script, first edit and rename merchant.conf.template to merchant.conf to launch it, type: > python merchant.py In another terminal, you may send a request from the command line (it will send the request to the running daemon via http). For example, here is a request for 0.1 bitcoins, that requires two confirmations, and expires in 120 minutes: > python merchant.py request 0.1 2 120 Electrum-1.9.7/scripts/merchant/merchant.py0000664000175000017500000001737212247641560022476 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python # # Electrum - lightweight Bitcoin client # Copyright (C) 2011 thomasv@gitorious # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import time, thread, sys, socket, os import urllib2,json import Queue import sqlite3 from electrum import Wallet, WalletStorage, SimpleConfig, Network, set_verbosity set_verbosity(False) import ConfigParser config = ConfigParser.ConfigParser() config.read("merchant.conf") my_password = config.get('main','password') my_host = config.get('main','host') my_port = config.getint('main','port') database = config.get('sqlite3','database') received_url = config.get('callback','received') expired_url = config.get('callback','expired') cb_password = config.get('callback','password') wallet_path = config.get('electrum','wallet_path') master_public_key = config.get('electrum','mpk') master_chain = config.get('electrum','chain') pending_requests = {} num = 0 def check_create_table(conn): global num c = conn.cursor() c.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='electrum_payments';") data = c.fetchall() if not data: c.execute("""CREATE TABLE electrum_payments (address VARCHAR(40), amount FLOAT, confirmations INT(8), received_at TIMESTAMP, expires_at TIMESTAMP, paid INT(1), processed INT(1));""") conn.commit() c.execute("SELECT Count(address) FROM 'electrum_payments'") num = c.fetchone()[0] print "num rows", num # this process detects when addresses have received payments def on_wallet_update(): for addr, v in pending_requests.items(): h = wallet.history.get(addr, []) requested_amount = v.get('requested') requested_confs = v.get('confirmations') value = 0 for tx_hash, tx_height in h: tx = wallet.transactions.get(tx_hash) if not tx: continue if wallet.verifier.get_confirmations(tx_hash) < requested_confs: continue for o in tx.outputs: o_address, o_value = o if o_address == addr: value += o_value s = (value)/1.e8 print "balance for %s:"%addr, s, requested_amount if s>= requested_amount: print "payment accepted", addr out_queue.put( ('payment', addr)) stopping = False def do_stop(password): global stopping if password != my_password: return "wrong password" stopping = True return "ok" def process_request(amount, confirmations, expires_in, password): global num if password != my_password: return "wrong password" try: amount = float(amount) confirmations = int(confirmations) expires_in = float(expires_in) except Exception: return "incorrect parameters" account = wallet.accounts["m/0'/0"] addr = account.get_address(0, num) num += 1 out_queue.put( ('request', (addr, amount, confirmations, expires_in) )) return addr def server_thread(conn): from jsonrpclib.SimpleJSONRPCServer import SimpleJSONRPCServer server = SimpleJSONRPCServer(( my_host, my_port)) server.register_function(process_request, 'request') server.register_function(do_stop, 'stop') server.serve_forever() def send_command(cmd, params): import jsonrpclib server = jsonrpclib.Server('http://%s:%d'%(my_host, my_port)) try: if cmd == 'request': out = server.request(*params) elif cmd == 'stop': out = server.stop(*params) else: out = "unknown command" except socket.error: print "Server not running" return 1 print out return 0 if __name__ == '__main__': if len(sys.argv) > 1: cmd = sys.argv[1] params = sys.argv[2:] + [my_password] ret = send_command(cmd, params) sys.exit(ret) conn = sqlite3.connect(database); # create table if needed check_create_table(conn) # init network config = SimpleConfig({'wallet_path':wallet_path}) network = Network(config) network.start(wait=True) # create watching_only wallet storage = WalletStorage(config) wallet = Wallet(storage) if not storage.file_exists: wallet.seed = '' wallet.create_watching_only_wallet(master_chain,master_public_key) wallet.synchronize = lambda: None # prevent address creation by the wallet wallet.start_threads(network) network.register_callback('updated', on_wallet_update) out_queue = Queue.Queue() thread.start_new_thread(server_thread, (conn,)) while not stopping: cur = conn.cursor() # read pending requests from table cur.execute("SELECT address, amount, confirmations FROM electrum_payments WHERE paid IS NULL;") data = cur.fetchall() # add pending requests to the wallet for item in data: addr, amount, confirmations = item if addr in pending_requests: continue else: with wallet.lock: print "subscribing to %s"%addr pending_requests[addr] = {'requested':float(amount), 'confirmations':int(confirmations)} wallet.synchronizer.subscribe_to_addresses([addr]) wallet.up_to_date = False try: cmd, params = out_queue.get(True, 10) except Queue.Empty: cmd = '' if cmd == 'payment': addr = params # set paid=1 for received payments print "received payment from", addr cur.execute("update electrum_payments set paid=1 where address='%s'"%addr) elif cmd == 'request': # add a new request to the table. addr, amount, confs, minutes = params sql = "INSERT INTO electrum_payments (address, amount, confirmations, received_at, expires_at, paid, processed)"\ + " VALUES ('%s', %f, %d, datetime('now'), datetime('now', '+%d Minutes'), NULL, NULL);"%(addr, amount, confs, minutes) print sql cur.execute(sql) # set paid=0 for expired requests cur.execute("""UPDATE electrum_payments set paid=0 WHERE expires_at < CURRENT_TIMESTAMP and paid is NULL;""") # do callback for addresses that received payment or expired cur.execute("""SELECT address, paid from electrum_payments WHERE paid is not NULL and processed is NULL;""") data = cur.fetchall() for item in data: address, paid = item paid = bool(paid) headers = {'content-type':'application/json'} data_json = { 'address':address, 'password':cb_password, 'paid':paid } data_json = json.dumps(data_json) url = received_url if paid else expired_url req = urllib2.Request(url, data_json, headers) try: response_stream = urllib2.urlopen(req) cur.execute("UPDATE electrum_payments SET processed=1 WHERE id=%d;"%(id)) except urllib2.HTTPError: print "cannot do callback", data_json except ValueError, e: print e print "cannot do callback", data_json conn.commit() conn.close() print "Done" Electrum-1.9.7/scripts/merchant/merchant.conf0000644000175000017500000000056712224332616022761 0ustar voegtlinvoegtlin00000000000000[main] host = localhost port = 12345 password = dyhodep [sqlite3] database = test.db [electrum] wallet_path = no_path mpk = eac569df8b1132ced485292d7ebad1f252ebf2195f63c1e6f0aea50e7e609eb72a2ef3eb6f52a0fe4f4d2e5b54fac0a93ae355aebcf803ec5edf3717529d7fcb chain = 3c835d6b71e7861645828e9749f7e46b6160629057a91f0a354370fba32ded56 [callback] received = expired = password = Electrum-1.9.7/data/0000755000000000000000000000000012264174460014165 5ustar rootroot00000000000000Electrum-1.9.7/data/sahara/0000755000000000000000000000000012264174460015424 5ustar rootroot00000000000000Electrum-1.9.7/data/sahara/name.cfg0000644000175000017500000000000712071631267020563 0ustar voegtlinvoegtlin00000000000000Sahara Electrum-1.9.7/data/sahara/style.css0000644000175000017500000000357412071631267021050 0ustar voegtlinvoegtlin00000000000000#main_window { background: qlineargradient(x1: 0, y1: 0, x2:0,y2:1, stop: 0 white , stop: 1 #F2E3BE); } MiniWindow QPushButton { color: #C1A76D; border: 1px solid #A7811C; border-radius: 0px; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 white, stop: 1 #F2E3BE); min-height: 25px; min-width: 30px; } #send_button{ color: #FEEBA7; border: 1px solid #AD8B35; border-radius: 4px; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #E0A035, stop: 1 #AD8B35); min-width: 80px; min-height: 23px; padding: 2px; } #send_button:disabled{ color: #FEEDD3; border: 1px solid #F7D46D; border-radius: 4px; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #FAEEA5, stop: 1 #DBC050); min-width: 80px; min-height: 23px; padding: 2px; } #receive_button { color: #FEEBA7; border: 1px solid #AD8B35; border-radius: 4px; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #E0A035, stop: 1 #AD8B35); min-height: 25px; min-width: 30px; } #receive_button[isActive=true] { color: #FEEBA7; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #E0A035, stop: 1 #987620); } #address_input, #amount_input { color: #000; padding: 5px; border-radius: 4px; border: 1px solid #CBAE69; width: 225px; } #address_input[isValid=true] { color: #4D9948; padding: 5px; border-radius: 4px; border: 1px solid #CBAE69; width: 225px; margin-top: 4px; } #address_input[isValid=false] { color: #CE4141; padding: 5px; border-radius: 4px; border: 1px solid #CBAE69; width: 225px; margin-top: 4px; } #address_input[isValid=placeholder] { color: #DEC58D; padding: 5px; border-radius: 4px; border: 1px solid #CBAE69; width: 225px; margin-top: 4px; } #balance_label { color: #7E5907; } #history { color: #8B6914; } Electrum-1.9.7/data/noface.svg0000644000175000017500000002123412044441755017705 0ustar voegtlinvoegtlin00000000000000 image/svg+xml Electrum-1.9.7/data/cleanlook/0000755000000000000000000000000012264174460016134 5ustar rootroot00000000000000Electrum-1.9.7/data/cleanlook/name.cfg0000644000175000017500000000001212044441755021270 0ustar voegtlinvoegtlin00000000000000Cleanlook Electrum-1.9.7/data/cleanlook/style.css0000644000175000017500000000211212133031644021533 0ustar voegtlinvoegtlin00000000000000#main_window { background: qlineargradient(x1: 0, y1: 0, x2:0,y2:1, stop: 0 white , stop: 1 #E8E8E8); } MiniWindow QPushButton { color: #777; border: 1px solid #CCC; border-radius: 0px; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 white, stop: 1 #E6E6E6); min-height: 30px; min-width: 30px; } #send_button{ color: #FFF; border: 1px solid #3786E6; border-radius: 4px; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #72B2F8, stop: 1 #3484E6); padding: 2px; width: 20px; } #send_button:disabled{ color: #D3E8FE; border: 1px solid #6DAEF7; border-radius: 4px; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #A5CFFA, stop: 1 #72B2F8); } #address_input, #amount_input, #label_input { color: #000; padding: 5px; border-radius: 5px; min-height: 23px; border: 1px solid #AAA9A9; width: 200px; } #address_input[isValid=true] { color: #4D9948; } #address_input[isValid=false] { color: #CE4141; } #balance_label { color: #333; } #history { color: #888; } Electrum-1.9.7/data/README0000644000175000017500000000111212044441755016602 0ustar voegtlinvoegtlin00000000000000To add a new theme, simply create a new directory in the electrum data directory (either ./data or your system wide local data). Inside your directory create a file called name.cfg with the name of that theme. Create another file called style.css - this will be your CSS for the theme (see other themes for reference). Documentation on Qt's stylesheets (used by Electrum): Overview: http://qt-project.org/doc/qt-4.8/stylesheet.html Examples: http://qt-project.org/doc/qt-4.8/stylesheet-examples.html Reference manual: http://doc.qt.nokia.com/4.7-snapshot/stylesheet-reference.html Electrum-1.9.7/data/dark/0000755000000000000000000000000012264174460015106 5ustar rootroot00000000000000Electrum-1.9.7/data/dark/background.png0000644000175000017500000006663112044441755021511 0ustar voegtlinvoegtlin00000000000000‰PNG  IHDRàø4&5× pHYs  šœtIMEÜ0 “ˆ IDATxÚì½y°$É}ß÷ɬª¾ÞýÞ;3»³÷Å0Xìâ"¬HàBÄ (ZI‡(Ñ2EK²Â²õ‡”ƒH†¦¬ 6 ÓtP4mŠ Q¢@Ø$ˆsØ {³sì\ï쫪2ÓdÖëììª7o3³³»ù}ÑÑýº«ëȪ®o~§ ×2ADDDDDD$àˆˆˆˆˆˆHÀ‘€#"""""Þ4HãDD¼6ˆàÿÍpDÄ5€ñH8þ"""¢Žˆ¸Æ*XÄah›êYÇለˆq%‘9r©ÈFÅ!ÙµTV2GDDãï$""â5¢ô^‡cjf/â„$""pDÄÕ&à$Åù‚õ‘ÇÀ´ˆˆËÿV"""^#¢x•Y>"""*àˆˆ«Š*Zí·øXÌyã}¿‘€#"®º®Tp+)Ñô 8"âþÞê¾à®7ãxIDDDŽˆ¸ÚÐ8å÷V$áÊÉ7""pDÄ5CîH·" ·¢¸ãM<"GDì1 :"⻄ñf³â-ú£ês~#"¢ŽˆxH¸*ÈñV3A/yx)DDDŽˆ¸–3 Âz+ý¨“Èï’˜ÿ 8"â£ð”pÂ['iÉ='Àf¼ """GD¼\EB Þu¡¥›hl ZDDD$àˆˆ×ŠIQŽ×“€Å^® Lü݃xú#""GD¼^(™ø€¯… Z¯ýǵÀœ·­¨€#"^=bRDÄTÀx,iJò›Õ›ÒÔ5ËUÏ:˜=×­c?ÁPÂû®ý”‘\õÖ±O}DD$àˆˆ×[›€„G{(V¼eM@²" Vÿ3¤Ö³_õìo×xä®'\gƤéBcDDD$àˆˆkŽ*ºò‹¶™¤'™R •hHŽé¥ÿ?Yzû±’}L BU\mÙ[n=žöˆˆHÀ¯'ªö{¾RíÛž: U/5 ×4b¥JS&Á^xÄë/·lµ}ݰ}_õúæð¶{`¸O²ˆˆˆqEPçÛ5ž ®" »ÑÉ€ìê|»ì¡ŠñˆQ6)ì/ª²ëkìHü&˜,ô¼ïäÁ~EDDDŽˆ¸ªäÛ„ krö‰×W¬2 ×:?®h A½ôT±Þƒ´›Ôº¦Þ^MêLæ[xøcê×l/qDD$àˆ7ÞH Êx?œ²æ³1Óææ6G¶"KSCª²8ÃhçºV‡Æ#÷ýD>w™”ÌTÞúümÕ©l Ì{ÛÙö¶N0 Ó9ѱcÓ©üsä«åj]Ñô±DtÄëFÂ>±f„*p ؼÎf¯MG}`Ñ`'…¤œ^6 È ê™$õAQ°ÿà¬Å€üÃIDøºÊžs“ƒíx$‚}ð bOàˆˆ¨€#®{â…ú@ Ÿ„š–ymÍî¯Æ…¾åˆh®æ³MÇL‰„4›ÌtEƒâ7žòõMÕM¦zQ£ª›LÀ=oþùðMà)³å'—Ýÿ#w^Ro›I°Ûñ2ˆˆq}pÓ³©!£ºà,ÿ½&õŒ_Íö¯†¹G7L4  0ËÖáúE1B¿pB³Ÿ¸) ªŒC]á°Õ¡t¤zÊÖ7 í-?Œ—xDD$àˆë—|ëT_(3HD0ÛµgXÛçvýšÉÙ>¾Â­».kPZ,’Irèo ‰5 lJhöû†„š0„µ¸Çw’U,=U_[Îtmk9Åõ³q=#ú€#®éú3<m˜>“4(:¨Þ­JB.0kz­#§Pu^ Yõjˆè,pбT›æòÐ\–Ò_yjfÍ×u~`ß´¬ƒÉŒßâ0T¸U×£‹5û•V k†¿–jA3[W;""*àˆLü|±$ÌÖENkÔr]¡‰0ðè Ó&é½ê*‹« ‚uéLi#¡»sÍfã°‘A]ZÒ^þ[ìK…9oœC‹CXü4¦÷yŸéæ¡™{ý]O~Ê–ŒÄ 8"¢YýÊÕš™êsXe «Nùíøªï®`ƒ†ö öòßë\Ác.AÔ™¡/lØ“ÖlJÌú¾SêÍö¾Å@×¹¬Qöó “’°’Uâm¯ã¾§±¾ß:ËDµ ºjÕ(ý¦"&‘€#ÞÒä+nØ¢F5êàæO*«|·Ê[®é¢í‡¨÷-×åÀ^©Üâm&£B\„²¾àŽGxI ñú9¸þÄ#ñ>¯ˆ> ŽÓWÐÕÎÊ1 Î… &BšIÓ…<s[¹SÆWsÁùnº¦^M³Šˆˆë ÑqŰWg&ul¸|Ô³Ó ûÖ†ëϰ&é §LCòM½í+D&ªA÷¼í»o9³eÕD¤´;ÐéB·+K°´Ë 6’º:`a£¬}ØÞ‚‹[°uÉnð’› ä5Ç¥ù »åÆÃ¸ýöǼ:wc7©¸šÈܾ(&¾ÞÄ›´ù×P 8"pÄ[Av˜5%›ó‹¯výÂþß'¹ÔSk‰wsö×ÝV¦{ñÖw])ÞnÀú¢Ã´œáÐp¯ƒ|r,óÀÍ7ÂÝ÷À5ÈRèHhw!M@—¶–ôØ+$­”ý a>´Se-%( £!ìŒA§Ð&œ|NñÄ·a]ÍZüqKâLŒÍ¤¢• & ¯òõã7~ðI7œÀéš DÿpÄ ±kXÄUÝ¥áJfó€C³hhZ — UrSc°Qº£à‚—Ìæ_‰€¢cŽÎïޝØ^Ø€ãGàCmsìðµ ×-ùãö[xÇãÚj' IK¸BÀ¸°„¬œ™Û0™¡haÕsk 6óC<þ§çøòW&ñ¶ƒÓy€}+Ã9®nÎïB`PÌFnWÏÊ#ßê8Tp3»š7·+I 8"⪡2)†¦è¦Æó2¸8뢢CåSE«àýÔ#aUó}_A·$¼æHä¥àæ|xûÝðÞw‘cjØ8ïš9´ pM…}ØÚÍmØ^‡A?ôýðů™ÓÐíÂú%¸ç>xßýðâËðø3vç%pï]pää¹%t)@kÈ {° k®Á ß‚‡†ÓÏö™(Ïå¶Kk¾Á¯cß¿Zd¶Ì´¯¿"b\ Ƴ†ˆà|—573s®å¦mED¼Z$À/Åaˆ¸š¨zäfÔGïåûM‚‹ê«EɆ÷aÒQi(>?éJ40Lòg«¶}^Oþ0<ðvXhC¾c72¿Å>÷§°Ó‡ßÿ#8õ<|õI(û0¿/> i ¾üuø+? ï¼Ïú‡ÿ9¿÷ûÐëÁƒo‡—ϾÇÂb~ó7áÅ30Â]wC» åŠs°¼o»îy‡%ìó/A§´;¼i¦IO`£¡¯–éykŠWÔG}7åFûŸ›†‰]ø½ï†tÏš£®àº#"Gޏ&(˜®F•2{³»þPCÄ~Në^¥}"ΰ~éqpóô#ˆ[I¿(lå© ¸+ƒü‹pÏ0ߣAHR(Fð«¿ðœ8Û›pü&øñOÁç¾ G×àã?«+ðíÇ¡“Á‡>`wôÀA8ñvø³/Ã+áoÿ,ôæámo‡Ï} F;pÿ;áô:üÅ °Ò…¯}þâpü8Ì9;¯* %am ¾÷cpèæ6Ï<¦ªéJW%Ö¤~5ÔÞŸ~Ý,a6°ÏÔ_ ®€úõ£È“KMŒ¾Ž¸ÖŸˆˆk†k®Ò\êˆ4¬‰ì›C“šs]Å+ŸÄý N‡=•ê«åjÝ«ßåñ[€ÿä?†Ÿû ¦°³_üsø_~~çw!ëÁßÿ´Mù)KøðCðÁïµ½ƒKnÛ‰Ê-·B©¬™Z¸’–Ij# ó>X¶³†Ê܆}ûÿ™ç਴Dþ㟄Ƕá×~²9»ìhdÕµ”0>7,Žùô?LxßV•VæßK\_ç!f«“…×B8Ùòó¤ýsÖÔ¤"©QÄ—CËM¢æ²­K‹9É‘€#Þa#‡GL§Æø~Ùð&ZùuÚ©–Ñ 7]Ÿl—˜t0ò¿_mÿÀkTs¿ø|úg`©j ”Ï~þùoƒLàæ»áKá©' »G|ç ˜?™Ë»9v v Ô SX™·>]Ù±;—e6ªºÕ±ÄœhKÎFÙ‰ModN•pìfKØùÐóàùï@kÞ*ëöxøk`Rql+ú0üŸ‡¿Ç]]é‚ ØhñÐU`E›|Æ„æêð³Ë‘¤t„»Ì$ »®4›¸#GDŽxá¤¾`G]ij —@E¨è¤FY/8µë¯«únƤý~ð¡ü÷ÿî¼×–žLf©ŽÜdkB+ ß÷^K>7†$ƒ›n³æ]í¬î¾ FÚj’À‰û`¸Ï@»O? n»Ö/‚hCÚƒ¯?lMìï¾^zÊî×]w@Ú…?ÿ:|è]vÒñ`¿sâívìo>jƒµ’ÔyÙ‡ù ~øSð³=xE+†­0iAå"<ïá¹ó'dal€_qMÖL¬ê®­ÔíÓvìêL˺a2ªõñZ}À×"®H84Kêë'×ùë–o*ô‘1 Î »'UE3Ôû¼üì{à#ÔŽ%0py¹@wn9/| ž8OÃÆ¾ð8¬¤p÷íðµ'àÆÜp3˜Ο‚o?+spô8x æøú7ag žyîÜv7œ= 'Ÿ±ŠùK_´AZïýü»ð‰C6ü{ð×þSxòóð"ðÐýð[¿ Ÿú8Üte“Ú‰óýàØñxp‰¾2æâw¡ò$ÖôßÔixNÄ>TeÝ­®Deò­ê÷œÚí0Äej&¢áÆi˜tʈˆñ††b’.ä¿Ô‘+ÌÖƒ†ú Z!‘‡u{Á´úNfì½ÀÏÿÜ~ŸÍÁÆùb¥57 @H;öX¾rÞvþöß‚/ÿ9œ< ûiøüçàÅçà¦C°v{>ø,ÍÁÊa;+9r+Üy'¬€{ß«‡­yú®û`¹gÍ×ïz7¼ã=ðòÓðíoA?‡w€ /ÁÙKðÎàèAøüc .Á¥‹ð‘Ÿ=²+\*“t&íʬÝNƼ÷!˜ Ý|õç´çÈW֜˽¶Ž ÷ú^øY¨\3&¾Ý{Wk« úÒÞÄPc£ÜUüÉFDŽx3q•ÆÓ®Q²Mí ›¢Së{ükž-ÝÃ÷ÿu±µ|< áoý‚M2ÊVªH+q³‚*0J¸éøÚàü%øþÃ7þôÚp°I Ÿü„%YSÀíwÁÊX:`‰}\@ÇM Æc¤5Ù½X9½9i½´ ¾>ø}ðÌ£ðý¡-Üqÿ;aõ&øâçá…Kð3?‹ n¿½ýn°„,c,)ßñܹx˜o>ÝßwS„e¬?=lx9¿¬Øƒ/·¼ ^§ÎR±HsÙ¿¦õšàZ)ÜuYÆŸhÄBt_D\W£ÿºR¸‹LÌ…{)Þ&µ,.£Šýï°¾Qÿ½>“<؇à§þsPÛÎï(ÜúªêUÞsEli ¾ø‡ð¿? ®B9†¿ù÷ sÖ|hKHæ[”CåNU « ³Ä{RùŠëkV%ä ÊܾŸ´ì²­´º¶¢\‚3XRïÌÁoþ:«¶_MžÚLôÐÁwu°ïáú ¬+"?ψHÀovÔ‘få“í2I! ‰ºŽ`÷Ê®]Æ‘f¡m„¶ß¬`øÄ}ð¾OX2ªV2C¾Þ{B¸NH=ø½ß´u›x¹ô6.À¥uK¬Ý.tz¶‚Uš@+‘MÔ¨)mMèvb}̪t /üˆËòÒü¸€ÁÀ’òê Ì/Y…|îexî xð½2ŽÆS§ÞÝÀ¸0ƽol4ö©Wù§ÿê—œªÔžå¢ƒ59§5äæÌ©Òa›=ˆ³nÒ]U Ã:RÝ‹pýãquËnFDDޏ.ᛠÆ Užf×»q†QÑu í}Òmò)WÛ“Ť4eüØCpÛ{!QêÙD¾KÆX“4®4ä¥WàÜk.>|:-%-„U¾•ù:I¬Ú¥=ðbh :‘°¹cŸçzvýy i›ÝäjãJz Çpþ<ŒGpäXXµdnRK°ÆÌªX£§I =MÔ—vŽò+Ÿ9Í–wæ±QÞU g¨Oz~#]C¨¤¦!UÿW{ LºQ5©fá¬iا®M«ÅˆˆHÀ×5üò!™vÝM7 ˆ54/š#¡÷TÊÂ6@Øz'¼ë¯ØHgä„l…[q¨‚§Èר ¬áÈ*Þþ–-3yèˆ ž2ÊúXGFW¢rdýÊíÞd,´rdÓŠÀ¦%µº°¼jß-ÐÊ’kÚ¶©E•z•Òš·Ï¾ùÀÒ’ ˺"`mgƘ]3ô”9Ú 9ç[æ_üΛLÒyBUª©ošàCD-â ë>+oÒ5çˆ×4j8ß+±fæß]ÒˆˆHÀoJî2ݸº¹VÍé¼›pOØom¸?°“NDüÜñkÖ•Òûžœ65O‘oµÁT ¼ô”!Âê °¼lM̉shÏ[?ðæ9Ⱥ6ßWHXXôÌ¿ú›Ð]„Á ¶mîîá£6 ©ÓƒõóÖïÛêNöIëéKynû¯_‚¥e[‚Ri0D¡Ð©D–ÚnWgz¶ì«0Æ€k“˜ÌIžûÖA>û¼B‡ÙF 4(ҦϨyí+àŠœÛXSwRCôuÄë›¶«×tU¼FDŽˆhF7 J?ª6ñqÕ)lÜžz7c߇–Ü%k ï|ÞöaH=© ÍÎŽ……`RLj?®ç<ùˆ%ɣǫô¤I<¯Vfo]4$m¸ø ä#.avyÅ2õÚ!AšúÛýaó’[;)È:V!9&ÂЙË)˜ÂLÿÂÊ ,/¿¨ôáöïé‘´ÆLi©ÊTR×)bS½çÙC) †3O­ñÙÏžŸ!NÁ¬ 9ôÃ6pH˜8µÛ >ótYx ¨Ûa¶³ñF 8"boô¨/à_åiVþa¿@˜÷ë“ø ñºÿWÂýlJ’(gvH)œš´+N [€H$JÎøcÇiuSëçõ–Òl¹j)IŠþbœuº(-èÌ'¥3G…æ@¯cÿ_¯í!*IA ´Ýv!‘†|PÐßÔ´ççY†©džp$, FƒÀ2Ûâá%niuø‹Ï=Ï÷ýåû 4(5•–T©`ë3#5Ú$<ð×oáñ_yÜS¤¾8qV‹VÛµbTv¢‚qÄëfVÚ5‰¨dli,Yö™ûó¼•G¾òUnÕnD$àˆˆ+‹m§†W˜˜¥ý芈י¤µàæãpäûïDoŽ¡%H„!-‘:BÕH ÆHd"X?;àÅ'6yÿÞLg¾@Ú‰ݪp•¯LiHZ)I"œØL讥Œ7†ô–º ·Æ°¶T[½ËiÖ!MZh-¢¾Co´3A^JDÚ"Íì¶óíÃM–¦ÌÏuI‚I<³²•ÃîÙz{µ‚¥ÃoûÀm|ãß?Æ}?p­^ £ BhŒ®Jey5*SÄR°r_—‡ÞôÕiõ™ºsÒ™%lÅ-év~·Ê–˜ä=KcI8×–x« *jÆH6¨ÝŠôµ›xEDDŽˆ¸ŠPÀ¬Éy…Ù ¬ê&]•\øäAäP¡Ó¶51'fZõ A*$ÚHdbþ$'Þ„ù•ŒH4ˆÄ«”%…ag0 -5­n‡Ö| ©²”ŒÓ1&ÉX8ÔLÎôÉ­Ô]{~æº$h íS.XÒ—í(ƒhµ‰ æ¥ kgÈL¢º=24IQ(’T"Œr\:I7Jƒ’Õ[;JðüןâΜ i”ih«˜Í¤L–V‚$Q¨Á‰¿ûN¾úÓßdÓMr:¤+›iýÕVõêšn ÒØŠ]CcÏrjÕ'Ö)õï)ëÊ¿ñ GøÃ_?CÒ™”²Ü%_&e-« ‹Ö0Z+†fÚ/›0©ûúk«ñØŠ*7"Þ#"fQ¥Ô¼^õv%¶¨EéêW)ðu™£8`ÓŠ\¤³rR`£J?‚g¿ðEQrâï¥`$)ÚgF •"ŸýžáÙ'F¶Ï.Â1*ˆÎ•pVO”žHÔrä3fR¿8üÑ.bƒÐæá†›sóÑoÚ„u IDAT‡Ž¶¹ñÎy—z‹’¤×…qÉx0&íµH¤˜¨_ûbâ×õþ—Rðç¿û%î~ï½,[ÆhíòˆÍD9W¾r÷=åüÉÿúξÀnÍic¦w<(zCm«luu¡«¨çÒQŸØ*0"*àˆˆ=¡<åRµ‹+™øç®6´SÃsNW¾ßeàÆ:ÄhÓI¬§£´˜Rd†õ!çN•¼çc÷RnÒ²‰–4H)0¥¢—tà•3#Îa.øÕ™ü™¯bÒ(4A«`Òâ“v¨þ¶vàÛO¼OØå–;vùðÝÆ‰w Ú]²eËNº­LÔ¨p¯5ÊE7l>ð;>ú ßü£‡9ñÑw‘uÄn$´=0›#lÍÑUÚí”»Þa[ šÂ™ÔSÛhb4¶=GLLÌxV‰Ê¤ŒGº§póktÍDD\ aòKq"®5WäÛÂúh[î‘pu£SK&J« üåŸ\¡·ÚµÕ¢l‘'´1Ž]w —ŠÔÎàÿö;»g•å#+6ÀG{±HJ ›3œµ_úÜ+l§UwSKDY£ÚEÉÊÞË|e°K§¶Kþì›çyá›8zã ¬Ò6o{¬ZY« h¥(ÆÆ±Y¥2¶lf·Ë™§ŸeåÈAŒ6h­Ñ´6îa_+mÐÆP*ÁÂÚž|ø»×*7ÛCŽ=x7;Lr‚Ãt°³ŽtÏ—˜R%ñ' 8"âõAáÑ9GÊð6 ê“ªV¯F ƒõyà åHS*ƒR†RÒU™V•3ÏjÍÙg_à®»¡3×AåºPHa}ÄJ+T®)JƒÖ¶Ôƒ)㱘ªS¬EnÈ–uŸh2ß^#à7~í U‹¤%©@' EžD©0¥Á” S*taŸÕX³zó \ºÓ_ÙIFiý¿ZaÇPOÆS—†²´Ž­ZÞN/8ÂÝd:¿W¾ÆcŠˆx#"aE¼! ±y»;îÆ<ǤÆóŠ#£°4¡ÚC1檰)8f·¿¯@ƒ1 $H!)•aý¼áöûo¢(J›Ž¤ƒRÐÊi;EKG\…¡°Õ:Ð}ÍG~äN¶·Ç®«’Àxò±‹|çÉ ¶¨©ûì½Î€yßqî:qˆ¹¹Œö\ £J.Ë)ÆçÏìðÒ™mN>ù çK«÷eþ¢†¯ý‡³ü¥O¬1q¿´é?»9ÁÚúÀµ Õ ƚÛNÜÊÉo?Æï9ÁØ((&“Œ_'ÚX?qQjî¹gž?ýâΔª—™Lèàÿèûˆñ:Ãdœ1©ó|kº,Wêjì}?îY¤-QZMÊFî¦I£1ØúÍÃÍ z]HÒ­lº‘qmóQN©JÚÝ6IÛV‹JŒÆH2pˉ‰œ#Má¹o nŒùاîâÇü‹ÿé[»í}òÍÎ7Þ<ÏÛÞ×%ïH‘c„àÈñ !Z¤é<¢} É=œy±äÙGÖù7ÿ÷ã<¶ÏdØý»OðÐ}/0 ÐF»f ¶•6ښѕòV…!IJ:KóÈ ¶.nÍÏM5fкzf·¾´Òï[añ‹; ˜í„æ?û=}"Žˆˆq‘qî;î½6€kžIO`Ã$Ø à¦wfè¢Äi»írdÒI‰IÖ_ZgñPcJ(%F¤«ñ ]hÆ¥Bv{tR‰I)¬ÚÓ‰@&‚QL>Êé¯8v÷·ëðS£åW‘‘eE¢Sa(Šrò¡0¨BÀPaŒ`q N¼™÷üÀøŸ?ó<ÿîÑS—»—loH„Î)óÒ¦\)HµÛpA—6¿—ÒVWVÊ …båØ16Îç`· BOúW=„™°Ö‚¤c8„5=KXýBXþÃ?¿þäDFBŽx!ú€#Þtȱ©+/bý—Ü{=ààvàà;–(K×` T˜Ò• mýº¥f<,¸° ÝÅÊBS*Rš²t¥­ï³4Û; ÇcL¡Ð¹Æc4ZØ\¥þ…!§^ê£rM‹’ù¹În#ˆÆ +-ì÷[­,E )uµM ¦´A—Œb4Èù{ÿåqîëìo¬.žÏÉÇ#[JR[J,•¦, *·uŸ…P2‘ e®ÉÒ LÁxT¸qÓåžÝ8¥mé+U’ö$Çæ&X¾ÒO˜D¨‡ðýh†ŽˆqCx7ì›ÊrΑñÙꆟYÿ¤Ò ¥”÷¬QJ¡µõ}nž:Í¡5»^U(T^¢òÂb¹g•¨¢@•ŠñÖñ΀BkŒ0h-AÛïf½Œ^W’õʈ)3+Ôa™JƒÈRZ­))¨SÚ}Ðy‰*JÊB£ Íκægþ΃û«­Òö:ÎsLžcÊ0ÈÒ^J«!‘(£Q£åhŒ* [ÙÊŒÊ'cç£Rh]Rî¾WrÓͳ7œ½Ò®š^Çଈ7 ¢ :âM ÃtOÕçž›@ rׂ/ôÿÚ‡‘CÖnìQ¹k+(l‰J@W¥*…p=km¿àq®F!æIda£…Ièt$ó )¦Ðh4=Õd¾.Él__#l9ËT’$’Ì$”¥AëIã½4M©ýÎÂjIëßsžh²n‡4ËlIíLÏFPFŒÇ#Œ.mg§r`¥¥&Ë2òmæ––1F¹,=UÎRjûºÔ†•Ûi=¾uÙ}ò}áMQß‘€#"®C“ŽÌ;~®޼'%Ûй°=z‘ÖWkë9  ãÒÖp–J•$”¶¬¤mÉ[ u K„´íM1¦_Ì-­ „$kk.ÛA¶2[i«P»”²WA!Œ5‹d·7nÕ)i R²ª© =:#Êæ5ïÇWz`­m;(iÐB` EYŒG}ëÿÆUû2 õn?`Sj’N—ÁæZó‹(åûAW%*k× +·õHت­ïÜäö;íµ\DD$àˆˆ×{«¨rn»ÀÂ-Æ›¹S¾-@"]ð¯DHB†´æ@KL",ùH‰–á¼·¶qƒ°Íã]C[iFØÚÃõ :kK˜RÒKiµ2Œ¶ÁTVÏ*õ©c¨š(…U—%«´w»8½[×aH2ÅÙ—S‘ßuÈ€#7IÖ/*К¼? ÈÇ”ºÄ(§t«þ¼Z6h&„*‘¨¡õ]N°ŒvÏŒtV \¾M ¨±bD¢ˆñ%æªÝ ï¨B#…aÍÀZKlRÙ–ƒ‰D•%YZåHmS„ÞMÞ5?#l~/š¦‘6RZ($ï·‘½6+çùã?9Í>ŽÖ“zËMy°ZYBCTA×ùƒÖ ! RHt ¤%ä†_ûõG.;.ï»ûù @Ç 67¬ª2!["ÚÖŒB#J—ßëìãIŠáRfÓsíÆÛ#gØ»š—©™ŒDDDŽˆ¸N örꆾ ¨\í*3ŒõåZµFK‡Z)T Y —®d»$Õù‹…3?#” hÒš‰¥@I½«Ë"ç¾ã]æmíe„®-K铲mø` L³Û*Q¤öÿ$qÍJÅ©§úüÿü[œÛǸýôOßÍöÆÛ—.b´@Г4"m?hilEÁnפ$Í(†#Z=¹›Ê»¹&MÖ÷ ÿ†®¿é¦¼zÐu꩸Ul`³rä B Œ²ÿ”Î䚤)%i;EÊ„$II³ )d&‘IÛšh…@ ¹K̉¶y½Q Æ[%­v‰Ñ6x*lСøÊ×/ðij}çãµû6îs¶×·ÙØ´yÎc7~¥7.M%?üŽã<ô¡9K¶Y§…6-Œ1$–-Éóœb4 PcT®ÐÚMJ´3S»2•Z9o¡5¡"_&Õ±ŒÆ” ÅÂpäÛÓŠ·"ײA Þd"|ÔyÕîR×S$êˆHÀo*Tª* ƺ¨Þ°^Ò@à Ó é}‚öŸ«›µ®QBuÿ+`a ´Í(òê?»u¸”®î1ØÖz‰52(©Pê(…—&”@ÒÎHÓŒv¯M’v‘™M 2Ú E‚(!•Ñ•ôd¶‹Ñ3ä ‚ãúús›(6g&¾™Vxç!eRºŽp>zÿ-üüÏÝÀÎV´ARR*.JF;CŠþ&…ƒ×©w{%‹RpÄg (©¤Ô…UôÊ’¯öƒ±p*Ø@¶Ú¢C>ÕŒ‚àÒ5 ØŸ™M0~x׋ôˆ9ü®Þc¦fB`jö;""pÄë µRâ.<é]„)“ös¡Vdl˜.®Aª Ÿ•§€*"Ï‘€Öâ ížc Ø0Y¦"mmÜ{ÕyPPÊ‚Ñö€¤µNÚjÓjõè./ Ñ”²NÂÖùœùíœV–a S•°êJ0&5ª>LˡƪP§úºÀËϼÀg>s‰üàGŽ´-ù(Íæ™“”e "Á³ˆ¥1¶º•óc;7ïî¾ i&w•°öü¾f·$¥s£AÌ ^qç"œDˆ`,žÁþõã«|L¥Gº&PÚ!Áû BU]÷]ÿ½ºÉ_TÙ‘€#Þð$]¡åÝp}¢®È9ñnæM7òÄ»¡KGÀ²Î&îIõݬ² x÷æêˆFNR…´#l!¬Â.Š1å`L>Þaqí0RfÚ°°’Qä%FÙ½êmº‡QÒºÆ q¹`¤!ðø6ðäöä}à ûÈ2­6tWÖè_x­ hÍ.Ù6=´abb7ìª]Su5>nF”ô cïü×ù}Ù‡"ÕÞÍ+,iYG؉w-¨šëE=S3Að'v²Œ#""G¼i×¼çÖëWݑҀ¤+×Ú¤ÁÅRy áù†3HS›Ë[(ßg\¯ž›ã² kmÒ]\bn¤´ç$¹­³L}ºõ‰(¬õZT—þèëç9ú"Ÿþk·Ðé¶™?zãÍ-Æ;›”EI9¶“Œ&òÅ)à¬ëLÏʲGÀ•b®Ôr9γ®+Tª¬± Èšï‚E`]‘Áø |ëTo, 8âš ’Á±) ˆ=TªïU‡d¶,a]•«½Ö[Ý,ó’Ò’©ðÌÈ( Ò}V”!÷=·Ñ]¢e–x]’õYƘÃ`3gýåœîì1 ­JZ̘/E tsO!—{¨.Q£/‡¯ŸÑôþÍi~ê§n€ÂОëÑêu)†#òñb8 ?4Œ‡Ö|Ó$¬4ÌKªüÂÊmW{ Ù‘¯1 rÛ¡Jc}©šú¾ÀuãRg ¸R&_Xe.g¡ÙËÔ 8âªÁ¿éW&½Ä»™&ÁrIpS­ È ‰6aÖL˜ÕmÒ@ÂûX­_ù7÷†;¹t¬g2˜Y° rž%_&Mµ|–‚.诙_Kȇ%Æ…üš=HEKÀ§~â>ºÝ6ZT ¸‘H.œ±ÓW¼üÒy^zî/ÀLƒ‡ýàÏžñþ§úÜ|[›²°ÁS"Kh%s´:=º«†b8d¸Ógc ÇîRXB5€OT/žžZÖŠ1öŽO1é×SØ´*?mH{$]™µóHÊ‘€#ÞŒ ¸N•Jïfèû~ý4_5+fë5ûË&5ª7܇0(, ÂòÿïoÀòÁ ñ±ó÷ŽGÖ«J=)õýÉVxŽ;@ìUkéȸRÐc¢Ù:"pÄ›uD\·Œ`ÖW¦r„fì ›Þ“{, ú0TÞ~„ædG¦B‚HS ¥õ_j/Éók1ý 0?GŽÚæÂ6F£ÈKM& Ñ`ÉèÚ ¬º¼W­ZÙºÓ[º*MiÒvqÚÚèsê̈¢´Í&²Tró öG^îãüõæº(£K/‚¹J#rl·›fäªXXƒÑpÛúÕ5äÕ²•bvË*mÇtk}:¨.£¾éBœ¥=òô'j~n¯?é«+=YYPÚLLÚxë®LÙÊ{ 8â E¾º†›Ò‘ 9Ò÷'‡5eƒ¯#áºõæX?¥)=+&¦e!'JXKá•36GHWË0SkÓ¸ï·{pÇ6üËØšŒ¶º’íáìÉ’|0ãüù-TYá;S…Éh”ÑH-lû_×±ÉCR Œ„ñNŸgžÞ™J™Ê‡š§ÇVEî‹€;’ƒ=xé”=Ve\ÐTXeç `e ¶7m}m-,Ñš“5Æ;³n‡ºzÎUÞ¶ðÔoEšaЕö½í-_01?=«J˜KÝòþïxûáúˆe 8âuF¡ì ŸFÖ€†Ù”#Ó ŒëˆÕßFè[\¾¤aµlŽ5wÇ­j@WéExU²FC¸á(œ;ë´'<«.áÔs¸ë:±=z±QËBd[Ûœ¹Pp×÷Ì#Ó©›z]þ®úýœùÅtâdÞ‰JìQ>{²?eÇ8?6Ö¬»$Òpà†yNßÒIâ‘iõö³ÒÀÂ5ž|ú"2±„ÝX1KC§/Îv2ª”¬ßH¢®ÎwõoE–aæŠÀ;LüÅa5-?¨«"Ü2¸¾ s¶¿oãHÊ‘€#^/"•hè£  üïjf}¸¡"PIUÎqhZVLû›ÃJE¡2 q¶O è*:ð Ÿ=÷=°Œa‘NJPúY½·47ß 2K"ÅE1*PÊ*îNæ%7M8tP:s2{¦!Uªìä野t­ÿ×_΀H4ùÖ6¥2˜tz… þêþÏéá)÷Ü ?7Éáõ+[U;(ô ,ÆÖÿ«&‘ß~ðUU3š*jÚ#Ñð<…Ö“)?x0¡òk}Ó`a©ºk ƒkU2mo3[7<4S+ê›;hïaöiiˆˆˆñšPç«…Ùb~dr$õþÜ$X‡bÚß'j”qJO‚ @õÝ|²Uvë:KÍL‰I€‹— kwYYÛ`{§>Ø8¼ GoÎH¤¡”¬o—llÙ*ZÒå§J¥줈£6HÈé–Šu$\ß…³—¸áè!J­™œ N™°3,w¯1V&¾²¾ÿs{ìX‡áNA{¾Çáµç.:uofÍÊ8~.Þ±çJ{>_ßwìF)÷§£ÚM0¡ò'~{S·£p¬BÓ=ÌÿUJY8böǹª+.ƒõVïWûRÍs:Ôû®ýGÉÞ}™#"GD¼jå{¹Ï}â IÐ'As Â$XVÖl§©‘=ž©¢^Ö—w`­X?°Öw9U”ƒ‰²]ù ·Ý ß~Ô’¨O¾RÂê*<› Îm@‘O—¢”Âå$§0Üdzs- ºœ% ˜mB %llÖŽ*R‘ìÎr¤hJŠ¢Ü-{™+èôÔcðh¾ÿózDÀpã4ƒÒ´Ã’MîºA!&$‹ãÿ¹%Éãk[~ÒLÒŒa¶‰0ܘ5)×»Pë L›±MƒZ†æô6™*«ïmׯ'n˜5ƒ‡ïU&téMþºLʇú“ ¿ÄhD$àˆˆ×¤†å>Hz¯`,Ó`B •q©Ûx7¼ê†Vx¦@Uc¢Ø4—ƒØ=•úUL"œµWfò±Çáû?~'Oî’nåŠM¤]ÇsÏî¶Å¥åêeJÇ JC’ZÕøÞ¶é®v(Gš çFœ:?«àÂqÑÀhd÷ïÜÙ +ó˜±Æ$­a{£à‰ï¶.Áúy8_À…×` ýØG—yâ© +¬Åˆù9H[¡ºcÒÆ~†Qî|êA†0…I¦ ·›»>i.ß" ȃٮE>iS3®MÖ‚Éža’ªäßï¶¶ŠL˜­ÕíO°ÂT³Ó]˜T¢ŽˆÑHº¦i кÀ«:bmêT½W‘máÝ(ë9Ôt¤‡]A’6”˜ôÃô×79~ NŸuë“uúNéJïÆœØà¥Ã«0·œòùÿ¯äÔsð­‡Ç=ÆØÈ§ƒ£LƒúíÿïW+òƒ]Sçˆé”׊pûÁ ž= ‰+Ùï;â¬Ôo0ééõ¬I]+K®>á ¼èg& ôVszš¸ÌDÄ'á&2­KK3{Œ±hø¼®=¤ob®;OUZTJ}ÅlŸã°1žº–Ät¨HÀ $¼— ¸Ž°ÍeÔoÝMÕ²) I5T×~qŠbÃúò@ìËÓ,m<ÿoL$S8õôGïìqáÂ`wù*R:$ð*of¡½¥£[œ?Y²èñtñˆ&µú7Ý>ç57ì+aÂü…Oàù3heUA‰?w*Ÿ×=Æ»mŽgŸìêWÕ1Tããz%gn2QçË5—™ˆ4‘¦ÞƒÀÅ>¶©±¶ø=‰Íj=ܯªnµO¤¾ Ûßžª!p_}7ML""GDÔúãêZ¼J®üp• Y{Ï4(Ú:ÝÂúÞª׌ißb ¨è˜˜L·&”îŽ(€Óçà–wôèÍ ^:’šÔ‹–^N±®ÙDš0*Åtů&¥Wg~¬kVq%M”ß{Ç2™º@«eÍñejŸ}E»Û×7±~óÕyèÌ-sþBߪ_Ç(•3?£­E \ ŽUîó8Ì>&+\Fý†eJ÷s}kêcšrÔ}ÂT—Q°•b"– ä 8"¢Vˆ5»ÙV>6ŤHÂw³]`Þ#\ÿÆ[·?ºR¸Iƒ Ú#`¥aû• º^~Þ™˜… ¬ªmGh¬y›$¡P%;{Üèë·îì?ë+tcþÀ]küè.rþ<´Ü 1³ä[Wi ¹†ÛOÜÌ7¿ð"2q„!k/T¯%˜¶ž™5Åêšs£©7ÿRC¸"P¥{¥u™}’yøžÞÇdfƒ¬.‡&‚® ,‹$ 8"¢ö¦»hòÃùµ_ë¶ü4¤ª´`Ï=ÂjI²æí¿—kÒ’¿L¼& ½~_|Þÿ£wrñôӔʒ°ôÁWÌh% ¥$ß1Œœ*7{¨·½Ì­æ*(ß¿óñãÜqô§ÏXõžˆ óQðZJÀÑc°½µÉÆŽ=F¥½ô'/M "ˆ IDAT©RÍJÃBN›ó{C² I§Î÷[7Y Ö„:âÜÏXŠË¨mq™ý{-Ø/áGDŽx +àðTájÕÒ5NáVúÛÞżÔ|…‘¯ (×!;ÄntGÚM%66áôÓÏpÛýGxúá3»U¦v«a1©B•º·wxáäôþé=Ô­®QIìƒLö‹ãÀýâC?°Èðì3\¸íÖ¤¼¦ï÷—vä³°xøÏA«}‘–̦ ‰P»]µë¡íáp$Ü^€b8b«i2Q¹•Ïׯ]™®“윙Mò_×MJê\{™ˆ›Ò’‰Ï~To]0W¨ÚcþnÄ•º—Æ \Äu…Œ‰i9TÙ’ú6„a½éº‡ïN¹ß{l´-à 1[޲RÇUe…­ノSœÜýޝ–…°¥-ÖD»3ÌÐÉad¢ÑFØFRˆ–½É;–o·à_þÖ³ ™n° ¼ýö%¤´Š4‘ð¹§7g&>7?ùwÓ]H8r´Ãñ{ çŸ>ÃúÙó ¶ÔnO^t×i÷ºlžzÅV몧òßêé‚FÙã9ööÛyô‹Ï²³ã*|ùí }“µ×åiç"œaºê•n T]3ùÐ5ì/£kˆ8TÓuÖµÇ÷šLþºfaSˆ¨ˆ#¢ŽxÃÍÛLLË‚z?`]¤ËEW‡7ÈŽ{T%_~ny?\Üq Ô÷銠ùBÖáàù ¬íqéä“Nˆ·z$„¶ª·×+âå©F¥ŒîÂåh‡VoA .ÌDÀj`øñŸ\¥3gÐÊ †çøÜ/ÏçÊ<Üw¢O>Ò¨RòôW6\Ú¶yÉÒš…µëi<ÚÜ¢îÍw0[#”ôzøzÝ„×ýèȽ7ræiK¾YâÆ[x*˜I—$%m0—R°ý¬ŸWìA|ÕÄJÓœ®kÎ+5JÕ4,·—ï½ÉÛdþÄ‘€#Þ€¨LË{µ+¤Œ›¢®ëÈ]xÛò+õÂÀÂIh]z ˜ÀÄ\f%ðÜ#CüèQÊñ€¾«µl¼p-zw×U}.4¤sf]6_¹€L m-’ç#z½y ;3„TƒÁØ’œ¨AQkþÔ( ”ÁHåÈÔ’¨rí…ûÅe®£&i&å&CS´–oœcãô9N†vÇõöU“c“LÚ ©¶ãµ3œÔ[ö u¯æ¦@µ½BÂÞ¹»®%¢mÕ•«¤´M4'F¼FÈ8ךt%¦Ó…Øã¦Æeˆ¹I}¤ØÀ­è5–.a+Q)àÜIh H3™í””d [îuË=2[n á4‡î>F«kI9‘?r"'Õ°dõ ZÐJÛ 7¶À@ÖƒDRæC:óKµÄcIÀ dŠ’öÜbí˜Ø’‘„D 1 íê%&nâ Ý>VûcœÓYVˈɲ‰«î•öIÚâì˹‹ì†LLÆC¶;-áÒãÓä·—?>lN ôJ¸Éü\§vëö¡N5ë=”²Øc;‘€#¢ޏ®PE,7Î0{¨Ú°e]SêéȶÇtÝÞªteδ_Ù`kC÷4lI\dŒ%ЩRšbâCEÀ ‡g>Åñ;W9÷ü¥ÝŒxþàÝcqßM:’ÑhlÉX@{~5êÓ]\Ad¢öæo€b4¤ÝËhÚÝn­T%¨Ñ2Y "‘¤Z 0³ŸªŽIL”.¸`¬ª”¤€4…µ£«¼øÈÅݦ‰€BxiK^фݙÁÅ3“R™þ¶5ÍæÜª¡ÿY“ê •t]‹ÊË)kö¡nÃg½Ç¤1""*àˆë†t«FèIƒRØÉ®®]a]ZŽtÊzÑm³º° ls‚-&„ k”æW¾7Üì’‰/W:5[)Ü2‡LB;…Kpî¥K¹ke×¼ë§2UMgÓĪérl[´—æÁdš’´2„³u×›*ƈԠÐJk´2¼ßGimóv“ÄísB"˜jçä¤í“p6yãí³H¡Õ‚n=ÄK\d8¶ÇŸI­`7°Í™Ú…´Äž&ÐÁƳ³¾YS£hýó¯hv)˜ëHØ=ÉÔ\/ºÁÂòjÒüëQÒœ¶ 8âšÃ•@ÞÍÓÝ:¸\Nçå )TÛ\rßœ3Æš™·¨/ ’ <ñǰ´b‰7uj8KÜë–%ço}Ýv'’™]îâi¸ôò:ÇîY°%/3[?Z$îÙ‘›)mu¬È: ΂Ñî"\n8~£ ©©0ͪ0ùÿÛ;Ó&»Žó¾ÿºÏ]g0Ø’7Z(ѱâ(©X‰ã([UÞçäM*_Á$Uy‘ªTªRŽ¿p$ËK޵Ò4Q$¸¯±Ï`¶»ÓÝ=§oß>w D‚Öó«šš™;÷ž}úßÏÓÏÒ¦šì¡”B-L¡ÝoˉjQø-‹nYtËý­h»×uË}o+ÅêéÞí£±w©ûõá7.Ãí[îzì_/έ¹Âoüº®[m1ù2ÌF>“ï¦ a¹gÃ0¿@GÓs8¯ŒÉL”üë ŸqA ŸYxçÕ|žç^æaîïEda7sE];zœ9¶ƒ¬m \Ù‚ÇnA{Ím(QUÞ}®|ë'áúux¤ ½%pôé‡`Ì6ÇÎ÷Ù¸1 ò)?ÊNç+Ü:põ(e5¡ìQt+: KSûgÝ´E…-¬[€Í` tú ìmï¡z´Ú&“Ê(×FëÃîÝp¯9_²*ÀC»]°x¤Ë÷·˜ŒÚP àÍ·`oÖžñbk¦KO\½ Û;ì§Sõ3By!L_S¾œdNrÂZ`ÕÂüæ¹AµÂm­â Lô£Ïqë¸ÛÔnf{ˆýæŽíå]u¨ý´¢– 8ª |ãy¸p>~&¥³ü´‚~î^‡8ùH‡nϧôxeX;E)Ú ËLÆ»ŒwîPU#'”ãñþZ턜%\`K‹RÚõ/ÎÝí…Æ”˜I…êtQJ»Ïš¢Ð(­ÑJ£µ¦Ð ­ g-+…2Šþb‡•c®¼»ÇpX§e© nÞqûxþÀ_þ.¿æ-gã[|zî¼å~»9ç^˜ŒÆiJ†ù5²c˹Ipså$ç}W™çŽ„Xľ0Ò:Ëqù?MsO_’A7ÜâªP=ê ª°ÞªCmQW‘J'9d.À‹hÐßn_†cϺõÞŽôÜ×ᥗ\àõ“nôwàñ'ØÏÞÞ‚~3æ±§4Û[–ÑÐíQ‡rS(ªr„6­5ºhSMTã£ñ:O­Ãp0ÝØàÌùŽõ ãaÉW{0Ö×Á_ýÚ"¦²´ÚÆ£=zýe'¸ûFíGTkÕX‹òW¹ÓW´‹ŠÞc|ʾQÅ[¿qk¿Ï<í¸ô<û ¨|D›.`g>}ÛML‹~BqÍOœú4w(*™mL¯ÉG9çâÒIK.Ø6XÒM¹|ùÌ„Òང{ñ ʳ#×V+8yÆE Ê•iQèPGYSt Š¢ë,Þv›ÉpàR‡°he¼«Øí(« ;™ø²˜š¢Ûf²·çÜÈí6ª,QÕÈÉ‹jTUI˘à|ÆXMKOètvÙ݆kõ…±¦žHüÕ_ÂÓOÁÙ'à½7àäYè÷|ç$ã mX o½ ×^‡±m,_%"5núïÁîD‚VE÷ªLîÍX¹¼a›®ùEº^ö;/Úºš³}A¸_ àOä2ÚÝÔ(~O(˜±H]›ÙDÓžÿŠ2æ4p'^;Nû“9•O׋¾5VÁæ58ùÔôûÀYMÆpçüá¿3çàÖ5)}ê'°!k{Û­'÷ZýþUX*åœë…rQZ.ËWcµ­ÝùVk”.Ð…ëx¬­ÅøJZ…*°Xt§í…»Àøðke -”2tºZf—ñpÂíÛ°·íN(Ñ-¸õ±‹vþÊ×à…_¸÷t:pä¸3¤ã™ËGÀ•×`l¦gó¹ºÏar³à'S!`®¢^¢H#ÀÓ6‚i…¬TÓ’’¹²“$B«3Vn|.MÁ`J\Ï‚XÀÂÃü`ifªÂ Ük°`÷˜Èiêj‹u‘XÕiÅ­ù~ÁñöV¨×£IÞÛ]…çþÈYÚ¸´¥\ å«ïÂò*¬ž€·_ƒMNà_ü;¤düuh¹ï­6,-ÂÒ²³Gå*¥êú \îèU4;P¾,U»Ó¦,K÷ãóŒ;=ÌÞViïJ(ÀV>õÈBºÓÑØÊMvwÝÄbßš¯¼Õ«áá•×áüWpñ<=íEhûHpí/äÛïÀǯÁx4Ä”‹:'ºMêíÝÞKÞ—Z¬0›—;/º½©ŸrZ‹:u-7µ:4 ¯ ‚XÀÂCGl™¸ºÌKL—¥ ‚·ƒs5W„æHêx 6 ƒs5Ç.pë½é~â÷ßÁõ7àü“®¢•2®ò“Žž‚÷Þ„+À‡Ãx;Pm¹ô¤ö¢Ke æ³1.xk{Û¹|ûí=» ÅTZ…Æ¢ÑZ¡•Fi…Ñ-—Ú„l.4ªÓÂVP´|Š‘ •Å*C[íÐU›˜á]ظ £;Mm[ ¬à¯§OÂê’ëa||ÝýýìãµK]nÒðÞÛpý]°»uε¡9í'g=KxìïÏv4A˵„ƒ‹o¤b›[NŸ•±´‰¬ã´¡¯ °ð¥ åݺ]oå¨ÄRùÁ±dºDaSWlYÇ֯ͼ'—Ö¢®ÃïaݹIð-uš“õBýÿºGÁNj R÷áî§Î]û“_ÂüOðÿ .\€›×àÄ 8~ÁÞ%Øè(š¨Ý…NÛåëŠnHº¢À(礷ÖBKe ™Ã¦ÄRa*0c(KgÁŽGÎjÅ8 Wùu^íKˆ™¡s¡oÜ‚7ßo>=ÿó¿Àw¾ ËëPŽêŽP“Þ>ú5, kÅùòŒ¶AÜJêeŠMÿUF¼‚[–hŠ86+—ŒXª†É™b6È+öž”Ìóˆß+"ÀÂCíVé{áÕ‰Àioé–L¯¹i¦ÓSæE5Ç‚y©d{dÞ\žË̺œuF|-ÓkÐàŸü3X>Éþ¦Â[Ä^y.¿âõÒóð«¿q~îy8~Æö›`ë&¡iƒ²þ{Ë•x,ZuÝeüÚreÝ—5®‚1¡#Ò¬»À„ Öƒm]‡·^‡ÕUxô+΢ßÙ‚~þøßÂÂjÙm])Êñ^}n¾#[_à Â{‘ø¥k¿©U\&‚½ƒ«× x ×Ū›ñlÄ‚›®7¹‡s–°j°ˆsWRûYøm•"—AxP³¹eoU¶’×Ã@½Y0»v ÓÎñ€› t:À¦ùÄñçÂþÚÞ’Õs,ß°FYef©øø8±ÝãuÆP¶òÔ9'Ư¼ ÿðÝçÞ½ ÿôá|6®:‹¸­¼°ÚºÏ0€Òªnæ`ab`\”¥e|Î^¬Û(ž9ç\ꪨ»?i»[ðâKpóͺ›Ô$ʰÆ>aº{•M®}èd£IM× q\˜c'ºgM÷Þdž¡yâš>36y^rQΕÁ±€…/Œ.€&·¶;¦nH4XÇ©Añƒ§¥jˆ‹kš7Lbõj?1è3?GxBÝ'X'Çd üÂxú;Ð[Âà*HQ ˜±pí-xý2œ?ÇOÃÎ\ùÖŽÀúqWÄ£¿âܽT CeI\xPª¶jƺ5h,•7—µ£ ¥0ÆÐ*ÆÀ¯Ú]xáøýå\¿æ\ÒǺퟦvKWÞLT-Dvû¼øÿ`´[[®qšQ:§w×i¦«Y¥¹»ŠÙ¼Z…‹Š¾ƒ[š°ÉóµæE:µLcË·)e ò…3rE: ó¶A,`á¡ ëE­ÃläñX3b¶^o®/°ÎX³¹©UZÑdÚ°®ØiØV„ËÈ Kƒ¼RkÉw‡på2¬Ÿ‚Î’³hCîoè Ü_† O¹Ô¤Å£Š—~ ¿÷ÝZðïÁ߀w_…^6nXn¼ ô– :Ý–OER¾Ã‘F©–ï\T×uFkTËYÏWß©X>Úæ/þ´âì9‹.àÿü.> ׯÀò ¬Ÿve4ŸzŽ…¢£|Ú’‹rVmÅî]x÷]øù჉³BÛÌ–|,ýWø»ò÷f#£aÖeß³°t1`vmwÏOŽzäSrÇ©qU"Êñgã{/¹¾‚°ðÐÑóbV$¯?x†5^Çœ&÷Ý&Ö°‰¬^æ¹J& « .ÌØš3p•KGÊ­+Žp®ÜÎôלxú4]”vTºPܽeùð=xêë°y–—àäÅ6»›†þÔžÿWmÞ{Å@eùÓÿf`×pät5š›–,)øäõ’·^¶L††›[†÷^±üâg–Û7 g Ë pæR—…¥‚õ•Š_¿ ÇÃdÏ|»ËSÏtZÝvª|îq…âÖ‡–_þ ¼ò¶«^ò²—™° c°b;~²SQ»¨j~³‘ËËÔ9Â1a‚ÜÞD‚jØ_ÅÁÅ:rµ¸`á¡ Åt4s¨± Çs¬…´èEj!¥•¬j[˜~&u;¶ýDa)#î©õŠ~äÜ”*±¨rçdkpõ X°Ð9­®¦ð¹>ZhS°°ªxöù´:¬ƒí;[ÞÓEó[Ðí·¸s­âÑK]~õ· ç/¶ -þ}Ó—4…†·ß´¼üxþ[-Þ|ÍðèÓðÑûðþóßÿï.< kG» k'ZœÃ¬û8.a9/gY„Wø¼/‹0W,M$ÀaP›< ¯`¶B•fzý7a®æ3Éëu9É\Uúþ™´)Ì®?Ç€tk“k>»Ö†§Nžƒ…㊢@)ßP-Ê*4Ê¥®Ê–V°u«bãÚk {·-Ã!\üf—_þhÄ¥¯kn~døæwWøøò6Tpú©eWÃ=KÑqÏ ƒ± ¥ìþE3áDzâöÕ—/ÃÝk°·Q[±á<¶¨]Ða‚²c¶úU,œ‹Ôý€C`VZ#¶Tã ¨*¹žÊþîÏÓÓÒH,õ\ÊR*¼RbR²$´|ÐÛM-Sºð·´œd‘<¸ê±•ª3"¬© HÄ‘Ò*c錵®‘h1»>âðÈ:<û-X>½¥ý¾ '²¾±V¸zÎ(¢Ü£”ª‰¢ÝU”¥E3ÔÐR®>te]›CãúýÚB¡Ã¶µÛÎÞÖ€áÖ€­;pù×°} Æ¥³$ã<ì*:—kþZéèõ“~¢®H—©ÝÕA„S1l*[©™]— A}=S ÑýHÝϱà—LG=KyIAXø{øÈX»0›n”«á~Vo‘ˆf*æ!àjÛèñþÈ|V7LbqÏYαu|Ý ý \*ÍRN?ëG]ý赓‹ôûu0Ðĸ4&«°~cÊX¬Vûýw­f oøâ®±‚«%­[¥-ƒ»{l^ÛaóÜÙ„_öE<¨¿tÆ«¬à±á*ç6pž|ŸÜø{¼ rÀÓ&érBÎ D²ÄågDˆ¦Î­ §Vq|¾í,ˆ ¿S_*fi¥«´ž4‰ºˆs?ªaO-؜ŗZÄiäs‘±ˆ³»ÒIƒŽ|â-²3L¯Uv€þtÖ`mΕ㰼¾DÑí¸(jëÚj ¦pýÿ´qq‰KM0UåDÙZªÝ!Ûw÷¸{>ø¶÷`磌4uÇûi¦+‰åÜú±+xÛ6Ž^÷k˜M3‹¯Ùn-7¤wtœw›¶ ̵Œ_Û8äóÕM&D±û9]{ëW~§IÝÁ±†A:ÔrnEƒ{._8çBÞÁå,ï´æ4Ìõû‡Ù”§¸äeøû ¿¿ž·€‹äsaàoS‘m×ð¡Õ#k°|V@Û'À¶úPݛˌö`0€»[°}¶o¹ ÆÀO4v½OFŽQ»ês ès-®ùíÄ“ŽSÑýhjC¨¢û¤¼˜o3[¤¦‹ŸäÖgãÏܽ‡çªÛ`yçò½AXø´„›¬b˜®rÕcº} ¥yÝ7l÷n$D±5GÅ65tHÝÍ©¥M昇^€C^ë‘d¿$bïwç®'©»ÖàÖböÀ”°W:aºæÅWÓœZ³Î'ôä­2綬ùøµeœ[Ýf“*¹7q`Ö дpF*†UfûAH·îñëÏñ¾(Zr „/šÔúÊå‘Xòƒy9›Z¤ÓÁR¡"Wlõèä{ê–Ô™ Aê^Mó™ã ¦-ÿ=t„Êkz Â÷‰ð8¢·ˆÄ"ˆæ¨F®ldH2‰Å˜«úµëųC\—Ù¥é;ÚO"îD¸í·ÓäÊ­èíÈíø{WK-QÓðZ|L˘¿M€*ù·´\áaã825üÜaz=±$H“ïlRwêI¥Òí¤Á:ñë©°¥ï!úû˜:‡6»M„Þd¶[›i…§*s¬Ûº‘CSщP­*ìwÂt¹Ç¦5×ôç>Î]ޫĭ-«†óH+Kmùý¿­Ef£”Mr›ê>‡ŸïãùªÈ×`AHå>®œd'óà¦B¯iÞñ¾öxO­½yÅüS¨hN¡¹ˆoœÿZ%‚X&Ç m®nN u{¶¦q®òSì"¿3Gtsû Û^IÎEÆúM¯[X» Óº~Re2ç[1ÛÇ×f&2•>îu 3ÈÚ› , Î͸Ls‹92BSyËl¬{Ôd¬Ã\­ê¸wl™ˆ{®¡{8Žàî,Eïk*ê‘Ö¦žÌ9ÏT\KØ÷OÛ9_$ÛžD“•LLLr~ñdcºBUàvƶÉýˆ'w©+du©—Ò‰BÓä Ê<'¹Úä‚ ,÷AË[½ ™Á=g½Ä•Ž6Ñ̉·ÉXS±åGFhMFpu"2w’㊠VT ~Ίo²`Ó¯Ÿ gaáË€¸ …‡‚P°¡C>€'’ÅtLív†|ªO®ÞoÕ .¹ÈÜyëÎÁš´™ÙmS•¥¦<÷Zs»lY{ î5°h‡Y·zNðrZ«É¶Æ¸õ漣’¹õáÎ&@Áû‘«ál®azœ¹ – ˆ Bƒf9¬ØúRÉ ™x+j’E“•ø{øCæýšùÑÁáøRë·}€H4Eîáºí9ÙÙã<,šS±`Ú5^›ç:ŽÙ$n2"l£sÞˆŽcÑ[¹üà´ÚVÓDÍ"6`A˜KÈï5 ¶jÇ`¹†{Þú –pS¹Cs;GˆsÅ ºÉûrV}.ì^Z=NbéûO­Ù"ì”Z•³AcË™ímϱ`mƒW"ä—þ«KýžK?jº† éE‚° Hçrœø± 9…†D F‰µuX—ç¼üÚƒŠó7}~·ab1/¨Éš߇W¸Ò÷+>{ âÕdM¦ékÉöF̦xÑ0IŠ¿Jîi/ø4’;%.â+|Ù ,á ß"ß8x*íŒÜ!z7½8P+~ošÓš«ï7€Ð+;-`×7nÑ\ ±•õ¸é@Xó,’Yð½XÀ!À÷炎­àefݾeF8Ã5ˆcèD¤7½0§®â4•+\›P™*f…`®w—ÙžÃñ’„¸›`A8Å´{6gÅ/âuà —ê³Û` Æ-a?‚Ø&î˜ ܘ:¢6ˆM|\“dRÖpë/³éP¹Ð.Ó]‡B°Sé_ãªAµh.¯w{*3û iDqRlÉæŽ+žô´™^¿ÇÙb¶BÙ8#­Hȇ¸§Pu«çy'sNÒMF„C>liØ\ç#2Âd¼¨ ØGÚY(]WÃÀLçzñè1Ý*0¸A °P¸’å°n² Âpäìm‚±³‚[Ð…†Þ ìnÖÁcE"t=àè: o9ë4L:úÀÑEh/Áöu'Lm?Ð:Öj\_» h} X„Û»õ~‡~[qýí úm_Òk´3{½+¿Í.ÐîƒnÁ­íºéCš£ÜŠ®}KÁÈÖÏE¸fcï]Xb:Ø+ŽÚ¾ßÀ3AxX5`ás}ÐæEÚæúцï[‡_˜mèÄñ™Gê5æÐIhœ= §–ëA?n–¬íЩàÙGÝßw©sŽO?gaÓº÷oû}œ= ½¢nD0¶ ÝÌ!°·Ožu–V öÁ­XlÃÙùmY‚>©]¬aýôÒ#°¾ê~EÖöõ+ÎbŒsšwý>/\€ñÝù­öÞ¼R j ˜ªv•¯œáÍùA]{ÀÞu8Ö [‰jpËN…ÓÇkïB»Aµ…‹çàñ3p~­žØ¤mÃÏG–fŸ‘øYØÃM ªÈÒ^šs¯AX2˜æõÆ«fzm6 î»|öŠFP¦~Øãu—ǃkÓÁRÁM÷òí¶ë¸éæ'¯Ô?·"‘ZìâWí^´½·6êZÌ*¾KÁc§áÝùç§`ÅAI=àÜ8¿Ÿ"2éªóÇàÜz½]Gp+íĵí÷ê.‡uñà"žxél;‹ùô’› Œ¨ƒÆ:ѵ.«z Jó}ƒÀ©S¥Â9.Ê¿” ,‡§ÊX-i`Rì^Ü}@V΄éˆá2Úw«·n9ê¾X3ý<BY6GÛ†IBß D°« TËm³ý­Š,Þ ¶œY…훇;¯¶¿Øs°±P H:!Û¨Ìü‚Œ§”û"©¦ò–ý¾[g5÷pýâö~·Nm Y¾ 8×dvb£‘¨|Ê™k¼ö¿‹º¨ìn*º÷±Æ0ƹïC±•ЙID€áÅ1¶Škboòîc‹ËÝ=¿^G×66q°ó-´Ø=»/P‰J¥ASSç=q–ôá¯ÑvJà®/Ä\ôîmÐÖ¥GRKßxt(ÕÔÌ"\þ×ÏáÑÓðȱé 8{Ÿ7}Ât”x)j ˆ Â}‰ðo{û•iÏ›×áä18±8-,3íïtó6ZÌ6t0^`â¶AˆþîhpâôáE(ˆ}H7ºqÃY² +‡¿>½>”c× h1u ü ¹vMÝ’Tb ÿàexäœMÝÿ}-qkçá8{L»¿AX¾`,Î-Ûô°/¯A¯v[€SAFÕ´§AZéšéý,vá±ÕƒÏ«Åty8Ïÿý²‹¼¾tñàmR¸lØ^—逨àH†c'dP7MXóÖçÕŒ vÇ]Œ¢ç¿ÖÜ$æî®;ÿ4ÿ7Çù%÷¾+Û.ýkß\ƒþüì“{¿ÛÑÄ ”Ç_!wF"cQÞ¯à,{ ø#¹ÄûAqŸõÚ Âç1‚ð9‘‹þ¬Bc½¥,HµG!¸æåšóDQ„Ï‘¸r,È÷ƒÍˆŽ0}mÄÅ'ˆ,†4WĦy‚""À‚ <0ˆƒ«BT´ "À‚ |‰¬iA>_$ ZAÄA`AAD€A8ˆ.óKX ‚ ,Âo‰\Aáó'×ÜA`A>'AXA`AAA`Aþ~ õ áË”¢A±€AAXA`AAAAXAD€AAA`AAD€AAXAD€AAA`AAD€AAXA`AAAAXAD€AAXA`AAAAXAD€AAA`AAD€AAXAD€AAA`AAD€AAXA`AAAAXAD€AAXA`AAAAXAD€AAA`AAD€AAXAD€AAA`AAD€AAXA`AAAAXAD€AAXA`AAAáòÿa5äJä)IEND®B`‚Electrum-1.9.7/data/dark/name.cfg0000644000175000017500000000000512044441755020244 0ustar voegtlinvoegtlin00000000000000Dark Electrum-1.9.7/data/dark/style.css0000644000175000017500000000077512044441755020533 0ustar voegtlinvoegtlin00000000000000#main_window { background-image: url(background.png); } #address_input[readOnly=true], #amount_input[readOnly=true] { font: italic; color: gray; } #address_input[readOnly=false], #amount_input[readOnly=false] { font: normal; color: black; } #valid_address::indicator { width: 24px; height: 24px; } #valid_address::indicator:checked { image: url(confirmed.png); } #valid_address::indicator:unchecked { image: url(unconfirmed.png); } #balance_label { color: white; } Electrum-1.9.7/AUTHORS0000644000175000017500000000072512140157743016070 0ustar voegtlinvoegtlin00000000000000ThomasV - Creator and maintainer. Animazing / Tachikoma - Styled the new GUI. Mac version. Azelphur - GUI stuff. Coblee - Alternate coin support and py2app support. Deafboy - Ubuntu packages. EagleTM - Bugfixes. ErebusBat - Mac distribution. Genjix - Porting pro-mode functionality to lite-gui and worked on server Slush - Work on the server. Designed the original Stratum spec. Julian Toash (Tuxavant) - Various fixes to the client. rdymac - Website and translations. Electrum-1.9.7/setup.cfg0000644000000000000000000000007312264174460015075 0ustar rootroot00000000000000[egg_info] tag_build = tag_date = 0 tag_svn_revision = 0 Electrum-1.9.7/ecdsa/0000755000000000000000000000000012264174460014333 5ustar rootroot00000000000000Electrum-1.9.7/ecdsa/__init__.py0000644000175000017500000000115612224051177020204 0ustar voegtlinvoegtlin00000000000000__all__ = ["curves", "der", "ecdsa", "ellipticcurve", "keys", "numbertheory", "test_pyecdsa", "util", "six"] from .keys import SigningKey, VerifyingKey, BadSignatureError, BadDigestError from .curves import NIST192p, NIST224p, NIST256p, NIST384p, NIST521p _hush_pyflakes = [SigningKey, VerifyingKey, BadSignatureError, BadDigestError, NIST192p, NIST224p, NIST256p, NIST384p, NIST521p] del _hush_pyflakes # This code comes from http://github.com/warner/python-ecdsa try: from _version import __version__ as v __version__ = v del v except ImportError: __version__ = "UNKNOWN" Electrum-1.9.7/ecdsa/_version.py0000644000175000017500000000026112224051177020265 0ustar voegtlinvoegtlin00000000000000 # This file is originally generated from Git information by running 'setup.py # version'. Distribution tarballs contain a pre-generated copy of this file. __version__ = '0.9' Electrum-1.9.7/ecdsa/numbertheory.py0000644000175000017500000003735112224051177021176 0ustar voegtlinvoegtlin00000000000000#! /usr/bin/env python # # Provide some simple capabilities from number theory. # # Version of 2008.11.14. # # Written in 2005 and 2006 by Peter Pearson and placed in the public domain. # Revision history: # 2008.11.14: Use pow( base, exponent, modulus ) for modular_exp. # Make gcd and lcm accept arbitrarly many arguments. from __future__ import division from .six import print_, integer_types from .six.moves import reduce import math import types class Error( Exception ): """Base class for exceptions in this module.""" pass class SquareRootError( Error ): pass class NegativeExponentError( Error ): pass def modular_exp( base, exponent, modulus ): "Raise base to exponent, reducing by modulus" if exponent < 0: raise NegativeExponentError( "Negative exponents (%d) not allowed" \ % exponent ) return pow( base, exponent, modulus ) # result = 1L # x = exponent # b = base + 0L # while x > 0: # if x % 2 > 0: result = (result * b) % modulus # x = x // 2 # b = ( b * b ) % modulus # return result def polynomial_reduce_mod( poly, polymod, p ): """Reduce poly by polymod, integer arithmetic modulo p. Polynomials are represented as lists of coefficients of increasing powers of x.""" # This module has been tested only by extensive use # in calculating modular square roots. # Just to make this easy, require a monic polynomial: assert polymod[-1] == 1 assert len( polymod ) > 1 while len( poly ) >= len( polymod ): if poly[-1] != 0: for i in range( 2, len( polymod ) + 1 ): poly[-i] = ( poly[-i] - poly[-1] * polymod[-i] ) % p poly = poly[0:-1] return poly def polynomial_multiply_mod( m1, m2, polymod, p ): """Polynomial multiplication modulo a polynomial over ints mod p. Polynomials are represented as lists of coefficients of increasing powers of x.""" # This is just a seat-of-the-pants implementation. # This module has been tested only by extensive use # in calculating modular square roots. # Initialize the product to zero: prod = ( len( m1 ) + len( m2 ) - 1 ) * [0] # Add together all the cross-terms: for i in range( len( m1 ) ): for j in range( len( m2 ) ): prod[i+j] = ( prod[i+j] + m1[i] * m2[j] ) % p return polynomial_reduce_mod( prod, polymod, p ) def polynomial_exp_mod( base, exponent, polymod, p ): """Polynomial exponentiation modulo a polynomial over ints mod p. Polynomials are represented as lists of coefficients of increasing powers of x.""" # Based on the Handbook of Applied Cryptography, algorithm 2.227. # This module has been tested only by extensive use # in calculating modular square roots. assert exponent < p if exponent == 0: return [ 1 ] G = base k = exponent if k%2 == 1: s = G else: s = [ 1 ] while k > 1: k = k // 2 G = polynomial_multiply_mod( G, G, polymod, p ) if k%2 == 1: s = polynomial_multiply_mod( G, s, polymod, p ) return s def jacobi( a, n ): """Jacobi symbol""" # Based on the Handbook of Applied Cryptography (HAC), algorithm 2.149. # This function has been tested by comparison with a small # table printed in HAC, and by extensive use in calculating # modular square roots. assert n >= 3 assert n%2 == 1 a = a % n if a == 0: return 0 if a == 1: return 1 a1, e = a, 0 while a1%2 == 0: a1, e = a1//2, e+1 if e%2 == 0 or n%8 == 1 or n%8 == 7: s = 1 else: s = -1 if a1 == 1: return s if n%4 == 3 and a1%4 == 3: s = -s return s * jacobi( n % a1, a1 ) def square_root_mod_prime( a, p ): """Modular square root of a, mod p, p prime.""" # Based on the Handbook of Applied Cryptography, algorithms 3.34 to 3.39. # This module has been tested for all values in [0,p-1] for # every prime p from 3 to 1229. assert 0 <= a < p assert 1 < p if a == 0: return 0 if p == 2: return a jac = jacobi( a, p ) if jac == -1: raise SquareRootError( "%d has no square root modulo %d" \ % ( a, p ) ) if p % 4 == 3: return modular_exp( a, (p+1)//4, p ) if p % 8 == 5: d = modular_exp( a, (p-1)//4, p ) if d == 1: return modular_exp( a, (p+3)//8, p ) if d == p-1: return ( 2 * a * modular_exp( 4*a, (p-5)//8, p ) ) % p raise RuntimeError("Shouldn't get here.") for b in range( 2, p ): if jacobi( b*b-4*a, p ) == -1: f = ( a, -b, 1 ) ff = polynomial_exp_mod( ( 0, 1 ), (p+1)//2, f, p ) assert ff[1] == 0 return ff[0] raise RuntimeError("No b found.") def inverse_mod( a, m ): """Inverse of a mod m.""" if a < 0 or m <= a: a = a % m # From Ferguson and Schneier, roughly: c, d = a, m uc, vc, ud, vd = 1, 0, 0, 1 while c != 0: q, c, d = divmod( d, c ) + ( c, ) uc, vc, ud, vd = ud - q*uc, vd - q*vc, uc, vc # At this point, d is the GCD, and ud*a+vd*m = d. # If d == 1, this means that ud is a inverse. assert d == 1 if ud > 0: return ud else: return ud + m def gcd2(a, b): """Greatest common divisor using Euclid's algorithm.""" while a: a, b = b%a, a return b def gcd( *a ): """Greatest common divisor. Usage: gcd( [ 2, 4, 6 ] ) or: gcd( 2, 4, 6 ) """ if len( a ) > 1: return reduce( gcd2, a ) if hasattr( a[0], "__iter__" ): return reduce( gcd2, a[0] ) return a[0] def lcm2(a,b): """Least common multiple of two integers.""" return (a*b)//gcd(a,b) def lcm( *a ): """Least common multiple. Usage: lcm( [ 3, 4, 5 ] ) or: lcm( 3, 4, 5 ) """ if len( a ) > 1: return reduce( lcm2, a ) if hasattr( a[0], "__iter__" ): return reduce( lcm2, a[0] ) return a[0] def factorization( n ): """Decompose n into a list of (prime,exponent) pairs.""" assert isinstance( n, integer_types ) if n < 2: return [] result = [] d = 2 # Test the small primes: for d in smallprimes: if d > n: break q, r = divmod( n, d ) if r == 0: count = 1 while d <= n: n = q q, r = divmod( n, d ) if r != 0: break count = count + 1 result.append( ( d, count ) ) # If n is still greater than the last of our small primes, # it may require further work: if n > smallprimes[-1]: if is_prime( n ): # If what's left is prime, it's easy: result.append( ( n, 1 ) ) else: # Ugh. Search stupidly for a divisor: d = smallprimes[-1] while 1: d = d + 2 # Try the next divisor. q, r = divmod( n, d ) if q < d: break # n < d*d means we're done, n = 1 or prime. if r == 0: # d divides n. How many times? count = 1 n = q while d <= n: # As long as d might still divide n, q, r = divmod( n, d ) # see if it does. if r != 0: break n = q # It does. Reduce n, increase count. count = count + 1 result.append( ( d, count ) ) if n > 1: result.append( ( n, 1 ) ) return result def phi( n ): """Return the Euler totient function of n.""" assert isinstance( n, integer_types ) if n < 3: return 1 result = 1 ff = factorization( n ) for f in ff: e = f[1] if e > 1: result = result * f[0] ** (e-1) * ( f[0] - 1 ) else: result = result * ( f[0] - 1 ) return result def carmichael( n ): """Return Carmichael function of n. Carmichael(n) is the smallest integer x such that m**x = 1 mod n for all m relatively prime to n. """ return carmichael_of_factorized( factorization( n ) ) def carmichael_of_factorized( f_list ): """Return the Carmichael function of a number that is represented as a list of (prime,exponent) pairs. """ if len( f_list ) < 1: return 1 result = carmichael_of_ppower( f_list[0] ) for i in range( 1, len( f_list ) ): result = lcm( result, carmichael_of_ppower( f_list[i] ) ) return result def carmichael_of_ppower( pp ): """Carmichael function of the given power of the given prime. """ p, a = pp if p == 2 and a > 2: return 2**(a-2) else: return (p-1) * p**(a-1) def order_mod( x, m ): """Return the order of x in the multiplicative group mod m. """ # Warning: this implementation is not very clever, and will # take a long time if m is very large. if m <= 1: return 0 assert gcd( x, m ) == 1 z = x result = 1 while z != 1: z = ( z * x ) % m result = result + 1 return result def largest_factor_relatively_prime( a, b ): """Return the largest factor of a relatively prime to b. """ while 1: d = gcd( a, b ) if d <= 1: break b = d while 1: q, r = divmod( a, d ) if r > 0: break a = q return a def kinda_order_mod( x, m ): """Return the order of x in the multiplicative group mod m', where m' is the largest factor of m relatively prime to x. """ return order_mod( x, largest_factor_relatively_prime( m, x ) ) def is_prime( n ): """Return True if x is prime, False otherwise. We use the Miller-Rabin test, as given in Menezes et al. p. 138. This test is not exact: there are composite values n for which it returns True. In testing the odd numbers from 10000001 to 19999999, about 66 composites got past the first test, 5 got past the second test, and none got past the third. Since factors of 2, 3, 5, 7, and 11 were detected during preliminary screening, the number of numbers tested by Miller-Rabin was (19999999 - 10000001)*(2/3)*(4/5)*(6/7) = 4.57 million. """ # (This is used to study the risk of false positives:) global miller_rabin_test_count miller_rabin_test_count = 0 if n <= smallprimes[-1]: if n in smallprimes: return True else: return False if gcd( n, 2*3*5*7*11 ) != 1: return False # Choose a number of iterations sufficient to reduce the # probability of accepting a composite below 2**-80 # (from Menezes et al. Table 4.4): t = 40 n_bits = 1 + int( math.log( n, 2 ) ) for k, tt in ( ( 100, 27 ), ( 150, 18 ), ( 200, 15 ), ( 250, 12 ), ( 300, 9 ), ( 350, 8 ), ( 400, 7 ), ( 450, 6 ), ( 550, 5 ), ( 650, 4 ), ( 850, 3 ), ( 1300, 2 ), ): if n_bits < k: break t = tt # Run the test t times: s = 0 r = n - 1 while ( r % 2 ) == 0: s = s + 1 r = r // 2 for i in range( t ): a = smallprimes[ i ] y = modular_exp( a, r, n ) if y != 1 and y != n-1: j = 1 while j <= s - 1 and y != n - 1: y = modular_exp( y, 2, n ) if y == 1: miller_rabin_test_count = i + 1 return False j = j + 1 if y != n-1: miller_rabin_test_count = i + 1 return False return True def next_prime( starting_value ): "Return the smallest prime larger than the starting value." if starting_value < 2: return 2 result = ( starting_value + 1 ) | 1 while not is_prime( result ): result = result + 2 return result smallprimes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229] miller_rabin_test_count = 0 def __main__(): # Making sure locally defined exceptions work: # p = modular_exp( 2, -2, 3 ) # p = square_root_mod_prime( 2, 3 ) print_("Testing gcd...") assert gcd( 3*5*7, 3*5*11, 3*5*13 ) == 3*5 assert gcd( [ 3*5*7, 3*5*11, 3*5*13 ] ) == 3*5 assert gcd( 3 ) == 3 print_("Testing lcm...") assert lcm( 3, 5*3, 7*3 ) == 3*5*7 assert lcm( [ 3, 5*3, 7*3 ] ) == 3*5*7 assert lcm( 3 ) == 3 print_("Testing next_prime...") bigprimes = ( 999671, 999683, 999721, 999727, 999749, 999763, 999769, 999773, 999809, 999853, 999863, 999883, 999907, 999917, 999931, 999953, 999959, 999961, 999979, 999983 ) for i in range( len( bigprimes ) - 1 ): assert next_prime( bigprimes[i] ) == bigprimes[ i+1 ] error_tally = 0 # Test the square_root_mod_prime function: for p in smallprimes: print_("Testing square_root_mod_prime for modulus p = %d." % p) squares = [] for root in range( 0, 1+p//2 ): sq = ( root * root ) % p squares.append( sq ) calculated = square_root_mod_prime( sq, p ) if ( calculated * calculated ) % p != sq: error_tally = error_tally + 1 print_("Failed to find %d as sqrt( %d ) mod %d. Said %d." % \ ( root, sq, p, calculated )) for nonsquare in range( 0, p ): if nonsquare not in squares: try: calculated = square_root_mod_prime( nonsquare, p ) except SquareRootError: pass else: error_tally = error_tally + 1 print_("Failed to report no root for sqrt( %d ) mod %d." % \ ( nonsquare, p )) # Test the jacobi function: for m in range( 3, 400, 2 ): print_("Testing jacobi for modulus m = %d." % m) if is_prime( m ): squares = [] for root in range( 1, m ): if jacobi( root * root, m ) != 1: error_tally = error_tally + 1 print_("jacobi( %d * %d, %d ) != 1" % ( root, root, m )) squares.append( root * root % m ) for i in range( 1, m ): if not i in squares: if jacobi( i, m ) != -1: error_tally = error_tally + 1 print_("jacobi( %d, %d ) != -1" % ( i, m )) else: # m is not prime. f = factorization( m ) for a in range( 1, m ): c = 1 for i in f: c = c * jacobi( a, i[0] ) ** i[1] if c != jacobi( a, m ): error_tally = error_tally + 1 print_("%d != jacobi( %d, %d )" % ( c, a, m )) # Test the inverse_mod function: print_("Testing inverse_mod . . .") import random n_tests = 0 for i in range( 100 ): m = random.randint( 20, 10000 ) for j in range( 100 ): a = random.randint( 1, m-1 ) if gcd( a, m ) == 1: n_tests = n_tests + 1 inv = inverse_mod( a, m ) if inv <= 0 or inv >= m or ( a * inv ) % m != 1: error_tally = error_tally + 1 print_("%d = inverse_mod( %d, %d ) is wrong." % ( inv, a, m )) assert n_tests > 1000 print_(n_tests, " tests of inverse_mod completed.") class FailedTest(Exception): pass print_(error_tally, "errors detected.") if error_tally != 0: raise FailedTest("%d errors detected" % error_tally) if __name__ == '__main__': __main__() Electrum-1.9.7/ecdsa/curves.py0000644000175000017500000000315012224051177017750 0ustar voegtlinvoegtlin00000000000000from __future__ import division from . import der, ecdsa class UnknownCurveError(Exception): pass def orderlen(order): return (1+len("%x"%order))//2 # bytes # the NIST curves class Curve: def __init__(self, name, curve, generator, oid): self.name = name self.curve = curve self.generator = generator self.order = generator.order() self.baselen = orderlen(self.order) self.verifying_key_length = 2*self.baselen self.signature_length = 2*self.baselen self.oid = oid self.encoded_oid = der.encode_oid(*oid) NIST192p = Curve("NIST192p", ecdsa.curve_192, ecdsa.generator_192, (1, 2, 840, 10045, 3, 1, 1)) NIST224p = Curve("NIST224p", ecdsa.curve_224, ecdsa.generator_224, (1, 3, 132, 0, 33)) NIST256p = Curve("NIST256p", ecdsa.curve_256, ecdsa.generator_256, (1, 2, 840, 10045, 3, 1, 7)) NIST384p = Curve("NIST384p", ecdsa.curve_384, ecdsa.generator_384, (1, 3, 132, 0, 34)) NIST521p = Curve("NIST521p", ecdsa.curve_521, ecdsa.generator_521, (1, 3, 132, 0, 35)) SECP256k1 = Curve("SECP256k1", ecdsa.curve_secp256k1, ecdsa.generator_secp256k1, (1, 3, 132, 0, 10)) curves = [NIST192p, NIST224p, NIST256p, NIST384p, NIST521p, SECP256k1] def find_curve(oid_curve): for c in curves: if c.oid == oid_curve: return c raise UnknownCurveError("I don't know about the curve with oid %s." "I only know about these: %s" % (oid_curve, [c.name for c in curves])) Electrum-1.9.7/ecdsa/util.py0000644000175000017500000002205712224051177017425 0ustar voegtlinvoegtlin00000000000000from __future__ import division import os import math import binascii from hashlib import sha256 from . import der from .curves import orderlen from .six import PY3, int2byte, b, next # RFC5480: # The "unrestricted" algorithm identifier is: # id-ecPublicKey OBJECT IDENTIFIER ::= { # iso(1) member-body(2) us(840) ansi-X9-62(10045) keyType(2) 1 } oid_ecPublicKey = (1, 2, 840, 10045, 2, 1) encoded_oid_ecPublicKey = der.encode_oid(*oid_ecPublicKey) def randrange(order, entropy=None): """Return a random integer k such that 1 <= k < order, uniformly distributed across that range. For simplicity, this only behaves well if 'order' is fairly close (but below) a power of 256. The try-try-again algorithm we use takes longer and longer time (on average) to complete as 'order' falls, rising to a maximum of avg=512 loops for the worst-case (256**k)+1 . All of the standard curves behave well. There is a cutoff at 10k loops (which raises RuntimeError) to prevent an infinite loop when something is really broken like the entropy function not working. Note that this function is not declared to be forwards-compatible: we may change the behavior in future releases. The entropy= argument (which should get a callable that behaves like os.entropy) can be used to achieve stability within a given release (for repeatable unit tests), but should not be used as a long-term-compatible key generation algorithm. """ # we could handle arbitrary orders (even 256**k+1) better if we created # candidates bit-wise instead of byte-wise, which would reduce the # worst-case behavior to avg=2 loops, but that would be more complex. The # change would be to round the order up to a power of 256, subtract one # (to get 0xffff..), use that to get a byte-long mask for the top byte, # generate the len-1 entropy bytes, generate one extra byte and mask off # the top bits, then combine it with the rest. Requires jumping back and # forth between strings and integers a lot. if entropy is None: entropy = os.urandom assert order > 1 bytes = orderlen(order) dont_try_forever = 10000 # gives about 2**-60 failures for worst case while dont_try_forever > 0: dont_try_forever -= 1 candidate = string_to_number(entropy(bytes)) + 1 if 1 <= candidate < order: return candidate continue raise RuntimeError("randrange() tried hard but gave up, either something" " is very wrong or you got realllly unlucky. Order was" " %x" % order) class PRNG: # this returns a callable which, when invoked with an integer N, will # return N pseudorandom bytes. Note: this is a short-term PRNG, meant # primarily for the needs of randrange_from_seed__trytryagain(), which # only needs to run it a few times per seed. It does not provide # protection against state compromise (forward security). def __init__(self, seed): self.generator = self.block_generator(seed) def __call__(self, numbytes): a = [next(self.generator) for i in range(numbytes)] if PY3: return bytes(a) else: return "".join(a) def block_generator(self, seed): counter = 0 while True: for byte in sha256(("prng-%d-%s" % (counter, seed)).encode()).digest(): yield byte counter += 1 def randrange_from_seed__overshoot_modulo(seed, order): # hash the data, then turn the digest into a number in [1,order). # # We use David-Sarah Hopwood's suggestion: turn it into a number that's # sufficiently larger than the group order, then modulo it down to fit. # This should give adequate (but not perfect) uniformity, and simple # code. There are other choices: try-try-again is the main one. base = PRNG(seed)(2*orderlen(order)) number = (int(binascii.hexlify(base), 16) % (order-1)) + 1 assert 1 <= number < order, (1, number, order) return number def lsb_of_ones(numbits): return (1 << numbits) - 1 def bits_and_bytes(order): bits = int(math.log(order-1, 2)+1) bytes = bits // 8 extrabits = bits % 8 return bits, bytes, extrabits # the following randrange_from_seed__METHOD() functions take an # arbitrarily-sized secret seed and turn it into a number that obeys the same # range limits as randrange() above. They are meant for deriving consistent # signing keys from a secret rather than generating them randomly, for # example a protocol in which three signing keys are derived from a master # secret. You should use a uniformly-distributed unguessable seed with about # curve.baselen bytes of entropy. To use one, do this: # seed = os.urandom(curve.baselen) # or other starting point # secexp = ecdsa.util.randrange_from_seed__trytryagain(sed, curve.order) # sk = SigningKey.from_secret_exponent(secexp, curve) def randrange_from_seed__truncate_bytes(seed, order, hashmod=sha256): # hash the seed, then turn the digest into a number in [1,order), but # don't worry about trying to uniformly fill the range. This will lose, # on average, four bits of entropy. bits, bytes, extrabits = bits_and_bytes(order) if extrabits: bytes += 1 base = hashmod(seed).digest()[:bytes] base = "\x00"*(bytes-len(base)) + base number = 1+int(binascii.hexlify(base), 16) assert 1 <= number < order return number def randrange_from_seed__truncate_bits(seed, order, hashmod=sha256): # like string_to_randrange_truncate_bytes, but only lose an average of # half a bit bits = int(math.log(order-1, 2)+1) maxbytes = (bits+7) // 8 base = hashmod(seed).digest()[:maxbytes] base = "\x00"*(maxbytes-len(base)) + base topbits = 8*maxbytes - bits if topbits: base = int2byte(ord(base[0]) & lsb_of_ones(topbits)) + base[1:] number = 1+int(binascii.hexlify(base), 16) assert 1 <= number < order return number def randrange_from_seed__trytryagain(seed, order): # figure out exactly how many bits we need (rounded up to the nearest # bit), so we can reduce the chance of looping to less than 0.5 . This is # specified to feed from a byte-oriented PRNG, and discards the # high-order bits of the first byte as necessary to get the right number # of bits. The average number of loops will range from 1.0 (when # order=2**k-1) to 2.0 (when order=2**k+1). assert order > 1 bits, bytes, extrabits = bits_and_bytes(order) generate = PRNG(seed) while True: extrabyte = b("") if extrabits: extrabyte = int2byte(ord(generate(1)) & lsb_of_ones(extrabits)) guess = string_to_number(extrabyte + generate(bytes)) + 1 if 1 <= guess < order: return guess def number_to_string(num, order): l = orderlen(order) fmt_str = "%0" + str(2*l) + "x" string = binascii.unhexlify((fmt_str % num).encode()) assert len(string) == l, (len(string), l) return string def number_to_string_crop(num, order): l = orderlen(order) fmt_str = "%0" + str(2*l) + "x" string = binascii.unhexlify((fmt_str % num).encode()) return string[:l] def string_to_number(string): return int(binascii.hexlify(string), 16) def string_to_number_fixedlen(string, order): l = orderlen(order) assert len(string) == l, (len(string), l) return int(binascii.hexlify(string), 16) # these methods are useful for the sigencode= argument to SK.sign() and the # sigdecode= argument to VK.verify(), and control how the signature is packed # or unpacked. def sigencode_strings(r, s, order): r_str = number_to_string(r, order) s_str = number_to_string(s, order) return (r_str, s_str) def sigencode_string(r, s, order): # for any given curve, the size of the signature numbers is # fixed, so just use simple concatenation r_str, s_str = sigencode_strings(r, s, order) return r_str + s_str def sigencode_der(r, s, order): return der.encode_sequence(der.encode_integer(r), der.encode_integer(s)) def sigdecode_string(signature, order): l = orderlen(order) assert len(signature) == 2*l, (len(signature), 2*l) r = string_to_number_fixedlen(signature[:l], order) s = string_to_number_fixedlen(signature[l:], order) return r, s def sigdecode_strings(rs_strings, order): (r_str, s_str) = rs_strings l = orderlen(order) assert len(r_str) == l, (len(r_str), l) assert len(s_str) == l, (len(s_str), l) r = string_to_number_fixedlen(r_str, order) s = string_to_number_fixedlen(s_str, order) return r, s def sigdecode_der(sig_der, order): #return der.encode_sequence(der.encode_integer(r), der.encode_integer(s)) rs_strings, empty = der.remove_sequence(sig_der) if empty != b(""): raise der.UnexpectedDER("trailing junk after DER sig: %s" % binascii.hexlify(empty)) r, rest = der.remove_integer(rs_strings) s, empty = der.remove_integer(rest) if empty != b(""): raise der.UnexpectedDER("trailing junk after DER numbers: %s" % binascii.hexlify(empty)) return r, s Electrum-1.9.7/ecdsa/rfc6979.py0000644000175000017500000000535212224051177017560 0ustar voegtlinvoegtlin00000000000000''' RFC 6979: Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA) http://tools.ietf.org/html/rfc6979 Many thanks to Coda Hale for his implementation in Go language: https://github.com/codahale/rfc6979 ''' import hmac from binascii import hexlify from .util import number_to_string, number_to_string_crop from .six import b try: bin(0) except NameError: binmap = {"0": "0000", "1": "0001", "2": "0010", "3": "0011", "4": "0100", "5": "0101", "6": "0110", "7": "0111", "8": "1000", "9": "1001", "a": "1010", "b": "1011", "c": "1100", "d": "1101", "e": "1110", "f": "1111"} def bin(value): # for python2.5 v = "".join(binmap[x] for x in "%x"%abs(value)).lstrip("0") if value < 0: return "-0b" + v return "0b" + v def bit_length(num): # http://docs.python.org/dev/library/stdtypes.html#int.bit_length s = bin(num) # binary representation: bin(-37) --> '-0b100101' s = s.lstrip('-0b') # remove leading zeros and minus sign return len(s) # len('100101') --> 6 def bits2int(data, qlen): x = int(hexlify(data), 16) l = len(data) * 8 if l > qlen: return x >> (l-qlen) return x def bits2octets(data, order): z1 = bits2int(data, bit_length(order)) z2 = z1 - order if z2 < 0: z2 = z1 return number_to_string_crop(z2, order) # https://tools.ietf.org/html/rfc6979#section-3.2 def generate_k(generator, secexp, hash_func, data): ''' generator - ECDSA generator used in the signature secexp - secure exponent (private key) in numeric form hash_func - reference to the same hash function used for generating hash data - hash in binary form of the signing data ''' qlen = bit_length(generator.order()) holen = hash_func().digest_size rolen = (qlen + 7) / 8 bx = number_to_string(secexp, generator.order()) + bits2octets(data, generator.order()) # Step B v = b('\x01') * holen # Step C k = b('\x00') * holen # Step D k = hmac.new(k, v+b('\x00')+bx, hash_func).digest() # Step E v = hmac.new(k, v, hash_func).digest() # Step F k = hmac.new(k, v+b('\x01')+bx, hash_func).digest() # Step G v = hmac.new(k, v, hash_func).digest() # Step H while True: # Step H1 t = b('') # Step H2 while len(t) < rolen: v = hmac.new(k, v, hash_func).digest() t += v # Step H3 secret = bits2int(t, qlen) if secret >= 1 and secret < generator.order(): return secret k = hmac.new(k, v+b('\x00'), hash_func).digest() v = hmac.new(k, v, hash_func).digest() Electrum-1.9.7/ecdsa/six.py0000644000175000017500000002732112224051177017252 0ustar voegtlinvoegtlin00000000000000"""Utilities for writing code that runs on Python 2 and 3""" # Copyright (c) 2010-2012 Benjamin Peterson # # Permission is hereby granted, free of charge, to any person obtaining a copy of # this software and associated documentation files (the "Software"), to deal in # the Software without restriction, including without limitation the rights to # use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of # the Software, and to permit persons to whom the Software is furnished to do so, # subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. import operator import sys import types __author__ = "Benjamin Peterson " __version__ = "1.2.0" # True if we are running on Python 3. PY3 = sys.version_info[0] == 3 if PY3: string_types = str, integer_types = int, class_types = type, text_type = str binary_type = bytes MAXSIZE = sys.maxsize else: string_types = basestring, integer_types = (int, long) class_types = (type, types.ClassType) text_type = unicode binary_type = str if sys.platform.startswith("java"): # Jython always uses 32 bits. MAXSIZE = int((1 << 31) - 1) else: # It's possible to have sizeof(long) != sizeof(Py_ssize_t). class X(object): def __len__(self): return 1 << 31 try: len(X()) except OverflowError: # 32-bit MAXSIZE = int((1 << 31) - 1) else: # 64-bit MAXSIZE = int((1 << 63) - 1) del X def _add_doc(func, doc): """Add documentation to a function.""" func.__doc__ = doc def _import_module(name): """Import module, returning the module after the last dot.""" __import__(name) return sys.modules[name] class _LazyDescr(object): def __init__(self, name): self.name = name def __get__(self, obj, tp): result = self._resolve() setattr(obj, self.name, result) # This is a bit ugly, but it avoids running this again. delattr(tp, self.name) return result class MovedModule(_LazyDescr): def __init__(self, name, old, new=None): super(MovedModule, self).__init__(name) if PY3: if new is None: new = name self.mod = new else: self.mod = old def _resolve(self): return _import_module(self.mod) class MovedAttribute(_LazyDescr): def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None): super(MovedAttribute, self).__init__(name) if PY3: if new_mod is None: new_mod = name self.mod = new_mod if new_attr is None: if old_attr is None: new_attr = name else: new_attr = old_attr self.attr = new_attr else: self.mod = old_mod if old_attr is None: old_attr = name self.attr = old_attr def _resolve(self): module = _import_module(self.mod) return getattr(module, self.attr) class _MovedItems(types.ModuleType): """Lazy loading of moved objects""" _moved_attributes = [ MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"), MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"), MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"), MovedAttribute("map", "itertools", "builtins", "imap", "map"), MovedAttribute("reload_module", "__builtin__", "imp", "reload"), MovedAttribute("reduce", "__builtin__", "functools"), MovedAttribute("StringIO", "StringIO", "io"), MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), MovedAttribute("zip", "itertools", "builtins", "izip", "zip"), MovedModule("builtins", "__builtin__"), MovedModule("configparser", "ConfigParser"), MovedModule("copyreg", "copy_reg"), MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), MovedModule("http_cookies", "Cookie", "http.cookies"), MovedModule("html_entities", "htmlentitydefs", "html.entities"), MovedModule("html_parser", "HTMLParser", "html.parser"), MovedModule("http_client", "httplib", "http.client"), MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"), MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"), MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), MovedModule("cPickle", "cPickle", "pickle"), MovedModule("queue", "Queue"), MovedModule("reprlib", "repr"), MovedModule("socketserver", "SocketServer"), MovedModule("tkinter", "Tkinter"), MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"), MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), MovedModule("tkinter_tix", "Tix", "tkinter.tix"), MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"), MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"), MovedModule("tkinter_colorchooser", "tkColorChooser", "tkinter.colorchooser"), MovedModule("tkinter_commondialog", "tkCommonDialog", "tkinter.commondialog"), MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), MovedModule("tkinter_font", "tkFont", "tkinter.font"), MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), MovedModule("tkinter_tksimpledialog", "tkSimpleDialog", "tkinter.simpledialog"), MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), MovedModule("winreg", "_winreg"), ] for attr in _moved_attributes: setattr(_MovedItems, attr.name, attr) del attr moves = sys.modules[__name__ + ".moves"] = _MovedItems("moves") def add_move(move): """Add an item to six.moves.""" setattr(_MovedItems, move.name, move) def remove_move(name): """Remove item from six.moves.""" try: delattr(_MovedItems, name) except AttributeError: try: del moves.__dict__[name] except KeyError: raise AttributeError("no such move, %r" % (name,)) if PY3: _meth_func = "__func__" _meth_self = "__self__" _func_code = "__code__" _func_defaults = "__defaults__" _iterkeys = "keys" _itervalues = "values" _iteritems = "items" else: _meth_func = "im_func" _meth_self = "im_self" _func_code = "func_code" _func_defaults = "func_defaults" _iterkeys = "iterkeys" _itervalues = "itervalues" _iteritems = "iteritems" try: advance_iterator = next except NameError: def advance_iterator(it): return it.next() next = advance_iterator try: callable = callable except NameError: def callable(obj): return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) if PY3: def get_unbound_function(unbound): return unbound Iterator = object else: def get_unbound_function(unbound): return unbound.im_func class Iterator(object): def next(self): return type(self).__next__(self) callable = callable _add_doc(get_unbound_function, """Get the function out of a possibly unbound function""") get_method_function = operator.attrgetter(_meth_func) get_method_self = operator.attrgetter(_meth_self) get_function_code = operator.attrgetter(_func_code) get_function_defaults = operator.attrgetter(_func_defaults) def iterkeys(d): """Return an iterator over the keys of a dictionary.""" return iter(getattr(d, _iterkeys)()) def itervalues(d): """Return an iterator over the values of a dictionary.""" return iter(getattr(d, _itervalues)()) def iteritems(d): """Return an iterator over the (key, value) pairs of a dictionary.""" return iter(getattr(d, _iteritems)()) if PY3: def b(s): return s.encode("latin-1") def u(s): return s if sys.version_info[1] <= 1: def int2byte(i): return bytes((i,)) else: # This is about 2x faster than the implementation above on 3.2+ int2byte = operator.methodcaller("to_bytes", 1, "big") import io StringIO = io.StringIO BytesIO = io.BytesIO else: def b(s): return s def u(s): if isinstance(s, unicode): return s return unicode(s, "unicode_escape") int2byte = chr import StringIO StringIO = BytesIO = StringIO.StringIO _add_doc(b, """Byte literal""") _add_doc(u, """Text literal""") if PY3: import builtins exec_ = getattr(builtins, "exec") def reraise(tp, value, tb=None): if value.__traceback__ is not tb: raise value.with_traceback(tb) raise value print_ = getattr(builtins, "print") del builtins else: def exec_(_code_, _globs_=None, _locs_=None): """Execute code in a namespace.""" if _globs_ is None: frame = sys._getframe(1) _globs_ = frame.f_globals if _locs_ is None: _locs_ = frame.f_locals del frame elif _locs_ is None: _locs_ = _globs_ exec("""exec _code_ in _globs_, _locs_""") exec_("""def reraise(tp, value, tb=None): raise tp, value, tb """) def print_(*args, **kwargs): """The new-style print function.""" fp = kwargs.pop("file", sys.stdout) if fp is None: return def write(data): if not isinstance(data, basestring): data = str(data) fp.write(data) want_unicode = False sep = kwargs.pop("sep", None) if sep is not None: if isinstance(sep, unicode): want_unicode = True elif not isinstance(sep, str): raise TypeError("sep must be None or a string") end = kwargs.pop("end", None) if end is not None: if isinstance(end, unicode): want_unicode = True elif not isinstance(end, str): raise TypeError("end must be None or a string") if kwargs: raise TypeError("invalid keyword arguments to print()") if not want_unicode: for arg in args: if isinstance(arg, unicode): want_unicode = True break if want_unicode: newline = unicode("\n") space = unicode(" ") else: newline = "\n" space = " " if sep is None: sep = space if end is None: end = newline for i, arg in enumerate(args): if i: write(sep) write(arg) write(end) _add_doc(reraise, """Reraise an exception.""") def with_metaclass(meta, base=object): """Create a base class with a metaclass.""" return meta("NewBase", (base,), {}) Electrum-1.9.7/ecdsa/test_pyecdsa.py0000644000175000017500000007030412224051177021135 0ustar voegtlinvoegtlin00000000000000from __future__ import with_statement, division import unittest import os import time import shutil import subprocess from binascii import hexlify, unhexlify from hashlib import sha1, sha256, sha512 from .six import b, print_, binary_type from .keys import SigningKey, VerifyingKey from .keys import BadSignatureError from . import util from .util import sigencode_der, sigencode_strings from .util import sigdecode_der, sigdecode_strings from .curves import Curve, UnknownCurveError from .curves import NIST192p, NIST224p, NIST256p, NIST384p, NIST521p, SECP256k1 from .ellipticcurve import Point from . import der from . import rfc6979 class SubprocessError(Exception): pass def run_openssl(cmd): OPENSSL = "openssl" p = subprocess.Popen([OPENSSL] + cmd.split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT) stdout, ignored = p.communicate() if p.returncode != 0: raise SubprocessError("cmd '%s %s' failed: rc=%s, stdout/err was %s" % (OPENSSL, cmd, p.returncode, stdout)) return stdout.decode() BENCH = False class ECDSA(unittest.TestCase): def test_basic(self): priv = SigningKey.generate() pub = priv.get_verifying_key() data = b("blahblah") sig = priv.sign(data) self.assertTrue(pub.verify(sig, data)) self.assertRaises(BadSignatureError, pub.verify, sig, data+b("bad")) pub2 = VerifyingKey.from_string(pub.to_string()) self.assertTrue(pub2.verify(sig, data)) def test_deterministic(self): data = b("blahblah") secexp = int("9d0219792467d7d37b4d43298a7d0c05", 16) priv = SigningKey.from_secret_exponent(secexp, SECP256k1, sha256) pub = priv.get_verifying_key() k = rfc6979.generate_k(SECP256k1.generator, secexp, sha256, sha256(data).digest()) sig1 = priv.sign(data, k=k) self.assertTrue(pub.verify(sig1, data)) sig2 = priv.sign(data, k=k) self.assertTrue(pub.verify(sig2, data)) sig3 = priv.sign_deterministic(data, sha256) self.assertTrue(pub.verify(sig3, data)) self.assertEqual(sig1, sig2) self.assertEqual(sig1, sig3) def test_bad_usage(self): # sk=SigningKey() is wrong self.assertRaises(TypeError, SigningKey) self.assertRaises(TypeError, VerifyingKey) def test_lengths(self): default = NIST192p priv = SigningKey.generate() pub = priv.get_verifying_key() self.assertEqual(len(pub.to_string()), default.verifying_key_length) sig = priv.sign(b("data")) self.assertEqual(len(sig), default.signature_length) if BENCH: print_() for curve in (NIST192p, NIST224p, NIST256p, NIST384p, NIST521p): start = time.time() priv = SigningKey.generate(curve=curve) pub1 = priv.get_verifying_key() keygen_time = time.time() - start pub2 = VerifyingKey.from_string(pub1.to_string(), curve) self.assertEqual(pub1.to_string(), pub2.to_string()) self.assertEqual(len(pub1.to_string()), curve.verifying_key_length) start = time.time() sig = priv.sign(b("data")) sign_time = time.time() - start self.assertEqual(len(sig), curve.signature_length) if BENCH: start = time.time() pub1.verify(sig, b("data")) verify_time = time.time() - start print_("%s: siglen=%d, keygen=%0.3fs, sign=%0.3f, verify=%0.3f" \ % (curve.name, curve.signature_length, keygen_time, sign_time, verify_time)) def test_serialize(self): seed = b("secret") curve = NIST192p secexp1 = util.randrange_from_seed__trytryagain(seed, curve.order) secexp2 = util.randrange_from_seed__trytryagain(seed, curve.order) self.assertEqual(secexp1, secexp2) priv1 = SigningKey.from_secret_exponent(secexp1, curve) priv2 = SigningKey.from_secret_exponent(secexp2, curve) self.assertEqual(hexlify(priv1.to_string()), hexlify(priv2.to_string())) self.assertEqual(priv1.to_pem(), priv2.to_pem()) pub1 = priv1.get_verifying_key() pub2 = priv2.get_verifying_key() data = b("data") sig1 = priv1.sign(data) sig2 = priv2.sign(data) self.assertTrue(pub1.verify(sig1, data)) self.assertTrue(pub2.verify(sig1, data)) self.assertTrue(pub1.verify(sig2, data)) self.assertTrue(pub2.verify(sig2, data)) self.assertEqual(hexlify(pub1.to_string()), hexlify(pub2.to_string())) def test_nonrandom(self): s = b("all the entropy in the entire world, compressed into one line") def not_much_entropy(numbytes): return s[:numbytes] # we control the entropy source, these two keys should be identical: priv1 = SigningKey.generate(entropy=not_much_entropy) priv2 = SigningKey.generate(entropy=not_much_entropy) self.assertEqual(hexlify(priv1.get_verifying_key().to_string()), hexlify(priv2.get_verifying_key().to_string())) # likewise, signatures should be identical. Obviously you'd never # want to do this with keys you care about, because the secrecy of # the private key depends upon using different random numbers for # each signature sig1 = priv1.sign(b("data"), entropy=not_much_entropy) sig2 = priv2.sign(b("data"), entropy=not_much_entropy) self.assertEqual(hexlify(sig1), hexlify(sig2)) def assertTruePrivkeysEqual(self, priv1, priv2): self.assertEqual(priv1.privkey.secret_multiplier, priv2.privkey.secret_multiplier) self.assertEqual(priv1.privkey.public_key.generator, priv2.privkey.public_key.generator) def failIfPrivkeysEqual(self, priv1, priv2): self.failIfEqual(priv1.privkey.secret_multiplier, priv2.privkey.secret_multiplier) def test_privkey_creation(self): s = b("all the entropy in the entire world, compressed into one line") def not_much_entropy(numbytes): return s[:numbytes] priv1 = SigningKey.generate() self.assertEqual(priv1.baselen, NIST192p.baselen) priv1 = SigningKey.generate(curve=NIST224p) self.assertEqual(priv1.baselen, NIST224p.baselen) priv1 = SigningKey.generate(entropy=not_much_entropy) self.assertEqual(priv1.baselen, NIST192p.baselen) priv2 = SigningKey.generate(entropy=not_much_entropy) self.assertEqual(priv2.baselen, NIST192p.baselen) self.assertTruePrivkeysEqual(priv1, priv2) priv1 = SigningKey.from_secret_exponent(secexp=3) self.assertEqual(priv1.baselen, NIST192p.baselen) priv2 = SigningKey.from_secret_exponent(secexp=3) self.assertTruePrivkeysEqual(priv1, priv2) priv1 = SigningKey.from_secret_exponent(secexp=4, curve=NIST224p) self.assertEqual(priv1.baselen, NIST224p.baselen) def test_privkey_strings(self): priv1 = SigningKey.generate() s1 = priv1.to_string() self.assertEqual(type(s1), binary_type) self.assertEqual(len(s1), NIST192p.baselen) priv2 = SigningKey.from_string(s1) self.assertTruePrivkeysEqual(priv1, priv2) s1 = priv1.to_pem() self.assertEqual(type(s1), binary_type) self.assertTrue(s1.startswith(b("-----BEGIN EC PRIVATE KEY-----"))) self.assertTrue(s1.strip().endswith(b("-----END EC PRIVATE KEY-----"))) priv2 = SigningKey.from_pem(s1) self.assertTruePrivkeysEqual(priv1, priv2) s1 = priv1.to_der() self.assertEqual(type(s1), binary_type) priv2 = SigningKey.from_der(s1) self.assertTruePrivkeysEqual(priv1, priv2) priv1 = SigningKey.generate(curve=NIST256p) s1 = priv1.to_pem() self.assertEqual(type(s1), binary_type) self.assertTrue(s1.startswith(b("-----BEGIN EC PRIVATE KEY-----"))) self.assertTrue(s1.strip().endswith(b("-----END EC PRIVATE KEY-----"))) priv2 = SigningKey.from_pem(s1) self.assertTruePrivkeysEqual(priv1, priv2) s1 = priv1.to_der() self.assertEqual(type(s1), binary_type) priv2 = SigningKey.from_der(s1) self.assertTruePrivkeysEqual(priv1, priv2) def assertTruePubkeysEqual(self, pub1, pub2): self.assertEqual(pub1.pubkey.point, pub2.pubkey.point) self.assertEqual(pub1.pubkey.generator, pub2.pubkey.generator) self.assertEqual(pub1.curve, pub2.curve) def test_pubkey_strings(self): priv1 = SigningKey.generate() pub1 = priv1.get_verifying_key() s1 = pub1.to_string() self.assertEqual(type(s1), binary_type) self.assertEqual(len(s1), NIST192p.verifying_key_length) pub2 = VerifyingKey.from_string(s1) self.assertTruePubkeysEqual(pub1, pub2) priv1 = SigningKey.generate(curve=NIST256p) pub1 = priv1.get_verifying_key() s1 = pub1.to_string() self.assertEqual(type(s1), binary_type) self.assertEqual(len(s1), NIST256p.verifying_key_length) pub2 = VerifyingKey.from_string(s1, curve=NIST256p) self.assertTruePubkeysEqual(pub1, pub2) pub1_der = pub1.to_der() self.assertEqual(type(pub1_der), binary_type) pub2 = VerifyingKey.from_der(pub1_der) self.assertTruePubkeysEqual(pub1, pub2) self.assertRaises(der.UnexpectedDER, VerifyingKey.from_der, pub1_der+b("junk")) badpub = VerifyingKey.from_der(pub1_der) class FakeGenerator: def order(self): return 123456789 badcurve = Curve("unknown", None, FakeGenerator(), (1,2,3,4,5,6)) badpub.curve = badcurve badder = badpub.to_der() self.assertRaises(UnknownCurveError, VerifyingKey.from_der, badder) pem = pub1.to_pem() self.assertEqual(type(pem), binary_type) self.assertTrue(pem.startswith(b("-----BEGIN PUBLIC KEY-----")), pem) self.assertTrue(pem.strip().endswith(b("-----END PUBLIC KEY-----")), pem) pub2 = VerifyingKey.from_pem(pem) self.assertTruePubkeysEqual(pub1, pub2) def test_signature_strings(self): priv1 = SigningKey.generate() pub1 = priv1.get_verifying_key() data = b("data") sig = priv1.sign(data) self.assertEqual(type(sig), binary_type) self.assertEqual(len(sig), NIST192p.signature_length) self.assertTrue(pub1.verify(sig, data)) sig = priv1.sign(data, sigencode=sigencode_strings) self.assertEqual(type(sig), tuple) self.assertEqual(len(sig), 2) self.assertEqual(type(sig[0]), binary_type) self.assertEqual(type(sig[1]), binary_type) self.assertEqual(len(sig[0]), NIST192p.baselen) self.assertEqual(len(sig[1]), NIST192p.baselen) self.assertTrue(pub1.verify(sig, data, sigdecode=sigdecode_strings)) sig_der = priv1.sign(data, sigencode=sigencode_der) self.assertEqual(type(sig_der), binary_type) self.assertTrue(pub1.verify(sig_der, data, sigdecode=sigdecode_der)) def test_hashfunc(self): sk = SigningKey.generate(curve=NIST256p, hashfunc=sha256) data = b("security level is 128 bits") sig = sk.sign(data) vk = VerifyingKey.from_string(sk.get_verifying_key().to_string(), curve=NIST256p, hashfunc=sha256) self.assertTrue(vk.verify(sig, data)) sk2 = SigningKey.generate(curve=NIST256p) sig2 = sk2.sign(data, hashfunc=sha256) vk2 = VerifyingKey.from_string(sk2.get_verifying_key().to_string(), curve=NIST256p, hashfunc=sha256) self.assertTrue(vk2.verify(sig2, data)) vk3 = VerifyingKey.from_string(sk.get_verifying_key().to_string(), curve=NIST256p) self.assertTrue(vk3.verify(sig, data, hashfunc=sha256)) class OpenSSL(unittest.TestCase): # test interoperability with OpenSSL tools. Note that openssl's ECDSA # sign/verify arguments changed between 0.9.8 and 1.0.0: the early # versions require "-ecdsa-with-SHA1", the later versions want just # "-SHA1" (or to leave out that argument entirely, which means the # signature will use some default digest algorithm, probably determined # by the key, probably always SHA1). # # openssl ecparam -name secp224r1 -genkey -out privkey.pem # openssl ec -in privkey.pem -text -noout # get the priv/pub keys # openssl dgst -ecdsa-with-SHA1 -sign privkey.pem -out data.sig data.txt # openssl asn1parse -in data.sig -inform DER # data.sig is 64 bytes, probably 56b plus ASN1 overhead # openssl dgst -ecdsa-with-SHA1 -prverify privkey.pem -signature data.sig data.txt ; echo $? # openssl ec -in privkey.pem -pubout -out pubkey.pem # openssl ec -in privkey.pem -pubout -outform DER -out pubkey.der def get_openssl_messagedigest_arg(self): v = run_openssl("version") # e.g. "OpenSSL 1.0.0 29 Mar 2010", or "OpenSSL 1.0.0a 1 Jun 2010", # or "OpenSSL 0.9.8o 01 Jun 2010" vs = v.split()[1].split(".") if vs >= ["1","0","0"]: return "-SHA1" else: return "-ecdsa-with-SHA1" # sk: 1:OpenSSL->python 2:python->OpenSSL # vk: 3:OpenSSL->python 4:python->OpenSSL # sig: 5:OpenSSL->python 6:python->OpenSSL def test_from_openssl_nist192p(self): return self.do_test_from_openssl(NIST192p, "prime192v1") def test_from_openssl_nist224p(self): return self.do_test_from_openssl(NIST224p, "secp224r1") def test_from_openssl_nist384p(self): return self.do_test_from_openssl(NIST384p, "secp384r1") def test_from_openssl_nist521p(self): return self.do_test_from_openssl(NIST521p, "secp521r1") def do_test_from_openssl(self, curve, curvename): # OpenSSL: create sk, vk, sign. # Python: read vk(3), checksig(5), read sk(1), sign, check mdarg = self.get_openssl_messagedigest_arg() if os.path.isdir("t"): shutil.rmtree("t") os.mkdir("t") run_openssl("ecparam -name %s -genkey -out t/privkey.pem" % curvename) run_openssl("ec -in t/privkey.pem -pubout -out t/pubkey.pem") data = b("data") with open("t/data.txt","wb") as e: e.write(data) run_openssl("dgst %s -sign t/privkey.pem -out t/data.sig t/data.txt" % mdarg) run_openssl("dgst %s -verify t/pubkey.pem -signature t/data.sig t/data.txt" % mdarg) with open("t/pubkey.pem","rb") as e: pubkey_pem = e.read() vk = VerifyingKey.from_pem(pubkey_pem) # 3 with open("t/data.sig","rb") as e: sig_der = e.read() self.assertTrue(vk.verify(sig_der, data, # 5 hashfunc=sha1, sigdecode=sigdecode_der)) with open("t/privkey.pem") as e: fp = e.read() sk = SigningKey.from_pem(fp) # 1 sig = sk.sign(data) self.assertTrue(vk.verify(sig, data)) def test_to_openssl_nist192p(self): self.do_test_to_openssl(NIST192p, "prime192v1") def test_to_openssl_nist224p(self): self.do_test_to_openssl(NIST224p, "secp224r1") def test_to_openssl_nist384p(self): self.do_test_to_openssl(NIST384p, "secp384r1") def test_to_openssl_nist521p(self): self.do_test_to_openssl(NIST521p, "secp521r1") def do_test_to_openssl(self, curve, curvename): # Python: create sk, vk, sign. # OpenSSL: read vk(4), checksig(6), read sk(2), sign, check mdarg = self.get_openssl_messagedigest_arg() if os.path.isdir("t"): shutil.rmtree("t") os.mkdir("t") sk = SigningKey.generate(curve=curve) vk = sk.get_verifying_key() data = b("data") with open("t/pubkey.der","wb") as e: e.write(vk.to_der()) # 4 with open("t/pubkey.pem","wb") as e: e.write(vk.to_pem()) # 4 sig_der = sk.sign(data, hashfunc=sha1, sigencode=sigencode_der) with open("t/data.sig","wb") as e: e.write(sig_der) # 6 with open("t/data.txt","wb") as e: e.write(data) with open("t/baddata.txt","wb") as e: e.write(data+b("corrupt")) self.assertRaises(SubprocessError, run_openssl, "dgst %s -verify t/pubkey.der -keyform DER -signature t/data.sig t/baddata.txt" % mdarg) run_openssl("dgst %s -verify t/pubkey.der -keyform DER -signature t/data.sig t/data.txt" % mdarg) with open("t/privkey.pem","wb") as e: e.write(sk.to_pem()) # 2 run_openssl("dgst %s -sign t/privkey.pem -out t/data.sig2 t/data.txt" % mdarg) run_openssl("dgst %s -verify t/pubkey.pem -signature t/data.sig2 t/data.txt" % mdarg) class DER(unittest.TestCase): def test_oids(self): oid_ecPublicKey = der.encode_oid(1, 2, 840, 10045, 2, 1) self.assertEqual(hexlify(oid_ecPublicKey), b("06072a8648ce3d0201")) self.assertEqual(hexlify(NIST224p.encoded_oid), b("06052b81040021")) self.assertEqual(hexlify(NIST256p.encoded_oid), b("06082a8648ce3d030107")) x = oid_ecPublicKey + b("more") x1, rest = der.remove_object(x) self.assertEqual(x1, (1, 2, 840, 10045, 2, 1)) self.assertEqual(rest, b("more")) def test_integer(self): self.assertEqual(der.encode_integer(0), b("\x02\x01\x00")) self.assertEqual(der.encode_integer(1), b("\x02\x01\x01")) self.assertEqual(der.encode_integer(127), b("\x02\x01\x7f")) self.assertEqual(der.encode_integer(128), b("\x02\x02\x00\x80")) self.assertEqual(der.encode_integer(256), b("\x02\x02\x01\x00")) #self.assertEqual(der.encode_integer(-1), b("\x02\x01\xff")) def s(n): return der.remove_integer(der.encode_integer(n) + b("junk")) self.assertEqual(s(0), (0, b("junk"))) self.assertEqual(s(1), (1, b("junk"))) self.assertEqual(s(127), (127, b("junk"))) self.assertEqual(s(128), (128, b("junk"))) self.assertEqual(s(256), (256, b("junk"))) self.assertEqual(s(1234567890123456789012345678901234567890), (1234567890123456789012345678901234567890,b("junk"))) def test_number(self): self.assertEqual(der.encode_number(0), b("\x00")) self.assertEqual(der.encode_number(127), b("\x7f")) self.assertEqual(der.encode_number(128), b("\x81\x00")) self.assertEqual(der.encode_number(3*128+7), b("\x83\x07")) #self.assertEqual(der.read_number("\x81\x9b"+"more"), (155, 2)) #self.assertEqual(der.encode_number(155), b("\x81\x9b")) for n in (0, 1, 2, 127, 128, 3*128+7, 840, 10045): #, 155): x = der.encode_number(n) + b("more") n1, llen = der.read_number(x) self.assertEqual(n1, n) self.assertEqual(x[llen:], b("more")) def test_length(self): self.assertEqual(der.encode_length(0), b("\x00")) self.assertEqual(der.encode_length(127), b("\x7f")) self.assertEqual(der.encode_length(128), b("\x81\x80")) self.assertEqual(der.encode_length(255), b("\x81\xff")) self.assertEqual(der.encode_length(256), b("\x82\x01\x00")) self.assertEqual(der.encode_length(3*256+7), b("\x82\x03\x07")) self.assertEqual(der.read_length(b("\x81\x9b")+b("more")), (155, 2)) self.assertEqual(der.encode_length(155), b("\x81\x9b")) for n in (0, 1, 2, 127, 128, 255, 256, 3*256+7, 155): x = der.encode_length(n) + b("more") n1, llen = der.read_length(x) self.assertEqual(n1, n) self.assertEqual(x[llen:], b("more")) def test_sequence(self): x = der.encode_sequence(b("ABC"), b("DEF")) + b("GHI") self.assertEqual(x, b("\x30\x06ABCDEFGHI")) x1, rest = der.remove_sequence(x) self.assertEqual(x1, b("ABCDEF")) self.assertEqual(rest, b("GHI")) def test_constructed(self): x = der.encode_constructed(0, NIST224p.encoded_oid) self.assertEqual(hexlify(x), b("a007") + b("06052b81040021")) x = der.encode_constructed(1, unhexlify(b("0102030a0b0c"))) self.assertEqual(hexlify(x), b("a106") + b("0102030a0b0c")) class Util(unittest.TestCase): def test_trytryagain(self): tta = util.randrange_from_seed__trytryagain for i in range(1000): seed = "seed-%d" % i for order in (2**8-2, 2**8-1, 2**8, 2**8+1, 2**8+2, 2**16-1, 2**16+1): n = tta(seed, order) self.assertTrue(1 <= n < order, (1, n, order)) # this trytryagain *does* provide long-term stability self.assertEqual(("%x"%(tta("seed", NIST224p.order))).encode(), b("6fa59d73bf0446ae8743cf748fc5ac11d5585a90356417e97155c3bc")) def test_randrange(self): # util.randrange does not provide long-term stability: we might # change the algorithm in the future. for i in range(1000): entropy = util.PRNG("seed-%d" % i) for order in (2**8-2, 2**8-1, 2**8, 2**16-1, 2**16+1, ): # that oddball 2**16+1 takes half our runtime n = util.randrange(order, entropy=entropy) self.assertTrue(1 <= n < order, (1, n, order)) def OFF_test_prove_uniformity(self): order = 2**8-2 counts = dict([(i, 0) for i in range(1, order)]) assert 0 not in counts assert order not in counts for i in range(1000000): seed = "seed-%d" % i n = util.randrange_from_seed__trytryagain(seed, order) counts[n] += 1 # this technique should use the full range self.assertTrue(counts[order-1]) for i in range(1, order): print_("%3d: %s" % (i, "*"*(counts[i]//100))) class RFC6979(unittest.TestCase): # https://tools.ietf.org/html/rfc6979#appendix-A.1 def _do(self, generator, secexp, hsh, hash_func, expected): actual = rfc6979.generate_k(generator, secexp, hash_func, hsh) self.assertEqual(expected, actual) def test_SECP256k1(self): '''RFC doesn't contain test vectors for SECP256k1 used in bitcoin. This vector has been computed by Golang reference implementation instead.''' self._do( generator = SECP256k1.generator, secexp = int("9d0219792467d7d37b4d43298a7d0c05", 16), hsh = sha256(b("sample")).digest(), hash_func = sha256, expected = int("8fa1f95d514760e498f28957b824ee6ec39ed64826ff4fecc2b5739ec45b91cd", 16)) def test_SECP256k1_2(self): self._do( generator=SECP256k1.generator, secexp=int("cca9fbcc1b41e5a95d369eaa6ddcff73b61a4efaa279cfc6567e8daa39cbaf50", 16), hsh=sha256(b("sample")).digest(), hash_func=sha256, expected=int("2df40ca70e639d89528a6b670d9d48d9165fdc0febc0974056bdce192b8e16a3", 16)) def test_SECP256k1_3(self): self._do( generator=SECP256k1.generator, secexp=0x1, hsh=sha256(b("Satoshi Nakamoto")).digest(), hash_func=sha256, expected=0x8F8A276C19F4149656B280621E358CCE24F5F52542772691EE69063B74F15D15) def test_SECP256k1_4(self): self._do( generator=SECP256k1.generator, secexp=0x1, hsh=sha256(b("All those moments will be lost in time, like tears in rain. Time to die...")).digest(), hash_func=sha256, expected=0x38AA22D72376B4DBC472E06C3BA403EE0A394DA63FC58D88686C611ABA98D6B3) def test_SECP256k1_5(self): self._do( generator=SECP256k1.generator, secexp=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140, hsh=sha256(b("Satoshi Nakamoto")).digest(), hash_func=sha256, expected=0x33A19B60E25FB6F4435AF53A3D42D493644827367E6453928554F43E49AA6F90) def test_SECP256k1_6(self): self._do( generator=SECP256k1.generator, secexp=0xf8b8af8ce3c7cca5e300d33939540c10d45ce001b8f252bfbc57ba0342904181, hsh=sha256(b("Alan Turing")).digest(), hash_func=sha256, expected=0x525A82B70E67874398067543FD84C83D30C175FDC45FDEEE082FE13B1D7CFDF1) def test_1(self): # Basic example of the RFC, it also tests 'try-try-again' from Step H of rfc6979 self._do( generator = Point(None, 0, 0, int("4000000000000000000020108A2E0CC0D99F8A5EF", 16)), secexp = int("09A4D6792295A7F730FC3F2B49CBC0F62E862272F", 16), hsh = unhexlify(b("AF2BDBE1AA9B6EC1E2ADE1D694F41FC71A831D0268E9891562113D8A62ADD1BF")), hash_func = sha256, expected = int("23AF4074C90A02B3FE61D286D5C87F425E6BDD81B", 16)) def test_2(self): self._do( generator=NIST192p.generator, secexp = int("6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4", 16), hsh = sha1(b("sample")).digest(), hash_func = sha1, expected = int("37D7CA00D2C7B0E5E412AC03BD44BA837FDD5B28CD3B0021", 16)) def test_3(self): self._do( generator=NIST192p.generator, secexp = int("6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4", 16), hsh = sha256(b("sample")).digest(), hash_func = sha256, expected = int("32B1B6D7D42A05CB449065727A84804FB1A3E34D8F261496", 16)) def test_4(self): self._do( generator=NIST192p.generator, secexp = int("6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4", 16), hsh = sha512(b("sample")).digest(), hash_func = sha512, expected = int("A2AC7AB055E4F20692D49209544C203A7D1F2C0BFBC75DB1", 16)) def test_5(self): self._do( generator=NIST192p.generator, secexp = int("6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4", 16), hsh = sha1(b("test")).digest(), hash_func = sha1, expected = int("D9CF9C3D3297D3260773A1DA7418DB5537AB8DD93DE7FA25", 16)) def test_6(self): self._do( generator=NIST192p.generator, secexp = int("6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4", 16), hsh = sha256(b("test")).digest(), hash_func = sha256, expected = int("5C4CE89CF56D9E7C77C8585339B006B97B5F0680B4306C6C", 16)) def test_7(self): self._do( generator=NIST192p.generator, secexp = int("6FAB034934E4C0FC9AE67F5B5659A9D7D1FEFD187EE09FD4", 16), hsh = sha512(b("test")).digest(), hash_func = sha512, expected = int("0758753A5254759C7CFBAD2E2D9B0792EEE44136C9480527", 16)) def test_8(self): self._do( generator=NIST521p.generator, secexp = int("0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538", 16), hsh = sha1(b("sample")).digest(), hash_func = sha1, expected = int("089C071B419E1C2820962321787258469511958E80582E95D8378E0C2CCDB3CB42BEDE42F50E3FA3C71F5A76724281D31D9C89F0F91FC1BE4918DB1C03A5838D0F9", 16)) def test_9(self): self._do( generator=NIST521p.generator, secexp = int("0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538", 16), hsh = sha256(b("sample")).digest(), hash_func = sha256, expected = int("0EDF38AFCAAECAB4383358B34D67C9F2216C8382AAEA44A3DAD5FDC9C32575761793FEF24EB0FC276DFC4F6E3EC476752F043CF01415387470BCBD8678ED2C7E1A0", 16)) def test_10(self): self._do( generator=NIST521p.generator, secexp = int("0FAD06DAA62BA3B25D2FB40133DA757205DE67F5BB0018FEE8C86E1B68C7E75CAA896EB32F1F47C70855836A6D16FCC1466F6D8FBEC67DB89EC0C08B0E996B83538", 16), hsh = sha512(b("test")).digest(), hash_func = sha512, expected = int("16200813020EC986863BEDFC1B121F605C1215645018AEA1A7B215A564DE9EB1B38A67AA1128B80CE391C4FB71187654AAA3431027BFC7F395766CA988C964DC56D", 16)) def __main__(): unittest.main() if __name__ == "__main__": __main__() Electrum-1.9.7/ecdsa/der.py0000644000175000017500000001555712224051177017231 0ustar voegtlinvoegtlin00000000000000from __future__ import division import binascii import base64 from .six import int2byte, b, PY3, integer_types, text_type class UnexpectedDER(Exception): pass def encode_constructed(tag, value): return int2byte(0xa0+tag) + encode_length(len(value)) + value def encode_integer(r): assert r >= 0 # can't support negative numbers yet h = ("%x" % r).encode() if len(h) % 2: h = b("0") + h s = binascii.unhexlify(h) num = s[0] if isinstance(s[0], integer_types) else ord(s[0]) if num <= 0x7f: return b("\x02") + int2byte(len(s)) + s else: # DER integers are two's complement, so if the first byte is # 0x80-0xff then we need an extra 0x00 byte to prevent it from # looking negative. return b("\x02") + int2byte(len(s)+1) + b("\x00") + s def encode_bitstring(s): return b("\x03") + encode_length(len(s)) + s def encode_octet_string(s): return b("\x04") + encode_length(len(s)) + s def encode_oid(first, second, *pieces): assert first <= 2 assert second <= 39 encoded_pieces = [int2byte(40*first+second)] + [encode_number(p) for p in pieces] body = b('').join(encoded_pieces) return b('\x06') + encode_length(len(body)) + body def encode_sequence(*encoded_pieces): total_len = sum([len(p) for p in encoded_pieces]) return b('\x30') + encode_length(total_len) + b('').join(encoded_pieces) def encode_number(n): b128_digits = [] while n: b128_digits.insert(0, (n & 0x7f) | 0x80) n = n >> 7 if not b128_digits: b128_digits.append(0) b128_digits[-1] &= 0x7f return b('').join([int2byte(d) for d in b128_digits]) def remove_constructed(string): s0 = string[0] if isinstance(string[0], integer_types) else ord(string[0]) if (s0 & 0xe0) != 0xa0: raise UnexpectedDER("wanted constructed tag (0xa0-0xbf), got 0x%02x" % s0) tag = s0 & 0x1f length, llen = read_length(string[1:]) body = string[1+llen:1+llen+length] rest = string[1+llen+length:] return tag, body, rest def remove_sequence(string): if not string.startswith(b("\x30")): n = string[0] if isinstance(string[0], integer_types) else ord(string[0]) raise UnexpectedDER("wanted sequence (0x30), got 0x%02x" % n) length, lengthlength = read_length(string[1:]) endseq = 1+lengthlength+length return string[1+lengthlength:endseq], string[endseq:] def remove_octet_string(string): if not string.startswith(b("\x04")): n = string[0] if isinstance(string[0], integer_types) else ord(string[0]) raise UnexpectedDER("wanted octetstring (0x04), got 0x%02x" % n) length, llen = read_length(string[1:]) body = string[1+llen:1+llen+length] rest = string[1+llen+length:] return body, rest def remove_object(string): if not string.startswith(b("\x06")): n = string[0] if isinstance(string[0], integer_types) else ord(string[0]) raise UnexpectedDER("wanted object (0x06), got 0x%02x" % n) length, lengthlength = read_length(string[1:]) body = string[1+lengthlength:1+lengthlength+length] rest = string[1+lengthlength+length:] numbers = [] while body: n, ll = read_number(body) numbers.append(n) body = body[ll:] n0 = numbers.pop(0) first = n0//40 second = n0-(40*first) numbers.insert(0, first) numbers.insert(1, second) return tuple(numbers), rest def remove_integer(string): if not string.startswith(b("\x02")): n = string[0] if isinstance(string[0], integer_types) else ord(string[0]) raise UnexpectedDER("wanted integer (0x02), got 0x%02x" % n) length, llen = read_length(string[1:]) numberbytes = string[1+llen:1+llen+length] rest = string[1+llen+length:] nbytes = numberbytes[0] if isinstance(numberbytes[0], integer_types) else ord(numberbytes[0]) assert nbytes < 0x80 # can't support negative numbers yet return int(binascii.hexlify(numberbytes), 16), rest def read_number(string): number = 0 llen = 0 # base-128 big endian, with b7 set in all but the last byte while True: if llen > len(string): raise UnexpectedDER("ran out of length bytes") number = number << 7 d = string[llen] if isinstance(string[llen], integer_types) else ord(string[llen]) number += (d & 0x7f) llen += 1 if not d & 0x80: break return number, llen def encode_length(l): assert l >= 0 if l < 0x80: return int2byte(l) s = ("%x" % l).encode() if len(s)%2: s = b("0")+s s = binascii.unhexlify(s) llen = len(s) return int2byte(0x80|llen) + s def read_length(string): num = string[0] if isinstance(string[0], integer_types) else ord(string[0]) if not (num & 0x80): # short form return (num & 0x7f), 1 # else long-form: b0&0x7f is number of additional base256 length bytes, # big-endian llen = num & 0x7f if llen > len(string)-1: raise UnexpectedDER("ran out of length bytes") return int(binascii.hexlify(string[1:1+llen]), 16), 1+llen def remove_bitstring(string): num = string[0] if isinstance(string[0], integer_types) else ord(string[0]) if not string.startswith(b("\x03")): raise UnexpectedDER("wanted bitstring (0x03), got 0x%02x" % num) length, llen = read_length(string[1:]) body = string[1+llen:1+llen+length] rest = string[1+llen+length:] return body, rest # SEQUENCE([1, STRING(secexp), cont[0], OBJECT(curvename), cont[1], BINTSTRING) # signatures: (from RFC3279) # ansi-X9-62 OBJECT IDENTIFIER ::= { # iso(1) member-body(2) us(840) 10045 } # # id-ecSigType OBJECT IDENTIFIER ::= { # ansi-X9-62 signatures(4) } # ecdsa-with-SHA1 OBJECT IDENTIFIER ::= { # id-ecSigType 1 } ## so 1,2,840,10045,4,1 ## so 0x42, .. .. # Ecdsa-Sig-Value ::= SEQUENCE { # r INTEGER, # s INTEGER } # id-public-key-type OBJECT IDENTIFIER ::= { ansi-X9.62 2 } # # id-ecPublicKey OBJECT IDENTIFIER ::= { id-publicKeyType 1 } # I think the secp224r1 identifier is (t=06,l=05,v=2b81040021) # secp224r1 OBJECT IDENTIFIER ::= { # iso(1) identified-organization(3) certicom(132) curve(0) 33 } # and the secp384r1 is (t=06,l=05,v=2b81040022) # secp384r1 OBJECT IDENTIFIER ::= { # iso(1) identified-organization(3) certicom(132) curve(0) 34 } def unpem(pem): if isinstance(pem, text_type): pem = pem.encode() d = b("").join([l.strip() for l in pem.split(b("\n")) if l and not l.startswith(b("-----"))]) return base64.b64decode(d) def topem(der, name): b64 = base64.b64encode(der) lines = [("-----BEGIN %s-----\n" % name).encode()] lines.extend([b64[start:start+64]+b("\n") for start in range(0, len(b64), 64)]) lines.append(("-----END %s-----\n" % name).encode()) return b("").join(lines) Electrum-1.9.7/ecdsa/keys.py0000644000175000017500000003004312224051177017415 0ustar voegtlinvoegtlin00000000000000import binascii from . import ecdsa from . import der from . import rfc6979 from .curves import NIST192p, find_curve from .util import string_to_number, number_to_string, randrange from .util import sigencode_string, sigdecode_string from .util import oid_ecPublicKey, encoded_oid_ecPublicKey from .six import PY3, b from hashlib import sha1 class BadSignatureError(Exception): pass class BadDigestError(Exception): pass class VerifyingKey: def __init__(self, _error__please_use_generate=None): if not _error__please_use_generate: raise TypeError("Please use SigningKey.generate() to construct me") @classmethod def from_public_point(klass, point, curve=NIST192p, hashfunc=sha1): self = klass(_error__please_use_generate=True) self.curve = curve self.default_hashfunc = hashfunc self.pubkey = ecdsa.Public_key(curve.generator, point) self.pubkey.order = curve.order return self @classmethod def from_string(klass, string, curve=NIST192p, hashfunc=sha1): order = curve.order assert len(string) == curve.verifying_key_length, \ (len(string), curve.verifying_key_length) xs = string[:curve.baselen] ys = string[curve.baselen:] assert len(xs) == curve.baselen, (len(xs), curve.baselen) assert len(ys) == curve.baselen, (len(ys), curve.baselen) x = string_to_number(xs) y = string_to_number(ys) assert ecdsa.point_is_valid(curve.generator, x, y) from . import ellipticcurve point = ellipticcurve.Point(curve.curve, x, y, order) return klass.from_public_point(point, curve, hashfunc) @classmethod def from_pem(klass, string): return klass.from_der(der.unpem(string)) @classmethod def from_der(klass, string): # [[oid_ecPublicKey,oid_curve], point_str_bitstring] s1,empty = der.remove_sequence(string) if empty != b(""): raise der.UnexpectedDER("trailing junk after DER pubkey: %s" % binascii.hexlify(empty)) s2,point_str_bitstring = der.remove_sequence(s1) # s2 = oid_ecPublicKey,oid_curve oid_pk, rest = der.remove_object(s2) oid_curve, empty = der.remove_object(rest) if empty != b(""): raise der.UnexpectedDER("trailing junk after DER pubkey objects: %s" % binascii.hexlify(empty)) assert oid_pk == oid_ecPublicKey, (oid_pk, oid_ecPublicKey) curve = find_curve(oid_curve) point_str, empty = der.remove_bitstring(point_str_bitstring) if empty != b(""): raise der.UnexpectedDER("trailing junk after pubkey pointstring: %s" % binascii.hexlify(empty)) assert point_str.startswith(b("\x00\x04")) return klass.from_string(point_str[2:], curve) def to_string(self): # VerifyingKey.from_string(vk.to_string()) == vk as long as the # curves are the same: the curve itself is not included in the # serialized form order = self.pubkey.order x_str = number_to_string(self.pubkey.point.x(), order) y_str = number_to_string(self.pubkey.point.y(), order) return x_str + y_str def to_pem(self): return der.topem(self.to_der(), "PUBLIC KEY") def to_der(self): order = self.pubkey.order x_str = number_to_string(self.pubkey.point.x(), order) y_str = number_to_string(self.pubkey.point.y(), order) point_str = b("\x00\x04") + x_str + y_str return der.encode_sequence(der.encode_sequence(encoded_oid_ecPublicKey, self.curve.encoded_oid), der.encode_bitstring(point_str)) def verify(self, signature, data, hashfunc=None, sigdecode=sigdecode_string): hashfunc = hashfunc or self.default_hashfunc digest = hashfunc(data).digest() return self.verify_digest(signature, digest, sigdecode) def verify_digest(self, signature, digest, sigdecode=sigdecode_string): if len(digest) > self.curve.baselen: raise BadDigestError("this curve (%s) is too short " "for your digest (%d)" % (self.curve.name, 8*len(digest))) number = string_to_number(digest) r, s = sigdecode(signature, self.pubkey.order) sig = ecdsa.Signature(r, s) if self.pubkey.verifies(number, sig): return True raise BadSignatureError class SigningKey: def __init__(self, _error__please_use_generate=None): if not _error__please_use_generate: raise TypeError("Please use SigningKey.generate() to construct me") @classmethod def generate(klass, curve=NIST192p, entropy=None, hashfunc=sha1): secexp = randrange(curve.order, entropy) return klass.from_secret_exponent(secexp, curve, hashfunc) # to create a signing key from a short (arbitrary-length) seed, convert # that seed into an integer with something like # secexp=util.randrange_from_seed__X(seed, curve.order), and then pass # that integer into SigningKey.from_secret_exponent(secexp, curve) @classmethod def from_secret_exponent(klass, secexp, curve=NIST192p, hashfunc=sha1): self = klass(_error__please_use_generate=True) self.curve = curve self.default_hashfunc = hashfunc self.baselen = curve.baselen n = curve.order assert 1 <= secexp < n pubkey_point = curve.generator*secexp pubkey = ecdsa.Public_key(curve.generator, pubkey_point) pubkey.order = n self.verifying_key = VerifyingKey.from_public_point(pubkey_point, curve, hashfunc) self.privkey = ecdsa.Private_key(pubkey, secexp) self.privkey.order = n return self @classmethod def from_string(klass, string, curve=NIST192p, hashfunc=sha1): assert len(string) == curve.baselen, (len(string), curve.baselen) secexp = string_to_number(string) return klass.from_secret_exponent(secexp, curve, hashfunc) @classmethod def from_pem(klass, string, hashfunc=sha1): # the privkey pem file has two sections: "EC PARAMETERS" and "EC # PRIVATE KEY". The first is redundant. if PY3 and isinstance(string, str): string = string.encode() privkey_pem = string[string.index(b("-----BEGIN EC PRIVATE KEY-----")):] return klass.from_der(der.unpem(privkey_pem), hashfunc) @classmethod def from_der(klass, string, hashfunc=sha1): # SEQ([int(1), octetstring(privkey),cont[0], oid(secp224r1), # cont[1],bitstring]) s, empty = der.remove_sequence(string) if empty != b(""): raise der.UnexpectedDER("trailing junk after DER privkey: %s" % binascii.hexlify(empty)) one, s = der.remove_integer(s) if one != 1: raise der.UnexpectedDER("expected '1' at start of DER privkey," " got %d" % one) privkey_str, s = der.remove_octet_string(s) tag, curve_oid_str, s = der.remove_constructed(s) if tag != 0: raise der.UnexpectedDER("expected tag 0 in DER privkey," " got %d" % tag) curve_oid, empty = der.remove_object(curve_oid_str) if empty != b(""): raise der.UnexpectedDER("trailing junk after DER privkey " "curve_oid: %s" % binascii.hexlify(empty)) curve = find_curve(curve_oid) # we don't actually care about the following fields # #tag, pubkey_bitstring, s = der.remove_constructed(s) #if tag != 1: # raise der.UnexpectedDER("expected tag 1 in DER privkey, got %d" # % tag) #pubkey_str = der.remove_bitstring(pubkey_bitstring) #if empty != "": # raise der.UnexpectedDER("trailing junk after DER privkey " # "pubkeystr: %s" % binascii.hexlify(empty)) # our from_string method likes fixed-length privkey strings if len(privkey_str) < curve.baselen: privkey_str = b("\x00")*(curve.baselen-len(privkey_str)) + privkey_str return klass.from_string(privkey_str, curve, hashfunc) def to_string(self): secexp = self.privkey.secret_multiplier s = number_to_string(secexp, self.privkey.order) return s def to_pem(self): # TODO: "BEGIN ECPARAMETERS" return der.topem(self.to_der(), "EC PRIVATE KEY") def to_der(self): # SEQ([int(1), octetstring(privkey),cont[0], oid(secp224r1), # cont[1],bitstring]) encoded_vk = b("\x00\x04") + self.get_verifying_key().to_string() return der.encode_sequence(der.encode_integer(1), der.encode_octet_string(self.to_string()), der.encode_constructed(0, self.curve.encoded_oid), der.encode_constructed(1, der.encode_bitstring(encoded_vk)), ) def get_verifying_key(self): return self.verifying_key def sign_deterministic(self, data, hashfunc=None, sigencode=sigencode_string): hashfunc = hashfunc or self.default_hashfunc digest = hashfunc(data).digest() return self.sign_digest_deterministic(digest, hashfunc=hashfunc, sigencode=sigencode) def sign_digest_deterministic(self, digest, hashfunc=None, sigencode=sigencode_string): """ Calculates 'k' from data itself, removing the need for strong random generator and producing deterministic (reproducible) signatures. See RFC 6979 for more details. """ secexp = self.privkey.secret_multiplier k = rfc6979.generate_k(self.curve.generator, secexp, hashfunc, digest) return self.sign_digest(digest, sigencode=sigencode, k=k) def sign(self, data, entropy=None, hashfunc=None, sigencode=sigencode_string, k=None): """ hashfunc= should behave like hashlib.sha1 . The output length of the hash (in bytes) must not be longer than the length of the curve order (rounded up to the nearest byte), so using SHA256 with nist256p is ok, but SHA256 with nist192p is not. (In the 2**-96ish unlikely event of a hash output larger than the curve order, the hash will effectively be wrapped mod n). Use hashfunc=hashlib.sha1 to match openssl's -ecdsa-with-SHA1 mode, or hashfunc=hashlib.sha256 for openssl-1.0.0's -ecdsa-with-SHA256. """ hashfunc = hashfunc or self.default_hashfunc h = hashfunc(data).digest() return self.sign_digest(h, entropy, sigencode, k) def sign_digest(self, digest, entropy=None, sigencode=sigencode_string, k=None): if len(digest) > self.curve.baselen: raise BadDigestError("this curve (%s) is too short " "for your digest (%d)" % (self.curve.name, 8*len(digest))) number = string_to_number(digest) r, s = self.sign_number(number, entropy, k) return sigencode(r, s, self.privkey.order) def sign_number(self, number, entropy=None, k=None): # returns a pair of numbers order = self.privkey.order # privkey.sign() may raise RuntimeError in the amazingly unlikely # (2**-192) event that r=0 or s=0, because that would leak the key. # We could re-try with a different 'k', but we couldn't test that # code, so I choose to allow the signature to fail instead. # If k is set, it is used directly. In other cases # it is generated using entropy function if k is not None: _k = k else: _k = randrange(order, entropy) assert 1 <= _k < order sig = self.privkey.sign(number, _k) return sig.r, sig.s Electrum-1.9.7/ecdsa/ecdsa.py0000644000175000017500000005741012224051177017530 0ustar voegtlinvoegtlin00000000000000#! /usr/bin/env python """ Implementation of Elliptic-Curve Digital Signatures. Classes and methods for elliptic-curve signatures: private keys, public keys, signatures, NIST prime-modulus curves with modulus lengths of 192, 224, 256, 384, and 521 bits. Example: # (In real-life applications, you would probably want to # protect against defects in SystemRandom.) from random import SystemRandom randrange = SystemRandom().randrange # Generate a public/private key pair using the NIST Curve P-192: g = generator_192 n = g.order() secret = randrange( 1, n ) pubkey = Public_key( g, g * secret ) privkey = Private_key( pubkey, secret ) # Signing a hash value: hash = randrange( 1, n ) signature = privkey.sign( hash, randrange( 1, n ) ) # Verifying a signature for a hash value: if pubkey.verifies( hash, signature ): print_("Demo verification succeeded.") else: print_("*** Demo verification failed.") # Verification fails if the hash value is modified: if pubkey.verifies( hash-1, signature ): print_("**** Demo verification failed to reject tampered hash.") else: print_("Demo verification correctly rejected tampered hash.") Version of 2009.05.16. Revision history: 2005.12.31 - Initial version. 2008.11.25 - Substantial revisions introducing new classes. 2009.05.16 - Warn against using random.randrange in real applications. 2009.05.17 - Use random.SystemRandom by default. Written in 2005 by Peter Pearson and placed in the public domain. """ from .six import int2byte, b, print_ from . import ellipticcurve from . import numbertheory import random class Signature( object ): """ECDSA signature. """ def __init__( self, r, s ): self.r = r self.s = s class Public_key( object ): """Public key for ECDSA. """ def __init__( self, generator, point ): """generator is the Point that generates the group, point is the Point that defines the public key. """ self.curve = generator.curve() self.generator = generator self.point = point n = generator.order() if not n: raise RuntimeError("Generator point must have order.") if not n * point == ellipticcurve.INFINITY: raise RuntimeError("Generator point order is bad.") if point.x() < 0 or n <= point.x() or point.y() < 0 or n <= point.y(): raise RuntimeError("Generator point has x or y out of range.") def verifies( self, hash, signature ): """Verify that signature is a valid signature of hash. Return True if the signature is valid. """ # From X9.62 J.3.1. G = self.generator n = G.order() r = signature.r s = signature.s if r < 1 or r > n-1: return False if s < 1 or s > n-1: return False c = numbertheory.inverse_mod( s, n ) u1 = ( hash * c ) % n u2 = ( r * c ) % n xy = u1 * G + u2 * self.point v = xy.x() % n return v == r class Private_key( object ): """Private key for ECDSA. """ def __init__( self, public_key, secret_multiplier ): """public_key is of class Public_key; secret_multiplier is a large integer. """ self.public_key = public_key self.secret_multiplier = secret_multiplier def sign( self, hash, random_k ): """Return a signature for the provided hash, using the provided random nonce. It is absolutely vital that random_k be an unpredictable number in the range [1, self.public_key.point.order()-1]. If an attacker can guess random_k, he can compute our private key from a single signature. Also, if an attacker knows a few high-order bits (or a few low-order bits) of random_k, he can compute our private key from many signatures. The generation of nonces with adequate cryptographic strength is very difficult and far beyond the scope of this comment. May raise RuntimeError, in which case retrying with a new random value k is in order. """ G = self.public_key.generator n = G.order() k = random_k % n p1 = k * G r = p1.x() if r == 0: raise RuntimeError("amazingly unlucky random number r") s = ( numbertheory.inverse_mod( k, n ) * \ ( hash + ( self.secret_multiplier * r ) % n ) ) % n if s == 0: raise RuntimeError("amazingly unlucky random number s") return Signature( r, s ) def int_to_string( x ): """Convert integer x into a string of bytes, as per X9.62.""" assert x >= 0 if x == 0: return b('\0') result = [] while x: ordinal = x & 0xFF result.append(int2byte(ordinal)) x >>= 8 result.reverse() return b('').join(result) def string_to_int( s ): """Convert a string of bytes into an integer, as per X9.62.""" result = 0 for c in s: if not isinstance(c, int): c = ord( c ) result = 256 * result + c return result def digest_integer( m ): """Convert an integer into a string of bytes, compute its SHA-1 hash, and convert the result to an integer.""" # # I don't expect this function to be used much. I wrote # it in order to be able to duplicate the examples # in ECDSAVS. # from hashlib import sha1 return string_to_int( sha1( int_to_string( m ) ).digest() ) def point_is_valid( generator, x, y ): """Is (x,y) a valid public key based on the specified generator?""" # These are the tests specified in X9.62. n = generator.order() curve = generator.curve() if x < 0 or n <= x or y < 0 or n <= y: return False if not curve.contains_point( x, y ): return False if not n*ellipticcurve.Point( curve, x, y ) == \ ellipticcurve.INFINITY: return False return True # NIST Curve P-192: _p = 6277101735386680763835789423207666416083908700390324961279 _r = 6277101735386680763835789423176059013767194773182842284081 # s = 0x3045ae6fc8422f64ed579528d38120eae12196d5L # c = 0x3099d2bbbfcb2538542dcd5fb078b6ef5f3d6fe2c745de65L _b = 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1 _Gx = 0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012 _Gy = 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811 curve_192 = ellipticcurve.CurveFp( _p, -3, _b ) generator_192 = ellipticcurve.Point( curve_192, _Gx, _Gy, _r ) # NIST Curve P-224: _p = 26959946667150639794667015087019630673557916260026308143510066298881 _r = 26959946667150639794667015087019625940457807714424391721682722368061 # s = 0xbd71344799d5c7fcdc45b59fa3b9ab8f6a948bc5L # c = 0x5b056c7e11dd68f40469ee7f3c7a7d74f7d121116506d031218291fbL _b = 0xb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4 _Gx =0xb70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21 _Gy = 0xbd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34 curve_224 = ellipticcurve.CurveFp( _p, -3, _b ) generator_224 = ellipticcurve.Point( curve_224, _Gx, _Gy, _r ) # NIST Curve P-256: _p = 115792089210356248762697446949407573530086143415290314195533631308867097853951 _r = 115792089210356248762697446949407573529996955224135760342422259061068512044369 # s = 0xc49d360886e704936a6678e1139d26b7819f7e90L # c = 0x7efba1662985be9403cb055c75d4f7e0ce8d84a9c5114abcaf3177680104fa0dL _b = 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b _Gx = 0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296 _Gy = 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5 curve_256 = ellipticcurve.CurveFp( _p, -3, _b ) generator_256 = ellipticcurve.Point( curve_256, _Gx, _Gy, _r ) # NIST Curve P-384: _p = 39402006196394479212279040100143613805079739270465446667948293404245721771496870329047266088258938001861606973112319 _r = 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643 # s = 0xa335926aa319a27a1d00896a6773a4827acdac73L # c = 0x79d1e655f868f02fff48dcdee14151ddb80643c1406d0ca10dfe6fc52009540a495e8042ea5f744f6e184667cc722483L _b = 0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef _Gx = 0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7 _Gy = 0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f curve_384 = ellipticcurve.CurveFp( _p, -3, _b ) generator_384 = ellipticcurve.Point( curve_384, _Gx, _Gy, _r ) # NIST Curve P-521: _p = 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151 _r = 6864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449 # s = 0xd09e8800291cb85396cc6717393284aaa0da64baL # c = 0x0b48bfa5f420a34949539d2bdfc264eeeeb077688e44fbf0ad8f6d0edb37bd6b533281000518e19f1b9ffbe0fe9ed8a3c2200b8f875e523868c70c1e5bf55bad637L _b = 0x051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00 _Gx = 0xc6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66 _Gy = 0x11839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650 curve_521 = ellipticcurve.CurveFp( _p, -3, _b ) generator_521 = ellipticcurve.Point( curve_521, _Gx, _Gy, _r ) # Certicom secp256-k1 _a = 0x0000000000000000000000000000000000000000000000000000000000000000 _b = 0x0000000000000000000000000000000000000000000000000000000000000007 _p = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f _Gx = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 _Gy = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 _r = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141 curve_secp256k1 = ellipticcurve.CurveFp( _p, _a, _b) generator_secp256k1 = ellipticcurve.Point( curve_secp256k1, _Gx, _Gy, _r) def __main__(): class TestFailure(Exception): pass def test_point_validity( generator, x, y, expected ): """generator defines the curve; is (x,y) a point on this curve? "expected" is True if the right answer is Yes.""" if point_is_valid( generator, x, y ) == expected: print_("Point validity tested as expected.") else: raise TestFailure("*** Point validity test gave wrong result.") def test_signature_validity( Msg, Qx, Qy, R, S, expected ): """Msg = message, Qx and Qy represent the base point on elliptic curve c192, R and S are the signature, and "expected" is True iff the signature is expected to be valid.""" pubk = Public_key( generator_192, ellipticcurve.Point( curve_192, Qx, Qy ) ) got = pubk.verifies( digest_integer( Msg ), Signature( R, S ) ) if got == expected: print_("Signature tested as expected: got %s, expected %s." % \ ( got, expected )) else: raise TestFailure("*** Signature test failed: got %s, expected %s." % \ ( got, expected )) print_("NIST Curve P-192:") p192 = generator_192 # From X9.62: d = 651056770906015076056810763456358567190100156695615665659 Q = d * p192 if Q.x() != 0x62B12D60690CDCF330BABAB6E69763B471F994DD702D16A5: raise TestFailure("*** p192 * d came out wrong.") else: print_("p192 * d came out right.") k = 6140507067065001063065065565667405560006161556565665656654 R = k * p192 if R.x() != 0x885052380FF147B734C330C43D39B2C4A89F29B0F749FEAD \ or R.y() != 0x9CF9FA1CBEFEFB917747A3BB29C072B9289C2547884FD835: raise TestFailure("*** k * p192 came out wrong.") else: print_("k * p192 came out right.") u1 = 2563697409189434185194736134579731015366492496392189760599 u2 = 6266643813348617967186477710235785849136406323338782220568 temp = u1 * p192 + u2 * Q if temp.x() != 0x885052380FF147B734C330C43D39B2C4A89F29B0F749FEAD \ or temp.y() != 0x9CF9FA1CBEFEFB917747A3BB29C072B9289C2547884FD835: raise TestFailure("*** u1 * p192 + u2 * Q came out wrong.") else: print_("u1 * p192 + u2 * Q came out right.") e = 968236873715988614170569073515315707566766479517 pubk = Public_key( generator_192, generator_192 * d ) privk = Private_key( pubk, d ) sig = privk.sign( e, k ) r, s = sig.r, sig.s if r != 3342403536405981729393488334694600415596881826869351677613 \ or s != 5735822328888155254683894997897571951568553642892029982342: raise TestFailure("*** r or s came out wrong.") else: print_("r and s came out right.") valid = pubk.verifies( e, sig ) if valid: print_("Signature verified OK.") else: raise TestFailure("*** Signature failed verification.") valid = pubk.verifies( e-1, sig ) if not valid: print_("Forgery was correctly rejected.") else: raise TestFailure("*** Forgery was erroneously accepted.") print_("Testing point validity, as per ECDSAVS.pdf B.2.2:") test_point_validity( \ p192, \ 0xcd6d0f029a023e9aaca429615b8f577abee685d8257cc83a, \ 0x00019c410987680e9fb6c0b6ecc01d9a2647c8bae27721bacdfc, \ False ) test_point_validity( p192, \ 0x00017f2fce203639e9eaf9fb50b81fc32776b30e3b02af16c73b, \ 0x95da95c5e72dd48e229d4748d4eee658a9a54111b23b2adb, \ False ) test_point_validity( p192, \ 0x4f77f8bc7fccbadd5760f4938746d5f253ee2168c1cf2792, \ 0x000147156ff824d131629739817edb197717c41aab5c2a70f0f6, \ False ) test_point_validity( p192, \ 0xc58d61f88d905293bcd4cd0080bcb1b7f811f2ffa41979f6, \ 0x8804dc7a7c4c7f8b5d437f5156f3312ca7d6de8a0e11867f, \ True ) test_point_validity( p192, \ 0xcdf56c1aa3d8afc53c521adf3ffb96734a6a630a4a5b5a70, \ 0x97c1c44a5fb229007b5ec5d25f7413d170068ffd023caa4e, \ True ) test_point_validity( p192, \ 0x89009c0dc361c81e99280c8e91df578df88cdf4b0cdedced, \ 0x27be44a529b7513e727251f128b34262a0fd4d8ec82377b9, \ True ) test_point_validity( p192, \ 0x6a223d00bd22c52833409a163e057e5b5da1def2a197dd15, \ 0x7b482604199367f1f303f9ef627f922f97023e90eae08abf, \ True ) test_point_validity( p192, \ 0x6dccbde75c0948c98dab32ea0bc59fe125cf0fb1a3798eda, \ 0x0001171a3e0fa60cf3096f4e116b556198de430e1fbd330c8835, \ False ) test_point_validity( p192, \ 0xd266b39e1f491fc4acbbbc7d098430931cfa66d55015af12, \ 0x193782eb909e391a3148b7764e6b234aa94e48d30a16dbb2, \ False ) test_point_validity( p192, \ 0x9d6ddbcd439baa0c6b80a654091680e462a7d1d3f1ffeb43, \ 0x6ad8efc4d133ccf167c44eb4691c80abffb9f82b932b8caa, \ False ) test_point_validity( p192, \ 0x146479d944e6bda87e5b35818aa666a4c998a71f4e95edbc, \ 0xa86d6fe62bc8fbd88139693f842635f687f132255858e7f6, \ False ) test_point_validity( p192, \ 0xe594d4a598046f3598243f50fd2c7bd7d380edb055802253, \ 0x509014c0c4d6b536e3ca750ec09066af39b4c8616a53a923, \ False ) print_("Trying signature-verification tests from ECDSAVS.pdf B.2.4:") print_("P-192:") Msg = 0x84ce72aa8699df436059f052ac51b6398d2511e49631bcb7e71f89c499b9ee425dfbc13a5f6d408471b054f2655617cbbaf7937b7c80cd8865cf02c8487d30d2b0fbd8b2c4e102e16d828374bbc47b93852f212d5043c3ea720f086178ff798cc4f63f787b9c2e419efa033e7644ea7936f54462dc21a6c4580725f7f0e7d158 Qx = 0xd9dbfb332aa8e5ff091e8ce535857c37c73f6250ffb2e7ac Qy = 0x282102e364feded3ad15ddf968f88d8321aa268dd483ebc4 R = 0x64dca58a20787c488d11d6dd96313f1b766f2d8efe122916 S = 0x1ecba28141e84ab4ecad92f56720e2cc83eb3d22dec72479 test_signature_validity( Msg, Qx, Qy, R, S, True ) Msg = 0x94bb5bacd5f8ea765810024db87f4224ad71362a3c28284b2b9f39fab86db12e8beb94aae899768229be8fdb6c4f12f28912bb604703a79ccff769c1607f5a91450f30ba0460d359d9126cbd6296be6d9c4bb96c0ee74cbb44197c207f6db326ab6f5a659113a9034e54be7b041ced9dcf6458d7fb9cbfb2744d999f7dfd63f4 Qx = 0x3e53ef8d3112af3285c0e74842090712cd324832d4277ae7 Qy = 0xcc75f8952d30aec2cbb719fc6aa9934590b5d0ff5a83adb7 R = 0x8285261607283ba18f335026130bab31840dcfd9c3e555af S = 0x356d89e1b04541afc9704a45e9c535ce4a50929e33d7e06c test_signature_validity( Msg, Qx, Qy, R, S, True ) Msg = 0xf6227a8eeb34afed1621dcc89a91d72ea212cb2f476839d9b4243c66877911b37b4ad6f4448792a7bbba76c63bdd63414b6facab7dc71c3396a73bd7ee14cdd41a659c61c99b779cecf07bc51ab391aa3252386242b9853ea7da67fd768d303f1b9b513d401565b6f1eb722dfdb96b519fe4f9bd5de67ae131e64b40e78c42dd Qx = 0x16335dbe95f8e8254a4e04575d736befb258b8657f773cb7 Qy = 0x421b13379c59bc9dce38a1099ca79bbd06d647c7f6242336 R = 0x4141bd5d64ea36c5b0bd21ef28c02da216ed9d04522b1e91 S = 0x159a6aa852bcc579e821b7bb0994c0861fb08280c38daa09 test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0x16b5f93afd0d02246f662761ed8e0dd9504681ed02a253006eb36736b563097ba39f81c8e1bce7a16c1339e345efabbc6baa3efb0612948ae51103382a8ee8bc448e3ef71e9f6f7a9676694831d7f5dd0db5446f179bcb737d4a526367a447bfe2c857521c7f40b6d7d7e01a180d92431fb0bbd29c04a0c420a57b3ed26ccd8a Qx = 0xfd14cdf1607f5efb7b1793037b15bdf4baa6f7c16341ab0b Qy = 0x83fa0795cc6c4795b9016dac928fd6bac32f3229a96312c4 R = 0x8dfdb832951e0167c5d762a473c0416c5c15bc1195667dc1 S = 0x1720288a2dc13fa1ec78f763f8fe2ff7354a7e6fdde44520 test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0x08a2024b61b79d260e3bb43ef15659aec89e5b560199bc82cf7c65c77d39192e03b9a895d766655105edd9188242b91fbde4167f7862d4ddd61e5d4ab55196683d4f13ceb90d87aea6e07eb50a874e33086c4a7cb0273a8e1c4408f4b846bceae1ebaac1b2b2ea851a9b09de322efe34cebe601653efd6ddc876ce8c2f2072fb Qx = 0x674f941dc1a1f8b763c9334d726172d527b90ca324db8828 Qy = 0x65adfa32e8b236cb33a3e84cf59bfb9417ae7e8ede57a7ff R = 0x9508b9fdd7daf0d8126f9e2bc5a35e4c6d800b5b804d7796 S = 0x36f2bf6b21b987c77b53bb801b3435a577e3d493744bfab0 test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0x1843aba74b0789d4ac6b0b8923848023a644a7b70afa23b1191829bbe4397ce15b629bf21a8838298653ed0c19222b95fa4f7390d1b4c844d96e645537e0aae98afb5c0ac3bd0e4c37f8daaff25556c64e98c319c52687c904c4de7240a1cc55cd9756b7edaef184e6e23b385726e9ffcba8001b8f574987c1a3fedaaa83ca6d Qx = 0x10ecca1aad7220b56a62008b35170bfd5e35885c4014a19f Qy = 0x04eb61984c6c12ade3bc47f3c629ece7aa0a033b9948d686 R = 0x82bfa4e82c0dfe9274169b86694e76ce993fd83b5c60f325 S = 0xa97685676c59a65dbde002fe9d613431fb183e8006d05633 test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0x5a478f4084ddd1a7fea038aa9732a822106385797d02311aeef4d0264f824f698df7a48cfb6b578cf3da416bc0799425bb491be5b5ecc37995b85b03420a98f2c4dc5c31a69a379e9e322fbe706bbcaf0f77175e05cbb4fa162e0da82010a278461e3e974d137bc746d1880d6eb02aa95216014b37480d84b87f717bb13f76e1 Qx = 0x6636653cb5b894ca65c448277b29da3ad101c4c2300f7c04 Qy = 0xfdf1cbb3fc3fd6a4f890b59e554544175fa77dbdbeb656c1 R = 0xeac2ddecddfb79931a9c3d49c08de0645c783a24cb365e1c S = 0x3549fee3cfa7e5f93bc47d92d8ba100e881a2a93c22f8d50 test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0xc598774259a058fa65212ac57eaa4f52240e629ef4c310722088292d1d4af6c39b49ce06ba77e4247b20637174d0bd67c9723feb57b5ead232b47ea452d5d7a089f17c00b8b6767e434a5e16c231ba0efa718a340bf41d67ea2d295812ff1b9277daacb8bc27b50ea5e6443bcf95ef4e9f5468fe78485236313d53d1c68f6ba2 Qx = 0xa82bd718d01d354001148cd5f69b9ebf38ff6f21898f8aaa Qy = 0xe67ceede07fc2ebfafd62462a51e4b6c6b3d5b537b7caf3e R = 0x4d292486c620c3de20856e57d3bb72fcde4a73ad26376955 S = 0xa85289591a6081d5728825520e62ff1c64f94235c04c7f95 test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0xca98ed9db081a07b7557f24ced6c7b9891269a95d2026747add9e9eb80638a961cf9c71a1b9f2c29744180bd4c3d3db60f2243c5c0b7cc8a8d40a3f9a7fc910250f2187136ee6413ffc67f1a25e1c4c204fa9635312252ac0e0481d89b6d53808f0c496ba87631803f6c572c1f61fa049737fdacce4adff757afed4f05beb658 Qx = 0x7d3b016b57758b160c4fca73d48df07ae3b6b30225126c2f Qy = 0x4af3790d9775742bde46f8da876711be1b65244b2b39e7ec R = 0x95f778f5f656511a5ab49a5d69ddd0929563c29cbc3a9e62 S = 0x75c87fc358c251b4c83d2dd979faad496b539f9f2ee7a289 test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0x31dd9a54c8338bea06b87eca813d555ad1850fac9742ef0bbe40dad400e10288acc9c11ea7dac79eb16378ebea9490e09536099f1b993e2653cd50240014c90a9c987f64545abc6a536b9bd2435eb5e911fdfde2f13be96ea36ad38df4ae9ea387b29cced599af777338af2794820c9cce43b51d2112380a35802ab7e396c97a Qx = 0x9362f28c4ef96453d8a2f849f21e881cd7566887da8beb4a Qy = 0xe64d26d8d74c48a024ae85d982ee74cd16046f4ee5333905 R = 0xf3923476a296c88287e8de914b0b324ad5a963319a4fe73b S = 0xf0baeed7624ed00d15244d8ba2aede085517dbdec8ac65f5 test_signature_validity( Msg, Qx, Qy, R, S, True ) Msg = 0xb2b94e4432267c92f9fdb9dc6040c95ffa477652761290d3c7de312283f6450d89cc4aabe748554dfb6056b2d8e99c7aeaad9cdddebdee9dbc099839562d9064e68e7bb5f3a6bba0749ca9a538181fc785553a4000785d73cc207922f63e8ce1112768cb1de7b673aed83a1e4a74592f1268d8e2a4e9e63d414b5d442bd0456d Qx = 0xcc6fc032a846aaac25533eb033522824f94e670fa997ecef Qy = 0xe25463ef77a029eccda8b294fd63dd694e38d223d30862f1 R = 0x066b1d07f3a40e679b620eda7f550842a35c18b80c5ebe06 S = 0xa0b0fb201e8f2df65e2c4508ef303bdc90d934016f16b2dc test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0x4366fcadf10d30d086911de30143da6f579527036937007b337f7282460eae5678b15cccda853193ea5fc4bc0a6b9d7a31128f27e1214988592827520b214eed5052f7775b750b0c6b15f145453ba3fee24a085d65287e10509eb5d5f602c440341376b95c24e5c4727d4b859bfe1483d20538acdd92c7997fa9c614f0f839d7 Qx = 0x955c908fe900a996f7e2089bee2f6376830f76a19135e753 Qy = 0xba0c42a91d3847de4a592a46dc3fdaf45a7cc709b90de520 R = 0x1f58ad77fc04c782815a1405b0925e72095d906cbf52a668 S = 0xf2e93758b3af75edf784f05a6761c9b9a6043c66b845b599 test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0x543f8af57d750e33aa8565e0cae92bfa7a1ff78833093421c2942cadf9986670a5ff3244c02a8225e790fbf30ea84c74720abf99cfd10d02d34377c3d3b41269bea763384f372bb786b5846f58932defa68023136cd571863b304886e95e52e7877f445b9364b3f06f3c28da12707673fecb4b8071de06b6e0a3c87da160cef3 Qx = 0x31f7fa05576d78a949b24812d4383107a9a45bb5fccdd835 Qy = 0x8dc0eb65994a90f02b5e19bd18b32d61150746c09107e76b R = 0xbe26d59e4e883dde7c286614a767b31e49ad88789d3a78ff S = 0x8762ca831c1ce42df77893c9b03119428e7a9b819b619068 test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0xd2e8454143ce281e609a9d748014dcebb9d0bc53adb02443a6aac2ffe6cb009f387c346ecb051791404f79e902ee333ad65e5c8cb38dc0d1d39a8dc90add5023572720e5b94b190d43dd0d7873397504c0c7aef2727e628eb6a74411f2e400c65670716cb4a815dc91cbbfeb7cfe8c929e93184c938af2c078584da045e8f8d1 Qx = 0x66aa8edbbdb5cf8e28ceb51b5bda891cae2df84819fe25c0 Qy = 0x0c6bc2f69030a7ce58d4a00e3b3349844784a13b8936f8da R = 0xa4661e69b1734f4a71b788410a464b71e7ffe42334484f23 S = 0x738421cf5e049159d69c57a915143e226cac8355e149afe9 test_signature_validity( Msg, Qx, Qy, R, S, False ) Msg = 0x6660717144040f3e2f95a4e25b08a7079c702a8b29babad5a19a87654bc5c5afa261512a11b998a4fb36b5d8fe8bd942792ff0324b108120de86d63f65855e5461184fc96a0a8ffd2ce6d5dfb0230cbbdd98f8543e361b3205f5da3d500fdc8bac6db377d75ebef3cb8f4d1ff738071ad0938917889250b41dd1d98896ca06fb Qx = 0xbcfacf45139b6f5f690a4c35a5fffa498794136a2353fc77 Qy = 0x6f4a6c906316a6afc6d98fe1f0399d056f128fe0270b0f22 R = 0x9db679a3dafe48f7ccad122933acfe9da0970b71c94c21c1 S = 0x984c2db99827576c0a41a5da41e07d8cc768bc82f18c9da9 test_signature_validity( Msg, Qx, Qy, R, S, False ) print_("Testing the example code:") # Building a public/private key pair from the NIST Curve P-192: g = generator_192 n = g.order() # (random.SystemRandom is supposed to provide # crypto-quality random numbers, but as Debian recently # illustrated, a systems programmer can accidentally # demolish this security, so in serious applications # further precautions are appropriate.) randrange = random.SystemRandom().randrange secret = randrange( 1, n ) pubkey = Public_key( g, g * secret ) privkey = Private_key( pubkey, secret ) # Signing a hash value: hash = randrange( 1, n ) signature = privkey.sign( hash, randrange( 1, n ) ) # Verifying a signature for a hash value: if pubkey.verifies( hash, signature ): print_("Demo verification succeeded.") else: raise TestFailure("*** Demo verification failed.") if pubkey.verifies( hash-1, signature ): raise TestFailure( "**** Demo verification failed to reject tampered hash.") else: print_("Demo verification correctly rejected tampered hash.") if __name__ == "__main__": __main__() Electrum-1.9.7/ecdsa/ellipticcurve.py0000644000175000017500000002064112224051177021317 0ustar voegtlinvoegtlin00000000000000#! /usr/bin/env python # # Implementation of elliptic curves, for cryptographic applications. # # This module doesn't provide any way to choose a random elliptic # curve, nor to verify that an elliptic curve was chosen randomly, # because one can simply use NIST's standard curves. # # Notes from X9.62-1998 (draft): # Nomenclature: # - Q is a public key. # The "Elliptic Curve Domain Parameters" include: # - q is the "field size", which in our case equals p. # - p is a big prime. # - G is a point of prime order (5.1.1.1). # - n is the order of G (5.1.1.1). # Public-key validation (5.2.2): # - Verify that Q is not the point at infinity. # - Verify that X_Q and Y_Q are in [0,p-1]. # - Verify that Q is on the curve. # - Verify that nQ is the point at infinity. # Signature generation (5.3): # - Pick random k from [1,n-1]. # Signature checking (5.4.2): # - Verify that r and s are in [1,n-1]. # # Version of 2008.11.25. # # Revision history: # 2005.12.31 - Initial version. # 2008.11.25 - Change CurveFp.is_on to contains_point. # # Written in 2005 by Peter Pearson and placed in the public domain. from __future__ import division from .six import print_ from . import numbertheory class CurveFp( object ): """Elliptic Curve over the field of integers modulo a prime.""" def __init__( self, p, a, b ): """The curve of points satisfying y^2 = x^3 + a*x + b (mod p).""" self.__p = p self.__a = a self.__b = b def p( self ): return self.__p def a( self ): return self.__a def b( self ): return self.__b def contains_point( self, x, y ): """Is the point (x,y) on this curve?""" return ( y * y - ( x * x * x + self.__a * x + self.__b ) ) % self.__p == 0 class Point( object ): """A point on an elliptic curve. Altering x and y is forbidding, but they can be read by the x() and y() methods.""" def __init__( self, curve, x, y, order = None ): """curve, x, y, order; order (optional) is the order of this point.""" self.__curve = curve self.__x = x self.__y = y self.__order = order # self.curve is allowed to be None only for INFINITY: if self.__curve: assert self.__curve.contains_point( x, y ) if order: assert self * order == INFINITY def __eq__( self, other ): """Return True if the points are identical, False otherwise.""" if self.__curve == other.__curve \ and self.__x == other.__x \ and self.__y == other.__y: return True else: return False def __add__( self, other ): """Add one point to another point.""" # X9.62 B.3: if other == INFINITY: return self if self == INFINITY: return other assert self.__curve == other.__curve if self.__x == other.__x: if ( self.__y + other.__y ) % self.__curve.p() == 0: return INFINITY else: return self.double() p = self.__curve.p() l = ( ( other.__y - self.__y ) * \ numbertheory.inverse_mod( other.__x - self.__x, p ) ) % p x3 = ( l * l - self.__x - other.__x ) % p y3 = ( l * ( self.__x - x3 ) - self.__y ) % p return Point( self.__curve, x3, y3 ) def __mul__( self, other ): """Multiply a point by an integer.""" def leftmost_bit( x ): assert x > 0 result = 1 while result <= x: result = 2 * result return result // 2 e = other if self.__order: e = e % self.__order if e == 0: return INFINITY if self == INFINITY: return INFINITY assert e > 0 # From X9.62 D.3.2: e3 = 3 * e negative_self = Point( self.__curve, self.__x, -self.__y, self.__order ) i = leftmost_bit( e3 ) // 2 result = self # print_("Multiplying %s by %d (e3 = %d):" % ( self, other, e3 )) while i > 1: result = result.double() if ( e3 & i ) != 0 and ( e & i ) == 0: result = result + self if ( e3 & i ) == 0 and ( e & i ) != 0: result = result + negative_self # print_(". . . i = %d, result = %s" % ( i, result )) i = i // 2 return result def __rmul__( self, other ): """Multiply a point by an integer.""" return self * other def __str__( self ): if self == INFINITY: return "infinity" return "(%d,%d)" % ( self.__x, self.__y ) def double( self ): """Return a new point that is twice the old.""" if self == INFINITY: return INFINITY # X9.62 B.3: p = self.__curve.p() a = self.__curve.a() l = ( ( 3 * self.__x * self.__x + a ) * \ numbertheory.inverse_mod( 2 * self.__y, p ) ) % p x3 = ( l * l - 2 * self.__x ) % p y3 = ( l * ( self.__x - x3 ) - self.__y ) % p return Point( self.__curve, x3, y3 ) def x( self ): return self.__x def y( self ): return self.__y def curve( self ): return self.__curve def order( self ): return self.__order # This one point is the Point At Infinity for all purposes: INFINITY = Point( None, None, None ) def __main__(): class FailedTest(Exception): pass def test_add( c, x1, y1, x2, y2, x3, y3 ): """We expect that on curve c, (x1,y1) + (x2, y2 ) = (x3, y3).""" p1 = Point( c, x1, y1 ) p2 = Point( c, x2, y2 ) p3 = p1 + p2 print_("%s + %s = %s" % ( p1, p2, p3 ), end=' ') if p3.x() != x3 or p3.y() != y3: raise FailedTest("Failure: should give (%d,%d)." % ( x3, y3 )) else: print_(" Good.") def test_double( c, x1, y1, x3, y3 ): """We expect that on curve c, 2*(x1,y1) = (x3, y3).""" p1 = Point( c, x1, y1 ) p3 = p1.double() print_("%s doubled = %s" % ( p1, p3 ), end=' ') if p3.x() != x3 or p3.y() != y3: raise FailedTest("Failure: should give (%d,%d)." % ( x3, y3 )) else: print_(" Good.") def test_double_infinity( c ): """We expect that on curve c, 2*INFINITY = INFINITY.""" p1 = INFINITY p3 = p1.double() print_("%s doubled = %s" % ( p1, p3 ), end=' ') if p3.x() != INFINITY.x() or p3.y() != INFINITY.y(): raise FailedTest("Failure: should give (%d,%d)." % ( INFINITY.x(), INFINITY.y() )) else: print_(" Good.") def test_multiply( c, x1, y1, m, x3, y3 ): """We expect that on curve c, m*(x1,y1) = (x3,y3).""" p1 = Point( c, x1, y1 ) p3 = p1 * m print_("%s * %d = %s" % ( p1, m, p3 ), end=' ') if p3.x() != x3 or p3.y() != y3: raise FailedTest("Failure: should give (%d,%d)." % ( x3, y3 )) else: print_(" Good.") # A few tests from X9.62 B.3: c = CurveFp( 23, 1, 1 ) test_add( c, 3, 10, 9, 7, 17, 20 ) test_double( c, 3, 10, 7, 12 ) test_add( c, 3, 10, 3, 10, 7, 12 ) # (Should just invoke double.) test_multiply( c, 3, 10, 2, 7, 12 ) test_double_infinity(c) # From X9.62 I.1 (p. 96): g = Point( c, 13, 7, 7 ) check = INFINITY for i in range( 7 + 1 ): p = ( i % 7 ) * g print_("%s * %d = %s, expected %s . . ." % ( g, i, p, check ), end=' ') if p == check: print_(" Good.") else: raise FailedTest("Bad.") check = check + g # NIST Curve P-192: p = 6277101735386680763835789423207666416083908700390324961279 r = 6277101735386680763835789423176059013767194773182842284081 #s = 0x3045ae6fc8422f64ed579528d38120eae12196d5L c = 0x3099d2bbbfcb2538542dcd5fb078b6ef5f3d6fe2c745de65 b = 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1 Gx = 0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012 Gy = 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811 c192 = CurveFp( p, -3, b ) p192 = Point( c192, Gx, Gy, r ) # Checking against some sample computations presented # in X9.62: d = 651056770906015076056810763456358567190100156695615665659 Q = d * p192 if Q.x() != 0x62B12D60690CDCF330BABAB6E69763B471F994DD702D16A5: raise FailedTest("p192 * d came out wrong.") else: print_("p192 * d came out right.") k = 6140507067065001063065065565667405560006161556565665656654 R = k * p192 if R.x() != 0x885052380FF147B734C330C43D39B2C4A89F29B0F749FEAD \ or R.y() != 0x9CF9FA1CBEFEFB917747A3BB29C072B9289C2547884FD835: raise FailedTest("k * p192 came out wrong.") else: print_("k * p192 came out right.") u1 = 2563697409189434185194736134579731015366492496392189760599 u2 = 6266643813348617967186477710235785849136406323338782220568 temp = u1 * p192 + u2 * Q if temp.x() != 0x885052380FF147B734C330C43D39B2C4A89F29B0F749FEAD \ or temp.y() != 0x9CF9FA1CBEFEFB917747A3BB29C072B9289C2547884FD835: raise FailedTest("u1 * p192 + u2 * Q came out wrong.") else: print_("u1 * p192 + u2 * Q came out right.") if __name__ == "__main__": __main__() Electrum-1.9.7/app.fil0000664000175000017500000000057512236532564016305 0ustar voegtlinvoegtlin00000000000000gui/gtk.py gui/qt/main_window.py gui/qt/lite_window.py gui/qt/history_widget.py gui/qt/installwizard.py gui/qt/network_dialog.py gui/qt/password_dialog.py gui/qt/util.py gui/qt/receiving_widget.py gui/qt/seed_dialog.py gui/qt/transaction_dialog.py gui/qt/version_getter.py plugins/aliases.py plugins/pointofsale.py plugins/labels.py plugins/qrscanner.py plugins/virtualkeyboard.py Electrum-1.9.7/electrum.desktop0000644000175000017500000000073612134727262020237 0ustar voegtlinvoegtlin00000000000000# If you want electrum to appear in a linux app launcher ("start menu"), install this by doing: # sudo desktop-file-install electrum.desktop [Desktop Entry] Comment=Lightweight Bitcoin Client Exec=electrum %u GenericName[en_US]=Electrum GenericName=Electrum Icon=/usr/share/app-install/icons/electrum.png Name[en_US]=Electrum Bitcoin Wallet Name=Electrum Bitcoin Wallet Categories=Network; StartupNotify=false Terminal=false Type=Application MimeType=x-scheme-handler/bitcoin Electrum-1.9.7/Electrum.egg-info/0000755000000000000000000000000012264174460016526 5ustar rootroot00000000000000Electrum-1.9.7/Electrum.egg-info/SOURCES.txt0000644000000000000000000000673512264174460020425 0ustar rootroot00000000000000AUTHORS LICENCE MANIFEST.in README RELEASE-NOTES app.fil electrum electrum.conf.sample electrum.desktop icons.qrc mki18n.py setup-release.py setup.py test.py test2.py Electrum.egg-info/PKG-INFO Electrum.egg-info/SOURCES.txt Electrum.egg-info/dependency_links.txt Electrum.egg-info/requires.txt Electrum.egg-info/top_level.txt aes/__init__.py data/README data/noface.svg data/cleanlook/name.cfg data/cleanlook/style.css data/dark/background.png data/dark/name.cfg data/dark/style.css data/sahara/name.cfg data/sahara/style.css docs/android.html docs/console.html docs/offline_wallets ecdsa/__init__.py ecdsa/_version.py ecdsa/curves.py ecdsa/der.py ecdsa/ecdsa.py ecdsa/ellipticcurve.py ecdsa/keys.py ecdsa/numbertheory.py ecdsa/rfc6979.py ecdsa/six.py ecdsa/test_pyecdsa.py ecdsa/util.py gui/__init__.py gui/android.py gui/gtk.py gui/icons_rc.py gui/stdio.py gui/text.py gui/qt/__init__.py gui/qt/amountedit.py gui/qt/console.py gui/qt/history_widget.py gui/qt/icons_rc.py gui/qt/installwizard.py gui/qt/lite_window.py gui/qt/main_window.py gui/qt/network_dialog.py gui/qt/password_dialog.py gui/qt/qrcodewidget.py gui/qt/receiving_widget.py gui/qt/seed_dialog.py gui/qt/transaction_dialog.py gui/qt/util.py gui/qt/version_getter.py icons/clock1.png icons/clock2.png icons/clock3.png icons/clock4.png icons/clock5.png icons/confirmed.png icons/electrum.ico icons/electrum.png icons/electrum_dark_icon.png icons/electrum_light_icon.png icons/key.png icons/lock.png icons/lock.svg icons/network.png icons/preferences.png icons/seed.png icons/status_connected.png icons/status_disconnected.png icons/status_disconnected.svg icons/status_lagging.png icons/status_waiting.png icons/status_waiting.svg icons/switchgui.png icons/unconfirmed.png icons/unconfirmed.svg icons/unlock.png icons/unlock.svg lib/__init__.py lib/account.py lib/bitcoin.py lib/blockchain.py lib/bmp.py lib/commands.py lib/i18n.py lib/icons_rc.py lib/interface.py lib/mnemonic.py lib/msqr.py lib/network.py lib/plugins.py lib/pyqrnative.py lib/ripemd.py lib/simple_config.py lib/socks.py lib/transaction.py lib/util.py lib/verifier.py lib/version.py lib/wallet.py lib/wallet_bitkey.py lib/wallet_factory.py locale/ar_SA/LC_MESSAGES/electrum.mo locale/cs_CZ/LC_MESSAGES/electrum.mo locale/de_DE/LC_MESSAGES/electrum.mo locale/eo_UY/LC_MESSAGES/electrum.mo locale/es_ES/LC_MESSAGES/electrum.mo locale/fr_FR/LC_MESSAGES/electrum.mo locale/hu_HU/LC_MESSAGES/electrum.mo locale/id_ID/LC_MESSAGES/electrum.mo locale/it_IT/LC_MESSAGES/electrum.mo locale/ja_JP/LC_MESSAGES/electrum.mo locale/ky_KG/LC_MESSAGES/electrum.mo locale/lv_LV/LC_MESSAGES/electrum.mo locale/nl_NL/LC_MESSAGES/electrum.mo locale/pl_PL/LC_MESSAGES/electrum.mo locale/pt_BR/LC_MESSAGES/electrum.mo locale/pt_PT/LC_MESSAGES/electrum.mo locale/ro_RO/LC_MESSAGES/electrum.mo locale/ru_RU/LC_MESSAGES/electrum.mo locale/sl_SI/LC_MESSAGES/electrum.mo locale/ta_IN/LC_MESSAGES/electrum.mo locale/th_TH/LC_MESSAGES/electrum.mo locale/vi_VN/LC_MESSAGES/electrum.mo locale/zh_CN/LC_MESSAGES/electrum.mo plugins/__init__.py plugins/aliases.py plugins/coinbase_buyback.py plugins/exchange_rate.py plugins/labels.py plugins/pointofsale.py plugins/qrscanner.py plugins/virtualkeyboard.py scripts/#peers# scripts/block_headers scripts/get_balance scripts/get_history scripts/peers scripts/servers scripts/watch_address scripts/merchant/merchant.conf scripts/merchant/merchant.conf.template scripts/merchant/merchant.conf~ scripts/merchant/merchant.py scripts/merchant/merchant.readme scripts/merchant/no_path scripts/merchant/test.dbElectrum-1.9.7/Electrum.egg-info/top_level.txt0000644000000000000000000000004712264174460021261 0ustar rootroot00000000000000electrum_plugins electrum_gui electrum Electrum-1.9.7/Electrum.egg-info/PKG-INFO0000644000000000000000000000035512264174460017626 0ustar rootroot00000000000000Metadata-Version: 1.0 Name: Electrum Version: 1.9.7 Summary: Lightweight Bitcoin Wallet Home-page: http://electrum.org Author: ecdsa Author-email: ecdsa@github License: GNU GPLv3 Description: Lightweight Bitcoin Wallet Platform: UNKNOWN Electrum-1.9.7/Electrum.egg-info/requires.txt0000644000000000000000000000002212264174460021120 0ustar rootroot00000000000000slowaes ecdsa>=0.9Electrum-1.9.7/Electrum.egg-info/dependency_links.txt0000644000000000000000000000000112264174460022574 0ustar rootroot00000000000000 Electrum-1.9.7/README0000664000175000017500000000155112256574362015710 0ustar voegtlinvoegtlin00000000000000Electrum - lightweight Bitcoin client Licence: GNU GPL v3 Author: thomasv@bitcointalk.org Language: Python Homepage: http://electrum.org/ == INSTALL == sudo python setup.py install == RUN == To start Electrum in GUI mode, type: electrum == HELP == Up-to-date information and documentation is on the wiki: https://en.bitcoin.it/wiki/Electrum == HOW OFFICIAL PACKAGES ARE CREATED == python mki18n.py pyrcc4 icons.qrc -o gui/qt/icons_rc.py python setup.py sdist --format=zip,gztar On Mac OS X: # On port based installs sudo python setup-release.py py2app # On brew installs ARCHFLAGS="-arch i386 -arch x86_64" sudo python setup-release.py py2app --includes sip sudo hdiutil create -fs HFS+ -volname "Electrum" -srcfolder dist/Electrum.app dist/electrum-VERSION-macosx.dmg == BROWSER CONFIGURATION == See http://electrum.org/bitcoin_URIs.html Electrum-1.9.7/locale/0000755000000000000000000000000012264174460014513 5ustar rootroot00000000000000Electrum-1.9.7/locale/zh_CN/0000755000000000000000000000000012264174460015514 5ustar rootroot00000000000000Electrum-1.9.7/locale/zh_CN/LC_MESSAGES/0000755000000000000000000000000012264174460017301 5ustar rootroot00000000000000Electrum-1.9.7/locale/zh_CN/LC_MESSAGES/electrum.mo0000664000175000017500000007177512264174460023243 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHsÚH>NJ1J¿JdÛJ@KGKNKTKhKxK‡KKŸK¥K´K ÃK ÎKÙKßKçKïKLL L *L7LIL OLYL bL pL|L‚LˆLL—LŸL¡L)°L'ÚLˆM‹M ›M¨M°M7ÀMøMÿM NNN +N8N/KN {N ˆN•N œN¦NcÀN $O /O9OLOSOYO`OgO mO zO ˆO–O žO-«OÙOÞOóOPP'1PYPkP‡PŒP•P¥P ¬P ¹PÅP/ÌPüP„Q‰Q ¢Q°QÆQ4ËQR RR-R/?R+oS3›SÏSfäSKTG[T*£T*ÎT1ùT-+U4YU4ŽUsÃU"7W,ZW‡WW°W·WÔW ëW@ùW:XTX [X |X,ˆXµX¼X$ÁXæXùXþXY'Y`AYD¢YOçY7ZKZ_ZfZzZ,ƒZw°ZR([ {[ˆ[ —[ £[­[Ã[ Ê[ ×[ä[ ú[ \\\3 \T\ [\f\v\†\š\ª\-³\á\ç\ð\]]']:]C]J]S]X]5`] –]¢] ²]-¼]ê]^:^ @^'M^ u^ ^GŒ^8Ô^ _#_*_2_C_K_!R_ t_ _ ‹_0˜_É_?ß_`$?`d`z`+™`8Å`þ`B aPa aa mayaa¬a³a¹aÔaÜa÷abb 2b:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Chinese Simplified Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionså¯ç”¨æœåС噍Add an optional, mouse keyboard to the password dialog.地å€Alias:All accounts金é¢Amount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectä½™é¢Base unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdå–æ¶ˆChainChange清除Close确认密ç ConfirmationsConnecting...Consoleè”系方å¼Copied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:说明Description of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keys错误Error: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update password费用Fee per kilobyte of transaction.File existsFormat: address, amount. One output per line冻结FromGetting block headers from %d nodes.Goto download pageHideHide used addresses历å²How do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.密ç ä¸å¯¹Incorrect seedInformationInput CSVInput raw transactionInputs地å€ä¸å¯¹é‡‘é¢ä¸å¯¹æ¯”特å¸åœ°å€ä¸å¯¹è´¹ç”¨ä¸å¯¹å†…容ä¸å¯¹InvoiceKeyKeyboard shortcut: type "!" to send all your coins.标签Label SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageå¦‚æžœä¸æƒ³åŠ å¯†ï¼Œè¯·ä¿æŒæ­¤å†…容ä¸å˜LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximize消æ¯MinimizeNameNetworkNever disclose your seed. Never type it on a website.New Account新建è”系人新密ç New transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.没有ç§å­æ²¡æœ‰æ‰¾åˆ°ä¸Žè¯¥ç§å­å…³è”的交易无连接余é¢ä¸è¶³Note: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.å°æ•°ç‚¹åŽçš„使•°ç¡®è®¤OfflineOpen labels fileOutputs密ç Password was updated successfully密ç ä¸ç¬¦æ”¯ä»˜ç»™å·²æ”¯ä»˜ã€‚请输入密ç ï¼Œå¯¹é’±åŒ…密钥进行加密。请选择æœåŠ¡å™¨ã€‚Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.请输入您的密ç Please enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionåè®®ProxyPruned transaction outputsQR codeQR code saved to clipboard将二维ç ä¿å­˜åˆ°æ–‡ä»¶æŽ¥æ”¶Receive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.ä¿å­˜Scan QR codeScan TxQRç§å­Select 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.å‘é€Send FromSending transaction, please wait.Sending transaction, please wait...æœåС噍Server is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeåŒæ­¥ä¸­...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / From如ä¸éœ€è¦åŠ å¯†ï¼Œè¯·è¾“å…¥ç©ºå¯†ç To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:交易Unable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction found交易UnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.您钱包的生æˆç§å­æ˜¯æ‚¨çš„钱包已加密。您å¯ä»¥åœ¨è¿™é‡Œä¿®æ”¹å¯†ç ã€‚钱包未加密。are frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/it_IT/0000755000000000000000000000000012264174460015523 5ustar rootroot00000000000000Electrum-1.9.7/locale/it_IT/LC_MESSAGES/0000755000000000000000000000000012264174460017310 5ustar rootroot00000000000000Electrum-1.9.7/locale/it_IT/LC_MESSAGES/electrum.mo0000664000175000017500000007533012264174460023241 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHoÚH9JJ2„J·J`ÎJ/KIKQKXKjK{K‹K”K¨K ®K »KÉK ÒKÜKãK ìK÷K L#L,L;LKL[L aLkLsLƒL“L™L L ¦L ±L½L¿L4ÏL-M®2MáM òMÿM NGN \NfNlN ~NˆN›N­N'ÂNêNOO O*O{IO ÅO ÐOÝOüOP PPP"P4P=PLPTP']P…P‹P¢P¶P*ÊP/õP%Q:QWQ\QeQxQ QQ —Q,£QÐQ‰ÙQcR }R‰R˜R3žRÒRçRûR S(!S6JT4T¶TXÍT&UX=U2–U2ÉU,üU4)V.^V+Vž¹V+XX7„X ¼XÝXùX&Y'Y^F^?M^ ^—^­^Á^Õ^í^_?_G_ N_Y_l_‚_™_ ±_ ½_ Ç_Ñ_Ö_;ß_ `)`8`/G`w`’`?™` Ù`+å` aaM1aBa,Âaïa òaþabb,"bObjbqbK„bÐbOíb*=c3hc%œc1Âc6ôcX+d„dO—dçd údee.e LeWe]e {e…e¥e¿eÆe âeìeff7fNfWf hf tf~f0’fÃfàfüfgg%g$*g#Og$sg5˜g=Îg. h;h*[hV†h"Ýh#i,$iQi Wibi€i i§i ÇiÔi Ûiæi|õi!rj!”j¶j¾jÎjÞjäjõj ýj k k3kBkUk^kxkŒk–£k¿:l"úl–m)´m0Þmdn<tn^±n-oR>oX‘p\êp GqehqÎqJÕq rI4r ~rŠršrµr Ërìr ÿr! s(Bs kswszs"”s"·s&Ús:t:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2014-01-01 20:25-0500 Last-Translator: rdymac Language-Team: Italian Language: it_IT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.net Nota: Richiede l'installazione del plugin "Exchange Rate"Queste impostazioni influenzano la sezione "Invia"per creare un account.%(txs)s nuove transazioni ricevute. Totale ricevuto dalla nuova transazione: %(amount)s %(unit)s&Informazioni su Electrum&Chiudi&Copia&Crea transazione&Crea/Ripristina&Documentazione&Esporta&Esporta cronologia&File&Da file CSV&Da testo CSV&Da file&Da testo&Aiuto&Importa&Etichette&Carica transazione&Chiave pubblica Master&Network&Nuovo account&Nuovo contatto&Sito Ufficiale&Apri&Password&Plugin&Chiavi private&Segnala un bug%Seme&Invia&Temi&Strumenti&Portafogli*... e l'importoÈ stata creata una copia del tuo portafogli su fileUna nuova versione di Electrum è disponibileUna commissione viene aggiunta automaticamente a questo campo come suggerimento. E' possibile ignorarla. La commissione suggerita aumenta con la dimensione della transazione.Dettagli accountNome accountAzioniServer attiviAggiungi un'opzionale keyboard mouse alla finestra di dialogo password.IndirizzoAliasTutti gli accountQuantitàQuantità ricevutaQuantità inviataQuantità da inviareSei sicuro di sapere cosa stai facendo?Connessione automaticaConnessione automaticaSaldoUnità baseUnità base del tuo portafogliLe transazioni bitcoin in generale non sono gratuite. Una commissione di transazione viene pagata con i fondi del mittente.BlockchainTrasmissioneEspostazione in CSV completataCancellaCatenaCambioPulisciChiudiConferma passwordConfermeConnessione...ConsoleContattiIndirizzo bitcoin copiato negli appuntiCopiaCopia ID negli appuntiCopia negli appuntiCopia negli appuntiImpossibile sincronizzare le etichette: %sImpossibile scrivere la transazione su file: %sCrea un nuovo walletCrea transazione non firmataDataData: %sServer predefinitiCancellaElimina aliasOrigineDescrizioneDescrizione della transazione (facoltativo).DettagliHai mai usato prima Electrum e vuoi ripristinare un portafogli già esistente? Oppure è la tua prima volta e desideri crearne uno nuovo?Disconnessione dal serverMostra zeriVuoi eliminareFattoModifica l'etichetta con un doppio click del mouse.Modifica descrizioneModifica ettichettaPlugin ElectrumImpostazioni ElectrumElectrum comunica con server remoti per conoscere i tuoi indirizzi e le tue transazioni. I server contengono le stesse informazioni, differiscono solo in prestazioni. Nella maggior parte dei casi si lascia ad Electrum la scelta di un server a caso, ma se preferisci puoi usare il server che vuoi.Electrum non riesce a trovare un portafogli esistente.Electrum sta generando il tuo indirizzo, pazientare.Preferenze di ElectrumElectrum invia il tuo indirizzo ad un server per conoscere lo storico delle transazioni.Aggiornamento ElectrumElectrum non riesce a copiare il file del tuo portafogli nella destinazione specificata.Electrum non riesce ad esportare le tue etichette.Electrum non riesce ad importare le tue etichette.Electrum non riesce ad aprire la transazioneElectrum non riesce a riconoscere la tua transazioneElectrum non può esportare la chiave privata.Electrum non può esportare la transazione.Electrum è focalizzato sulla velocità, consumando poche risorse, per semplificare il sistema Bitcoin. Non hai bisogno di eseguire backup con regolarità, perché il tuo portafogli può essere recuperato dalla frase segreta che hai memorizzato o messo su carta. I tempi di avvio sono rapidi perché opera con server ad alte prestazioni che gestiscono tutto il carico e le parti più complesse del sistama Bitcoin.Inserisci l'indirizzo bitcoin o il contattoInserisci il nome del file su cui copiare il portafogliInserisci un nuovo nome del fileInserisci la chiave privataErroreErrore: impossibile mostrare il pluginErrore: firma errataEsci da ElectrumLa trapelazione di una singola chiave privata può compromettere l'intero portafogli!Aggiornamento password fallitoCommissioneCommissione della transazione per kBIl File EsisteFormato: indirizzo, quantità. Una riga alla voltaCongelaDaRecupero intestazioni del blocco da %d nodo/i.Vai alla pagina di downloadNascondiNascondi indirizzi usatiCronologiaCome preferisci connetterti al server:Se è abilitata la connessione automatica, Electrum userà sempre il server con la blockchain più lunga.Se è disabilitata, Electrum ti avviserà se il server è lento.Se avrai la necessità di ricreare il tuo portafogli da questo seed, queste chiavi saranno perdute.Ignora tutte le versioniIgnora questa versioneImportaImporta le chiavi privateImportatoLe chiavi importate non sono recuperabili dal seed.In oltre, Electrum si connette a diversi nodi per scaricare le intestazioni trovando così la blockchain più lunga.In particolare, NON USARE servizi terzi che ti permettono di 'riscattare la chiave privata' (redeem private key)Password errataSeed erratoInformazioneInserisci un CSVInserisci i dati puri della transazioneEntrateIndirizzo non validoQuantità non validaIndirizzo bitcoin non validoCommissione non validaValore non validoFatturaChiaveScorciatoia da tastiera: premi "!" per inviare tutte le monete.EtichettaSincronizza etichettaEtichette esportateEtichette importateEtichette sincronizzateEtichette caricateLinguaLascia questi campi vuoti se vuoi disabilitare la crittografia.LimiteCarica CSVCarica transazioneChiave privata MasterChiave pubblica MasterChiavi pubbliche MAsterIngrandisciMessaggioMinimizzaNomeNetoworkNon rivelare mai il seme. Non scriverlo in nessun sito web.Nuovo accountNuovo contattoNuova passwordNuova transazione ricevuta. %(amount)s %(unit)sNuova versione disponibileAvantiNessuna notifica verrà visionata in merito alle nuove versioniNessun seedNessuna transazione trovata per questo seedNon connessoFondi insufficentiNota: i nuovi account sono in "attesa" fino a quando non riceveranno bitcoin.Notifiche riguado questo aggiornamento non verranno più mostrate.Numero di zeri visualizzati dopo la virgola.OKDisconnessoApri file etichetteUscitePasswordLa password è stata aggiornata con successoLe password non coincidonoPaga aPagamento inviato.Per favore inserisci una password per cifrare le chiavi del tuo portafogli.Per favore, scegli un serverPer favore inserisci una etichetta a questa transazione per riferimenti futuri.Per vafore, inserisci una lista di uscite.Per favore, inserisci la tua chiave pubblica masterPer favore, inserisci la tua passwordPer favore, inserisci il seed del tuo portafogli.Per favore, segnala i bug su github (sezione "issues")Per favore riavvia Electrum per attivare le nuove impostazioni della interfaccia graficaAttendere prego...Per favore, scrivi o memorizza queste %d parole (il loro ordine è importante).Preferenze salvatePreferenzeChiave privataChiavi private esportate.Processa transazione off-lineProtocolloProxyUscite transazioni abbreviateCodice QRCodice QR salvato negli appuntiCodice QR salvato su fileRiceviRicevi pagamenti in bitcoinRicezioneBeneficiario dei fondi.Valore raccomandatoRecupero avvenuto con successoRimuovi dal portafogliRinominaRinomina accountSegnala bugRichiestaAmmontare richiestoRecupera portafogli dalla chiave pubblica masterrecupera portafogli dal seedRecupera alias tramite HTTPSalvaScansiona codice QRScanziona TxQRSemeSeleziona "Cancella" se sei offline.Scegli l'indirizzo per la ricezioneScegli un nome file alla transazioneSeleziona il file per esportare le tue chiavi privateSeleziona il file per esportare le transazioni del tuo walletSeleziona il file per salvare le tue etichetteSeleziona il server manualmenteScegli dove salvare le transazioni firmateSeleziona la lingua da usare nella interfaccia grafica (dopo il riavvio del programma)Seleziona il CSV delle transazioniSeleziona il file della transazioniScegli un indirizzo da copiare sugli appuntiInviaInviata DaInvio transazione, attendere.Invio transazione, attendere...ServerIl server rallenta (%d blocchi)ImportazioniMostraCronologiaMostra FatturaMostra la finestra col codice QR e l'ammontare richiesto per ogni indirizzo. Aggiungi dal menu per richiedere una quantità.Mostra indirizzo per la ricezioneMostra il codice TxQR non firmatoFirmareFirma messaggioFirma messaggioFirmaFirma verificataFirmatoFirmato da:Indirizzo della firma:Stato: %d confermeStato: firmatoStato: non firmatoSuccessoPassa alla modalità LiteSincronizzazione...Indirizzo destinatarioLa commissione può essere stabilita a priori dal pagante. Tuttavia, transazioni con basse commissioni impiegheranno più tempo per essere processate.L'importo verrà mostrato in rosso se non disponi di sufficienti fondi nel tuo portafogli. Se hai congelato qualche indirizzo, i fondi disponibili saranno minori del tuo bilancio complessivo.La URI bitcoin è stata firmata daLa descrizione non viene inviata al beneficiario dei fondi. Questa viene conservata nel file del tuo portafogli e mostrata nella sezione 'Cronologia'.I seguenti indirizzi sono statti aggiuntiLe seguenti entrate non possono essere importateIl seed è stato rimosso dal tuo portafogli. In esso era contenuta la seguente chiave privata MasterSi è verificato un errore dutante l'invio della transazioneQuesta blockchain è usata per verificare le transazioni inviate verso un indirizzo del serverQuesto è un portafogli di sola consultazioneQuesto plugin può sincronizzare le etichette su diverse installazioni di Electrum usando il database remoto dei tuoi dati. Etichette, transazioni ed indirizzi sono inviati in modo cifrato al server remoto. Questo plugin può appesantire la connessione di alcuni microsecondi durante la sincronizzazione dei dati riguardanti i portafogli.Questo seed sarà in grado di recuperare il tuo portafogli in caso di guasti al computerQuesta transazione richiede una commissione più alta, pena la non propagazione nel network.Questo portafogli non è cifratoQuesto portafogli è stato recuperato off-line. Potrebbe contenere più indirizzi di quelli mostrati.A / DaPer disabilitare la cifratura del portafogli inserisci una password vuota.Per iniziare visitaPer essere sicuri che hai conservato il seed, per favore, riscrivilo qui.TransazioneID transazione:Commissione di transazioneEtichetta transazioneTransazione salvata con successoStato transazione:Transazione inviata con successoTransazione inviata con successo:Transazione non legata al tuo portafogliTransazioneTxImpossibile creare il CSVImpossibile esportare le etichetteImpossibile importare le etichetteImpossibile riconoscere la transazioneImpossibile leggere dal file o nessuna transazione trovataScongelaSconosciutoNon firmatoTransazione non firmata creataTransazione non firmata salvata su fileUsa indirizzo di cambioUsatoUsare un indirizzo di cambio rende più difficile, per le altre persone, tracciare le tue transazioni.VerificaVersioneMostra dettagli aliasMostra dettagliATTENZIONEATTENZIONE: Le tue chiavi private sono TUTTE segrete.Al tuo portafogli è stato rimosso il seed, impossibile firmare.AttenzioneAttenzione: non usare se porta a scegliere una password debole.QuandoPuoi inserire un indirizzo bitcoin, una etichetta dalla tua lista di contatti (una lista di completamento ti sarà proposta) oppure un alias (indirizzi simili a quelli di e-mail che vengono inoltrati ad un indirizzo bitcoin)Hai bisogno di attendere almeno due conferme prima che il saldo venga mostrato correttamente e sia possibile creare altri indirizzi per questo account.L'esportazione in formato CSV è stata creata con successoLa tua chiave pubblica Master è:Le etichette sono state sincronizzate.Le etichette sono state caricate.Le etichette sono state importate daLe tue etichette sono state spostare suIl tuo seed è anche mostrato come codice QR, nel caso in cui tu lo voglia trasferire su uno smartphone.Il tuo seed è importante!La transazione è stata inviata.Il tuo portafogli contiene chiavi importate. Queste non possono essere recuperate tramite il seed.Il seed per generare il tuo portafogli èIl tuo portafogli è criptato. Usa questa finestra per cambiare la tua password.Il tuo portafogli non è cifratosono congelatiblocchierroredalla tua lista contatti?sal tuo wallet?account in attesainvia %(amount)s a %(address)s?sconosciutosola letturaElectrum-1.9.7/locale/ar_SA/0000755000000000000000000000000012264174460015500 5ustar rootroot00000000000000Electrum-1.9.7/locale/ar_SA/LC_MESSAGES/0000755000000000000000000000000012264174460017265 5ustar rootroot00000000000000Electrum-1.9.7/locale/ar_SA/LC_MESSAGES/electrum.mo0000664000175000017500000007662712264174460023230 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHÃÚH>žJ1ÝJ%Kd5KšK¡K¨K®KÂKÒKáKéKùKÿKL L (L3L9LALIL_LrL {L ˆL•L§L ­L·L ÀL ÎLÚLàLæLîLõLýLÿL)M'8Mš`MûM NN N7>N vNN ˆN•NžN ¯N¼NLÔN !O .O ;O HOROˆlO õO P P P(P.P5P :# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Arabic Language: ar_SA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5); X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tabوقم بتسجيل حساب جديد%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labelsحمل الحوالة&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:يتم Ø¥Ø¶Ø§ÙØ© رسوم للحوالة تلقائياً. تستطيع تغييرها. الرسوم Ø§Ù„Ù…Ø¶Ø§ÙØ© تزيد حسب حجم الحوالةAccount DetailsAccount nameActionsالخوادم القائمةAdd an optional, mouse keyboard to the password dialog.عنوانAlias:All accountsمبلغAmount received:Amount sent:مبلغ لإرسالههل أنت متأكد أنك مدرك لعواقب ما تريد ÙØ¹Ù„ه؟Auto connectAuto-connectالرصيدBase unitBase unit of your wallet.حوالة بتكوين غير مجانية بشكل عام. هناك رسوم للحوالة يتم Ø¯ÙØ¹Ù‡Ø§ من قبل المرسلBlockchainBroadcastCSV Export createdإلغاءChainChangeمسحإغلاقتأكيد كلمة السرتوكيدات الحوالةجاري الإتصال....Consoleقائمة العناوينCopied your Bitcoin address to the clipboard!Copyنسخ رÙÙ… التعريÙنسخنسخ%s :لم تستطع مزامنة المسمياتCould not write transaction to file: %sCreate new walletإنشاء حوالة غير موقعةتاريخDate: %sالخوادم الأساسيةمسحمسح المسمياتDerivation:وصÙوص٠للحوالة - ليس Ø¨Ø®ÙŠØ§Ø±ÙŠØªÙØ§ØµÙŠÙ„Did you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverعدد Ø§Ù„Ø£ØµÙØ§Ø± المعروضةDo you want to removeتمDouble clicking the label will allow you to edit it.تعديل Ø§Ù„ÙˆØµÙØªØ¹Ø¯ÙŠÙ„ الوسمElectrum Pluginsإعدادات إلكترومElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameأدخل Ø§Ù„Ù…ÙØ§ØªÙŠØ­ الخاصةخطأError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordرسومقيمة Ø§Ù„ØªØ¹Ø±ÙŠÙØ© لكيلوبايت من الحوالةFile existsFormat: address, amount. One output per lineتجميدFromGetting block headers from %d nodes.Goto download pageHideHide used addressesتاريخHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.قك بتجاهل كل الإصداراتقم بتجاهل هذه النسخةإستيرادإستيراد Ø§Ù„Ù…ÙØ§ØªÙŠØ­ الخاصةImportedالعناوين المستوردة لا يستطاع إعادة إستيرادها من بذرة Ø§Ù„Ù…Ø­ÙØ¸Ø©In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.كلمة سر غير صحيحةIncorrect seedمعلوماتInput CSVأدخل حوالة خامةالمدخلاتعنوان غير مقبولمبلغ غير صالحعنوان بتكوين غير مقبولرسوم غير مقبولةقيمة غير Ù…Ù‚Ø¨ÙˆÙ„Ø©ÙØ§ØªÙˆØ±Ø©KeyKeyboard shortcut: type "!" to send all your coins.وسممزامنة مسميات العناوينLabels exportedLabels importedتمت مزامنة مسميات العناوينتم Ø±ÙØ¹ مسميات العناويناللغةأترك هذه الخانة ÙØ§Ø±ØºØ© إن أردت إلغاء التشÙيرLimitLoad CSVحمل الحوالةMaster Private KeysØ§Ù„Ù…ÙØªØ§Ø­ العام الرئيسيMaster Public KeysMaximizeرسالةMinimizeNameNetworkلا تبح ببذر Ù…Ø­ÙØ¸ØªÙƒ. ولا تكتبه على موقع على الشبكة أبداًNew Accountعنوان جديدكلمة سر جديدةNew transaction received. %(amount)s %(unit)sهناك تحديث جديدNextلن يتم عرض تنبيهات عن الإصدارات الجديدة مستقبلاًبدون بذرةلم توجد أي حوالات لهذه البذرةعير متصلالرصيد لا يكÙÙŠNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.عدد Ø§Ù„Ø£ØµÙØ§Ø± بعد Ø§Ù„ÙØ§ØµÙ„Ø©. كمثال إذا وضع هذا لـ 2, "1." سو٠تعرض كـ "1.00"قبولOfflineÙØªØ­ مل٠مسميات العناوينالمخرجاتكلمة السرPassword was updated successfullyكلمتا السر لا ØªØªØ·Ø§Ø¨Ù‚Ø§Ø¯ÙØ¹ لــتم إرسال الحوالةالرجاء إختيار كلمة سر لتشÙير Ù…ÙØ§ØªÙŠØ­ Ù…Ø­ÙØ¸ØªÙƒØ§Ù„رجاء أختيار خادمPlease enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.الرجاء إدخال كلمة السر الخاصة بكPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settings...الرجاء الإنتظارPlease write down or memorize these %d words (order is important).تم Ø­ÙØ¸ الخياراتPreferencesÙ…ÙØªØ§Ø­ خاصتم تصدير Ø§Ù„Ù…ÙØ§ØªÙŠØ­ الخاصةProcess Offline transactionبروتوكولبركسيPruned transaction outputsQR رمزQR code saved to clipboardإلى المل٠QR تم Ø­ÙØ¸ رمزإستقبالReceive Bitcoin paymentReceivingمستقبل الحوالةالقيمة المقترحةRecovery successfulحذ٠من Ø§Ù„Ù…Ø­ÙØ¸Ø©RenameRename accountReporting BugsطلبRequest amountRestore wallet from master public keyRestore wallet from seedتحميل الأسماء بإستخدام أتش تي تي Ø¨ÙŠØ­ÙØ¸Scan QR codeScan TxQRبذرةSelect 'Cancel' if you are offline.Select a receiving addressأختر أسماً لمل٠الحوالةأختر Ù…Ù„ÙØ§Ù‹ لتصدير Ù…ÙØ§ØªÙŠØ­Ùƒ الخاصة لهSelect file to export your wallet transactions toأختر Ù…Ù„ÙØ§Ù‹ Ù„Ø­ÙØ¸ مسميات عناوينكSelect server manuallyأختر أين تريد Ø­ÙØ¸ حوالاتك الموقعةSelect which language is used in the GUI (after restart).Select your transaction CSVأختر مل٠حوالاتكSelecting an address will copy it to the clipboard.أرسلSend FromSending transaction, please wait.Sending transaction, please wait...خادمServer is lagging (%d blocks)SettingsعرضShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRبتوقيعتوقيع رسالةتوقيع رسالةختم التوقيعSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite Mode... جاري المزامنةالعنوان الهد٠للحوالةيمكن تحديد مقدار الرسوم من قبل المرسل، ولكن الحوالات المرÙÙ‚ بها رسوم أدنى قد تستغرق وقتاً أطول للإتمامسيتم عرض المبلغ باللون الأحمر إذا كان رصيدك لا يكÙÙŠØŒ ضع بالإعتبار أن العناوين المجمدة سوق تجعل الرصيد Ø§Ù„Ù…ØªÙˆÙØ± للتحويل أقل من الرصيد الكامل Ø¨Ù…Ø­ÙØ¸ØªÙƒThe bitcoin URI was signed byوص٠الحوالة لا يتم إرساله إلى مستقبل الحوالة، بل يظل محÙوظاً ÙÙŠ Ù…Ù„Ù Ù…Ø­ÙØ¸ØªÙƒ ويعرض ÙÙŠ ثسم تاريخ الحوالاتتم Ø¥Ø¶Ø§ÙØ© العناوين Ø§Ù„ØªØ§Ù„ÙŠØ©ÙØ´Ù„ تحميل المدخلات التاليةThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletهذه Ø§Ù„Ø¥Ø¶Ø§ÙØ© تستطيع مزامنة مسميات عناوينك بين عدة تثبيتات لإلكتروم بإستخدام قاعدة بيانات خارجية Ù„Ø­ÙØ¸ بياناتك. مسميات عناوينك غير Ù…Ø´ÙØ±Ø©ØŒ ولكن حوالاتك وعناوينك Ù…Ø´ÙØ±Ø©. هذه Ø§Ù„Ø¥Ø¶Ø§ÙØ© يمكن أن تؤخر عمل تحميل إلكتروم Ù„Ù…Ø­ÙØ¸ØªÙƒ لأجزاء من الثانية للتزامن عند كل إعادة تشغيلهذه هي البذرة التي سو٠تمكنك من إستعادة Ù…Ø­ÙØ¸ØªÙƒ ÙÙŠ حالة حدوث مشكلة بحاسوبكهذه الحوالة تتطلب ØªØ¹Ø±ÙŠÙØ© أكبر وإلا لن تقوم الشبكة بنشر حوالتكThis wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.إلى / منلإلغاء تشÙير Ø§Ù„Ù…Ø­ÙØ¸Ø©ØŒ قم بإدخال كلمة سر ÙØ§Ø±ØºØ©Ù„لبدء قم بزيارةTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:ØªØ¹Ø±ÙŠÙØ© الحوالةTransaction labelتم Ø­ÙØ¸ الحوالة بنجاححالة الحوالةTransaction successfully sentTransaction successfully sent:Transaction unrelated to your walletحوالةTxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundإلغاء التجميدUnknownغير موقعةتمت صياغة حوالة غير موقعةUnsigned transaction was saved to file:أستخدم ميزة عناوين عوائد الحوالةUsedUsing change addresses makes it more difficult for other people to track your transactions.تأكيدرقم الإصدارعرض ØªÙØ§ØµÙŠÙ„ الأسماء المستعارةView detailsتحذيرتحذير: كل Ù…ÙØ§ØªÙŠØ­Ùƒ الخاصة Ø³Ø±ÙŠØ©Ù…Ø­ÙØ¸ØªÙƒ Ù…ÙØµÙˆÙ„Ø© عن بذرتها، لاتستطيع التوقيعتحذيرلا تستخدم هذا إذا ما جعلك تختار كلمة سر Ø¶Ø¹ÙŠÙØ©Ù…تىتستطيع إدخال عنوان بتكوين، أو وسم من قائمة عناوينك، أو إسماً مستعاراً يؤول لعنوان بتكوينYou will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:تمت مزامنة عناوينكتم Ø±ÙØ¹ قائمة عناوينكعناوينك تم تحميلها منYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.بذرة الإستعادة Ù„Ù…Ø­ÙØ¸ØªÙƒ Ù‡ÙˆÙ…Ø­ÙØ¸ØªÙƒ Ù…Ø´ÙØ±Ø©. أستعمل هذا الخيار لتغيير كلمة السر الخاصة Ø¨ÙƒÙ…ÙØ§ØªÙŠØ­ Ù…Ø­ÙØ¸ØªÙƒ غير Ù…Ø´ÙØ±Ø©are frozenblockserrorfrom your list of contacts?من Ù…Ø­ÙØ¸ØªÙƒØŸpending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/pt_PT/0000755000000000000000000000000012264174460015541 5ustar rootroot00000000000000Electrum-1.9.7/locale/pt_PT/LC_MESSAGES/0000755000000000000000000000000012264174460017326 5ustar rootroot00000000000000Electrum-1.9.7/locale/pt_PT/LC_MESSAGES/electrum.mo0000664000175000017500000007714612264174460023266 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHrÚHDMJ3’JÆJgáJIKPKXK`KsK„K ”KžK µK¿K ÓKáK ñKûK L LL,LCL ILULdLuL|L‹L”L¥L¸LÁLÉL ÐL ÝLçLéL5ùL//M_MïM NNN>)N hNrNyN‰N‘N£N´N1ËNýNO)O /OP MPXP `PCjP®P(µP%ÞP%Q.*Q=YQ—Q#¯QÓQØQáQôQ ûQ R R&!RHR~QRÐR æRôRS< SFSYShS|SY•S;ïT?+UkU{…UV_V4zV4¯V>äV4#WEXWCžWÔâW-·Y;åY"!ZDZaZ+fZ’ZªZC»Z#ÿZ #[(-[V[3h[œ[¥[/¨[$Ø[ý[\ !\',\tT\NÉ\i]‚]œ]±]º] Ó]AÞ]‹ ^w¬^$_=_ O_ \_"j__–_ª_¼_Ø_ç_÷_þ_B`G`O`k``“`ª`¼`CÄ`a aa5aMaca |a†a a™aža:£a Þa éa÷a. b9bRbM[b ©b4µbêbübOcFhc€¯c0d3d;dVd ^d*ld#—d»dÃdTÖd +eMLe)še0Äe'õe-f*KfFvf½fHÓfg 2g @gNgkg ‰g“g ™g ºg2Åg$øgh%h ?hIhch uh–h ªh¸hÎhÝhäh6öh(-iVirizi‰i’i(ši#Ãi1çiKjSej3¹j"íj8kQIk›k'»kEãk)l 0l*:l,el’l%›l ÁlÎlÖlëlyúltm”m¯m·mÊm Ýmèmþm nn-nGnXnnnvnnžn®nÐ>op‰.p)¸p1âpPq/eq`•q"öqr`ªs^ t#jtgŽt öt]u^uZsu ÎuÚuíuv v9vPv pv/‘v ÁvÎvÑv$îv$w)8wGbw ªw ¶w Ãw Ñw9òw,x IxlTx ÁxËxÓx ìx ùx7y>;y zyN„yÓyËÚyƒ¦z.*{Y{%y{ Ÿ{$À{&å{e |r||e®|)}Z>}1™}Ë}Ý}ä}é}~~#&~ J~W~¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2014-01-01 20:25-0500 Last-Translator: rdymac Language-Team: Portuguese Language: pt_PT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.net  Nota: Isto requer que o plugin de taxas de câmbio seja instalado. Estas definições afetam os campos na aba Enviar para registar uma conta.%(txs)s novas transações recebidas. Quantia total recebida nas novas transações %(amount)s %(unit)s&Sobre&Fechar&Copiar&Criar transação&Criar/Restaurar&Documentação&Exportar&Exportar o Histórico&Ficheiro&De um ficheiro CSV&De texto CSV&De um ficheiro&De texto&Ajuda&Importar&Rótulos&Carregar transação&Chave Pública Mestra&Rede&Nova conta&Novo contacto&Website Oficial&Abrir&Palavra-passe&Plugins&Chaves privadas&Relatar uma falha&Semente&Enviar&Temas&Ferramentas&Carteira+... e a quantiaUma cópia dos seu ficheiro de carteira foi criado emUma nova versão do Electrum está disponível:Uma taxa de transação sugerida será adicionada a este campo. Pode alterar a sugestão. A taxa sugerida aumenta com o tamanho da transação.Detalhes da ContaNome da contaAçõesServidores AtivosAdicionar um teclado virtual para o diálogo da palavra-passe.EndereçoAlias:Todas as contasQuantiaQuantia recebida:Quantia enviada:Quantia a ser enviada.Tem a certeza que compreende o que está a fazer?Ligar automaticamenteLigar automaticamenteSaldoUnidade baseUnidade base da sua carteira.Geralmente as transações Bitcoin não são grátis. Uma taxa de transação costuma ser paga pelo remetente dos fundos.BlockchainDifundirExportação CSV criadaCancelarCadeiaTrocoLimparFecharConfirmar a Palavra-passeConfirmaçõesA ligar...ConsolaContactosO seu endereço Bitcoin foi copiado para a área de transferência!CopiarCopiar ID para a área de transferênciaCopiar para a área de transferênciaCopiar para a área de transferênciaNão foi possível sincronizar os rótulos: %sNão foi possível escrever a transação para o ficheiro: %sCriar uma carteira novaCriar uma transação não assinadaDataData: %sServidores PadrãoApagarApagar aliasDerivação:DescriçãoDescrição da transação (opcional).DetalhesUtilizou o Electrum antes e deseja restaurar uma carteira anterior ou esta é a primeira vez e deseja criar uma nova carteira?Desligado do servidorMostrar zerosDeseja removerFeitoFazer um duplo clique no rótulo vai permitir-lhe editá-lo.Editar descriçãoEditar rótuloPlugins do ElectrumDefinições do ElectrumO Electrum comunica com servidores remotos para receber informação sobre as suas transações e endereços. Todos os servidores cumprem o mesmo propósito apenas diferindo em hardware. Na maioria dos casos vai desejar que o Electrum selecione um servidor aleatoriamente, contudo se tiver uma preferência pode escolher um servidor manualmente.O Electrum não conseguiu encontrar uma carteira existente.O Electrum está a gerar os seus endereços, aguarde por favor.Preferências do ElectrumO Electrum envia os endereços da sua carteira para um único servidor, de forma a receber o seu histórico de transação.Atualização do EletrumO Electrum não conseguiu copiar os seu ficheiro de carteira para a localização especificada.O Electrum não conseguiu exportar os seus rótulos.O Electrum não conseguiu importar os seus rótulos.O Electrum não conseguiu abrir o seu ficheiro de transaçõesO Electrum não conseguiu analisar a sua transaçãoO Electrum não conseguiu produzir uma exportação da chave privada.O Electrum não conseguiu produzir uma exportação da transação.O ponto central do Electrum é a velocidade, com baixo uso de recursos e a simplificação do uso de Bitcoins. Não precisa de realizar cópias de segurança regulares porque a sua carteira pode ser recuperada a partir de uma frase secreta que pode memorizar ou escrever num papel. O tempo necessário para o arranque é mínimo porque o Electrum opera em conjunção com servidores de alta-performance que se ocupam das partes mais complicadas do sistema de Bitcoins.Introduza um endereço Bitcoin ou um contactoIntroduza um nome de ficheiro para a cópia da sua carteiraIntroduza um novo nome de ficheiroIntroduza as chaves privadasErroErro: não é possível apresentar o pluginErro: assinatura erradaSair do ElectrumRevelar uma só chave privada pode comprometer toda a sua carteira!Falhou ao atualizar a palavra-passeComissãoTransação por kilobyte de transação.O ficheiro existeFormato: endereço, quantia. Um resultado por linhaCongelarDeA receber os cabeçalhos dos blocos de %d nós.Ir para a página de descarregamentoEsconderEsconder endereços usadosHistóricoComo é que deseja ligar a um servidor:Se 'ligar automaticamente' estiver ligado, o Electrum tentará sempre utilizar um servidor na blockchain mais longa.Se estiver desligado, o Electrum vai avisá-lo se o servidor estiver atrasado.Se alguma vez precisar de restaurar a sua carteira a partir da sua semente, estas chaves serão perdidas.Ignorar todas as versõesIgnorar esta versãoImportarImportar chaves privadasImportadosAs chaves importadas não são recuperáveis a partir da semente.Além disso, o Electrum liga-se a vários nós de forma a descarregar os cabeçalhos de blocos e descobrir qual é a blockchain mais longa.Especialmente, NÃO UTILIZE serviços para 'resgatar as chaves privadas ('redeem private key') propostas por terceiros.Palavra-passe IncorrectaSemente IncorretaInformaçãoIntroduza CSVIntroduza uma transação em brutoEntradasEndereço InválidoQuantia InválidaEndereço Bitcoin InválidoTaxa InválidaValor inválidoFaturaChaveAtalho do teclado: pressione "!" para enviar todas as suas moedas.RótuloSincronização de RótulosRótulos exportadosRótulos importadosRótulos sincronizadosRótulos enviadosLínguaDeixe estes campos em branco se desejar desactivar a encriptação.LimiteCarregar CSVCarregar uma transaçãoChaves Privadas MestrasChave Pública MestraChaves Públicas MestrasMaximizarMensagemMinimizarNomeRedeNunca revele a sua semente. Nunca a introduza num website.Nova contaNovo ContactoNova Palavra-passeNova transação recebida. %(amount)s %(unit)sNova versão disponívelPróximoNão serão apresentadas mais notificações sobre atualizações de versão.Sem sementeNenhuma transação foi encontrada para esta sementeNão está ligadoNão há fundos suficientesNota: contas recém-criadas ficam em estado pendente até que recebam bitcoins.Não serão apresentadas mais atualizações sobre esta atualização.Número de zeros apresentados a seguir ao ponto decimal. Por exemplo, se for definido como 2, "1." será apresentado como "1.00"OKOfflineAbrir ficheiro de rótulosSaídasPalavra-passeA palavra-passe foi atualizada com sucessoAs palavras-passe não correspondemPagar aPagamento enviado.Por favor selecione uma palavra-passe para encriptar as suas chaves da sua carteira.Por favor selecione um servidor.Por favor introduza um rótulo para esta transação para referência futura.Por favor introduza uma lista de saídas.Por favor introduza a sua chave pública mestra.Por favor introduza a sua palavra-passePor favor introduza a semente da sua semente.Por favor relate qualquer falha no github:Por favor reinicie o Electrum para ativar as novas definições de GUIAguarde, por favor...Por favor escreva ou memorize estas %d palavras (a ordem é importante).Preferência guardadaPreferênciasChave privadaChaves privadas exportadas .Processar transação OfflineProtocoloProxySaídas de transação reduzidasCódigo QRCódigo QR guardado para a área de transferênciaCódigo QR guardado para um ficheiroReceberReceber pagamento BitcoinA receberDestinatário dos fundos.Valor recomendadoA recuperação foi bem sucedidaRemover da carteiraMudar de nomeMudar o nome da contaRelatar falhasPedidoQuantia do pedidoRestaurar a carteira a partir da chave pública mestraRestaurar a carteira a partir da sementeRestaurar aliases por http.GuardarLer código QRLer TxQRSementeSelecione 'Cancelar' se estiver offline.Selecione um endereço de receçãoSelecionar um nome de ficheiro para a transaçãoSelecione um ficheiro para o qual serão exportadas as suas chaves privadasSelecione um ficheiro para o qual serão exportadas as transações da sua carteiraSelecione um ficheiro para guardar os seus rótulosSelecionar um servidor manualmenteSelecione onde deseja guardar a sua transação assinadaSelecione que língua deve ser utilizada na interface gráfica (após reiniciar).Selecione a sua transação CSVSelecione o seu ficheiro de transaçãoSelecionar um endereço vai copiá-lo para a área de transferência.EnviarEnviar DeA enviar a transação, por favor aguarde.A enviar a transação, por favor aguarde...ServidorO servidor está atrasado (%d blocos)DefiniçõesMostrarMostrar o HistóricoMostrar FaturaMostrar a janela do código QR e as quantias pedidas para cada endereço. Adicione um item ao menu para pedir um quantia.Mostrar endereços de receçãoMostrar TxQR não assinadoAssinarAssinar a MensagemAssinar a mensagemAssinaturaAssinatura verificadaAssinadoAssinado por:Endereço para assinar:Estado: %d confirmaçõesEstado: AssinadoEstado: Não AssinadoSucessoMudar para o Modo LiteA sincronizar...Endereço alvo:O valor da taxa pode ser decidido livremente pelo remetente. Contudo, transações com taxas baixas podem demorar mais tempo a ser processadas.A quantia vai ser mostrada a vermelho se não tiver fundos suficientes na sua carteira. Note que se tiver congelado alguns dos seus endereços, os fundos disponíveis serão mais baixos que o seu saldo total.O URI bitcoin foi assinado porA descrição não é enviada para o destinatário dos fundos. É guardada no ficheiro da sua carteira e apresentada na aba 'Histórico'.Os seguintes endereços foram adicionadosNão foi possível importar as seguintes entradasA semente foi removida da carteira. Contém as seguintes chaves privadas mestrasOcorreu um problema a enviar a sua transação:Esta blockchain é utilizada para verificar as transações enviadas pelo servidor do endereço.Esta é um carteira só de leituraEste plugin pode sincronizar os seus rótulos através de várias instalações do Electrum utilizando uma base de dados remota para guardar os seus dados. Rótulos, transações e endereços são enviados e guardados encriptados no servidor remoto. Este código pode aumentar o tempo de carregamento da sua carteira por alguns micro-segundos uma vez que vai sincronizar os rótulos em cada arranque.Esta semente vai-lhe permitir recuperar a sua carteira no caso de haver uma falha no computador.Esta transação requer uma taxa mais elevada, caso contrário não será propagada pela rede.Esta carteira não está encriptadaEsta carteira foi restaurada offline. Pode conter mais endereços do que aqueles que são apresentados.De / ParaPara desativar a encriptação da carteira, por favor introduza uma nova palavra-passe vazia.Para começar visitePara garantir que guardou corretamente a sua semente, por favor volte a introduzi-la aqui.TransaçãoID da Transação:Taxa da transaçãoRótulo da transaçãoTransação guardada com sucessoEstado da transação:Transação enviada com sucessoTransação enviada com sucesso:Transação não relacionada com a sua carteiraTransação:TxNão foi possível criar csvNão foi possível exportar rótulosNão foi possível importar rótulosNão foi possível analisar a transaçãoNão foi possível ler o ficheiro ou nenhuma transação foi encontradaDescongelarDesconhecidoNão assinadaTransação não assinada criadaA transação não assinada foi guardada para o ficheiro:Utilizar endereços de trocoUtilizadosUtilizar endereços de troco faz com que seja mais difícil para outras pessoas seguir as suas transações.VerificarVersãoVer os detalhes de aliasVer detalhesATENÇÃOATENÇÃO: TODAS as suas chaves privadas são secretas.A semente da carteira foi removida, não é possível assinar.AtençãoAtenção: não utilize isto se o fizer escolher uma palavra-passe mais fraca.QuandoPode introduzir um endereço Bitcoin, um rótulo das sua lista de contactos (uma lista de terminações será proposta), ou um alias (um endereço tipo email que redireciona para um endereço de Bitcoin)Precisará aguardar por 2 confirmações até que o saldo correto seja apresentado e mais endereços sejam criados para essa conta.A sua exportação CSV foi criada com sucesso.A sua Chave Pública Mestra é:Os seus rótulos foram sincronizados.Os seus rótulos foram enviados.Os seus rótulos foram importados deOs seus rótulos foram exportados paraA sua semente é também apresentada como um código QR, caso queira transferi-la para um telemóvel.A sua semente é importante!A sua transação foi enviada.A sua carteira contém chaves importadas. Estas chaves não podem ser importadas a partir da semente.A semente da geração da sua carteira éA sua carteira está encriptada. Utilize este diálogo para modificar a sua palavra-passe.As chaves da sua carteira não estão encriptadasestão congeladosblocoserroda sua lista de contactos?da sua carteira?quantia pendenteenviar %(amount)s para %(address)s?desconhecidosó de leituraElectrum-1.9.7/locale/ro_RO/0000755000000000000000000000000012264174460015533 5ustar rootroot00000000000000Electrum-1.9.7/locale/ro_RO/LC_MESSAGES/0000755000000000000000000000000012264174460017320 5ustar rootroot00000000000000Electrum-1.9.7/locale/ro_RO/LC_MESSAGES/electrum.mo0000644000000000000000000007233012264174460021502 0ustar rootroot00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHœÚH>wJ1¶JèJdKiKpKwK}K‘K¡K°K¸KÈKÎKÝK ìK ÷KLLLL*L=L FL SL`LrL xL‚L ‹L ™L¥L«L±L¹LÀLÈLÊL)ÙL'Mˆ+M´M ÄMÑMÙM7èM N(N /N\L\T\3X\Œ\ ’\\­\½\Ñ\á\;ê\&],]5]F]Z]l]]ˆ]]™]ž]5¦] Ü] è] ô]-^/^E^:J^…^#^ ±^¿^GÐ^8_uQ_Ç_Ê_Ò_ã_ë_!ô_`-` 4`5B`x`?`Ð`$ð`a0a+Oa8{a´aBÃab b #b/bFbbbkbqbŒb”b¯bÅbÍb åbïbcc-c@cGcVcecmc%|c¢c»cØc Ýc êcôc#ùcd8d*Vd1d³dÓd,êd9eQeme3Še¾e Ãe!Íe#ïeff8fAf Ff Sf\`f½fÖféf îf ûf gg%g ,g7gHgagpgg‰gg®gz¾gÃ9hýh€i"œi*¿iXêi-CjNqjÀj<ßjLlTil¾lOÛl +m:5mpmK…m ÑmÝmímýmn.nBn`n$n ¤n±n´nÉnánùn+oAoJoRo[o'xo oµo[ºopp%p 8pEp*Mp xp™p@¡pâp±çp™q.rJr#er‰r©rÈrZærAsYsMysÇsBæs")t LtWt^tdt€t’t¢tÂt Êt¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2014-01-01 20:25-0500 Last-Translator: rdymac Language-Team: Romanian Language: ro_RO MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2); X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/vi_VN/0000755000000000000000000000000012264174460015534 5ustar rootroot00000000000000Electrum-1.9.7/locale/vi_VN/LC_MESSAGES/0000755000000000000000000000000012264174460017321 5ustar rootroot00000000000000Electrum-1.9.7/locale/vi_VN/LC_MESSAGES/electrum.mo0000664000175000017500000007275012264174460023255 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHkÚH>FJ1…J·JdÓJ8K?KFKLK`KpKK‡K—KK¬K »K ÆKÑK×KßKçKùK L L "L/LAL GLQL ZL hLtLzL€LˆLL—L™L)¨L'ÒLˆúLƒM “M M¨M7ÂM úMN N N'N 8NEN/XN ˆN •N ¢N °NºNcÔN 8O COMO`OgOmOtOzO€O ‘O ŸO­OµO-¾OìOñOPP*P'DPlP~PšPŸP¨P¸P ¿P ÌPØP/áPQ„QžQ ·QÅQÛQ4àQR &R1RBR/TR+„S3°SäSfùS`TGpT*¸T*ãT1U-@U4nU4£UsØU"LW,oWœW²WÅWËWèW ÿW@ XNXhX mX ŽX,šX ÇXÔX$ÙXþXYY *Y'6Y`^YD¿YOZTZhZ|ZƒZ—Z, ZwÍZRE[˜[ª[ ¹[ Å[Ï[å[ì[ \'*\R\j\ˆ\\3”\È\ Î\Ù\é\ù\ ]]T&]{]]Š]›]¯]Á]Ô] Ý]é]ò]÷]5ÿ] 5^A^T^-h^–^¬^:±^ì^8_>_Q_Gh_8°_0é_ `&`.`?` G`!U` w` ˜`£`J¶`a?a^a$~a£aÂa+áa8 bFbBUb˜b ©b µbÁbØb ôbcc"c*c)Ecocvc Žc˜c°cÂcÖcécðcÿcdd%%dKdddd †d “d d#«dÏdêd*e13eee…e,œe9Éeff3:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Vietnamese Language: vi_VN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsmáy chá»§ hoạt độngAdd an optional, mouse keyboard to the password dialog.Äịa chỉAlias:All accountssố tiá»nAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectTình trạngBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:Mô tảDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysLá»—iError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordPhíFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineÄóng băngFromGetting block headers from %d nodes.Goto download pageHideHide used addressesLịch sá»­How do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Sai mật khẩu.Incorrect seedInformationInput CSVInput raw transactionInputsÄịa chỉ không hợp lệ.Số tiá»n không hợp lệÄịa chỉ Bitcoin không hợp lệ.Phí không hợp lệ.Giá trị không hợp lệ.InvoiceKeyKeyboard shortcut: type "!" to send all your coins.NhãnLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageÄể trống những trưá»ng này nếu bạn muốn vô hiệu hoá bảo mật.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeTin nhắn.MinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountLiên lạc má»›i.Mật khẩu má»›i.New transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.không có hạt giốngkhông tìm thấy giao dịch vá»›i hạt giống này.Chưa kết nối.Không đủ kinh phíNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Số không hiển thị sau dấu thập phân.Äồng ý.OfflineOpen labels fileOutputsMật khẩu.Password was updated successfullyMật khẩu không trùng nhau.Trả cho.Thanh toán gá»­i.Vui lòng chá»n mật khẩu để bảo mật khoá cho ví cá»§a bạn.Vui lòng chá»n máy chá»§.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Vui lòng Ä‘iá»n mật khẩuPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionGiao thức.ProxyPruned transaction outputsQR codeQR code saved to clipboardmã QR đã được lưu vào tệp tin.NhậnReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.LưuScan QR codeScan TxQRHạt giốngSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.Gá»­iSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeÄang đồng bá»™...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromÄể vô hiệu hoá bảo mật ví , Ä‘iá»n 1 mật khẩu rá»—ng má»›i.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:txUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundMở đóng băng.UnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Thế hệ ví cá»§a bạn làVí cá»§a bạn đã được bảo mật. Sá»­ dụng há»™p há»™i thoại này để thay đổi mật khẩu.Khoá ví cá»§a bạn chưa được bảo mật.are frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/fr_FR/0000755000000000000000000000000012264174460015511 5ustar rootroot00000000000000Electrum-1.9.7/locale/fr_FR/LC_MESSAGES/0000755000000000000000000000000012264174460017276 5ustar rootroot00000000000000Electrum-1.9.7/locale/fr_FR/LC_MESSAGES/electrum.mo0000664000175000017500000010004512264174460023217 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHmÚHFHJ:JÊJaáJ CKNKVK^KvKˆK —K¡K¸KÁKØKíKLL L !L.LGLaLjLzL‹LšL ¢L°L¹LÉLÚLâLëLôL üL M M4M0SMž„M#N 6NDNLN9\N–NžN¦N·N¿NÏNáN6õN,OBOXO^O%mOw“O PP%P=PEPMPUP]PdP ~P ŒP™P¢P0«PÜP!ãPQ"Q1?Q<qQ®Q"ÍQðQ õQÿQRR -R ;R+GRsRS|RÐRèRüRS/SJSaSvS‰S‡ S5(UD^U£Ut¼U1VUIV-ŸV-ÍV7ûV/3WAcW@¥WÎæW(µY<ÞY ZœfJÛf&gCšlÙl ál1ìl3mRm#Zm ~mŠm“m©m¹m#;n_n|nƒn•n §n±nÆn ÍnÚnðn oo.o6oJo]oŒvoÐp#Ôpœøp*•q4Àqkõq=ariŸr$ s¶.sjåt`Pu#±u[Õu1v]9v—vW¯v ww*w?w%[ww!œw"¾w0áw xx!x%=x%cx$‰xG®x öxy yyA4y"vy™yi¢y zzz;z Mz5WzCz ÑzWÛz3{Ñ9{Š |.–|$Å|)ê|)}->})l}~–}~#3~nW~5Æ~Xü~8U Ž›¡¨ÄÜ#î€ €¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2014-01-01 20:25-0500 Last-Translator: rdymac Language-Team: French Language: fr_FR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); X-Generator: crowdin.net Note : Il est nécessaire d'avoir installé le plugin "exchange rate".Ces paramètres affectent les champs dans l'onglet Envoyerpour créer un compte.%(txs)s transactions reçues. Montant total reçu des nouvelles transactions: %(amount)s %(unit)s&À propos&Fermer&Copier&Créer une transaction&Créer/Restaurer&Documentation&Exporter&Exporter l'historique&Fichier&Depuis un fichier CSV&Depuis un texte CSV&Depuis un fichier&Depuis un texte&Aide&Importer&Étiquettes&Charger une transaction&Clé publique maîtresse&Réseau&Nouveau compte&Nouveau contact&Site officiel&Ouvrir&Mot de passe&Plugins&Clés privées&Signaler un bug&Graine&Envoyer&Thèmes&Outils&Portefeuille+... et le montantUne copie de votre portefeuille a été créée dansUne nouvelle version d'Electrum est disponible :Un frais suggéré est automatiquement ajouté à ce champ. Vous pouvez le changer manuellement. Le frais suggéré augmente avec la taille de la transaction.Détails du compteNom du compteActionsServeurs actifsAjouter un clavier optionnel au dialogue de mot de passe.AdresseAlias :Tous les comptesMontantMontant reçu :Montant envoyé :Montant à envoyer.Etes-vous sûr de bien comprendre ce que vous faites ?Connexion automatiqueConnexion automatiqueSoldeUnité de baseUnité de base de votre portefeuille.Les transactions Bitcoin ne sont généralement pas gratuites. L'expéditeur paye des frais de transaction aux mineurs.Chaîne de blocsDiffuserExportation CSV crééeAnnulerChaîneMonnaieEffacerFermerConfirmer le mot de passeConfirmationsConnexion...TerminalContactsAdresse Bitcoin copiée dans le presse-papiers !CopierCopier l'ID dans le presse-papierCopier dans le presse-papierCopier dans le presse-papierÉchec de la synchronisation des étiquettes : %sÉchec de l'écriture de la transaction dans le fichier : %sCréer un nouveau portefeuilleCréer une transaction non-signéeDateDate : %sServeurs prédéfinisEffacerEffacer l'aliasDérivation :DescriptionDescription de la transaction (facultatif).DétailsSouhaitez-vous restaurer un ancien portefeuille Electrum, ou en créer un nouveau ?Déconnecté du serveurAfficher les zérosSouhaitez-vous supprimerFiniDouble-cliquez sur l'étiquette pour l'éditer.Éditer la descriptionÉditer l'étiquettePlugins d'ElectrumParamètres d'ElectrumElectrum communique avec des serveurs distants pour recevoir les informations sur vos transactions et vos adresses. Tous les serveurs accomplissent la même tâche mais différent par leur composants matériels. Dans la plupart des cas, vous préférerez simplement laisser Electrum choisir un serveur aléatoire ; si vous avez cependant une préférence, choisissez un serveur manuellement.Electrum n'a pas pu trouver de portefeuille existant.Veuillez patienter, Electrum est en train de générer vos adresses.Préférences d'ElectrumElectrum envoie les adresses de votre portefeuille à un serveur, afin de recevoir l'historique de vos transactions.Mise à jour d'ElectrumElectrum n'a pas pu copier le fichier de votre porte-monnaie à l'endroit spécifié.Electrum n'a pas pu exporter vos étiquettes.Electrum n'a pas pu importer vos étiquettes.Electrum n'a pas pu ouvrir votre fichier de transactionElectrum n'a pas pu analyser votre transaction.Electrum n'a pas pu générer une exportation de la clé privée.Electrum n'a pas pu générer une exportation de la transaction.Electrum se concentre sur la rapidité, avec un usage faible en ressources, et la simplification de Bitcoin. Vous n'avez pas besoin d'effectuer des sauvegardes régulières, car votre portefeuille peut être récupéré à partir d'une phrase secrète que vous pouvez mémoriser ou noter sur un papier. Le temps de démarrage est instantané grâce à la connexion à des serveurs performants qui s'occupent des parties les plus compliquées du système Bitcoin.Entrez une adresse Bitcoin ou un contactEntrez un nom de fichier pour la copie de votre portefeuilleEntrez un nouveau nom de fichierEntrez les clés privéesErreurErreur: le plugin n'a pas pu être affichéErreur: signature erronéeQuitter ElectrumRévéler une seule clé privée peut compromettre votre portefeuille entier !Le mot de passe n'a pas pu être mis à jourFraisFrais par kilobyte de la transactionLe fichier existeFormat: adresse, montant. Un résultat par ligneBloquerDeRécupération des en-têtes des blocs depuis %d nÅ“uds.Aller à la page de téléchargementCacherCacher les adresses utiliséesHistoriqueComment souhaitez-vous vous connecter à un serveur :Si la connexion automatique est activée, Electrum choisira toujours un serveur dont la chaîne de blocs est la plus longue.Si elle est désactivée, Electrum vous préviendra au cas où votre serveur est en retard.Si jamais vous avez besoin de restaurer votre portefeuille à partir de sa graine, ces clés seront perdues.Ignorer toutes les versionsIgnorer cette versionImporterImporter les clés privéesImportéeLes clés importées ne peuvent pas être recouvertes depuis la graine.De plus, Electrum se connecte à plusieurs noeuds pour télécharger les en-têtes des blocs et trouver la chaîne de blocs la plus longue.En particulier, n'utilisez PAS les services d'échange de clés privées ("redeem private key") offerts par des partis tierces.Mot de passe incorrectGraine incorrecteInformationEntrer un CSVEntrer une transaction bruteEntréesAddresse invalideMontant invalideAdresse Bitcoin invalideFrais invalidesValeur invalideFactureCléRaccourci clavier: entrez "!" pour envoyer tous vos Bitcoins.EtiquetteSynchronisation des étiquettesEtiquettes exportéesEtiquettes importéesEtiquettes synchroniséesEtiquettes téléverséesLangueLaissez ces champs vides pour désactiver le chiffrement.LimiteCharger un CSVCharger une transactionClés privées maîtressesClé publique maîtresseClés publiques maîtressesMaximiserMessageMinimiserNomRéseauNe divulguez jamais votre graine. Ne la tapez jamais sur un site web.Nouveau compteNouveau contactNouveau mot de passeNouvelle transaction reçue. %(amount)s %(unit)sNouvelle version disponibleSuivantLes notifications à propos de mises à jour de versions ne seront plus affichées.Pas de graineAucune transaction trouvée pour cette graineNon connectéFonds insuffisantsLes nouveaux comptes sont mis 'en attente' jusqu'à ce qu'ils reçoivent des Bitcoins.Les notifications à propos de cette mise à jour ne seront plus affichées.Nombre de zéros affichés après la virgule. Par exemple, si 2 est choisi, "1." sera affiché comme "1.00"OKHors-ligneOuvrir le fichier des étiquettesSortiesMot de passeLe mot de passe a été actualisé avec succèsLes mots de passe ne correspondent pasPayer àPaiement envoyé.Veuillez choisir un mot de passe pour encrypter les clés de votre portefeuille.Veuillez choisir un serveur.Veuillez saisir une étiquette pour cette transaction afin de la retrouver plus tard.Veuillez entrer une liste de sorties.Veuillez entrer votre clé publique maîtresse.Veuillez entrer votre mot de passeVeuillez entrer votre graine de portefeuilleMerci de rapporter tout bug en tant que problème sur GitHub :Veuillez redémarrer Electrum pour activer les nouveaux paramètres du GUIMerci de patienter...Veuillez écrire ou mémoriser ces %d mots (l'ordre est important).Préférence enregistréePréférencesClé privéeClés privées exportéesTraiter une transaction hors-ligneProtocoleServeur mandataireSorties de la transaction élaguéeCode QRCode QR enregistrée dans le presse-papiersCode QR enregistrée dans le fichierRecevoirRecevoir un paiement BitcoinRéceptionRécepteur des fondsValeur recommandéeRestauration achevée avec succèsSupprimer du portefeuilleRenommerRenommer le compteRapporter des bugsRequêteDemander le montantRestaurer le portefeuille depuis la clé publique maîtresseRestaurer le portefeuille depuis la graineRécupérer les alias en utilisant HTTP.SauvegarderScanner le code QRScanner le TxQRGraineSélectionnez "Annuler" si vous êtes hors-ligne.Sélectionnez une adresse de réceptionSélectionnez un nom de fichier pour la transactionSélectionnez un fichier vers lequel exporter vos clés privéesSélectionnez un fichier vers lequel exporter les transactions de votre portefeuilleSélectionnez un fichier pour sauvegarder vos étiquettesSélectionnez un serveur manuellementSélectionnez un endroit où sauvegarder votre transaction signéeSélectionnez quel langue est utilisée dans le GUI (après redémarrage).Sélectionnez le CSV de transaction(s)Sélectionnez votre fichier de transactionSélectionner un adresse la copiera dans votre presse-papiers.EnvoyerEnvoyer deTransaction en cours d'envoi, merci de patienter.Transaction en cours d'envoi, merci de patienter...ServeurLe serveur est en retard (%d blocs)ParamètresAfficherAfficher l'historiqueMontrer FactureAfficher la fenêtre du code QR et les montants demandés pour chaque adresse. Ajoutez un objet au menu pour demander un montant.Afficher les adresses de réceptionAffichier le TxQR non signéSignerSigner le messageSigner le messageSignatureSignature vérifiéeSignéSigné par :Adresse pour signer :Statut : %d confirmationsStatut : SignéStatut : Non signéSuccèsPasser au mode LiteSynchronisation...Adresse de destination :Le montant de frais peut être librement choisi par l'envoyeur. Cependant, les transactions avec des frais bas sont plus longues à traiter.Le montant sera affiché en rouge si vos fonds sont insuffisants dans votre portefeuille. Notez que si vous avez gelé quelques adresses, les fonds disponibles seront moindre par rapport à votre solde total.L'URI Bitcoin a été signée par :La description n'est pas envoyée au récepteur des fonds. Elle est stockée dans le fichier de votre portefeuille, et affichée dans l'onglet "Historique".Les adresses suivantes ont été ajoutéesLes entrées suivantes n'ont pas pu être importéesLa graine a été supprimée de votre portefeuille. Elle contient les clés publiques maîtresses suivantesIl y a eu un problème lors de l'envoi de votre transaction :La chaîne de blocs est utilisée afin de vérifier les transactions envoyées par le serveur d'adresses.Ceci est un portefeuille spectateur.Le plugin peut synchroniser vos étiquettes sur plusieurs installations d'Electrum en utilisant une base de données distante pour sauvegarder vos données. Les étiquettes, les transactions et les adresses sont toutes encryptées avant l'envoi et sont gardées encryptées sur le serveur distant. Ce code peut augmenter la charge sur votre portefeuille de quelques microsecondes car il synchronisera les étiquettes à chaque démarrage.Cette graine vous permettra de restaurer votre portefeuille en cas d'une défaillance de votre ordinateur.Cette transaction requiert un frais plus élevé, où elle ne sera pas propagée par le réseau.Ce portefeuille n'est pas encryptéCe portefeuille a été restauré hors-ligne. Il peut contenir plus d'adresses qu'affiché.À / DePour désactiver l'encryption du portefeuille, laissez le champ du nouveau mot de passe vide.Pour commencer, visitezPour s'assurer que vous avez bien sauvegardé votre graine, merci de la réécrire ici.TransactionID de la transaction :Frais de transactionEtiquette de la transactionTransaction sauvegardée avec succèsStatut de la transaction :Transaction envoyée avec succèsTransaction envoyée avec succès:Transaction sans rapport avec votre portefeuilleTransactionTxImpossible de créer le CSVImpossible d'exporter les étiquettesImpossible d'importer les étiquettesImpossible de traiter la transactionImpossible de lire le fichier, ou aucune transaction n'a été trouvéeDébloquerInconnuNon signéTransaction non signée crééeLa transaction non signée a été sauvegardée dans le fichier :Utiliser les adresses de monnaie :UtiliséUtiliser les adresses de monnaie rend le suivi de vos transactions par des partis tierces plus difficile.VérifierVersionVoir les détails de l'aliasVoir les détailsATTENTIONATTENTION : TOUTES vos clés privées sont secrètes.La graine du portefeuille a été supprimée, impossible de signer.AttentionAttention : ne pas utiliser ceci si cela vous fait choisir un mot de passe plus faible.QuandVous pouvez entrer une adresse Bitcoin, une étiquette depuis votre liste de contacts (une liste de complétion sera proposée), ou un alias (adresse semblabe à un email qui redirige vers une adresse Bitcoin)Vous devrez attendre 2 confirmations jusqu'à ce que le solde correct soit affiché et que plus d'adresses soient créées pour ce compte.L'exportation CSV a été créé avec succès.Votre clé publique maîtresse est :Vos étiquettes ont été synchronisées.Vos étiquettes ont été téléversées.Vos étiquettes ont été importées depuis :Vos étiquettes ont été exportées versVotre graine est également affiché comme un code QR, au cas où vous souhaiteriez la transférer à un téléphone portable.Votre graine est importante !Votre transaction a été envoyée.Votre portefeuille contient des clés importées. Ces clés ne peuvent pas être recouvertes depuis la graine.La graine de génération de votre portefeuille est :Votre portefeuille est encrypté. Utilisez ce dialogue pour modifier votre mot de passe.Les clés de votre portefeuille ne sont pas encryptées.sont geléesblocserreurde votre liste de contacts?de votre portefeuille ?compte en attenteenvoyer %(amount)s à %(address)s ?inconnuspectateurElectrum-1.9.7/locale/es_ES/0000755000000000000000000000000012264174460015511 5ustar rootroot00000000000000Electrum-1.9.7/locale/es_ES/LC_MESSAGES/0000755000000000000000000000000012264174460017276 5ustar rootroot00000000000000Electrum-1.9.7/locale/es_ES/LC_MESSAGES/electrum.mo0000664000175000017500000007603612264174460023233 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHoÚHFJJ9‘JËJoâJRKfKnKvKŠK›K «KµKÉKÒKåKöK LL L #L.LCL[L `LnL ~L‹L ’L ŸL­L¾LÎL×LßL èLöLÿLM1M0FMwMN+N?NHNH[N ¤N¯N¶NÈNÑNãNôN.O6O PO^O dOpO„‹OP "P-PDPMPTP[PcPjP€P PP ¥P6¯PæPíPQQ$5Q6ZQ‘Q¥QÃQÉQÒQéQòQ R R+RFR€ORÐR êRøR S0SBSVSfSS“S2«T;ÞTUu3U©UWÄU-V-JV5xV-®VBÜV1WQW+ßX/ Y$;Y`Y~Y)„Y®YÄYGÖYZ >Z)HZrZ4„Z¹ZÂZ0ÅZöZ[[ 5['?[sg[LÛ[Y(\‚\ž\´\½\ Ö\>à\x]V˜]ï]^ ^&^5^R^[^p^ƒ^ ^¯^¿^Æ^CÌ^__1_F_[_s_…_<Œ_É_ Ñ_Ü_ð_ ` ` :`D` L`V`]`?a` ¡`®`½`0Ï`a a;$a `a:la §a´aWÎaC&bujbàb èböbc c%%cKcic qcFcÆcXåc+>d/jd%šd Àd,ádJeYeIne¸eÍe Õeãeÿe f'f!-f Of&Zf!f£f«fÀfÈfäföf g #g-g>g OgYg4lg"¡g Ägågíghh-h"Ih/lh-œh9Êh&i +i0LiG}i!Åi%çi8 jFj Mj(Zj+ƒj¯j(¸jájéjñjk‰kk»k×kÞkíkükll l'l;lUlelxl€l•l¦l›ºlÅVm%nˆBn+Ën1÷n[)o+…ok±o$pƒBpRÆqTrnr\Œr érRórFs\Zs ·sÄsÛsøs"t4t!Ot"qt*”t ¿tÍtÐt)ðt)u+DuKpu ¼u Èu Ôußu6þu5vPv_Vv ¶vÀvÉv æv óv4ÿv%4w ZwHfw¯wÕ·wx+y;y%Yyy$žy#ÃyiçyQz mz_Žz%îzH{+]{‰{›{£{©{Ã{Ò{ ã{ | |¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Spanish Language: es_ES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.net Nota: Esto requiere que el complemento "Exchange rates" sea instalado.Estas opciones afectan a los campos en la pestaña Enviarpara crear una cuenta.%(txs)s nuevas transacciones recibidas. Cantidad total recibida en las nuevas transacciones %(amount)s %(unit)s&Acerca de Electrum&Cerrar&Copiar&Crear transacción&Crear/Restaurar&Documentación&Exportar&Exportar Historial&Archivo&Desde archivo CSV&Desde texto CSV&Desde archivo&Desde texto&Ayuda&Importar&Etiquetas&Cargar transacción&Llave Pública Maestra&Red&Nueva cuenta&Nuevo contacto&Web oficial&Abrir&Contraseña&Complementos&Llaves privadas&Reportar error&Semilla&Enviar&Estilos&Herramientas&Cartera+... y una cantidadUna copia del archivo de tu cartera fue creado enUna nueva versión de Electrum está disponible:Una tasa recomendada es añadida automáticamente a este campo. Puede cambiarla. La tasa recomendada aumenta proporcionalmente al tamaño de la transacción.Detalles de la CuentaNombre de la cuentaAccionesServidores activosOpcionalmente, añade un teclado virtual para la ventana de contraseña.DirecciónAlias:Todas las cuentasCantidadCantidad recibidaCantidad enviadaCantidad a enviar.¿Estás seguro de que entiendes lo que haces?Conectar automáticamenteAuto conectarSaldoUnidad baseUnidad base de tu cartera.Las transacciones de bitcoin por lo general no son gratuitas. Una tasa por la transacción es pagada por el remitente de los fondos.Cadena de bloquesTransmitirCSV creado y exportadoCancelarCadenaCambioLimpiarCerrarConfirmar contraseñaConfirmacionesConectando...ConsolaContactosTu dirección Bitcoin ha sido copiada al portapapeles!CopiarCopiar ID al portapapelesCopiar al portapapelesCopiar al portapapelesNo se pudo sincronizar las etiquetasNo se puedo escribir la transacción en el archivo: %sCrear nueva carteraCrear transacción sin firmarFechaFecha %sServidores por defectoEliminarEliminar aliasDerivaciónDescripciónDescripción de la transacción (opcional).Detalles¿Has usado Electrum anteriormente y quieres restaurar una cartera previa o es la primera vez y quieres crear una nueva cartera?Desconectado del servidorMostrar ceros¿Quieres eliminarHechoHaz doble click sobre la etiqueta para editarla.Editar descripciónEditar etiquetaComplementos de ElectrumAjustes de ElectrumElectrum se comunica con servidores remotos para tomar la información sobre tus transacciones y direcciones. Todos los servidores cumplen el mismo propósito, sólo se diferencian en los equipos informáticos usados. Aunque si lo prefieres puedes elegir un servidor manualmente.Electrum no puede encontrar una cartera existente.Electrum está generando tus direcciones, por favor espera.Preferencias de ElectrumElectrum envía las direcciones de tu cartera a un único servidor, para poder recibir tu historial de transacciones.Actualización de ElectrumElectrum no ha podido copiar el archivo de tu cartera en la localización especificada.Electrum no ha podido exportar tus etiquetas.Electrum no ha podido importar tus etiquetas.Electrum no a podido abrir tu archivo de transacciónElectrum no a podido analizar tu transacciónElectrum no a podido reproducir una llave de exportación privada.Electrum no ha podido exportar tus transacciones.Electrum se enfoca en la rapidez, con poco uso de los recursos y simplificando Bitcoin. No es necesario que hagas copias de seguridad regulares, ya que tu cartera puede ser restaurada con la frase secreta que has memorizado o escrito en papel. El tiempo de inicio es instantáneo porque opera en conjunto con servidores de alto rendimiento que manejan la parte más complicada del sistema Bitcoin.Introduce una dirección Bitcoin o contactoIntroduce un nombre para la copia de tu carteraIntroduce un nuevo nombre de archivoIntroduce las llaves privadasErrorError: no se puede mostrar el complementoError: firma erróneaSalir de ElectrumAl exponer una sola llave privada podrías comprometer toda tu cartera!Fallo al actualizar contraseñaComisiónComisión por kilobyte de la transacciónArchivo existenteFormato: dirección, cantidad. Una salida por líneaCongelarDeRecibiendo las cabeceras de bloques de %d nodos.Ir a la página de descargaOcultarOcultar direcciones usadasHistorialCómo quieres conectarte a un servidor:Si auto conectar está habilitado, Electrum siempre usará un servidor que está en la cadena de bloques más largaSi está deshabilitado, Electrum te avisará si el servidor está demorando.Si alguna vez necesitas restaurar tu cartera desde su semilla, estas llaves se perderán.Ignorar todas las versionesIgnorar esta versiónImportarImportar llaves privadasImportadoLas llaves importadas no se pueden recuperar desde la semilla.Además, Electrum se conecta a varios nodos para poder descargar las cabeceras y buscar la cadena de bloques más larga.En particular, NO USES servicios para 'canjear llave privada' propuestos por terceros.Contraseña incorrectaSemilla incorrectaInformaciónIntroducir CSVTransacción pura de entradaEntradasDirección inválidaCantidad inválidaDirección bitcoin inválidaTasa inválidaValor inválidoReciboLlaveAcceso directo de teclado: teclea "!" para enviar todos tus fondos.EtiquetaEtiquetas SincronizadasEtiquetas exportadasEtiquetas importadasEtiquetas sincronizadasEtiquetas subidasIdiomaDeje estos campos en blanco si quiere desactivar el cifrado.LímiteCargar CSVCargar transacciónLlaves Privadas MaestrasLlave Pública MaestraLlaves Públicas MaestrasMaximizarMensajeMinimizarNombreRedNunca reveles tu semilla. Nunca la escribas en una página web.Nueva CuentaNuevo contactoNueva contraseñaNueva transacción recibida. %(amount)s %(unit)sNueva versión disponibleSiguienteNo se mostrarán más notificaciones sobre actualizaciones.Sin semillaNo se ha encontrado ninguna transacción para esta semillaDesconectadoNo hay fondos suficientesNota: Las cuentas recientemente creadas están "pendientes" hasta que reciban bitcoins.Notificaciones sobre esta actualización no se mostrarán otra vez.Número de ceros mostrados tras la coma decimal. Por ejemplo, si está configurada a 2, "1," se mostrará como "1,00"AceptarSin conexiónAbrir archivo de etiquetasSalidasContraseñaContraseña actualizada correctamenteLas contraseñas no coincidenPagar aPago enviado.Por favor, elija una contraseña para cifrar las llaves de su cartera.Por favor, escoja un servidor.Por favor introduce una etiqueta para esta transacción para identificarla en el futuro.Por favor, introduzca una lista de salidas.Por favor, introduce tu Llave Pública Maestra.Por favor, introduzca su contraseña.Por favor, introduce tu semilla.Por favor reporta cualquier error en github:Por favor reinicie Electrum para activar los nuevos ajustes de la interfazEspere, por favor...Por favor, escribe o memoriza estas %d palabras (el orden es importante.)Preferencia guardadaAjustesLlave privadaLlaves privadas exportadas.Procesar transacción offlineProtocoloProxySalidas reducidas de transacciónCódigo QRCódigo QR guardado en el portapapelesCódigo QR guardado en el archivoRecibirRecibir pago BitcoinRecibirDestinatario de los fondos.Valor recomendadoRestauración exitosaEliminar de la carteraRenombrarRenombrar cuentaReportar ErroresSolicitudSolicitar cantidadRestaurar la cartera desde la Llave Pública MaestraRestaurar cartera desde la semillaRecuperar los alias usando http.GuardarEscanear código QREscanear QR de TxSemillaSelecciona "Cancelar" si estás desconectado.Selecciona una dirección entranteSelecciona un nombre de archivo de transacciónSelecciona donde exportar tus claves privadasSelecciona donde exportar las transacciones de tu carteraSelecciona donde guardar tus etiquetasSeleccionar servidor manualmenteSelecciona donde guardar tu transacción firmadaSeleccione cual idioma es usado en la interfaz (después de reiniciar).Selecciona tu CSV de transacciónSelecciona tu archivo de transacciónSelecciona una dirección para copiarla al portapapeles.EnviarEnviar DesdeEnviando transacción, por favor espera.Enviando transacción, espere, por favor...ServidorEl servidor está demorando (%d bloques)AjustesMostrarMostrar HistorialMostrar FacturaMostrar la ventana del código QR y cantidades solicitadas para cada dirección. Añade una opción al menú para solicitar una cantidad.Mostrar direcciones entrantesMostrar QR de Tx sin firmarFirmarFirmar MensajeFirmar mensajeFirmaFirma verificadaFirmadoFirmado porDirección firmanteEstado: %d confirmacionesEstado: FirmadoEstado: Sin firmarVeiksmeCambiar al modo LiteSincronizando...Dirección objetivoLa cantidad de la tasa puede ser decidida libremente por el remitente. Sin embargo, las transacciones con tasas bajas tardan más tiempo en ser procesadas.La cantidad será mostrada en rojo si no tiene suficientes fondos en su cartera. Recuerde que si ha congelado alguna de sus direcciones, los fondos disponibles serán inferiores a su balance total.El enlace URI bitcoin fue firmado porLa descripción no es enviada al destinatario de los fondos. Se guarda en su archivo de cartera y se muestra en la pestaña 'Historial'.Las siguientes direcciones fueron añadidasLas siguientes entradas no se han podido importarLa semilla ha sido removida de la cartera. Contiene las siguientes Llaves Privadas MaestrasHubo un problema al enviar tu transacción:Esta cadena de bloques es usada para verificar las transacciones enviadas por el servidores de direcciones.Esta es una cartera de sólo lecturaEste complemento puede sincronizar tus etiquetas en las múltiples instalaciones de Electrum usando una base de datos remota para guardar tu información. Las etiquetas, transacciones y direcciones son enviadas y almacenadas cifradas en el servidor. Este código puede incrementar el tiempo de inicio de tu cartera unos microsegundos ya que se sincronizará las etiquetas en cada inicio.Esta semilla le permitirá recuperar su cartera en caso de un fallo del ordenador.Esta transacción requiere una comisión más alta, o no será propagada por la red.Esta cartera no está cifradaEsta cartera fue restaurada sin conexión. Puede contener más direcciones de las mostradas.Para / DePara desactivar el cifrado de la cartera, introduzca una contraseña nueva vacía.Para empezar visitaPara estar seguros de que has guardado correctamente tu semilla, por favor escríbela aquí.TransacciónID de la transacción:Comisión de la transacciónEtiqueta de transacciónTransacción guardada exitosamenteEstado de la transacción:Transacción enviada exitosamenteTransacción enviada exitosamente:Transacción no relacionada con tu carteraTransacción:TxNo ha sido posible crear el CSVNo ha sido posible exportar las etiquetasNo ha sido posible importar las etiquetasNo ha sido posible analizar la transacciónNo ha sido posible leer el archivo o no fue encontrada ninguna transacciónDescongelarDesconocidoSin firmarTransacción sin firmar creadaLa transacción sin firmar fue guardada en el archivo:Usar direcciones de cambioUsadaEl uso de direcciones de cambio dificulta que otras personas puedan rastrear sus transacciones.VerificarVersiónVer detalles del pseudónimoVer detallesPRECAUCIÓNPRECAUCIÓN: TODAS tus llaves privadas son secretas.Cartera sin semilla, no puede firmar.PrecauciónPrecaución: no uses esto si te hace elegir una contraseña más débil.CuándoPuede introducir una dirección de bitcoin, una etiqueta de su lista de contactos (se desplegará una lista para autocompletar), o un pseudónimo (una dirección estilo email que redirige a una dirección Bitcoin)Necesitarás esperar 2 confirmaciones hasta que el balance correcto sea mostrado y más direcciones sean creadas para esa cuenta.Tu archivo CSV ha sido creado exitosamente.Tu Llave Pública Maestra es:Tus etiquetas han sido sincronizadas.Tus etiquetas han sido subidasTus etiquetas han sido importadas deTus etiquetas han sido exportadas aTu semilla también es mostrada como un código QR, en caso de querer transferirla a un teléfono móvil.¡Tu semilla es importante!Tu transacción ha sido enviada.Tu cartera contiene llaves importadas, Estas llaves no pueden ser recuperadas desde tu semilla.Su semilla para generar la cartera esSu cartera está cifrada. Use este diálogo para cambiar su contraseña.Las llaves de su cartera no están cifradasestán congeladosbloqueserrorde tu lista de contactos?de tu cartera?cuenta pendienteenviar %(amount)s a %(address)s?desconocidosólo lecturaElectrum-1.9.7/locale/ru_RU/0000755000000000000000000000000012264174460015547 5ustar rootroot00000000000000Electrum-1.9.7/locale/ru_RU/LC_MESSAGES/0000755000000000000000000000000012264174460017334 5ustar rootroot00000000000000Electrum-1.9.7/locale/ru_RU/LC_MESSAGES/electrum.mo0000664000175000017500000011723312264174460023264 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌH¹ÚH|”JYK6kKy¢KL3LCL$YL(~L§LÀLÐL ïLùLM%M5M HM VM dM(pM)™M ÃMÍMèM N$N 4NBNRN%qN—NN ±N»NÓNäNæNCøN2€V¿V ÈV&ÕVüV! W-WGWDXWWå´W*šXÅX ãX YlY!~Y Y¼YÔYðYP\XS\¬\®È\w]Š•]N ^Lo^T¼^O_Wa_O¹_ã `7íbP%c-vc&¤c Ëc?Øc-dFd‡^d1æde<)efeI„eÎeãeFèe5/f ef:rf­fD¼fÑgqÓgªEh,ðh,iJi2ei˜ie³iÝjª÷j¢kÀkÖkëk%ük"l+lGl#cl.‡l!¶lØlálmêl Xm%cm'‰m%±m+×mn!nt*n Ÿnªn'Án*én(o*=oho}oo¡o¨ot±o&p@pZpErp(¸p áp{îpjqEyq¿q'Ùq”r{–rãsösûs" t /t :t,Gt$tt™t ®tˆÏt4Xu‰uAvUYv8¯v;èvV$w…{w+xi-x%—x½xÐx5æx6ySydy6~y µy9¿y&ùy z%3zYz$lz+‘z-½z$ëz{)+{(U{ ~{%‹{Y±{1 |==|{| Ž|¯|Ë|SÐ|5$}7Z}V’}vé}K`~*¬~b×~{:4¶5ëa!€ƒ€”€P¬€Rý€ P-]‹ž¯ÏÈé0²‚0ゃ%'ƒ%Mƒsƒ‚ƒ ƒ³ƒ&ǃ+îƒ „%;„a„5p„¦„Ą߄€ü…,}‡Úª‡;…ˆAÁˆƒ‰Z‡‰¨â‰@‹Š„ÌŠŒQžÞ1}Žž¯ŽNwe%Ý‘0¦%×ý6‘(T‘8}‘9¶‘Ið‘:’P’&e’;Œ’9È’;“n>“­“ēٓ>ñ“X0”7‰”Á”³Ô”ˆ• ›•@¨•#é• –K–Sj–¾–œÏ– l—1w—橘Q™4â™>š0Vš<‡š<Äš©› «›<Ì›Š œ"”œ‡·œD?„ ™ ¤2±#ä$ž/-ž]ž(rž¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2014-01-01 20:25-0500 Last-Translator: rdymac Language-Team: Russian Language: ru_RU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: crowdin.net Внимание: Ð”Ð»Ñ Ñтого потребуетÑÑ ÑƒÑтановить плагин обменного курÑа.Эти наÑтройки влиÑÑŽÑ‚ на Ð¿Ð¾Ð»Ñ Ð²Ð¾ вкладке Отправкачтобы Ñоздать учётную запиÑÑŒ.Получено %(txs)s новых транзакций. ÐžÐ±Ñ‰Ð°Ñ Ñумма транзакций: %(amount)s %(unit)s&О программе&Закрыть&Копировать&Создать транзакцию&Создать/ВоÑÑтановитьДокументациÑ&ЭкÑпорт&ЭкÑпорт иÑтории&Файл&Из файла CSV&Из текÑта CSVИз файла&Из текÑта&Помощь&Импорт&Метки&Загрузить транзакцию&Публичный маÑтер-ключ&Сеть&Ðовый аккаунт&Ðовый контакт&Официальный Ñайт&Открыть&Пароль&Плагины&Приватные ключиСообщить о &проблеме&Seed&Отправить&Темы&ИнÑтрументыБумажник+... и ÑÑƒÐ¼Ð¼ÑƒÐšÐ¾Ð¿Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ кошелька была Ñоздана вДоÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Electrum:Предлагаемый размер комиÑÑии автоматичеÑки добавлÑетÑÑ Ð² Ñто поле. Ð’Ñ‹ можете переопределить его. Он увеличиваетÑÑ Ð²Ð¼ÐµÑте Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð¾Ð¼ транзакции.Детали аккаунтаÐазвание аккаунтаДейÑтвиÑÐктивные ÑерверыПоказать виртуальную клавиатуру Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° паролÑ.ÐдреÑПÑевдоним:Ð’Ñе Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ñ‹Ð¡ÑƒÐ¼Ð¼Ð°ÐŸÐ¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ð°Ñ Ñумма:ÐŸÐ¾Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ð½Ð°Ñ Ñумма:Сумма к отправке.Ð’Ñ‹ уверены, что вы понимаете, что делаете?ÐвтоматичеÑкое подключениеÐвтоматичеÑкое подключениеБаланÑВалютаВалюта вашего кошелькаТранзакции Bitcoin обычно не беÑплатны. КомиÑÑÐ¸Ñ Ð·Ð° транзакцию оплачиваетÑÑ Ñ‚ÐµÐ¼, кто переÑылает ÑредÑтва.Цепочка блоковШироковещаниеЭкÑпорт в CSV завершенОтменаЦепочкаИзменениеОчиÑтитьЗакрытьПодтверждение паролÑПодтверждениÑПодключение...КонÑольКонтактыВаш Bitcoin-Ð°Ð´Ñ€ÐµÑ Ñкопирован в буфер обмена!СкопироватьСкопировать ID в буфер обменаСкопировать в буфер обменаСкопировать в буфер обменаÐе удалоÑÑŒ Ñинхронизировать метки: %sÐе удалоÑÑŒ запиÑать транзакцию в файл: %sСоздать новый кошелёкСоздать неподпиÑанную транзакциюДатаДата: %sСерверы по умолчаниюУдалитьУдалить пÑевдонимÐаÑледование:ОпиÑаниеОпиÑание транзакции (не обÑзательно).ПодробноÑтиВы пользовалиÑÑŒ Electrum до Ñтого и хотите воÑÑтановить прежний кошелёк или Ñто Ваш первый раз и Ð’Ñ‹ хотите Ñоздать новый кошелёк?ОтÑоединено от ÑервераОтображать нулиВы хотите удалитьГотовоДвойное нажатие на метке позволÑет вам отредактировать её.Изменить опиÑаниеИзменить меткуПлагины ElectrumÐаÑтройки ElectrumElectrum взаимодейÑтвует Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½Ð½Ñ‹Ð¼Ð¸ Ñерверами, чтобы получить информацию о Ваших транзакциÑÑ… и адреÑах. Ð’Ñе Ñерверы Ñлужат одной цели, но различаютÑÑ Ð² аппаратной чаÑти. Обычно Electrum проÑто выбирает Ñлучайный Ñервер, но еÑли Ð’Ñ‹ предпочитаете определённый Ñервер, не ÑтеÑнÑйтеÑÑŒ выбрать его.Electrum не удалоÑÑŒ найти ÑущеÑтвующий кошелёк.Electrum Ñоздаёт Ваши адреÑа, пожалуйÑта, подождите.ÐаÑтройки ElectrumElectrum отправлÑет адреÑа Вашего кошелька на один из Ñерверов, чтобы получить иÑторию транзакций.Обновление ElectrumElectrum не удалоÑÑŒ Ñкопировать файл вашего кошелька в указанное раÑположение.Electrum не удалоÑÑŒ ÑкÑпортировать ваши метки.Electrum не удалоÑÑŒ импортировать ваши метки.Electrum не удалоÑÑŒ открыть файл ваших транзакцийElectrum не удалоÑÑŒ обработать вашу транзакциюElectrum не удалоÑÑŒ ÑкÑпортировать ваш личный ключ.Electrum не удалоÑÑŒ ÑкÑпортировать транзакцию.Electrum делает Ñтавку на ÑкороÑть, низкое потребление реÑурÑов и упрощение Bitcoin. Вам не нужно регулÑрно делать резервные копии, так как ваш кошелёк может быть воÑÑтановлен из Ñекретной фразы, которую вы можете запомнить или запиÑать на бумаге. СкороÑть запуÑка очень выÑока, так как программа работает в ÑвÑзке Ñ Ð²Ñ‹Ñокопроизводительными Ñерверами, которые берут на ÑÐµÐ±Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ Ñложные чаÑти ÑиÑтемы Bitcoin.Введите Ð°Ð´Ñ€ÐµÑ Bitcoin или контактВведите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ ÐºÐ¾Ð¿Ð¸Ð¸ вашего кошелькаВведите Ð¸Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ файлаВведите личные ключиОшибкаОшибка: не удалоÑÑŒ показать плагинОшибка: Ð½ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑьЗакрыть ElectrumРаÑкрытие только личного ключа может Ñкомпрометировать веÑÑŒ ваш кошелёк!Ðе удалоÑÑŒ обновить парольКомиÑÑиÑКомиÑÑÐ¸Ñ Ð·Ð° килобайт транзакции.Файл ÑущеÑтвуетФормат: адреÑ, Ñумма. Один выход в ÑтрокеЗаморозитьОтПолучение заголовков блоков Ñ %d узлов.Перейти на Ñтраницу загрузкиСкрытьСкрывать иÑпользованные адреÑаИÑториÑКак Ð’Ñ‹ хотите подключатьÑÑ Ðº Ñерверу:ЕÑли включено автоматичеÑкое подключение, Electrum будет вÑегда иÑпользовать Ñервер Ñ Ñамой длинной цепочкой блоков.ЕÑли Ñто отключено, Electrum предупредит ВаÑ, еÑли Ñервер отÑтаёт.ЕÑли вам когда-либо потребуетÑÑ Ð²Ð¾ÑÑтановить ваш кошелёк из его seed, Ñти ключи будут потерÑны.Игнорировать вÑе верÑииИгнорировать Ñту верÑиюИмпортироватьИмпортировать личные ключиИмпортированоИмпортированные ключи невозможно воÑÑтановить из seed'а.Кроме того, Electrum подключаетÑÑ Ðº неÑкольким узлам, чтобы загрузить заголовки блоков и найти Ñамую длинную цепочку блоков.Ð’ чаÑтноÑти, ÐЕ ИСПОЛЬЗУЙТЕ Ñлужбы третьих Ñторон, которые предлагают 'получить личный ключ'.Ðеверный парольÐеверный seedИнформациÑИмпорт CSVВвеÑти raw-транзакциюВводÐеверный адреÑÐÐµÐ²ÐµÑ€Ð½Ð°Ñ ÑуммаÐеверный Ð°Ð´Ñ€ÐµÑ BitcoinÐеверный размер комиÑÑииÐеверное значениеСчётКлючГорÑÑ‡Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°: введите "!" чтобы отправить вÑе Ваши деньги.ÐœÐµÑ‚ÐºÐ°Ð¡Ð¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¼ÐµÑ‚Ð¾ÐºÐœÐµÑ‚ÐºÐ¸ ÑкÑпортированыМетки импортированыМетки ÑинхронизированыМетки загруженыЯзыкОÑтавьте Ñти Ð¿Ð¾Ð»Ñ Ð¿ÑƒÑтыми, еÑли вы хотите отключить шифрование.ЛимитЗагрузить CSVЗагрузить транзакциюПриватные маÑтер-ключиПубличный маÑтер-ключПубличные маÑтер-ключиРазвернутьСообщениеСвернутьИмÑСетьÐикогда не раÑкрывайте Ñвой seed. Ðикогда не вводите его на Ñайте.Ðовый аккаунтÐовый контактÐовый парольПолучены новые транзакции. %(amount)s %(unit)sДоÑтупна Ð½Ð¾Ð²Ð°Ñ Ð²ÐµÑ€ÑиÑÐ”Ð°Ð»ÑŒÑˆÐµÐ£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾Ð± обновлениÑÑ… вÑех верÑий больше не будут отображены.Ðет seed'Ð°Ð”Ð»Ñ Ñтого seed не обнаружены транзакцииÐе подключеноÐедоÑтаточно ÑредÑтвВнимание: новые аккаунты находÑÑ‚ÑÑ 'в ожидании', пока на них не поÑтупÑÑ‚ биткоины.Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾Ð± обновлениÑÑ… Ñтой верÑии больше не будут отображены.КоличеÑтво деÑÑтичных нулей, отображаемых поÑле запÑтой. Ðапример, еÑли указано значение 2, то "1." будет отображатьÑÑ ÐºÐ°Ðº "1.00"ОКÐе в ÑетиОткрыть файл метокВыводПарольПароль уÑпешно обновлёнПароли не ÑовпадаютПолучательПлатёж отправлен.ПожалуйÑта, выберите пароль Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… ключей вашего кошелька.ПожалуйÑта, выберите Ñервер.ПожалуйÑта, введите метку Ð´Ð»Ñ Ñтой транзакции Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² будущем.ПожалуйÑта, введите ÑпиÑок выходов.ПожалуйÑта, введите Ваш публичный маÑтер-ключ.ПожалуйÑта, введите ваш парольПожалуйÑта, введите seed кошелька.ПожалуйÑта, Ñообщайте о любых проблемах на GitHub:ПожалуйÑта, перезапуÑтите Electrum Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ новых наÑтроек интерфейÑа.ПожалуйÑта, подождите...ПожалуйÑта, запомните Ñти %d Ñлов (порÑдок имеет значение).ÐаÑтройки ÑохраненыÐаÑтройкиЛичный ключЛичные ключи ÑкÑпортированы.Обработка оффлайн-транзакцииПротоколПрокÑи-ÑерверСокращённый вывод транзакцийQR-кодQR-код Ñкопирован в буфер обменаQR-код Ñохранён в файлПолучениеПолучить платёж BitcoinПолучениеПолучатель ÑредÑтв.Рекомендуемое значениеУÑпешное воÑÑтановлениеУдалить из кошелькаПереименоватьПереименовать аккаунтСообщение о проблемахЗапроÑÐ—Ð°Ð¿Ñ€Ð°ÑˆÐ¸Ð²Ð°ÐµÐ¼Ð°Ñ ÑуммаВоÑÑтановить кошелёк из публичного маÑтер-ключаВоÑÑтановить кошелёк из seedПолучать пÑевдонимы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ HTTP.СохранитьСканировать QR-кодСканировать TxQRSeedÐажмите "Отмена", еÑли вы не подключены к Ñети.Выберите Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸ÑВыберите Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° транзакцииВыберите файл Ð´Ð»Ñ ÑкÑпорта ваших личных ключейВыберите файл, в который Ñледует ÑкÑпортировать ваши транзакцииВыберите файл Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð²Ð°ÑˆÐ¸Ñ… метокВыбрать Ñервер вручнуюВыберите, куда Ñохранить вашу подпиÑанную транзакциюВыберите, какой Ñзык иÑпользуетÑÑ Ð² интерфейÑе (поÑле перезапуÑка).Выберите CSV Вашей транзакцииВыберите ваш файл транзакцииПри выборе адреÑа он будет Ñкопирован в буфер обмена.ОтправкаОтправить отОтправка транзакции, пожалуйÑта, подождите.Отправка транзакции, пожалуйÑта, подождите...СерверСервер отÑтаёт (%d блоков)ÐаÑтройкиПоказатьПоказать иÑториюПоказать ÑчётПоказывать окно Ñ QR-кодом и запрошенными Ñуммами Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ адреÑа. Добавить Ñлемент меню Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа Ñуммы.Показать адреÑа получениÑПоказать неподпиÑанный TxQRПодпиÑатьПодпиÑать ÑообщениеПодпиÑать ÑообщениеПодпиÑьПодпиÑÑŒ ÑверенаПодпиÑаноПодпиÑано:ПодпиÑывающий адреÑ:СтатуÑ: %d подтвержденийСтатуÑ: ПодпиÑаноСтатуÑ: Ðе подпиÑаноУÑпешноПереключитьÑÑ Ð² лёгкий режимСинхронизациÑ...Целевой адреÑ:Размер комиÑÑии может Ñвободно быть определён отÑылающим. Ðо важно понимать, транзакции Ñ Ð½Ð¸Ð·ÐºÐ¾Ð¹ комиÑÑией могут потребовать больше времени на обработку.Размер будет помечен краÑным, еÑли у Ð²Ð°Ñ Ð½Ðµ будет доÑтаточно ÑредÑтв в кошельке. Помните, что еÑли вы заморозили какие-либо ваши адреÑа, то доÑтупный объем ваших ÑредÑтв может быть меньше чем имеетÑÑ Ð² кошельке.URI биткоина был подпиÑанОпиÑание не будет отправлено получателю. Оно будет Ñохранено в файле вашего кошелька и отображено на вкладке "ИÑториÑ".Следующие адреÑа были добавленыСледующее не удалоÑÑŒ импортироватьSeed был удалён из кошелька. Он включает Ñледующие приватные маÑтер-ключиВозникла проблема при отправке Вашей транзакции:Эта цепочка блоков иÑпользуетÑÑ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ транзакций, которые приÑылает Ñервер адреÑов.Этот кошелёк только Ð´Ð»Ñ Ð½Ð°Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸ÑЭтот модуль позволÑет Ñинхронизировать ваши метки между неÑколькими уÑтановками Electrum Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ удалённой базы данных Ð´Ð»Ñ ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð²Ð°ÑˆÐ¸Ñ… данных. Метки не шифруютÑÑ, в отличие от транзакций и адреÑов. Этот код может увеличить Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ вашего кошелька на неÑколько микроÑекунд, так как будет проводитьÑÑ ÑÐ¸Ð½Ñ…Ñ€Ð¾Ð½Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ðº при каждом запуÑке.Этот seed поможет вам воÑÑтановить ваш кошелёк в Ñлучае проблем Ñ ÐºÐ¾Ð¼Ð¿ÑŒÑŽÑ‚ÐµÑ€Ð¾Ð¼.Эта Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ более выÑокую комиÑÑию, или она не будет раÑпроÑтранена в Ñети.Этот кошелёк не зашифрованЭтот кошелёк был воÑÑтановлен оффлайн. Он может включать больше адреÑов, чем показано.Кому/от ÐºÐ¾Ð³Ð¾Ð”Ð»Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾ÑˆÐµÐ»ÑŒÐºÐ°, задайте новый пароль пуÑтым.Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð°, поÑетитеЧтобы убедитьÑÑ, что Ð’Ñ‹ как Ñледует Ñохранили Ваш seed, пожалуйÑта, введите его.ТранзакциÑИдентификатор транзакции:КомиÑÑÐ¸Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸ÐœÐµÑ‚ÐºÐ° Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ ÑƒÑпешно ÑохраненаСоÑтоÑние транзакции:Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ ÑƒÑпещно Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð°Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ ÑƒÑпешно отправлена:Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð½Ðµ ÑвÑзана Ñ Ð’Ð°ÑˆÐ¸Ð¼ кошелькомТранзакциÑ:ТранзакцииÐе удалоÑÑŒ Ñоздать CSVÐе удалоÑÑŒ ÑкÑпортировать меткиÐе удалоÑÑŒ импортировать меткиÐе удалоÑÑŒ разобрать транзакциюÐе удалоÑÑŒ прочитать файл или не было обнаружено транзакцииРазморозитьÐеизвеÑтноÐе подпиÑаноСоздана неподпиÑÐ°Ð½Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸ÑÐеподпиÑÐ°Ð½Ð½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±Ñ‹Ð»Ð° Ñохранена в файл:ИÑпользовать адреÑа Ð´Ð»Ñ ÑдачиПотраченоИÑпользование адреÑов Ð´Ð»Ñ Ñдачи уÑложнÑет другим людÑм возможноÑть отÑлеживать ваши транзакции.ПроверитьВерÑиÑОтобразить подробноÑти пÑевдонимаПроÑмотреть деталиВÐИМÐÐИЕВÐИМÐÐИЕ: ВСЕ ваши личные ключи Ñекретны.Кошелёк не Ñодержит seed, невозможно подпиÑать.ВниманиеВнимание: не иÑпользуйте Ñту функцию, еÑли из-за неё вы выбираете более Ñлабый пароль.КогдаВы можете указать Bitcoin-адреÑ, метку из вашей адреÑной книги (будет показан ÑпиÑок Ñ Ð°Ð²Ñ‚Ð¾Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸ÐµÐ¼) или пÑевдоним (адреÑ, похожий на Ñл. почту, ÑвÑзанный Ñ Ð°Ð´Ñ€ÐµÑом Bitcoin)Вам придётÑÑ Ð´Ð¾Ð¶Ð´Ð°Ñ‚ÑŒÑÑ Ð´Ð²ÑƒÑ… подтверждений, чтобы отобразилÑÑ Ð²ÐµÑ€Ð½Ñ‹Ð¹ Ð±Ð°Ð»Ð°Ð½Ñ Ð¸ было Ñоздано больше адреÑов Ð´Ð»Ñ Ñтого аккаунта.ЭкÑпортированный файл CSV был уÑпешно Ñоздан.Ваш оÑновной публичный ключ:Ваши метки были Ñинхронизированы.Ваши метки были загружены.Ваши метки были импортированы изВаши метки были ÑкÑпортированы вВаш seed также отображаетÑÑ Ð² виде QR-кода, еÑли вы захотите перенеÑти его на мобильный телефон.Ваш seed - Ñто важно!Ваша Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð±Ñ‹Ð»Ð° отправлена.Ваш кошелёк Ñодержит импортированный ключи. Эти ключи не покрываютÑÑ seed'ом.Seed вашего кошелькаВаш кошелёк зашифрован. ИÑпользуйте Ñто диалоговое окно Ð´Ð»Ñ Ñмены паролÑ.Ключи вашего кошелька не зашифрованызамороженыблокиошибкаиз вашего ÑпиÑка контактов?из вашего кошелька?аккаунт 'в ожидании'отправить %(amount)s на %(address)s?неизвеÑтнотолько Ð´Ð»Ñ Ð½Ð°Ð±Ð»ÑŽÐ´ÐµÐ½Ð¸ÑElectrum-1.9.7/locale/nl_NL/0000755000000000000000000000000012264174460015515 5ustar rootroot00000000000000Electrum-1.9.7/locale/nl_NL/LC_MESSAGES/0000755000000000000000000000000012264174460017302 5ustar rootroot00000000000000Electrum-1.9.7/locale/nl_NL/LC_MESSAGES/electrum.mo0000664000175000017500000007335612264174460023241 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHmÚHDHJFJ ÔJjõJ`K fK qK|KK ¡K ¯K»KÔKÝKîK ýK LL L'L/LALTL]LlLƒL—L L©L ²L ÀLÌL ÒL ÝLçL îLûL ýL2 M.>M•mMN NN&NB6NyNN †N”N›N­N¿N7ÔN O)OFO LO!YO`{O ÜO çOñO PP P#P*P2P HPVPkP sP3}P ±P»PÖPîP"Q.)QXQ!pQ’Q ˜Q¢Q ´QÀQ ÐQ ÜQ0éQR"R°RÉRÚRñR$÷RS 2S?SPS@fS)§T5ÑTU`U|UYŒU*æU*V1Ç\]] )] 4]>]T][]j]z]‘]¬]½]Å]-É]÷] ý]^^(^<^L^CQ^•^›^¤^µ^É^Û^î^ ÷^_ __L_ d_ p_~_-_½_Ó_:Ø_ `)`G` V`Gd`8¬`zå``acaka|a „a!a±a ÑaÜa5ða&b?7bwb$—b¼bÒb+ñb3cQcEmc³c Æc ÑcÝcôcddd;d Cddd ‚dŒd ¤d&®dÕdçdûdee+e:eBe%Qewe—e´e¼e ÌeÖe$Ûeff*9fBdf§fÇf,Þf1 g=gYg7vg ®g ¸g!Âg#äghh-h6h =h JheWh½hÖh éhôh i i+i>i EiPiaizi‰iši¡iµiÑi“ái¡ujkƒ5k"¹k*ÜkXl-`lNŽlÝl<ülX9nT’nçnOo ToA^o oKµo p pp/pAp`ptp’p$±p Öpãpæpûpq+q+Gq sqq‡qq5­qãqþqbr frprxr ”r ¡r*®r Ùr úr@sHspMs¾s.@tot#Št®tÎtítZ ufu~uMžuìu?þu#>v bvmvtvzv–v¨v¸vØv àv¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-27 19:26-0500 Last-Translator: rdymac Language-Team: Dutch Language: nl_NL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.net Opmerking: Dit vereist dat de wisselkoers plugin geïnstalleerd is. Deze instellingen hebben effect op de velden in het tabblad Verzenden aan te melden voor een account.%(txs)s nieuwe transacties ontvangen. Totale bedrag ontvangen in de nieuwe transacties %(amount)s %(unit)s&Over&Afsluiten&Kopiëren&Nieuwe transactie&Nieuw/Herstellen&Documentatie&Exporteren&Geschiedenis exporteren&Bestand&Uit CSV bestand&Uit CSV-tekst&Uit bestand&Uit tekst&Help&Importeren&Labels&Transactie laden&Master Public Key&Netwerk&Nieuw account&Nieuwe contactpersoon&Officiële website&Open&Wachtwoord&Plugins&Private keys&Bug melden&Seed&Verzenden&Thema 's&Extra&Portemonnee+... en bedragEen kopie van uw portemonnee-bestand is gemaakt inEen nieuwe versie van Electrum is beschikbaar:Het aanbevolen bedrag wordt hier automatisch ingevuld, maar je kunt dit aanpassen. Het aanbevolen bedrag groeit mee met de grootte van de transactie.AccountgegevensAccountnaamActiesActieve serversVoegt een schermtoetsenbord toe bij het vragen naar uw wachtwoord.AdresAlias:Alle accountsBedragOntvangen bedrag:Verzonden bedrag:Te verzenden bedrag.Weet je zeker dat je begrijpt wat je aan het doen bent?Automatisch verbinding makenAutomatisch verbinding makenSaldoBasiseenheidBasiseenheid voor uw portemonnee.Bitcoin-transacties zijn meestal niet gratis. De verzendende partij betaalt de transactiekosten.BlockchainBroadcastCSV werd geëxporteerdAnnulerenChainWisselgeldWissenSluitenWachtwoord bevestigenBevestigingenAan het verbinden...ConsoleContactenUw Bitcoin adres werd naar het klembord gekopieerd!KopiërenID naar klembord kopiërenNaar klembord kopiërenNaar klembord kopiërenKan labels niet synchroniseren: %sKan transactie niet naar bestand schrijven: %sMaak nieuwe portemonneeMaak niet-ondertekende transactieDatumDatum: %sStandaard serversVerwijderenVerwijder aliasDerivation:BeschrijvingBeschrijving van de transactie (niet verplicht).DetailsHeeft u Electrum eerder gebruikt en wilt u een vorige portemonnee herstellen of is dit uw eerste keer en wilt u een nieuwe portemonnee maken?Disconnected from serverNullen weergevenWilt u dit verwijderenKlaarDubbelklik om het label te bewerken.Beschrijving bewerkenBewerk labelElectrum PluginsElectrum instellingenElectrum communiceert met externe servers om informatie over jouw transacties en adressen te krijgen. Alle servers hebben hetzelfde doel en verschillen alleen in hardware. In de meeste gevallen wil je gewoon Electrum willekeurige laten kiezen. Heb je een voorkeur, voel je dan vrij om een server handmatig te selecteren.Electrum vond geen bestaande portemonnee.Electrum genereert jouw adressen, gelieve te wachten.Electrum voorkeurenElectrum stuurt uw addressen naar een externe server om uw transactie geschiedenis op te vragen.Electrum updateElectrum was niet in staat uw portemonnee-bestand te kopiëren naar de opgegeven locatie.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactVoer een bestandsnaam in voor de kopie van uw portemonneeVoer een nieuwe bestandsnaam inGeef private keys opFoutFout: kan plugin niet weergevenFout: verkeerde handtekeningElectrum afsluitenExposing a single private key can compromise your entire wallet!Failed to update passwordTransactiekostenTransactiekosten per kilobyte.Bestand bestaatFormaat: adres, bedrag. Een output per regelBlokkerenVanGetting block headers from %d nodes.Goto download pageVerbergenHide used addressesGeschiedenisHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.Deze keys gaan verloren als je je portemonnee wilt herstellen vanaf de seed.Ignore all versionsIgnore this versionImporteerImporteer private keysGeïmporteerdGeïmporteerde sleutels kunnen niet worden hersteld vanaf de seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In het bijzonder, GEBRUIK NOOIT 'redeem private key' diensten.Verkeerd wachtwoordIncorrect seedInformatieInput CSVInput raw transactionInputsOngeldig adresOngeldig bedragOngeldig Bitcoin-adresOngeldige transactiekostenOngeldige waardeInvoiceKeySneltoets: voer "!" in om alles te verzenden.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedTaalLaat deze invoervelden leeg om je portemonnee niet te versleutelen.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeBoodschapMinimizeNameNetworkToon je 'seed' nooit aan anderen. Type deze ook nooit in een andere website.New AccountNieuw contactNieuw wachtwoordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.Geen seedGeen transacties gevonden voor deze seed.Niet verbondenSaldo te laagNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Aantal nullen dat achter de komma wordt weergegeven. Bijvoorbeeld: ingesteld op 2, zal "1." weergegeven worden als "1.00".OKOfflineOpen labels fileOutputsWachtwoordPassword was updated successfullyWachtwoorden komen niet overeenBetaal aanBetaling verzonden.Kies een wachtwoord om uw wallet mee te versleutelen.Kies een server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Voer uw wachtwoord inPlease enter your wallet seed.Please report any bugs as issues on github:Herstart Electrum on de wijzigingen door te voeren.Een momentje alsjeblieft...Schrijf deze %d woorden op of onthoud ze. (De volgorde is belangrijk)Voorkeuren bewaardVoorkeurenPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyGetrimde transactie outputsQR-codeQR-code gekopieerd naar klembordQR Code opgeslagen in bestandOntvangenReceive Bitcoin paymentReceivingOntvanger van het overgemaakte bedrag.Aanbevolen waardeRecovery successfulVerwijder uit portemonneeRenameRename accountReporting BugsRequestVerzoek bedragRestore wallet from master public keyHerstel portemonnee vanuit seedRetrieve aliases using http.OpslaanQR-code scannenScan TxQRSeedKies 'Annuleer' als je offline bent.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelecteer bestand om transactie geschiedenis naartoe te exporterenSelect file to save your labelsSelect server manuallySelect where to save your signed transactionKies de taal die je wilt gebruiken (na herstart).Select your transaction CSVSelect your transaction fileSelecteer een adres om het naar het klembord kopiëren.VerzendenSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsBekijkShow HistoryShow InvoiceToon QR code en hoeveelheid naast elk adres. Voegt ook een optie toe om een bepaald bedrag te vragen.Show Receiving addressesShow unsigned TxQROndertekenOnderteken boodschapOnderteken boodschapHandtekeningSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedGeluktSwitch to Lite ModeBezig met synchroniseren...Target address:De transactiekosten kunnen door de verzender vrij gekozen worden. Echter, transacties met lage kosten zullen minder snel, of niet, verwerkt worden.Het bedrag wordt rood gekleurd indien uw saldo te laag is. Merk op dat uw bestedingsruimte lager kan zijn dan uw totale saldo indien u adressen geblokkeerd hebt.The bitcoin URI was signed byDe beschrijving wordt niet naar de ontvanger verzonden, maar opgeslagen in uw wallet, en weergegeven op het tabblad 'Geschiedenis'.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.Met deze seed kan je later je portemonnee herstellen mocht je computer problemen hebben.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromVoer een leeg wachtwoord in om de versleuteling uit te schakelen.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transactie kostenTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundDeblokkerenUnknownUnsignedUnsigned transaction createdNiet ondertekende transactie is opgeslagen in bestandGebruik wisselgeldadressenUsedHet gebruik van wisselgeldadressen maakt het moeilijker voor derden om uw transacties te traceren.VerifieerVersionDetails van alias weergevenView detailsWAARSCHUWINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WaarschuwingWarning: do not use this if it makes you pick a weaker password.WhenJe kunt een Bitcoin adres, een label van een contactpersoon of een alias (dat op een e-mailadres lijkt) invullenYou will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Uw wallet seed isUw wallet is versleuteld. U kunt hier uw wachtwoord veranderen.Je portemonnee is niet versleuteld.are frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/th_TH/0000755000000000000000000000000012264174460015521 5ustar rootroot00000000000000Electrum-1.9.7/locale/th_TH/LC_MESSAGES/0000755000000000000000000000000012264174460017306 5ustar rootroot00000000000000Electrum-1.9.7/locale/th_TH/LC_MESSAGES/electrum.mo0000644000000000000000000007224112264174460021471 0ustar rootroot00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHeÚH>@J1J±JdÍJ2K9K@KFKZKjKyKK‘K—K¦K µK ÀKËKÑKÙKáKóKL L L)L;L ALKL TL bLnLtLzL‚L‰L‘L“L)¢L'ÌLˆôL}M MšM¢M7±MéMñM øMN N N*N/=N mN zN‡N N™Nc³N O "O,O?OFOLOSOYO_O pO ~OŒO”O-OËOÐOåO÷O P'#PKP]PyP~P‡P—P žP «P ·P/ÃPóP„ûP€Q ™Q§Q½Q4ÂQ÷Q RR$R/6R+fS3’SÆSfÛSBTGRT*šT*ÅT1ðT-"U4PU4…UsºU".W,QW~W”W§W­WÊW áW@ïW0XJX NX oX,{X¨X¯X$´XÙXìXñXY' Y`5YD–YOÛY+Z?ZSZZZnZ,wZw¤ZR[o[‚[ ‘[ [§[½[Ä[Ô[ã[ û[ \\\3!\U\ [\f\v\†\š\ª\;³\ï\õ\þ\]#]5]H]Q]Y]b]g]5o] ¥] ±] ½]-Ê]ø]^:^N^#V^ z^ˆ^G™^8á^u__“_›_¬_´_!½_ß_ö_ ý_5 `A`?Y`™`$¹`Þ`ù`+a8Da}aBŒaÏa àa ìaøab+b4b:bUb]bxbŽb–b ®b¸bÐbâböb ccc.c6c%Eckc„c¡c ¦c ³c½c#Âcæcd*d1Jd|dœd,³d9àde6e3Se‡e Œe!–e#¸eÜeãef f f f\)f†fŸf²f ·f Äf ÑfÛfîf õfgg*g9gJgRgfgwgz‡gÃhÆh€äh"ei*ˆiX³i- jN:j‰j<¨jLåkT2l‡lO¤l ôl:þl9mKNm šm¦m¶mÆmØm÷m n)n$Hn mnzn}n’nªnÂn+Þn ooo$o'Aoio~o[ƒoßoæoîo pp*p Apbp@jp«p±°pbq.äqr#.rRrrr‘rZ¯r s"sMBssB¯s"òs t t't-tIt[tkt‹t “t¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2014-01-01 20:25-0500 Last-Translator: rdymac Language-Team: Thai Language: th_TH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/ta_IN/0000755000000000000000000000000012264174460015505 5ustar rootroot00000000000000Electrum-1.9.7/locale/ta_IN/LC_MESSAGES/0000755000000000000000000000000012264174460017272 5ustar rootroot00000000000000Electrum-1.9.7/locale/ta_IN/LC_MESSAGES/electrum.mo0000664000175000017500000007475012264174460023230 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHmÚH>HJ1‡J¹JdÕJ:KAKHKNKbKrKK‰K™KŸK®K ½K ÈKÓKÙKáKéKûKL L $L1LCL ILSL \L jLvL|L‚LŠL‘L™L›L)ªL'ÔLÉüLÆN ÖNãNIëN75OmO€O ‡O ”O¡O ²OB¿O“P –P £P"°P ÓPÝP%÷P R (R2RERUR[R bRlRC|R0ÀRñRSS-7SeSijSJÔSJTjT'„T¬T¾T ÚTçTFðT7U JU WUcU…|UV„V£V1¼VîVW4 W>W OWZWkW/}W+­X3ÙX Yf"Y‰YG™Y*áY* Z17Z-iZ4—Z4ÌZs["u\,˜\Å\Û\î\ô\] (]@6]w]‘] •] ¶],Â]ï]ö]$û] ^3^8^L^'T^`|^DÝ^O"_r_†_š_¡_µ_,¾_wë_Rc`¶`É` Ø` ä`î`a aa*a Ba Na\ada3haœa ¢a­a½aÍaáaña;úa6bsRsps$s ´sÁsÄsÙsñs t+%tQtZtbtkt'ˆt°tÅt[Êt&u-u5u HuUu*]u ˆu©u@±uòu±÷u©v.+wZw#uw™w¹wØwZöwQxixM‰x×xBöx"9y \ygynytyy¢y²yÒy Úy¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Tamil Language: ta_IN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:இவà¯à®µà®¿à®Ÿà®¤à¯à®¤à®¿à®²à¯ ஒர௠பரிவரà¯à®¤à¯à®¤à®©à¯ˆ கடà¯à®Ÿà®£à®®à¯ பரிநà¯à®¤à¯à®°à¯ˆà®•à¯à®•பà¯à®ªà®Ÿà¯à®®à¯. வேணà¯à®Ÿà¯à®®à¯†à®©à®¿à®²à¯ நீஙà¯à®•ள௠அதை மாறà¯à®±à®¿à®•ொளà¯à®³à®²à®¾à®®à¯. பரிநà¯à®¤à¯à®°à¯ˆà®•à¯à®•படà¯à®Ÿ கடà¯à®Ÿà®£à®®à¯ பரிவரà¯à®¤à¯à®¤à®©à¯ˆà®¯à®¿à®©à¯ வேகதà¯à®¤à¯ˆ அதிகரிகà¯à®•ிறதà¯.Account DetailsAccount nameActionsசெயலà¯à®ªà®Ÿà¯à®•ினà¯à®± சேவையகஙà¯à®•ளà¯Add an optional, mouse keyboard to the password dialog.à®®à¯à®•வரிAlias:All accountsதொகைAmount received:Amount sent:அனà¯à®ªà¯à®ªà®ªà¯à®ªà®Ÿ வேணà¯à®Ÿà®¿à®¯ தொகை.நீஙà¯à®•ள௠எனà¯à®© செயà¯à®•ிறீரà¯à®•ள௠எனà¯à®±à¯ நிசà¯à®šà®¯à®®à®¾à®• பà¯à®°à®¿à®•ிறதா?Auto connectAuto-connectஇரà¯à®ªà¯à®ªà¯ தொகைBase unitBase unit of your wallet.Bitcoin பரிவரà¯à®¤à¯à®¤à®©à¯ˆà®•ள௠பொதà¯à®µà®¾à®• இலவசமானவை அலà¯à®². ஒர௠பரிவரà¯à®¤à¯à®¤à®©à¯ˆ கடà¯à®Ÿà®£à®®à¯ நிதி அனà¯à®ªà¯à®ªà¯à®¨à®°à¯ மூலம௠வழஙà¯à®•பà¯à®ªà®Ÿà®µà¯‡à®£à¯à®Ÿà¯à®®à¯.BlockchainBroadcastCSV Export createdரதà¯à®¤à¯ChainChangeஅழிமூடலà¯à®•டவà¯à®šà¯à®šà¯Šà®²à¯à®²à¯ˆ உறà¯à®¤à®¿à®šà¯†à®¯à¯à®•உறà¯à®¤à®¿à®ªà®Ÿà¯à®¤à¯à®¤à®²à¯à®•ளà¯à®‡à®£à¯ˆà®•à¯à®•à¯à®®à¯...Consoleதொடரà¯à®ªà¯à®•ளà¯Copied your Bitcoin address to the clipboard!Copyஅடையாளதà¯à®¤à¯ˆ இடைநிலை பலகையில௠நகலெடà¯à®•à¯à®•இடைநிலை பலகையில௠நகலெடà¯à®•à¯à®•இடைநிலை பலகையில௠நகலெடà¯à®•à¯à®•Could not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionதேதிDate: %sà®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ சேவையகஙà¯à®•ளà¯à®¨à¯€à®•à¯à®•à¯Delete aliasDerivation:விளகà¯à®•à®®à¯à®‡à®¨à¯à®¤ பரிவரà¯à®¤à¯à®¤à®©à¯ˆà®¯à®¿à®©à¯ விளகà¯à®•ம௠(கடà¯à®Ÿà®¾à®¯à®®à®¾à®©à®¤à¯ அலà¯à®²).விவரஙà¯à®•ளà¯Did you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverசà¯à®´à®¿à®¯à®™à¯à®•ளை காடà¯à®Ÿà¯Do you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/id_ID/0000755000000000000000000000000012264174460015463 5ustar rootroot00000000000000Electrum-1.9.7/locale/id_ID/LC_MESSAGES/0000755000000000000000000000000012264174460017250 5ustar rootroot00000000000000Electrum-1.9.7/locale/id_ID/LC_MESSAGES/electrum.mo0000664000175000017500000007231612264174460023202 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHkÚH>FJ1…J·JdÓJ8K?KFKLK`KpKK‡K—KK¬K »K ÆKÑK×KßKçKùK L L "L/LAL GLQL ZL hLtLzL€LˆLL—L™L)¨L'ÒL¨úL£M ³MÀM ÈM7ÕM NN N(N0N ANNN1lN žN «N¸N ¾NÈNaâN DO OOYOlOrOxOO…O‹O ŸOªO»OÃO-ÊOøOýOP$P6P'PPxPŠP¦P®P·PÆP ÌP ÙP åP ðPQ„QœQ µQÃQÙQ4ÞQR #R.R?R/TR+„S3°SäSfùS`TGpT*¸T*ãT1U-@U4nU4£UsØU"LW,oWœW²WÈWÎWëW X@XQXkX {X œX,¨XÕXÜX$áXYYY2Y':Y`bYDÃYOZXZlZ€Z‡Z›Z,¤ZwÑZRI[œ[¯[ ¾[ Ê[Ô[ê[ñ[\\ (\ 4\B\J\3N\‚\ ˆ\“\£\³\Ç\×\;à\]"]+]<]P]b]u]~]†]]”]5œ] Ò] Þ] ê]-÷]%^;^:@^{^#ƒ^ §^µ^GÆ^8_uG_½_À_È_Ù_á_!ê_ `#` *`58`n`?†`Æ`$æ` a&a+Ea8qaªaB¹aüa b b%bgWgfgwgg“g¤gz´gÃ/hóh€i"’i*µiXài-9jNgj¶j<ÕjLlT_l´lOÑl !m:+mfmK{m ÇmÓmãmómn$n8nVn$un šn§nªn¿n×nïn+ o7o@oHoQo'no–o«o[°o ppp .p;p*Cp npp@—pØp±Ýpq.r@r#[rrŸr¾rZÜr7sOsMos½sBÜs"t BtMtTtZtvtˆt˜t¸t Àt¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Indonesian Language: id_ID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:Biaya yang disarankan akan ditambahkan secara otomatis ke kolom ini. Anda boleh menggantinya. Biaya yang disarankan akan meningkat seiring dengan ukuran data transaksi.Account DetailsAccount nameActionsServer AktifAdd an optional, mouse keyboard to the password dialog.AlamatAlias:All accountsNominalAmount received:Amount sent:Nominal yang akan dikirimkan.Apakah Anda yakin mengerti apa yang Anda lakukan?Auto connectAuto-connectSaldoBase unitBase unit of your wallet.Sebuah transaksi Bitcoin secara umum tidak gratis. Biaya transaksi dibayarkan oleh pengirim dana.BlockchainBroadcastCSV Export createdBatalChainChangeHapusTutupKonfirmasi PasswordKonfirmasiMenghubungkan...ConsoleKontakCopied your Bitcoin address to the clipboard!CopyCopy ID ke ClipboardCopy ke ClipboardCopy ke clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionTanggalDate: %sServer StandarHapusDelete aliasDerivation:KeteranganKeterangan transaksi (opsional).DetilDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverTitik desimalDo you want to removeDoneDouble clicking the label will allow you to edit it.Ubah keteranganUbah labelElectrum PluginsKonfigurasi ElectrumElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameMasukkan private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordBiaya transaksiFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/lv_LV/0000755000000000000000000000000012264174460015535 5ustar rootroot00000000000000Electrum-1.9.7/locale/lv_LV/LC_MESSAGES/0000755000000000000000000000000012264174460017322 5ustar rootroot00000000000000Electrum-1.9.7/locale/lv_LV/LC_MESSAGES/electrum.mo0000664000175000017500000007507612264174460023262 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHÚHBkJ9®JèJSÿJSK XKbKjK€K“K £K¯KÄK ËKÙK èK òK ýK L L L7LTL \LiLyL–LŸL §L²LÈLÜLäLíLõL üLM MM#3M±WM NN ,N6NEGNN”N ¤N¯NµNÆNÙN0ïN O9OROZOjObƒO æOñOùOPPP 'P 1P;POP _PmPuP'~P¦P­PÇPÞP(õP,QKQ"bQ…Q ŒQ—Q¬Q³Q ÉQÕQ&ÞQRŠR¦R¼RËRáR1èRS-S@SSSOiS/¹T-éTUZ-UˆUL U)íU(V.@V)oV;™V3ÕV° W$ºX-ßX Y,YJY RYsYYN¡YðY Z/ZDZ6SZ ŠZ”Z%—Z½ZÝZäZÿZ*[[3[E[UÕ[+\C\ X\b\ \3Œ\sÀ\V4]‹]œ] ­] º]Ç]â]é]ú] ^#^=^Q^a^4j^Ÿ^¨^Â^Ù^ï^_%_F,_s_ z_ˆ_ž_½_Ù_ ø_ ` ` `#`A*` l`x` ‡`/•`Å` Ü`8æ` a,+a XafaG†a9Îaibrb wbb™b b§bÆb Øbãb=úb8cLVc!£c+Åcñc d**dPUd¦dF»de e'e":e!]e e ‰e”e²e ºeÛeõeýe f$fgHg Xgeg)lg –g)·g8ág8h,Sh€h2žhLÑhi;i4[ii ˜i%£i&Éiðiùi j$j,j=jlUjÂjßj újkk/k8k Nk Zkhkk›k°kÇk"Ïkòkl­l¹Âl|mw”m n#-nQQn&£n^Ên#)oAMoJpcÚp>q]Zq¸qOÁqrW*r ‚rŽrŸrµr!Ërír!s"%s(Hs qs~ss™s¹s!ØsEús @t Jt Tt#bt1†t¸t ÒtVÞt 5uAu#Iumu ‚u6u)Çu ñuPÿuPv¿Tvdw"yw%œwÂw ßwxxa5x—x«xWÃxyK;y ‡y ¨y¶y¼yÄyÚyìy$üy !z+z¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-27 19:26-0500 Last-Translator: rdymac Language-Team: Latvian Language: lv_LV MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n!=0 ? 1 : 2); X-Generator: crowdin.net PiezÄ«me: Å im ir nepiecieÅ¡ams instalÄ“t valÅ«tas kursa spraudni.Å ie iestatÄ«jumi iespaido lauciņus sÅ«tīšanas cilnÄ“.reÄ£istrÄ“ties kontam.Saņemtas %(txs)s jaunas transakcijas. KopÄ“jÄ saņemtÄ summa %(amount)s %(unit)s&ParAi&zvÄ“rt&KopÄ“t&Izveidot transakciju&Izveidot/Atjaunot&DokumentÄcija&EksportÄ“t&EksportÄ“t vÄ“sturi&FailsNo CSV &failaNo CSV &tekstaNo &failaNo &teksta&PalÄ«dzÄ«ba&ImportÄ“t&EtiÄ·etes&IelÄdÄ“t transakciju&GalvenÄ publiskÄ atslÄ“ga&TÄ«kls&Jauns konts&Jauns kontakts&OficiÄlÄ tÄ«mekļa vietne&AtvÄ“rt&Parole&Spraudņi&PrivÄtÄs atslÄ“gas&Ziņot par kļūdu&SÄ“kla&SÅ«tÄ«t&TÄ“mas&RÄ«ki&Maciņš+... un summuTika izveidota maciņa kopijaIr pieejama jauna Electrum versija:IeteicamÄ transakcijas komisija tiek automÄtiski pievienota Å¡ajÄ lauciņÄ, jÅ«s varat to pÄrrakstÄ«t. IeteicamÄ komisijas maksa palielinÄs lÄ«dz ar transakcijas izmÄ“ru.Konta informÄcijaKonta nosaukumsDarbÄ«basAktÄ«vie serveriPievienot paroles dialoglodziņam neobligÄtu peles ekrÄntastatÅ«ru.AdreseAizstÄjvÄrds:Visi kontiSummaSaņemtÄ summa:NosÅ«tÄ«tÄ summa:Summa, cik nosÅ«tÄ«t.Vai esat pÄrliecinÄts, ka saprotat, ko darÄt?Savienoties automÄtiskiSavienoties automÄtiskiBilancePamata vienÄ«baMaciņa pamata vienÄ«ba.Bitcoin transakcijas parasti nav bezmaksas. Transakcijas komisiju maksÄ lÄ«dzekļu nosÅ«tÄ«tÄjs.BlokÄ·Ä“deApraideCSV eksports izveidotsAtceltĶēdeAtlikumsNotÄ«rÄ«tAi&zvÄ“rtApstipriniet paroliApstiprinÄjumiSavienojas...KonsoleKontaktiBitcoin adrese iekopÄ“ta starpliktuvÄ“!KopÄ“tKopÄ“t ID uz starpliktuviKopÄ“t uz starpliktuviKopÄ“t uz starpliktuviEtiÄ·eÅ¡u sinhronizÄcija neizdevÄs: %sNeizdevÄs ierakstÄ«t transakciju failÄ: %sIzveidot jaunu maciņuIzveidot neparakstÄ«tu transakcijuDatumsDatums: %sNoklusÄ“juma serveriDzÄ“stDzÄ“st aizstÄjvÄrduIegūšana:AprakstsTransakcijas apraksts (nav obligÄts).SÄ«kÄka informÄcijaVai esat lietojis Electrum jau iepriekÅ¡ un vÄ“laties atjaunot iepriekšējo maciņu vai šī ir pirmÄ reize un vÄ“laties izveidot jaunu?Atvienots no servera.RÄdÄ«t nullesVai vÄ“laties izņemtGatavsDubultklikšķis uz etiÄ·etes, lai rediģētu to.Rediģēt aprakstuRediģēt etiÄ·etiElectrum spraudņiElectrum iestatÄ«jumiElectrum komunicÄ“ ar attÄlinÄtiem serveriem, lai saņemtu informÄciju par transakcijÄm un adresÄ“m. Visi serveri pilda vienu un to paÅ¡u funkciju, atšķiras tikai to aparatÅ«ra. VairumÄ gadÄ«jumu jÅ«s vÄ“laties, lai Electrum automÄtiski izvÄ“las nejauÅ¡u serveri, bet ja vÄ“laties varat arÄ« izvÄ“lÄ“ties citu serveri manuÄli.Electrum neizdevÄs atrast pastÄvoÅ¡u maciņu.Electrum Ä£enerÄ“ adreses, lÅ«dzu, uzgaidiet.Electrum iestatÄ«jumiLai saņemtu transakciju vÄ“sturi, Electrum nosÅ«ta JÅ«su maciņa adreses vienam serverim.Electrum atjauninÄjumsElectrum neizdevÄs iekopÄ“t maciņa failu norÄdÄ«tajÄ atraÅ¡anÄs vietÄ.Electrum neizdevÄs eksportÄ“t etiÄ·etes.Electrum neizdevÄs importÄ“t etiÄ·etes.Electrum neizdevÄs atvÄ“rt transakcijas failuElectrum neizdevÄs analizÄ“t transakcijuElectrum neizdevÄs izveidot privÄtÄs atslÄ“gas eksportu.Electrum neizdevÄs izveidot transakcijas eksportu.Electrum priekÅ¡rocÄ«ba ir Ätrums un zems resursu patÄ“riņš, tas padara Bitcoin lietoÅ¡anu vienkÄrÅ¡u, jums vairs nav jÄveic regulÄra rezerves kopiju veidoÅ¡ana. Maciņu var vienkÄrÅ¡i atjaunot no slepenas frÄzes, kuru var iegaumÄ“t vai pierakstÄ«t uz papÄ«ra. Programmas palaiÅ¡ana ir tÅ«lÄ«tÄ“ja, jo Electrum strÄdÄ savienojumÄ ar augstas veiktspÄ“jas serveriem kuri paveic komplicÄ“tÄkÄs Bitcoin sistÄ“mas darbÄ«bas.Ievadiet Bitcoin adresi vai kontaktuIevadiet faila nosaukumu, lai kopÄ“tu maciņuIevadiet jauno faila nosaukumuIevadiet privÄtÄs atslÄ“gasKļūdaKļūda: nevar attÄ“lot spraudniKļūda: nepareizs parakstsIziet no ElectrumVienas privÄtÄs atslÄ“gas atklÄÅ¡ana var apdraudÄ“t visa maciņa drošību!NeizdevÄs atjaunot paroliKomisijaKomisijas maksa katram transakcijas kilobaitam.Fails eksistÄ“FormÄts: adrese, summa. Viens izvads katrÄ lÄ«nijÄ.IesaldÄ“tNoSaņem bloku galvenes no %d mezgliem.Dodieties uz lejupielÄžu lapuSlÄ“ptSlÄ“pt izmantotÄs adresesVÄ“stureKÄ jÅ«s vÄ“laties savienoties ar serveri:Ja automÄtiskÄ savienoÅ¡anÄs ir ieslÄ“gta Electrum vienmÄ“r izmantos garÄko blokÄ·Ä“di.Ja tas ir atslÄ“gts, Electrum brÄ«dinÄs, ja jÅ«su serveris atpaliek.Ja jums kÄdreiz bÅ«s jÄatjauno Electrum no sÄ“klas, šīs atslÄ“gas tiks zaudÄ“tas.IgnorÄ“t visas versijasIgnorÄ“t Å¡o versijuImportÄ“tImportÄ“t privÄtÄs atslÄ“gasImportÄ“tsImportÄ“tÄs atslÄ“gas nav atjaunojamas no sÄ“klas.TurklÄt, Electrum savienojÄs ar vairÄkiem mezgliem, lai lejupielÄdÄ“tu bloku galvenes no garÄkÄs blokÄ·Ä“des.Jo Ä«paÅ¡i, neizmantojiet 'redeem private key' treÅ¡o puÅ¡u piedÄvÄtos pakalpojumus.Parole nepareizaSÄ“kla nepareizaInformÄcijaIevadÄ«t CSVIevadiet jÄ“lu transakcijuIevadiNederÄ«ga adreseNederÄ«ga summaNederÄ«ga Bitcoin adreseNederÄ«ga komisijas maksaNederÄ«ga vÄ“rtÄ«baFaktÅ«rrēķinsAtslÄ“gaTastatÅ«ras saÄ«sne: "!", lai nosÅ«tÄ«tu visu summu.EtiÄ·eteEtiÄ·eÅ¡u sinhronizÄcijaEtiÄ·etes eksportÄ“tasEtiÄ·etes importÄ“tasEtiÄ·etes sinhronizÄ“tasEtiÄ·etes augÅ¡upielÄdÄ“tasValodaAtstÄjiet Å¡os lauciņus tukÅ¡us, ja vÄ“laties atslÄ“gt Å¡ifrēšanu.LimitsIelÄdÄ“t CSVIelÄdÄ“t transakcijuGalvenÄs privÄtÄs atslÄ“gasGalvenÄ publiskÄ atslÄ“gaGalvenÄs publiskÄs atslÄ“gasMinimizÄ“tZiņojumsMaksimizÄ“tNosaukumsTÄ«klsNekad neizpaudiet sÄ“klu. Nekad neievadiet to tÄ«mekļa vietnÄ“s.Jauns kontsJauns kontaktsJaunÄ paroleSaņemta jauna transakcija. %(amount)s %(unit)sPieejama jauna versijaNÄkamaisPaziņojums par jaunÄm versijÄm vairs netiks rÄdÄ«ts.Nav sÄ“klasÅ ai sÄ“klai nav atrasta neviena transakcijaNav savienotsNav pietiekami daudz lÄ«dzekļuNote: Newly created accounts are 'pending' until they receive bitcoins.Paziņojums par Å¡o atjauninÄjumu vairs netiks rÄdÄ«ts.Nulles pÄ“c decimÄlÄ atdalÄ«tÄja. PiemÄ“ram, ja Å¡is iestatÄ«jums ir 2, "1." tiks attÄ“lots kÄ "1.00"LabiNesaistÄ“AtvÄ“rt etiÄ·eÅ¡u failuIzvadiParoleParole veiksmÄ«gi atjauninÄtaParoles nesakrÄ«tMaksÄt uzMaksÄjums nosÅ«tÄ«ts.LÅ«dzu, izvÄ“lÄ“ties paroli, lai Å¡ifrÄ“tu maciņa atslÄ“gas.LÅ«dzu, izvÄ“lieties serveri.LÅ«dzu, ievadiet etiÄ·eti Å¡ai transakcijai, lai identificÄ“tu to nÄkotnÄ“.LÅ«dzu, ievadiet izvadu sarakstu.LÅ«dzu, ievadiet galveno publisko atslÄ“gu.LÅ«dzu, ievadiet paroliLÅ«dzu, ievadiet maciņa sÄ“klu.LÅ«dzu, ziņojiet par kļūdÄm uz github:LÅ«dzu, pÄrstartÄ“jiet Electrum, lai aktivizÄ“tu jaunos saskarnes iestatÄ«jumusLÅ«dzu, uzgaidiet...LÅ«dzu, pierakstiet vai iegaumÄ“jiet %d vÄrdus (secÄ«ba ir svarÄ«ga).IestatÄ«jums saglabÄtsIestatÄ«jumiPrivÄtÄ atslÄ“gaPrivÄtÄs atslÄ“gas eksportÄ“tas.ApstrÄdÄt nesaistes transakcijuProtokolsStarpnieksApcirsta transakciju vÄ“stureQR kodsQR kods saglabÄts starpliktuvÄ“QR kods saglabÄts failÄSaņemtSaņemt Bitcoin maksÄjumuSaņemÅ¡anaLÄ«dzekļu saņēmÄ“js.IeteicamÄ vÄ“rtÄ«baAtjaunoÅ¡ana veiksmÄ«gaIzņemt no maciņaPÄrdÄ“vÄ“tPÄrdÄ“vÄ“t kontuZiņot kļūdasPieprasÄ«tPieprasÄ«t summuAtjaunot maciņu no galvenÄs publiskÄs atslÄ“gasAtjaunot maciņu no sÄ“klasSaņemt aizstÄjvÄrdus izmantojot http.SaglabÄtSkenÄ“t QR koduSkenÄ“t TxQRSÄ“klaIzvÄ“lieties 'Atcelt', ja esat nesaistÄ“.IzvÄ“lieties saņemÅ¡anas adresiIzvÄ“lieties transakcijas faila nosaukumuIzvÄ“lieties failu, lai eksportÄ“tu privÄtÄs atslÄ“gasIzvÄ“lieties failu, lai eksportÄ“tu maciņa transakcijasIzvÄ“lieties failu, lai saglabÄtu etiÄ·etesIzvÄ“lÄ“ties serveri manuÄliIzvÄ“lieties kur saglabÄt parakstÄ«to transakcijuIzvÄ“lieties, kura valoda tiek izmantota saskarnei (pÄ“c pÄrstartēšanas).IzvÄ“lieties transakciju CSVIzvÄ“lieties transakcijas failuIzvÄ“loties adresi tÄ tiks iekopÄ“ta starpliktuvÄ“.SÅ«tÄ«tSÅ«tÄ«t noSÅ«ta transakciju, lÅ«dzu, uzgaidiet.SÅ«ta transakciju, lÅ«dzu uzgaidiet...ServerisServeris atpaliek (%d blokus)IestatÄ«jumiRÄdÄ«tRÄdÄ«t vÄ“sturiRÄdÄ«t faktÅ«rrēķinuRÄdÄ«t QR koda logu un pieprasÄ«to summu katrai adresei. Pievienot izvÄ“lnes vienumu pieprasÄ«tajai summai.RÄdÄ«t saņemÅ¡anas adresesRÄdÄ«t neparakstÄ«tu TxQRParakstÄ«tParakstÄ«t ziņojumuParakstÄ«t ziņojumuParakstsParaksts pÄrbaudÄ«tsParakstÄ«tsParakstÄ«jis:ParakstÄ«tÄja adrese:Statuss: %d apstiprinÄjumiStatuss: parakstÄ«tsStatuss: neparakstÄ«tsVeiksmePÄrslÄ“gties uz kompakto režīmuSinhronizÄ“jas...MÄ“rÄ·a adrese:Komisijas maksas lielumu var brÄ«vi izvÄ“lÄ“ties pats sÅ«tÄ«tÄjs. TomÄ“r ir jÄņem vÄ“rÄ tas, ka transakcijas ar zemu komisijas maksu var tikt apstrÄdÄtas daudz ilgÄk.Ja maciÅ†Ä nav pietiekami daudz lÄ«dzekļu, summa tiks rÄdÄ«ta sarkanÄ krÄsÄ. IevÄ“rojiet, ja ir iesaldÄ“tas kÄdas adreses, pieejamo lÄ«dzekļu bÅ«s mazÄk nekÄ kopÄ“jÄ bilance.Bitcoin URI parakstÄ«jaApraksts netiks nosÅ«tÄ«ts lÄ«dzekļu saņēmÄ“jam. Tas tiks saglabÄts maciņa failÄ un parÄdÄ«ts cilnÄ“ 'VÄ“sture'.Å Ädas adreses tika pievienotasÅ Ädus ievadus nezdevÄs importÄ“tSÄ“kla tika izņemta no maziņa. Tas satur Å¡Ädas galvenÄs privÄtÄs atslÄ“gasGadÄ«jÄs kļūda, sÅ«tot transakciju:Å Ä« blokÄ·Ä“de tiek izmantota, lai pÄrbaudÄ«tu transakcijas, kuras nosÅ«ta adreÅ¡u serveris.Å is maciņš ir tikai skatīšanaiÅ is spraudnis sinhronizÄ“ etiÄ·etes starp vairÄkÄm Electrum instalÄcijÄm. Visas etiÄ·etes, transakcijas un adreses tiek nosÅ«tÄ«tas un saglabÄtas attÄlinÄtÄ datu bÄzÄ“ Å¡ifrÄ“tÄ veidÄ. Spraudnis var palÄ“ninÄt maciņa darbÄ«bu par dažÄm mikrosekundÄ“m, jo dati tiks sinhronizÄ“ti katrÄ palaiÅ¡anas reizÄ“.Ar Å¡o sÄ“klu ir iespÄ“jams atjaunot maciņu, datora bojÄjuma gadÄ«jumÄ.Å ai transakcijai ir nepiecieÅ¡ama lielÄka komisijas maksa vai arÄ« tÄ«kls to neizplatÄ«s tÄlÄk.Å is maciņš nav Å¡ifrÄ“tsÅ is maciņš tika atjaunots nesaistÄ“. Tas var saturÄ“t vairÄk adreses, kÄ tiek attÄ“lots.Kam / NoLai atslÄ“gtu maciņa Å¡ifrēšanu, atstÄjiet jaunÄs paroles lauciņu tukÅ¡u.Lai sÄktu, apmeklÄ“jietLai pÄrliecinÄtos, ka sÄ“kla ir pareizi saglabÄta, lÅ«dzu, ierakstiet to atkÄrtoti.TransakcijaTransakcijas ID:Transakcijas komisijaTransakcijas etiÄ·eteTransakcija veiksmÄ«gi saglabÄtaTransakcijas statuss:Transakcija veiksmÄ«gi nosÅ«tÄ«taTransakcija veiksmÄ«gi nosÅ«tÄ«ta:Transakcija nesaistÄ«ta ar jÅ«su maciņuTransakcija:TxNeizdevÄs izveidot csvNeizdevÄs eksportÄ“t etiÄ·etesNeizdevÄs importÄ“t etiÄ·etesNeizdevÄs izpÄrsÄ“t transakcijuNeizdevÄs nolasÄ«t failu vai arÄ« netika atrasta neviena transakcijaAtsaldÄ“tNezinÄmsNeparakstÄ«taIzveidota neparakstÄ«ta transakcijaNeparakstÄ«ta transakcija tika saglabÄta failÄ:Izmantot atlikuma adresesIzmantotÄsIzmantojot atlikuma adreses, citiem cilvÄ“kiem ir grÅ«tÄk izsekot jÅ«su transakcijas.PÄrbaudÄ«tVersijaSkatÄ«t aizstÄjvÄrda informÄcijuSkatÄ«t informÄcijuBRĪDINÄ€JUMSBRĪDINÄ€JUMS: VISAS privÄtÄs atslÄ“gas ir slepenas.Maciņš ir atsÄ“klots, nevar parakstÄ«t.BrÄ«dinÄjumsBrÄ«dinÄjums: neizmantojiet Å¡o, ja tas liek jums izvÄ“lÄ“ties vÄjÄku paroli.KadJÅ«s varat ievadÄ«t Bitcoin adresi, etiÄ·eti no kontaktu saraksta (sarakstu piedÄvÄs automÄtiski pabeigt) vai aizstÄjvÄrdu (e-pastam lÄ«dzÄ«gu adresi, kas pÄrsÅ«tÄ«s uz Bitcoin adresi).Ir nepiecieÅ¡ami 2 apstiprinÄjumi lÄ«dz bilance tiek attÄ“lota un papildu adreses tiek Ä£enerÄ“tas.CSV eksports veiksmÄ«gi izveidots.JÅ«su galvenÄ publiskÄ atslÄ“ga ir:EtiÄ·etes ir sinhronizÄ“tas.EtiÄ·etes ir augÅ¡upielÄdÄ“tas.EtiÄ·etes tika importÄ“tas noEtiÄ·etes eksportÄ“tasSÄ“kla arÄ« tiek attÄ“lota kÄ QR kods, gadÄ«jumÄ, ja vÄ“laties to nosÅ«tÄ«t uz mobilo tÄlruni.SÄ“kla ir svarÄ«ga!Transakcija nosÅ«tÄ«ta.MaciÅ†Ä ir importÄ“tÄs atslÄ“gas. Å Ä«s atslÄ“gas nav iespÄ“jams atjaunot no sÄ“klas.Maciņa atjaunoÅ¡anas sÄ“kla irMaciņš ir Å¡ifrÄ“ts. Izmantojiet Å¡o dialoglodziņu, lai mainÄ«tu paroli.Maciņa atslÄ“gas nav Å¡ifrÄ“tasir iesaldÄ“tiblokikļūdano kontaktu saraksta?no jÅ«su maciņa?pending accountnosÅ«tÄ«t %(amount)s uz %(address)s?nezinÄmstikai skatīšanaiElectrum-1.9.7/locale/pt_BR/0000755000000000000000000000000012264174460015521 5ustar rootroot00000000000000Electrum-1.9.7/locale/pt_BR/LC_MESSAGES/0000755000000000000000000000000012264174460017306 5ustar rootroot00000000000000Electrum-1.9.7/locale/pt_BR/LC_MESSAGES/electrum.mo0000664000175000017500000007274512264174460023246 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌH}ÚH>XJ1—JÉJdåJJKQKXK^KrK‚K‘K™K©K¯K¾K ÍK ØKãKéKñKùK LL 'L 4LALSL YLcL lL zL†LŒL’LšL¡L©L«L)ºL'äLŒ M™M ©M¶M¾M7ÐM NN N &N1N BNON/iN ™N ¦N³N ¼NÆNpàN QO \OfOyO‚OˆOO–OO ­O »OÉOÑO-ÚOP PPP0P'JPrP„P P¥P®PÁP ÉP ÖP âP2îP!Q„*Q¯Q ÈQÕQëQ4ðQ%R8RGRXR/jR+šS3ÆSúSfTvTG†T*ÎT*ùT1$U-VU4„U4¹UsîU"bW,…W²WÈWÛWàWýW X@"XcX}X ‚X £X,¯XÜXåX$êXY"Y'Y ;Y'FY`nYDÏYOZdZxZŒZ“Z§Z,°ZwÝZRU[¨[¸[ Ç[ Ó[Ý[ó[ú[\#\?\N\^\f\3j\ž\ ¦\±\Á\Ñ\å\õ\Fþ\E]K]T]e]y]‹]ž]§]°]¹]¾]5Æ] ü] ^ ^- ^N^d^:i^ ¤^5°^ æ^ó^G _8R_v‹_`` ``&`!,`N` g`r`I…`Ï`?ï`/a$Oata‘a+°a8ÜabB$bgb xb „bb§b ÃbÍbÓbîböbc-c5c McWcqcƒc—cªc±cÀcÏc×c%æc d%dBd Id Vd`d#hdŒd§d*Åd1ðd"eBe,Ye9†eÀeÜe3ùe-f 4f!>f#`f„ff«f´f ¹f Æf\Óf0gIg\g ag ng {g…g˜g Ÿgªg»gÔgãgôgügh!h“1hÒÅh˜iˆ¶i"?j*bjXj-æjNkck<‚kL¿lT mamO~m ÎmIØm"nK7n ƒnnŸn³nÅnänøno$5o Zogojoo—o¯o+Ëo ÷op pp'1pYpupdzpßpæpîp qq*q Hqiq@oq°q̵q‚r.s3s#Nsrs’s±sZÏs*tBtMbt)°tIÚt4$u YudukuquuŸu¯uÏu ×u¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Portuguese, Brazilian Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:Uma taxa sugerida é automaticamente adicionada a esse campo. Você pode sobrescrever. A taxa sugerida aumenta com o tamanho da transação.Account DetailsAccount nameActionsServidores AtivosAdd an optional, mouse keyboard to the password dialog.EndereçoAlias:All accountsQuantidadeAmount received:Amount sent:Quantidade a ser enviada.Are you sure you understand what you are doing?Auto connectAuto-connectBalançoBase unitBase unit of your wallet.Transações em bitcoin em geral não são gratuitas. Uma taxa de transação é paga por quem enviar os fundos.BlockchainBroadcastCSV Export createdCancelarChainChangeLimparFecharConfirmar SenhaConfirmationsConectando...ConsoleContatosCopied your Bitcoin address to the clipboard!CopyCopiar IDCopiarCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDataDate: %sServidores PadrãoDeletarDelete aliasDerivation:DescriçãoDescrição da transação (não é obrigatório).DetalhesDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverExibir zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Editar descriçãoEditar rótuloElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErroError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordTaxaFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineCongelarFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistóricoHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Senha IncorretaIncorrect seedInformationInput CSVInput raw transactionInputsEndereço InválidoQuantidade InválidaEndereço Bitcoin InválidoTaxa InválidaValor inválidoInvoiceKeyKeyboard shortcut: type "!" to send all your coins.RótuloLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageDeixe esses campos em branco se você quer desabilitar a criptografia.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMensagemMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNovo ContatoNova SenhaNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.Sem sementeNão foram encontradas transações para essa sementeDesconectadoSem fundos suficientesNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Número de zeros exibidos depois do ponto decimal. Por exemplo, se for definido como 2, "1." será exibido como "1.00"OKOfflineOpen labels fileOutputsSenhaPassword was updated successfullySenhas não correspondemPagar paraPagamento enviado.Por favor, escolha uma senha para criptografar as chaves da sua carteira.Por favor, escolha um servidor.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Por favor, digite sua senha.Please enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocoloProxyPruned transaction outputsQR codeQR code saved to clipboardCódigo QR salvo no arquivoReceberReceive Bitcoin paymentReceivingBeneficiário dos fundos.Valor recomendadoRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SalvarScan QR codeScan TxQRSementeSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.EnviarSend FromSending transaction, please wait.Sending transaction, please wait...ServidorServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSincronizando...Target address:A quantidade de taxa pode ser decidida livremente por quem enviar. Porém, transações com taxas baixas demoram mais tempo para serem processadas.A quantidade será exibida em vermelho se você não tem fundos suficientes na sua carteira. Note que se você congelou algum dos seus endereços, os fundos disponíveis serão menores que o seu balanço total.The bitcoin URI was signed byA descrição não é enviada para o beneficiário dos fundos. Ela é guardada no arquivo da sua carteira e exibida na aba 'Histórico'.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromPara desabilitar a criptografia da sua carteira, deixe a senha em branco.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Taxa de transaçãoTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundDescongelarUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Usar endereços de mudançaUsedUsar endereços de mudança torna mais difícil para outras pessoas rastrearem as suas transações.VerifyVersionVer detalhes do pseudônimoView detailsAVISOWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.AvisoWarning: do not use this if it makes you pick a weaker password.WhenVocê pode entrar um endereço Bitcoin, um rótulo da sua lista de contatos (uma lista de complementos será sugerida), ou um pseudônimo (endereço parecido com um email que vai para o endereço Bitcoin)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Sua semente para geração de carteira éSua carteira está criptografada. Use esse diálogo para mudar sua senha.As chaves da sua carteira não estão criptografadasare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/sl_SI/0000755000000000000000000000000012264174460015524 5ustar rootroot00000000000000Electrum-1.9.7/locale/sl_SI/LC_MESSAGES/0000755000000000000000000000000012264174460017311 5ustar rootroot00000000000000Electrum-1.9.7/locale/sl_SI/LC_MESSAGES/electrum.mo0000664000175000017500000007224012264174460023237 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌH¥ÚH>€J1¿JñJd KrKyK€K†KšKªK¹KÁKÑK×KæK õK L LLL!L3LFL OL \LiL{L L‹L ”L ¢L®L´LºLÂLÉLÑLÓL)âL' Mˆ4M½M ÍMÚMâM7õM-N4N ;NHNON `NmN/€N °N ½NÊN ÑNÛNcõN YO dOnOOˆOŽO•O›O¡O ²O ÀOÎOÖO-ßO PP'P9PKP'ePPŸP»PÀPÉPÙP àP íPùP/þP.Q„6Q»Q ÔQâQøQ4ýQ2R CRNR_R/qR+¡S3ÍSTfT}TGT*ÕT*U1+U-]U4‹U4ÀUsõU"iW,ŒW¹WÏWâWéWX X@+XlX †X X ±X,½XêXñX$öXY.Y3Y GY'QY`yYDÚYOZoZƒZ—ZžZ²Z,»ZwèZR`[³[Ä[ Ó[ ß[é[ÿ[\\*\D\Y\k\s\3w\«\ ²\½\Í\Ý\ñ\]* ]5];]D]U]i]{]Ž] —]¢]«]°]5¸] î] ú] ^-^?^U^:Z^•^#^Á^Ð^Gá^8)_b_t_{_ƒ_”_œ_!¢_Ä_ Ø_â_4÷_#,`?P``$°`Õ`ê`+ a85anaB}aÀa Ña Ýaéabb%b+bFbNbib‰bb ¨b²bÊbÜbðbc cc(c0c%?cec~c›c ¢c ¯c¹c#¾câcýc*d1Fdxd˜d,¯d9Üde2e3Oeƒe ‹e!•e#·eÛeâef f f f\(f…fžf±f ¶f Ãf ÐfÚfíf ôfÿfg)g8gIgQgegvgz†gÃhÅh€ãh"di*‡iX²i- jN9jˆj<§jLäkT1l†lO£l ól:ýl8mKMm ™m¥mµmÅm×möm n(n$Gn lnyn|n‘n©nÁn+Ýn ooo#o'@oho}o[‚oÞoåoío p p*p @pap@ipªp±¯paq.ãqr#-rQrqrrZ®r s!sMAssB®s"ñs tt&t,tHtZtjtŠt ’t¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Slovenian Language: sl_SI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0); X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsAktivni strežnikiAdd an optional, mouse keyboard to the password dialog.NaslovAlias:All accountsZnesekAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectStanjeBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:OpisDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysNapakaError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordProvizijaFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesZgodovinaHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Nepravilno gesloIncorrect seedInformationInput CSVInput raw transactionInputsNeveljaven naslovNeveljaven znesekNeveljaven Bitcoin naslovNeveljavna provizijaNapaÄna vrednostInvoiceKeyKeyboard shortcut: type "!" to send all your coins.OznakaLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguagePusti prazna polja za ukinitev enkripcije.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeSporoÄiloMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNov kontaktNovo gesloNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNiste povezaniPremalo sredstevNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Å tevilo decimalkV reduOfflineOpen labels fileOutputsGesloPassword was updated successfullyGesli se ne ujemataPrejemnikNakazilo je poslano.Prosim vpiÅ¡ite geslo za enkripcijo vaÅ¡e denarnice.Prosim izberite željeni strežnik.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Prosim vnesite gesloPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtokolProxyPruned transaction outputsQR codeQR code saved to clipboardQR koda je shranjena v datotekoPrejmiReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.ShraniScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.PoÅ¡ljiSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSinhroniziram...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/pl_PL/0000755000000000000000000000000012264174460015521 5ustar rootroot00000000000000Electrum-1.9.7/locale/pl_PL/LC_MESSAGES/0000755000000000000000000000000012264174460017306 5ustar rootroot00000000000000Electrum-1.9.7/locale/pl_PL/LC_MESSAGES/electrum.mo0000664000175000017500000007313412264174460023237 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌH¨ÚH>ƒJ1ÂJôJdK uK‚K‹K’K§K ¿K ÍKØKëK ñK þK L LL &L 0L:LOLbL iL uLƒL™L¢LªL³LÄLÔLÚLãL ëL÷LM M)M'9MˆaMêM üMNN7NVN\NcNsN{N ŒN™N/¬NÜNöNOO +OcLO °O »OÅOØOßOåO ìOöOþO P P,P4P-=PkPrP‡P™P«P'ÅPíP!Q$Q)Q2QDQ JQ VQbQ/gQ —Q„£Q(RAR\RrR4yR®R¿RÐRáR/ðR+ T3LT€TfTöTG U*TU*U1ªU-ÜU4 V4?VstV+èW+X@X]XpXwX”X²X@ÄX!Y'Y +Y LY,ZY‡YY$’Y·YÒYØYìY'õY`ZD~ZOÃZ[,[?[H[ a[,o[wœ[R\g\}\ Œ\ —\¥\»\Â\Ô\ë\ ]](]0]36]j]s]Š]š]ª]¾]Î];Õ]^ ^#^7^K^]^ p^ }^ ‰^•^›^5¡^ ×^ â^ ï^-û^)_?_:E_ €_#‹_¯_¾_GØ_8 `uY`Ï`Ò`Ú`ë`ó` ú`a8a Aa5Oa…a?aÝa$ýa "b/b+Nb8zb³bBÆb c c &c2cIc ecpcvc‘c˜c³cÌcÔc ìcöcd d4d GdUdidxd€d%dµdÎdëd òd e e#e5ePe*ne1™eËeëe,f9/fif…f3¢fÖf Þf!èf# g.g5g Sg^geg vg\ƒgàgùg hh 'h4h;h NhXhihzh“h¢h ³h¾h×hëhzûhÃvi:j€Xj"Ùj*üjX'k-€kN®kýk<lLYmT¦mûmOnkn:pn«nKÀn oo&o6oHogozo˜o$·o Üoèoëo!p &pGp+cpp˜p  p­p'Êpòpq[q jqtq{qŽq ¤q*±q Üq ýq@ rKr±Qrs.…s´s#Ïsós't);tZetÀtØtMõtCuBbu¥uÅuÔuÚuáuýuv#!vEv Nv¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2014-01-01 20:25-0500 Last-Translator: rdymac Language-Team: Polish Language: pl_PL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&O programie&Zamknij&Kopia&Utwórz transakcjÄ™&Tworzenie/Przywracanie&Dokumentacja&Eksportuj&WyÅ›lij historiÄ™&Plik&Z pliku CSV&Z tekstu CSV&Z pliku&Z tekstu&Pomoc&Importuj&Etykiety&Wczytaj transakcjÄ™&Master Public Key&Sieć&Nowe konto&Nowy kontakt&Oficjalna strona WWW&Otwórz&HasÅ‚o&WtyczkiKlucze &prywatne&ZgÅ‚oÅ› Błąd&Seed&WyÅ›lij&Motywy&NarzÄ™dzia&Portfel+...i ilośćA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Szczegóły KontaNazwa kontaAkcjeAktywne SerweryAdd an optional, mouse keyboard to the password dialog.AdresAlias:Wszystkie kontaIlośćAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Automatyczne połączenieAutomatyczne połączenieSaldoJednostka podstawowaPodstawowa jednostka w portfelu.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdAnulujChainZmieÅ„WyczyśćZamknijPotwierdź HasÅ‚oPotwierdzeniaÅÄ…czenie...KonsolaKontaktyCopied your Bitcoin address to the clipboard!KopiujKopiuj ID do SchowkaKopiuj do SchowkaKopiuj do schowkaCould not sync labels: %sCould not write transaction to file: %sStwórz nowy portfelStwórz niepodpisanÄ… transakcjÄ™DataData: %sDomyÅ›lne SerweryUsuÅ„UsuÅ„ aliasDerivation:OpisDescription of the transaction (not mandatory).SzczegółyDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverLiczba miejsc po przecinkuDo you want to removeGotoweDouble clicking the label will allow you to edit it.Edit descriptionEdytuj etykietÄ™Wtyczki ElectrumOpcje ElectrumElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Opcje ElectrumElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Aktualizacja ElectrumElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Wprowadź adres Bitcoin lub nazwÄ™ kontaktuWprowadź nazwÄ™ dla kopii twojego portfelaWprowadź nowÄ… nazwÄ™ plikuEnter private keysBłądError: cannot display pluginBłąd: nieprawidÅ‚owy podpisWyjdź z ElectrumExposing a single private key can compromise your entire wallet!Niepowodzenie aktualizacji hasÅ‚aFeeFee per kilobyte of transaction.Plik istniejeFormat: address, amount. One output per lineZamróźZGetting block headers from %d nodes.Otwórz stronÄ™ pobieraniaUkryjHide used addressesHistoriaHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignoruj wszystkie wersjeIgnoruj tÄ™ wersjeImportujImportuj klucze prywatneZaimportowanoImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.NieprawidÅ‚owe HasÅ‚oIncorrect seedInformacjaWprowadź CSVInput raw transactionInputsNiepoprawny AdresNieprawidÅ‚owa IlośćInvalid Bitcoin AddressInvalid FeeNieprawidÅ‚owa wartośćInvoiceKluczKeyboard shortcut: type "!" to send all your coins.EtykietaSynchronizacja EtykietLabels exportedLabels importedLabels synchronizedLabels uploadedJÄ™zykLeave these fields empty if you want to disable encryption.LimitWczytaj CSVWczytaj transakcjÄ™Master Private KeysMaster Public KeyMaster Public KeysMaksymalizujWiadomośćMinimalizujNazwaSiećNever disclose your seed. Never type it on a website.Nowe KontoNowy KontaktNowe HasÅ‚oNew transaction received. %(amount)s %(unit)sNew version availableDalejNo more notifications about version updates will be shown.Brak seedaNo transactions found for this seedNiepołączonyNiewystarczajÄ…ce Å›rodkiNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsHasÅ‚oHasÅ‚o zaktualizowano pomyÅ›lniePodane hasÅ‚a siÄ™ różniÄ…ZapÅ‚aćPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Wpisz hasÅ‚oPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsProszÄ™ czekać...Please write down or memorize these %d words (order is important).Preference savedPreferencjePrivate keyPrivate keys exported.Process Offline transactionProtokółProxyPruned transaction outputsKod QRZapisano kod QR do schowkaZapisano kod QR do plikuOdbierzReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletZmieÅ„ nazwÄ™ZmieÅ„ nazwÄ™ kontaReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.ZapiszSkanuj kod QRSkanuj TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.WyÅ›lijWyÅ›lij ZSending transaction, please wait.Sending transaction, please wait...SerwerServer is lagging (%d blocks)UstawieniaPokażPokaż historiÄ™Show InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRPodpiszZapisz wiadomośćSign messagePodpisSignature verifiedPodpisanePodpisane przez:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedPowodzeniePrzełącz na Tryb LekkiSynchronizowanie...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.Ten portfel nie jest szyfrowanyThis wallet was restored offline. It may contain more addresses than displayed.Do/ZTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransakcjaID transakcji:Transaction feeTransaction labelTransaction saved successfullyStatus transakcji:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransakcja:TxNie można utworzyć csvNie można wyeksportować etykietNie można zaimportować etykietUnable to parse transactionUnable to read file or no transaction foundOdmróźUnknownNiepodpisanyUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUżytoUsing change addresses makes it more difficult for other people to track your transactions.WeryfikujWersjaView alias detailsWyÅ›wietl szczegółyOSTRZEÅ»ENIEWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.OstrzeżenieWarning: do not use this if it makes you pick a weaker password.KiedyYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.twoje etykiety zostaÅ‚y zaimportowane ztwoje etykiety zostaÅ‚y wyeksportowane doYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Twój seed jest ważny!WysÅ‚ano twojÄ… transakcjÄ™.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Twoje klucze nie sÄ… szyfrowanesÄ… zamrożoneblokibłądfrom your list of contacts?z twojego portfela?pending accountwysÅ‚ać %(amount)s na %(address)s?nieznanywatching onlyElectrum-1.9.7/locale/ja_JP/0000755000000000000000000000000012264174460015476 5ustar rootroot00000000000000Electrum-1.9.7/locale/ja_JP/LC_MESSAGES/0000755000000000000000000000000012264174460017263 5ustar rootroot00000000000000Electrum-1.9.7/locale/ja_JP/LC_MESSAGES/electrum.mo0000664000175000017500000010233112264174460023204 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHiÚH>DJ3ƒJ-·JkåJQKkKzK€K”K ¤K°K ÈKéKûK LL1LILXLmL |LLµL ÍLÚLòL MM%M:MIM^MvM~MMœM±M ³M4ÁM(öMœN¼NÒN åNñNrO zO‡O˜O«O²OÌO$àOP $P 1P>P EPMRPR PóP QQ&Q 6Q CQ MQ WQaQwQ ~Q‹Q“QF£QêQïQþQR.0R@_R R$¶RÛR âRíRS S S)S0SLS¶SS$ T /T :# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Japanese Language: ja_JP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed.é€ä¿¡ã‚¿ãƒ–ã®é‡‘é¡ã®æ¬„ã«ã‚‚影響ã—ã¾ã™ã€‚ã§ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚’ã”登録ãã ã•ã„。%(txs)s ä»¶ã®å–引情報をå—ä¿¡ã—ã¾ã—ãŸã€‚å—ã‘å–ã£ãŸåˆè¨ˆé¡ã¯ %(amount)s %(unit)s ã§ã™ã€‚Electrumã«ã¤ã„㦠(&A)é–‰ã˜ã‚‹ (&C)&Copy&Create transaction&Create/Restore説明 (&D)エクスãƒãƒ¼ãƒˆ (&E)履歴をエクスãƒãƒ¼ãƒˆ (&E)ファイル (&F)&From CSV file&From CSV textファイルã‹ã‚‰ (&F)テキストã‹ã‚‰ (&T)ヘルプ (&H)インãƒãƒ¼ãƒˆ (&I)ラベル (&L)å–引情報を読ã¿è¾¼ã‚€ (&L)ãƒžã‚¹ã‚¿å…¬é–‹éµ (&M)ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ (&N)&New accountアドレス追加 (&N)é…布サイト㸠(&O)&Openパスワード (&P)プラグイン (&P)ç§˜å¯†éµ (&P)ãƒã‚°ã‚’報告 (&R)ウォレット種 (&S)&é€ä¿¡ãƒ†ãƒ¼ãƒž (&T)ツール (&P)ウォレット (&W)+... ã¨é‡‘é¡ã‚¦ã‚©ãƒ¬ãƒƒãƒˆãƒ•ァイルをコピーã—ã¾ã—ãŸ:æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒã‚りã¾ã™:æ‰‹æ•°æ–™ã®æ¬„ã«ã¯å–引情報ã®ãƒ‡ãƒ¼ã‚¿ã‚µã‚¤ã‚ºã«å¿œã˜ã¦ãŠã™ã™ã‚ã®å€¤ãŒè¡¨ç¤ºã•れã¾ã™ãŒã€æ‰‹å‹•ã§æŒ‡å®šã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚アカウント詳細アカウントåä½œæˆ (&C)稼åƒä¸­ã®ã‚µãƒ¼ãƒãƒ‘スワード入力ã®éš›ã€ãƒžã‚¦ã‚¹ã§å…¥åŠ›ã™ã‚‹ãŸã‚ã®ãƒ©ãƒ³ãƒ€ãƒ ãªã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã‚’表示ã—ã¾ã™ã€‚アドレスエイリアス:全アカウント金é¡å—ã‘å–ã£ãŸåˆè¨ˆé¡:é€ã£ãŸåˆè¨ˆé¡:é€é‡‘ã™ã‚‹é‡‘é¡ã®è¨­å®šã§ã™ã€‚本当ã«å®Ÿè¡Œã—ã¾ã™ã‹ï¼Ÿè‡ªå‹•接続自動接続残高基本å˜ä½é‡‘é¡è¡¨ç¤ºã®å˜ä½ã‚’設定ã—ã¾ã™ã€‚(円ã¨éŠ­ã®ã‚ˆã†ãªã‚‚ã®ã§ã™)基本的ã«Bitcoinã®ã‚„りå–りã«ã¯é€ä¿¡å´ã«æ‰‹æ•°æ–™ãŒã‹ã‹ã‚Šã¾ã™ã€‚ブロックãƒã‚§ãƒ¼ãƒ³ç™ºä¿¡CSV Export createdキャンセルãƒã‚§ãƒ¼ãƒ³ãŠé‡£ã‚Šã‚¯ãƒªã‚¢é–‰ã˜ã‚‹ãƒ‘スワード確èªç¢ºèªæŽ¥ç¶šä¸­...Consoleアドレス帳クリップボードã«Bitcoinアドレスをコピーã—ã¾ã—ãŸï¼CopyIDをコピーアドレスをコピーアドレスをコピーラベル %s ãŒåŒæœŸã§ãã¾ã›ã‚“ã§ã—ãŸå–引情報をファイルã«ä¿å­˜ã§ãã¾ã›ã‚“ã§ã—ãŸ: %sæ–°è¦ã‚¦ã‚©ãƒ¬ãƒƒãƒˆç½²åãªã—ã®å–å¼•æƒ…å ±ã‚’ç”Ÿæˆæ—¥ä»˜æ—¥ä»˜: %sデフォルトサーãƒå‰Šé™¤åˆ¥åを削除Derivation:備考å–引ã®å‚™è€ƒ (空欄å¯)詳細以å‰Electrumã‚’ãŠä½¿ã„ã«ãªã£ãŸã“ã¨ãŒã‚れã°ã€ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã‚’復元ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ãã†ã§ãªã„å ´åˆã€ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã‚’作æˆã—ã¦ãã ã•ã„。サーãƒã‹ã‚‰åˆ‡æ–­ã•れã¾ã—ãŸã‚¼ãƒ­è¡¨ç¤ºã‚¢ãƒ‰ãƒ¬ã‚¹å®Œäº†ãƒ€ãƒ–ルクリックã™ã‚‹ã¨ãƒ©ãƒ™ãƒ«ã‚’編集ã§ãã¾ã™ã€‚備考を編集ラベルを編集Electurm プラグインElectrum設定Electrumã¯ã‚µãƒ¼ãƒã‹ã‚‰ã‚ãªãŸã®å–引情報ã¨ã‚¢ãƒ‰ãƒ¬ã‚¹æƒ…報をå–å¾—ã—ã¾ã™ã€‚ã©ã®ã‚µãƒ¼ãƒã‚‚機能ã«é•ã„ã¯ã‚りã¾ã›ã‚“ã®ã§ã€ç‰¹ã«ã“ã ã‚りãŒãªã‘れã°ãƒ©ãƒ³ãƒ€ãƒ ã«è¨­å®šã™ã‚‹ã“ã¨ã‚’ãŠã™ã™ã‚ã—ã¾ã™ã€‚ウォレットãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚アドレスを生æˆã—ã¦ã„ã¾ã™â€¦Electrum設定å–引情報をå–å¾—ã™ã‚‹ãŸã‚ã€Electrumã¯ã‚µãƒ¼ãƒã«ã‚ãªãŸã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’é€ä¿¡ã—ã¾ã™ã€‚Electrumã®æ›´æ–°ã‚¦ã‚©ãƒ¬ãƒƒãƒˆãƒ•ァイルをä¿å­˜å‡ºæ¥ã¾ã›ã‚“ã§ã—ãŸã€‚ラベルをエクスãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ラベルをインãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚å–引情報ファイルを開ã‘ã¾ã›ã‚“ã§ã—ãŸå–引情報ファイルã®å½¢å¼ã‚’読ã¿å–れã¾ã›ã‚“ã§ã—ãŸç§˜å¯†éµã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸã€‚Electrumã®ä¸»çœ¼ã¯ã‚¹ãƒ”ードã¨çœãƒªã‚½ãƒ¼ã‚¹ã¨Bitcoinã®å–り扱ã„をシンプルã«ã™ã‚‹ã“ã¨ã§ã™ã€‚ウォレットファイルã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—を定期的ã«å–ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“ã€‚ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã¯æš—記ã—ãŸã‚Šç´™ã«æ›¸ãã‚„ã™ã„英å˜èªžã®åˆ—ã‹ã‚‰ã©ã“ã§ã‚‚復元ã§ãã¾ã™ã€‚Bitcoinãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®è¤‡é›‘ãªéƒ¨åˆ†ã¯é«˜æ€§èƒ½ãªã‚µãƒ¼ãƒã«ä»»ã›ã¦ã‚ã‚‹ã®ã§ã€è¨ˆç®—やデータã®èª­ã¿è¾¼ã¿æ™‚é–“ãŒãªãã€å³åº§ã«èµ·å‹•ã§ãã¾ã™ã€‚Bitcoinアドレスã‹ã‚³ãƒ³ã‚¿ã‚¯ãƒˆåEnter a filename for the copy of your walletEnter a new file name秘密éµã‚’入力エラーエラー: プラグインを表示ã§ãã¾ã›ã‚“ã§ã—ãŸã‚¨ãƒ©ãƒ¼: ç½²åãŒä¸€è‡´ã—ã¾ã›ã‚“Exit Electrumã©ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ç§˜å¯†éµã§ã‚‚ã©ã‚Œã‹ã²ã¨ã¤ãŒæ¼æ´©ã™ã‚‹ã¨ã€ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã«ã‚ã‚‹ä»–ã®ã‚¢ãƒ‰ãƒ¬ã‚¹å…¨ã¦ãŒå±é™ºã«æ™’ã•れã¾ã™ã€‚ãれãã‚Œã‚‚ã”æ³¨æ„ãã ã•ã„ï¼ãƒ‘スワードを変更ã§ãã¾ã›ã‚“ã§ã—ãŸæ‰‹æ•°æ–™ã‚­ãƒ­ãƒã‚¤ãƒˆã”ã¨ã®æ‰‹æ•°æ–™ã€‚File exists書å¼ã¯ä¸€è¡Œã”ã¨ã« アドレス, é‡‘é¡ ã®ã‚ˆã†ã«è¨˜ã—ã¾ã™å‡çµFromブロックヘッダを %d ノードã‹ã‚‰å–å¾—ã—ã¾ã™ã€‚ダウンロードページã¸Hide使用済ã¿ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’éš ã™å±¥æ­´ã‚µãƒ¼ãƒã¨ã®æŽ¥ç¶šæ–¹æ³•ã‚’é¸ã‚“ã§ãã ã•ã„:自動接続を有効ã«ã—ãŸå ´åˆã€ãƒ–ロックãƒã‚§ãƒ¼ãƒ³ãŒæœ€ã‚‚é•·ã„サーãƒã«æŽ¥ç¶šã—ã¾ã™ã€‚無効ã®å ´åˆã€ã‚µãƒ¼ãƒãŒãƒã‚§ãƒ¼ãƒ³ã«è¿½ã„付ã„ã¦ã„ãªã„旨を警告ã—ã¾ã™ã€‚ウォレットをシードã‹ã‚‰å¾©æ—§ã—ãŸå ´åˆã§ã‚‚ã€ã“れらã®ç§˜å¯†éµã¯å†ç”Ÿã•れã¾ã›ã‚“。全ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’無視ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’無視インãƒãƒ¼ãƒˆç§˜å¯†éµã‚’インãƒãƒ¼ãƒˆã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ãŸã‚¢ãƒ‰ãƒ¬ã‚¹ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ãŸç§˜å¯†éµã¯å…ƒã€…ã®ä¹±æ•°ç¨®ã«ã¯å«ã¾ã‚Œã¾ã›ã‚“ã®ã§ã€ã‚¦ã‚©ãƒ¬ãƒƒãƒˆç¨®ã‹ã‚‰å†ç”Ÿã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。ã¾ãŸã€Electrumã¯æœ€é•·ãƒã‚§ãƒ¼ãƒ³ã‚’探ã™ãŸã‚複数ã®ãƒŽãƒ¼ãƒ‰ã‹ã‚‰ãƒ–ロックヘッダをå–å¾—ã—ã¾ã™ã€‚特ã«ã€å¤–部サービスã§ã€Œç§˜å¯†éµã‚’インãƒãƒ¼ãƒˆã€ã®ã‚ˆã†ãªæ©Ÿèƒ½ã¯ä½¿ã‚ãªã„ã»ã†ãŒã‚ˆã„ã§ã—ょã†ã€‚パスワードãŒé•ã„ã¾ã™ã‚·ãƒ¼ãƒ‰å€¤ãŒé•ã„ã¾ã™æƒ…å ±Input CSVテキスト形å¼ã®å–引情報を読ã¿è¾¼ã‚€é€ã‚Šæ‰‹ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒæ­£ã—ãã‚りã¾ã›ã‚“金é¡ãŒæ­£ã—ãã‚りã¾ã›ã‚“Bitcoinã‚¢ãƒ‰ãƒ¬ã‚¹ãŒæ­£ã—ãã‚りã¾ã›ã‚“æ‰‹æ•°æ–™ãŒæ­£ã—ãã‚りã¾ã›ã‚“å€¤ãŒæ­£ã—ãã‚りã¾ã›ã‚“請求éµ"!" ã¨æ‰“ã¤ã¨ã€ç¾åœ¨ã®å…¨æ®‹é«˜ã‚’é€ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ãƒ©ãƒ™ãƒ«ãƒ©ãƒ™ãƒ«åŒæœŸãƒ©ãƒ™ãƒ«ã‚’エクスãƒãƒ¼ãƒˆã—ã¾ã—ãŸã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れãŸãƒ©ãƒ™ãƒ«ãƒ©ãƒ™ãƒ«ã‚’åŒæœŸã—ã¾ã—ãŸãƒ©ãƒ™ãƒ«ä¸€è¦§ã‚’アップロードã—ã¾ã—ãŸè¨€èªžæš—å·åŒ–ã—ãªã„å ´åˆã¯ç©ºæ¬„ã«ã—ã¦ä¸‹ã•ã„。上é™Load CSVå–引情報を読ã¿è¾¼ã‚€ãƒžã‚¹ã‚¿ãƒ¼ç§˜å¯†éµãƒžã‚¹ã‚¿ãƒ¼å…¬é–‹éµãƒžã‚¹ã‚¿ãƒ¼å…¬é–‹éµæœ€å¤§åŒ–メッセージ最å°åŒ–åå‰ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚·ãƒ¼ãƒ‰å€¤ã¯ä»–人ã«ã¯æ•™ãˆãªã„よã†ã«ã—ã¦ä¸‹ã•ã„。特ã«ã€Webä¸Šã«æ›¸ã込むã“ã¨ã¯é¿ã‘ã¦ãã ã•ã„。シード値を知る人ã¯ã‚ãªãŸã®ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã‹ã‚‰Bitcoinを引ã出ã›ã¾ã™ã€‚New Accountアドレス追加新パスワードå–引をå—ä¿¡ã—ã¾ã—ãŸã€‚ %(amount)s %(unit)sæ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ãŒã‚りã¾ã™æ¬¡ã¸ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®æ›´æ–°ã¯ä»Šå¾Œé€šçŸ¥ã•れã¾ã›ã‚“。シードãªã—ã“ã®ã‚·ãƒ¼ãƒ‰ã«å¯¾ã™ã‚‹å–引ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸæœªæŽ¥ç¶šæ®‹é«˜ãŒä¸è¶³æ–°ãŸã«ä½œæˆã•れãŸã‚¢ã‚«ã‚¦ãƒ³ãƒˆã¯Bitcoinã‚’å—å–ã‚‹ã¾ã§ã¯ã€Œå¾…機中ã€ã¨è¡¨ç¤ºã•れã¾ã™ã€‚ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®æ›´æ–°ã‚’通知ã—ã¾ã™ã€‚æ•°å­—ã§å°æ•°ç‚¹ä»¥ä¸‹ã«è¡¨ç¤ºã™ã‚‹ã‚¼ãƒ­ã®æ•°ã‚’設定ã—ã¾ã™ã€‚例ãˆã°2ã«ã—ãŸå ´åˆã€"1." ã®ä»£ã‚り㫠"1.00" ã¨è¡¨ç¤ºã•れã¾ã™ã€‚OKOfflineラベルファイルを開ãå—ã‘æ‰‹ãƒ‘スワードパスワードを変更ã—ã¾ã—ãŸãƒ‘スワードãŒé•ã„ã¾ã™é€ä¿¡å…ˆå–引情報をé€ä¿¡ã—ã¾ã—ãŸã€‚ウォレットéµãƒ•ァイルを暗å·åŒ–ã™ã‚‹ãƒ‘スワードを設定ã—ã¦ä¸‹ã•ã„。サーãƒã‚’é¸ã‚“ã§ä¸‹ã•ã„。å–引ã«ãƒ©ãƒ™ãƒ«ã‚’ã¤ã‘ã‚‹ã¨ä»Šå¾Œå‚ç…§ã—ã‚„ã™ããªã‚Šã¾ã™ã€‚出力先ã®ãƒªã‚¹ãƒˆã‚’入力ã—ã¦ãã ã•ã„。マスター公開éµã‚’入力ã—ã¦ãã ã•ã„。パスワードを入力ã—ã¦ä¸‹ã•ã„。ウォレットシードを入力ã—ã¦ãã ã•ã„。ãƒã‚°ã‚’見ã¤ã‘ãŸã‚‰Githubã§ã”報告下ã•ã„:GUIã®è¨­å®šã®å¤‰æ›´ã¯ã€æ¬¡å›žã®èµ·å‹•時ã«å映ã•れã¾ã™ã€‚ãŠå¾…ã¡ãã ã•ã„...ã“ã® %d 個ã®è‹±å˜èªžã‚’暗記ã™ã‚‹ã‹ã€ãƒ¡ãƒ¢ã—ã¦ãã ã•ã„(順番も大事ã§ã™)。設定をä¿å­˜ã—ã¾ã—ãŸè¨­å®šç§˜å¯†éµç§˜å¯†éµã‚’エクスãƒãƒ¼ãƒˆã—ã¾ã—ãŸã€‚オフラインã®å–引情報を読ã¿è¾¼ã‚€ãƒ—ロトコルプロキシãŠé‡£ã‚ŠQR codeQR code saved to clipboardQRコードをä¿å­˜ã—ã¾ã—ãŸå—ä¿¡Bitcoinã®å—ã‘å–りå—é ˜Bitcoinã®é€ä¿¡å…ˆã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™ã€‚ãŠã™ã™ã‚復元完了ウォレットã‹ã‚‰å‰Šé™¤åå‰ã®å¤‰æ›´ã‚¢ã‚«ã‚¦ãƒ³ãƒˆåã®å¤‰æ›´ãƒã‚°å ±å‘Šè«‹æ±‚請求é¡ãƒžã‚¹ã‚¿ãƒ¼å…¬é–‹éµã‹ã‚‰ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã‚’復元シードã‹ã‚‰ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã‚’復元HTTPã§Bitcoinアドレスã®ã‚¨ã‚¤ãƒªã‚¢ã‚¹(ニックãƒãƒ¼ãƒ )ã‚’å–å¾—ã—ã¾ã™ã€‚ä¿å­˜QRコード読ã¿å–りå–引情報ã®QRコードをスキャンシードオフラインã®å ´åˆã¯ã‚­ãƒ£ãƒ³ã‚»ãƒ«ã—ã¦ä¸‹ã•ã„。å—ä¿¡ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’é¸æŠžå–å¼•æƒ…å ±ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžç§˜å¯†éµã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆå…ˆãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžå–引履歴をエクスãƒãƒ¼ãƒˆã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžãƒ©ãƒ™ãƒ«ã®ä¿å­˜å…ˆãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžæ‰‹å‹•ã§ã‚µãƒ¼ãƒã‚’é¸ã¶ç½²å済ã¿å–引情報ã®ä¿å­˜å…ˆã‚’é¸æŠž(次回ã®èµ·å‹•ã§)GUIã«ä½¿ã†è¨€èªžã‚’設定ã—ã¾ã™ã€‚Select your transaction CSVå–引情報ã®ä¿å­˜å…ˆã‚’é¸æŠžã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’é¸æŠžã™ã‚‹ã¨ã‚¯ãƒªãƒƒãƒ—ボードã«ã‚³ãƒ”ーã•れã¾ã™ã€‚é€ä¿¡Send Fromå–引情報をé€ä¿¡ä¸­ã§ã™ã€‚少々ãŠå¾…ã¡ãã ã•ã„。å–引情報をé€ä¿¡ã—ã¦ã„ã¾ã™...サーãƒã‚µãƒ¼ãƒã®ãƒ–ロック情報ãŒå¤ã„ã§ã™ (%d ブロック分ã®é…れ)設定表示å–引履歴を表示Show InvoiceQRコードã¨è«‹æ±‚é¡ã‚’表示ã™ã‚‹ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‹ãã¾ã™ã€‚請求é¡ã¯ä¸€è¦§ã®å³ã‚¯ãƒªãƒƒã‚¯ã‹ã‚‰è¨­å®šã§ãã¾ã™ã€‚å—信アドレス一覧を表示署åãªã—ã®å–引情報をQRコードã§è¡¨ç¤ºç½²åメッセージã«ç½²åメッセージ署å・検証シグãƒãƒãƒ£Signature verifiedç½²åã—ã¾ã—ãŸç½²å者:ç½²åã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹:状態: %d å›žç¢ºèªæ¸ˆã¿çŠ¶æ…‹: ç½²åãšã¿çŠ¶æ…‹: ç½²åãªã—æˆåŠŸLiteモードã«åˆ‡ã‚Šæ›¿ãˆåŒæœŸä¸­...é€ä¿¡å…ˆ:手数料ã¯é€ä¿¡è€…ãŒæ±ºã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™ãŒã€æ‰‹æ•°æ–™ã®å°‘ãªã„å–引情報ã¯ç¢ºå®šã¾ã§æ™‚é–“ãŒã‹ã‹ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã®æ®‹é«˜ãŒä¸è¶³ã—ã¦ã„ã‚‹å ´åˆã€æ–‡å­—ãŒèµ¤ã表示ã•れã¾ã™ã€‚残高ã«è¡¨ç¤ºã•れるé¡ã¯å‡çµä¸­ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å«ã‚ãŸé¡ãªã®ã§ã€é€é‡‘ã«ä½¿ãˆã‚‹é¡ã¯æ®‹é«˜ã®è¡¨ç¤ºã‚ˆã‚Šã‚‚å°‘ãªããªã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚bitcoin URIã®ç½²åå…ƒ:備考欄ã¯å—信者ã«ã¯é€ã‚‰ã‚Œã‚‹ã“ã¨ã¯ã‚りã¾ã›ã‚“。ウォレットファイルã«ä¿å­˜ã•れã¦ã€å¾Œã§ã€Œå±¥æ­´ã€ã‚¿ãƒ–ã§ç¢ºèªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚以下ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒè¿½åŠ ã•れã¾ã—ãŸä»¥ä¸‹ã®å…¥åŠ›ã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸã‚·ãƒ¼ãƒ‰ã¯ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã‹ã‚‰å‰Šé™¤ã•れã¾ã—ãŸã€‚シードã¯ä»¥ä¸‹ã®ç§˜å¯†éµã‚’å«ã‚“ã§ã„ã¾ã—ãŸå–引情報ã®é€ä¿¡ä¸­ã‚¨ãƒ©ãƒ¼ãŒèµ·ãã¾ã—ãŸ:ブロックãƒã‚§ãƒ¼ãƒ³ã¯ã‚µãƒ¼ãƒã‹ã‚‰å—ä¿¡ã—ãŸå–å¼•æƒ…å ±ã®æ¤œè¨¼ã«ä½¿ã‚れã¾ã™ã€‚ã“ã®ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã¯èª­ã¿å–り専用ã§ã™ã€‚ã“ã®ãƒ—ラグインを使ã†ã¨ã€ã‚µãƒ¼ãƒã«ãƒ©ãƒ™ãƒ«æƒ…報をãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ãƒ©ãƒ™ãƒ«ã¯æš—å·åŒ–ã•れã¾ã›ã‚“ãŒã€å–引情報IDã¨Bitcoinã‚¢ãƒ‰ãƒ¬ã‚¹ã¯æš—å·åŒ–ã•れã¾ã™ã€‚Electrumã®èµ·å‹•ã®éš›åŒæœŸã®ãŸã‚数マイクロ秒ã®è² è·ãŒã‹ã‹ã‚Šã¾ã™ã€‚ã“ã®ã‚·ãƒ¼ãƒ‰ã§ã€ã‚³ãƒ³ãƒ”ãƒ¥ãƒ¼ã‚¿ã®æ•…éšœãªã©ã®å ´åˆã«ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã‚’復活ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚手数料ã®è¨­å®šãŒä½Žã™ãŽã¾ã™ã€‚Bitcoinãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ä¸Šã«ä¼æ’­ã•れãšã€å–å¼•æƒ…å ±ãŒæ‰¿èªã•れãªã„æã‚ŒãŒã‚りã¾ã™ã€‚ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã¯æš—å·åŒ–ã•れã¦ã„ã¾ã›ã‚“This wallet was restored offline. It may contain more addresses than displayed.é€ / å—ウォレットファイルを暗å·åŒ–ã—ãªã„å ´åˆã¯ã€æ–°ãƒ‘スワードを空欄ã«ã—ã¦ãã ã•ã„。利用ã®ãŸã‚ã«ã¯ã€ã‚·ãƒ¼ãƒ‰ã¯ãƒ¡ãƒ¢ã‚’ã¨ã£ã¦ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã—ã¾ã—ãŸã‹ï¼Ÿç¢ºèªã®ãŸã‚ã“ã“ã«å†åº¦å…¥åŠ›ã‚’ãŠé¡˜ã„ã—ã¾ã™ã€‚å–引å–引ID:手数料å–引ã®å‚™è€ƒå–引情報をä¿å­˜ã—ã¾ã—ãŸå–引情報ã®çŠ¶æ…‹:å–引情報をé€ä¿¡ã—ã¾ã—ãŸTransaction successfully sent:ウォレットã¨é–¢ä¿‚ãªã„å–引情報ãŒã‚りã¾ã™å–引:å–引数CSVã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸãƒ©ãƒ™ãƒ«ã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸãƒ©ãƒ™ãƒ«ã‚’インãƒãƒ¼ãƒˆã§ãã¾ã›ã‚“ã§ã—ãŸå–引情報ãŒèª­ã¿è¾¼ã‚ãªã„å½¢å¼ã§ã—ãŸãƒ•ァイルを読ã¿è¾¼ã‚ãªã„ã‹ç©ºã§ã—ãŸå‡çµè§£é™¤ä¸æ˜Žæœªç½²å未署åã®å–引情報を作æˆã—ã¾ã—ãŸæœªç½²åã®å–引をファイルã«ä¿å­˜ã—ã¾ã—ãŸ:ãŠé‡£ã‚Šã‚¢ãƒ‰ãƒ¬ã‚¹ä½¿ç”¨æ¸ˆã¿ãŠé‡£ã‚Šã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’使ã†ã¨ã€ä»–人ãŒã‚ãªãŸã®å–引履歴を追跡ã—ã«ãããªã‚Šã¾ã™ã€‚ é€ä¿¡æ™‚ã«ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æ®‹é«˜ã‚’使ã„åˆ‡ã‚Šã€æ–°ãŸãªã‚¢ãƒ‰ãƒ¬ã‚¹ã«æ®‹ã‚Šã‚’ç§»ã—æ›¿ãˆã‚‹ã‚ˆã†ã«ã—ã¾ã™ã€‚検証ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚¨ã‚¤ãƒªã‚¢ã‚¹ã®è©³ç´°è©³ç´°ã‚’é–‹ã警告注æ„: ã©ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã®ç§˜å¯†éµã‚‚ç­‰ã—ã大事ã§ã™ã€‚使用中ã®ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã¯èª­ã¿å–り専用(公開éµã®ã¿)ã§ã™ã€‚ç½²åã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。警告注æ„: 入力をé¢å€’ãŒã£ã¦çŸ­ã„パスワードをé¸ã°ãªã„よã†ã«ã—ã¾ã—ょã†ã€‚日付入力形å¼ã«ã¯ã€Bitcoinアドレスã€ã‚¢ãƒ‰ãƒ¬ã‚¹å¸³ã®ãƒ©ãƒ™ãƒ«(候補ãŒè¡¨ç¤ºã•れã¾ã™)ã€ã‚¨ã‚¤ãƒªã‚¢ã‚¹(メールアドレスã®ã‚ˆã†ãªå½¢å¼ã®Bitcoinアドレス)ãŒä½¿ãˆã¾ã™ã€‚å–引情報ãŒ2回確èª(※ブロックãƒã‚§ãƒ¼ãƒ³ã«è¼‰ã‚‹ã“ã¨)ã‚’å—ã‘ã‚‹ã¾ã§ã¯ã€æ®‹é«˜ã¯ç¢ºå®šã›ãšã€æ–°ãŸã«å—å–アドレスãŒç”¨æ„ã•れるã“ã¨ã‚‚ã‚りã¾ã›ã‚“。CSVã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆãŒå®Œäº†ã—ã¾ã—ãŸã€‚ã‚ãªãŸã®ãƒžã‚¹ã‚¿ãƒ¼å…¬é–‹éµã¯:ãƒ©ãƒ™ãƒ«ã‚’åŒæœŸã—ã¾ã—ãŸã€‚ラベルをアップロードã—ã¾ã—ãŸã€‚ラベルを以下ã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã—ãŸ:ラベルã®ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆå…ˆ:シードã¯QRコードã§ã‚‚表示ã•れã¾ã™ã€‚ã“ã‚Œã¯æºå¸¯é›»è©±ãªã©ã¸ã®è»¢é€ã«ä¾¿åˆ©ã§ã™ã€‚シードã¯å¤§äº‹ã«æ‰±ã£ã¦ãã ã•ã„ï¼å–引情報をé€ä¿¡ã—ã¾ã—ãŸã€‚ウォレットã«ã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ãŸã‚¢ãƒ‰ãƒ¬ã‚¹ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ãŒã€å…ƒã€…ã®ç¨®ã«ã¯å«ã¾ã‚Œã¾ã›ã‚“ã®ã§ã€ã‚¦ã‚©ãƒ¬ãƒƒãƒˆç¨®ã‹ã‚‰å†ç”Ÿã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。ウォレットå†ç”Ÿã‚·ãƒ¼ãƒ‰ã¯ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã¯æš—å·åŒ–ã•れã¦ã„ã¾ã™ã€‚ã“ã®ãƒ€ã‚¤ã‚¢ãƒ­ã‚°ã§ãƒ‘スワードを変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã‚¦ã‚©ãƒ¬ãƒƒãƒˆã¯æš—å·åŒ–ã•れã¦ã„ã¾ã›ã‚“å‡çµãƒ–ロックエラーをアドレス帳ã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿã‚’ウォレットã‹ã‚‰å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿå¾…機中ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆ%(amount)s ã‚’ %(address)s ã«é€ä¿¡ã—ã¾ã™ã‹ï¼Ÿä¸æ˜Žèª­ã¿å–り専用Electrum-1.9.7/locale/ky_KG/0000755000000000000000000000000012264174460015517 5ustar rootroot00000000000000Electrum-1.9.7/locale/ky_KG/LC_MESSAGES/0000755000000000000000000000000012264174460017304 5ustar rootroot00000000000000Electrum-1.9.7/locale/ky_KG/LC_MESSAGES/electrum.mo0000664000175000017500000007372712264174460023245 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHgÚH>BJ1J³JdÏJ"4K WKcKiK}KKœK¤K´KºKÉK ØK ãK îKüKL& L3LFL OL \LiL{L L‹L ”L¢LÂLÈLØLèLïL÷LùL)M'AMˆiMòM NN%"N7HN €NN ”N¡N°N ÁNÎN/áN O O+O :ODOc^O ÂO ÍO×OêOP PP P+PKP`PvP~P-•PÃPÈPÝPïPQ'QCQUQ qQ~Q+‡Q ³Q ÀQ ÍQÙQ/îQR„&R«R ÄRÒRèR4ñR&S 7SBSSS/eS+•T3ÁTõTf UqUGU*ÉU*ôU1V-QV4V4´VséVP]X,®XÛXñXY Y*Y AY@OYYªY ®Y ÏY,ÛYZZ$Z/9ZiZnZ ‚Z'Z`µZD[O[[«[¿[Ó[æ[ú[,\w0\R¨\"û\] -] 9]C]Y] j]‹]š] ²] ¾]Ì]Õ]3Ù] ^ ^^.^>^R^b^;k^§^­^%¶^Ü^ð^___/_8_ =_5J_ €_ Œ_ ˜_-¥_0Ó_`: `D`#L` p`~`G`8×`ua †a“a›a¬a½a!Ìaîab b5bPb?hb¨b$Èbíbc+'c8ScŒcB›cÞcïcdd/dKd\dvd‘d™d´dÊdÒd êdôd ee2eEeLe%[e eŒe%›eÁeÚe ÷e f ff# fDf_f*}f1¨fÚfúf,g9>gxg”g3±gåg ôg!þg# hDhShqh†h—h ·h\Äh!i:iMi Ri _i livi‰i i›i¬iÅiÔiåiúi%j 4jzUjÃÐj”k€²k"3l*VlXl-ÚlNmWm<vmL³nToUoOroÂo:ÚopK*p vp‚p’p¢p´p Ópôpq$1qVqpqq¢qºqÒq+îqr#r4r=r'Zr‚r—r[œrør ss )s6s*>s isŠs@’s Ós±Þst.uAu#\u€u u¿uZÝu8vPvMpv¾vBÝv" w CwNw]wcww‘w¡wÁw Éw¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Kyrgyz Language: ky_KG MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)sПрограмма &жөнүндө&Жабуу&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Жардам&Import&LabelsТранзакциÑны &жүктөө&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keysКатаны маалымдоо&Seed&Жөнөтүү&Темалар&Tools&Wallet+... жана ÑуммаÑынA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameÐракеттерÐктивдүү ÑерверлериAdd an optional, mouse keyboard to the password dialog.ДарегиAlias:All accountsСуммаÑÑ‹Amount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectБаланÑÑ‹Base unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdЖокко чыгарууChainChangeТазалооЖабууСырÑөздү аныктооÐныктоолорТуташууда...ConsoleБайланыштарCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionДатаÑÑ‹Date: %sЖарыÑÐ»Ð°Ð½Ð±Ð°Ñ ÑерверлериӨчүрүүDelete aliasDerivation:БаÑндамаÑÑ‹Description of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeДаÑÑ€Double clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Bitcoin дарегин же байланыштын атын киргизиңизEnter a filename for the copy of your walletEnter a new file nameEnter private keysКатаError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Жүктөп алуу барагына өтүүHideHide used addressesТарыхHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionИмпорттооImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.СырÑөзү туура ÑмеÑIncorrect seedInformationInput CSVInput raw transactionКириштерДареги туура ÑмеÑInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueЭÑепKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedТилиLeave these fields empty if you want to disable encryption.LimitLoad CSVТранзакциÑны жүктөөMaster Private KeysMaster Public KeyMaster Public KeysMaximizeБилдирүүMinimizeNameТармакNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sЖаңы верÑиÑÑÑ‹ жеткиликтүүNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"ЖарайтOfflineOpen labels fileЧыгыштарСырÑөзүPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedКаÑиеттериЖеке ачкычPrivate keys exported.Process Offline transactionПротоколПрокÑи-ÑерверPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountКаталарды маалымдооСурооRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.СактооScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.ЖөнөтүүSend FromSending transaction, please wait.Sending transaction, please wait...СервериServer is lagging (%d blocks)ЫраÑтоолорКөрÑөтүүТарыхын көрÑөтүүShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedИйгиликтүүSwitch to Lite ModeСинхрондоштурууда...МакÑаттуу дареги:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.Кимге/кимденTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyÐ¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð°Ð±Ð°Ð»Ñ‹:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletТранзакциÑÑÑ‹:ТранзакциÑларыUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeБелгиÑизUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.ТекшерүүВерÑиÑView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.КачанYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenблокторerrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/eo_UY/0000755000000000000000000000000012264174460015533 5ustar rootroot00000000000000Electrum-1.9.7/locale/eo_UY/LC_MESSAGES/0000755000000000000000000000000012264174460017320 5ustar rootroot00000000000000Electrum-1.9.7/locale/eo_UY/LC_MESSAGES/electrum.mo0000664000175000017500000007226112264174460023251 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHqÚH>LJ1‹J½JdÙJ>KEKLKRKfKvK…KKK£K²K ÁK ÌK×KÝKåKíKÿKL L (L5LGL MLWL `L nLzL€L†LŽL•LLŸL)®L'ØL”M•M ¥M²MºM7ËMN N NN#N 4NAN/RN ‚N NœN ¤N®NhÈN 1O W,aWŽW¤W·W½WÚW ñW@ÿW@XZX ^X X,‹X¸X¿X$ÄXéXüXYY'Y`EYD¦YOëY;ZOZcZjZ~Z,‡Zw´ZR,[[’[ ¡[ ­[·[Í[Ô[ä[ó[ \ \%\-\31\e\ k\v\†\–\ª\º\;Ã\ÿ\]]]3]E]X]a]i]r]w]5] µ] Á] Í]-Ú]^^:#^^^#f^ Š^˜^G©^8ñ^u*_ _£_«_¼_Ä_!Í_ï_` `5`Q`?i`©`$É`î` a+(a8TaaBœaßa ða üabb;bDbJbebmbˆbžb¦b ¾bÈbàbòbcc c/c>cFc%Uc{c”c±c ¶c ÃcÍc#Òcöcd*/d1ZdŒd¬d,Ãd9ðd*eFe3ce—e œe!¦e#Èeìeóeff f ,f\9f–f¯fÂf Çf Ôf áfëfþf gg!g:gIgZgbgvg‡gz—gÃhÖh€ôh"ui*˜iXÃi-jNJj™j<¸jLõkTBl—lO´l m:mImK^m ªm¶mÆmÖmèmnn9n$Xn }nŠnn¢nºnÒn+îno#o+o4o'QoyoŽo[“oïoöoþo pp*&p Qprp@zp»p±Àprq.ôq#r#>rbr‚r¡rZ¿rs2sMRs sB¿s"t %t0t7t=tYtkt{t›t £t¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Esperanto Language: eo_UY MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:Sugestita honorario aldoniÄis aÅ­tomate al tiu kampo. Vi povas transpasi Äin. La sugestita honorario pligrandiÄas kun la grando de la transakcio.Account DetailsAccount nameActionsAktivaj servilojAdd an optional, mouse keyboard to the password dialog.AdresoAlias:All accountsSumoAmount received:Amount sent:Sumo sendiÄota.Are you sure you understand what you are doing?Auto connectAuto-connectBilancoBase unitBase unit of your wallet.Bitmonaj transakcioj ne estas senkosta Äenerale. Sendanto pagis la transakcian honorarion por la kasoj.BlockchainBroadcastCSV Export createdNuligiChainChangeVakigiFermiKonfirmi pasvortonConfirmationsKonektanta...ConsoleKontaktojCopied your Bitcoin address to the clipboard!CopyKopii ID al tondejoKopiiCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDatoDate: %sDefaÅ­ltaj servilojForigiDelete aliasDerivation:PriskriboPriskribo de la transakcio (ne nepra).DetaloDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverMontru nulojDo you want to removeDoneDouble clicking the label will allow you to edit it.Redakti priskribonRedakti etikedonElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysEraroError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/cs_CZ/0000755000000000000000000000000012264174460015514 5ustar rootroot00000000000000Electrum-1.9.7/locale/cs_CZ/LC_MESSAGES/0000755000000000000000000000000012264174460017301 5ustar rootroot00000000000000Electrum-1.9.7/locale/cs_CZ/LC_MESSAGES/electrum.mo0000664000175000017500000007300412264174460023226 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHˆÚH>cJ1¢JÔJdðJUK\KcKiK}KKœK¤K´KºKÉK ØK ãKîKôKüKLL)L 2L ?LLL^L dLnL wL …L‘L—LL¥L¬L´L¶L)ÅL'ïL¦M¾M ÎMÛMãM7ôM,N3N :NGNPN aNnN&…N ¬N ¹N ÆN ÐNÚNaôN VO aOkO~O†OŒO“O›O¤O ´OÂOÔO ÜO-æOPP5PNPgP'P©P»P×PÝPæPøPÿP QQ!!QCQ„KQÐQéQRR4R SRaRtR…R/™R+ÉS3õS)Tf>T¥TGµT*ýT*(U1SU-…U4³U4èUsV"‘W,´WáW÷WXX4X KX@YXšX´X ½X ÞX,êXYY$$YIY\YaYuY'~Y`¦YDZVLZ£Z·ZËZÒZæZ,ïZw[R”[ ç[õ[ \ \\0\7\H\[\x\‹\\¥\3©\ Ý\ è\ó\]]']7]B@]ƒ]‰]’]£]·]Ð]ã] ì]÷]^^5 ^ A^M^ \^-h^–^¬^:±^ ì^#÷^ _(_G<_8„_u½_3`6`>`O`X`!^`€`”`™`H«`ô`? aKa$kaa¦a+Åa/ña!bK0b|bb “bŸb¶bÒbÛb ábc c%c;cCc [ceczcc£c¶c½cÌcÛcãc%ùcd8dUd]d ndxd:}d¸dÓd*ñd7eTete,‹e5¸eîe f3'f[f bf!lf#Žf²f¹f ×fâf ëf øf\gbg{gŽg “g  g ­g·gÊg ÑgÜgíghh&h!-hOh`h}phÖîhÅinãi"Rj*ujX j-ùjN'kvk<•kQÒlT$mymO–m æmAðm2nKGn “nŸn¯nÅn×nön o(o$Go loyo|o‘o©oÁo+Ýo p pp&p0Cptpp[•pñpúpq q 'q*2q ]q ~q@‰qÊq¼ÏqŒr.s"=s#`s„s¤sÃspásRtjtMŠt(ØtGu.Iu xuƒuŠuu¬u¾uÎuîu öu¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Czech Language: cs_CZ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:Navrhovaný poplatek je automaticky vložen do tohoto políÄka. Můžete ho pÅ™epsat. Výše navrhovaného poplatku se zvyÅ¡uje v závislosti na velikosti transakce.Account DetailsAccount nameActionsAktivní serveryAdd an optional, mouse keyboard to the password dialog.AdresaAlias:All accountsČástkaAmount received:Amount sent:Částka k odeslání.Jste si jisti, že víte, co dÄ›láte?Auto connectAuto-connectZůstatekBase unitBase unit of your wallet.Transakce Bitcoinů obecnÄ› nejsou bezplatné. Poplatek za transakci platí odesílatel financí.BlockchainBroadcastCSV Export createdZruÅ¡itChainChangeVymazatZavřítPotvrÄte hesloConfirmationsPÅ™ipojování...ConsoleAdresářCopied your Bitcoin address to the clipboard!CopyZkopírovat ID do schránkyZkopírovat do schránkyZkopírovat do schránkyCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDatumDate: %sVýchozí serverySmazatOdstranit aliasDerivation:PopisPopis transakce (není povinné).DetailyDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverPoÄet nul k zobrazeníDo you want to removeHotovoDouble clicking the label will allow you to edit it.Upravit popisUpravit oznaÄeníElectrum PluginsNastavení ElectrumElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameVložit privátní klíÄChybaError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordPoplatekFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineZmrazitFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistorieHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.Pokud budete nÄ›kdy obnovovat VaÅ¡i peněženku ze seedu, tyto klíÄe budou ztraceny.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Chybné hesloIncorrect seedInformationInput CSVInput raw transactionVstupyNeplatná adresaNeplatná ÄástkaNeplatná bitcoinová adresaNeplatný poplatekNeplatná hodnotaInvoiceKeyKeyboard shortcut: type "!" to send all your coins.OznaÄeníLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguagePokud nechcete použít Å¡ifrování, nezadávejte žádné heslo.LimitLoad CSVLoad transactionMaster Private KeysHlavní veÅ™ejný klíÄMaster Public KeysMaximizeOznámeníMinimizeNameSíťNever disclose your seed. Never type it on a website.New AccountNový adresátNové hesloNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.Není seedNo transactions found for this seedNepÅ™ipojenoNedostatek financíNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileVýstupyHesloPassword was updated successfullyHesla se neshodujíKomuPlatba odeslána.Zadejte prosím heslo pro zaÅ¡ifrování vaÅ¡ich klíÄů v peněžence.Zvolte prosím server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Vložte prosím hesloPlease enter your wallet seed.Please report any bugs as issues on github:Pro aktivaci zmÄ›n prosím restartujte ElectrumPlease wait...Prosím opiÅ¡te nebo zapamatujte si tÄ›chto %d slov (záleží na poÅ™adí)Preference savedVolbyPrivate keyPrivate keys exported.Process Offline transactionProtokolProxyOdstranÄ›né výstupy transakcíQR codeQR code saved to clipboardQR code saved to filePÅ™ijemReceive Bitcoin paymentReceivingPříjemce financí.DoporuÄená hodnotaRecovery successfulRemove from walletRenameRename accountReporting BugsRequestPožadovaná ÄástkaRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.UložitNaÄíst QR kódScan TxQRSeedStisknÄ›te 'ZruÅ¡it', pokud nejste pÅ™ipojeni k Internetu.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toVyberte soubor pro export transakcí Vaší peněženkySelect file to save your labelsSelect server manuallySelect where to save your signed transactionVyberte nový jazyk rozhraní aplikace (po restartu).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.PoslatSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)NastaveníZobrazitShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedHotovoPÅ™epnout do kompaktního režimuSynchronizuji...Target address:Výši poplatku si může zvolit odesílatel libovolnÄ›. NicménÄ› transakce s malými poplatky jsou zpracovávány pozdÄ›ji.Pokud nemáte dostatek financí v peněžence, bude Äástka zobrazena ÄervenÄ›. Je nutné poznamenat, že pokud jste zmrazili nÄ›které své adresy, dostupné finance budou nižší než váš celkový zůstatek.The bitcoin URI was signed byPopis není odeslán pÅ™ijemci. Je uložen pouze ve Vaší peněžence a bude zobrazen v záložce 'Historie'.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.Tento seed umožní obnovit VaÅ¡i peněženku v případÄ› selhání poÄítaÄe.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromPokud chcete vypnout Å¡ifrování, vložte prázdné nové heslo.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:TransakÄní poplatekTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundRozmrazitNeznáméUnsignedUnsigned transaction createdNepodepsaná transakce byla uložena do souboru:Používat zmÄ›nové adresyUsedUsing change addresses makes it more difficult for other people to track your transactions.OvěřitVersionZobrazit detaily aliasuView detailsVAROVÃNÃWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.VarováníWarning: do not use this if it makes you pick a weaker password.WhenMůžete vložit bitcoinovou adresu, oznaÄení z vaÅ¡eho adresáře (zobrazí se vám seznam návrhů) nebo alias (adresa podobná e-mailu, která pÅ™esmÄ›rovává na bitcoinovou adresu).You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Váš hlavní veÅ™ejný klÃ­Ä je:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toVáš seed je také zobrazený jako QR kód pro případ, že byste ho chtÄ›li pÅ™enést do mobilního telefonu.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Seed k vytvoÅ™ení vaší peněženky jeVaÅ¡e peněženka je Å¡ifrována. V tomto oknÄ› můžete heslo zmÄ›nit.VaÅ¡e klíÄe v peněžence nejsou Å¡ifroványare frozenblokůerrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/hu_HU/0000755000000000000000000000000012264174460015523 5ustar rootroot00000000000000Electrum-1.9.7/locale/hu_HU/LC_MESSAGES/0000755000000000000000000000000012264174460017310 5ustar rootroot00000000000000Electrum-1.9.7/locale/hu_HU/LC_MESSAGES/electrum.mo0000664000175000017500000007403512264174460023242 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHqÚH>LJ1‹J,½JdêJ OK YKdKjK~KŽKK¥KµK»KÊK ÙK äK ïKûKL L$L7L @L MLZLlL rL|L …L“L¢L ¨L²L»LÂLÊLÌL)ÝL*M¬2MßM ïMüMN7NMNRN [NhNpN NŽN0¢N ÓN àNíN öNOYO tO O‰OœO£O©O°O ¹OÃOÛOìOýO P-P=PBP\PrP$ˆP,­PÚP&ìPQQ#Q>QGQ WQ cQ+oQ ›Q„¦Q+RDRYRpR7vR®RÊRßRðR/S+8T3dT˜Tf­TUF*U/qU/¡U5ÑU2V4:V1oV‚¡V'$X,LXyXX©X®XËX âXKðXZ'KZ`sZDÔZQ[k[‡[¡[¨[ Æ[:Ñ[w \R„\×\é\ ø\ ]] )]3]F]\]w]—]­]µ]3¹]í]ô] ^^0^I^]^?c^£^©^²^Ê^Þ^ô^___!_ &_G0_ x_ „_ _-œ_Ê_á_>æ_%`69`p`€`G”`CÜ`o aa“a›a ³a½a!Åaçaþab>#bbbSybÍb$íbc(c)GcHqcºc;Ëcdd ,d:dWdsd|d ‚d£d«dÆdßdèd ee e2eFecejeye‹e “e%¡eÇeàeûef f !f&/fVf"pf.“f3Âf"öfg(0g8Yg’g ®g.Ïgþg h!h"3hVh^h|h‹hšh ·hiÄh.i=i Pi[ioi ƒiŽi¡i ¨i³iÄiÝiìiýijj .j…8j´¾jsk‚‘kl.4lXcl-¼lNêl9mcXm`¼nKoioO†oÖoIço1pKMp ™p¥pµpÇpÝpúp!q3q$Rq wq„q‡qœq"´q×q+óqr .r 9r$Fr%kr‘r©rU®rsss .s;s,Ks.xs§s>·sösÑüsÎt.Puu#uÁuáuÿucv~v–vM¯v%ývD#w)hw ’ww¥w«wÇw×wçwx x¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2013-11-25 08:38-0500 Last-Translator: rdymac Language-Team: Hungarian Language: hu_HU MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.net Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tabés regisztrálj egy felhasználói fiókot.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&Névjegy&Bezárás&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Segítség&Import&Labels&Tranzakció betöltése&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Hibajelentés&Seed&Küldés&Témák&Tools&Wallet+... és összegeA tárcafájlod másolata létrejött ittAz Electrum egy új verziója érhetÅ‘ el:Az ajánlott tranzakciós díj automatikusan hozzáadódik ehhez a mezÅ‘höz. Felülírhatod. A javasolt tranzakciós díj a tranzakció összegével arányosan növekszik.Account DetailsAccount nameAkciókAktív szerverekAdd an optional, mouse keyboard to the password dialog.CímÃlnév:All accountsÖsszegAmount received:Amount sent:KüldendÅ‘ összeg.Biztos, hogy megértetted, mit akarsz csinálni?Auto connectAuto-connectEgyenlegBase unitBase unit of your wallet.A Bitcoin tranzakciók nem ingyenesek. A tranzakciós díjat a pénz küldÅ‘je fizeti ki.BlockchainBroadcastCSV Export createdMégseChainChangeTörlésBezárásJelszó megerÅ‘sítéseMegerÅ‘sítésekKapcsolódás...ConsolePartnerekA Bitcoin címed a vágólapra lett másolva!CopyID másolása vágólapraMásolás vágólapraMásolás vágólapraCímkék nem szinkronizálhatók: %sA tranzakciót nem lehet a fájlba írni: %sCreate new walletAláíratlan tranzakció létrehozásaDátumDate: %sAlapértelmezett szerverekTörlésAlias törléseDerivation:MegjegyzésMegjegyzés a tranzakcióhoz (opcionális).RészletekDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverTizedesjegyek számaEl akarod távolítaniKészKét kattintás a címkén szerkeszthetÅ‘vé teszi azt.Megjegyzések szerkesztéseCímke szerkesztéseElectrum PluginsElectrum beállításaiElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum frissítéseAz Electrum nem tudja másolni a tárcafájlodat a választott helyre.Az Electrum nem tudja exportálni a címkéket.Az Electrum nem tudja importálni a címkéket.Az Electrum nem tudja megnyitni a tranzakciós fájltAz Electrum nem tudja feldolgozni a tranzakciódatAz Electrum nem tudja exportálni a privát kulcsot.Az Electrum nem tudja exportálni a tranzakciót.Az Electrum egy gyors, kis erÅ‘forrásigényű és egyszerű Bitcoin kliens. Nincs szükség hagyományos biztonsági mentésekre, a tárcád egy titkos 12 szavas emlékeztetÅ‘bÅ‘l visszaállítható amit megjegyezhetsz vagy papírra írhatsz. Az indulási idÅ‘ azonnali, mert az adatbázist, a Bitcoin rendszer legkomplikáltabb részét nagy sebességű szerverekrÅ‘l szinkronizálja.Bitcoin címek vagy partnerek beírásaEnter a filename for the copy of your walletEnter a new file namePrivát kulcsok beírásaHibaError: cannot display pluginError: wrong signatureExit ElectrumA privát kulcsod publikálása az egész tárcád elvesztésével járhat!Failed to update passwordTranzakciós díjDíj a tranzakció kilobájtja alapján.File existsFormat: address, amount. One output per lineBefagyasztásFromGetting block headers from %d nodes.Ugrás a letöltési oldalraHideHasznált cím elrejtéseElÅ‘zményekHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.Ha valaha visszállítod a tárcádat emlékeztetÅ‘bÅ‘l ezek a kulcsok elvesznek.Minden verzió ignorálásaEzen verzió ignorálásaImportPrivát kulcsok importálásaImportáltAz importált kulcsok nem állíthatók helyre a seedbÅ‘l.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.SOHA NE HASZNÃLD a 'privát kulcs beváltása' szolgáltatást harmadik félnél.Helytelen jelszóIncorrect seedInformációInput CSVNyers tranzakció bevitelBevitelekÉrvénytelen címÉrvénytelen összegÉrvénytelen Bitcoin címÉrvénytelen tranzakciós díjÉrvénytelen értékSzámlaKeyKeyboard shortcut: type "!" to send all your coins.CímkeCímke szinkronizációLabels exportedImportált címkékCímkék szinkronizálvaCímkék feltöltveNyelvHagyd a mezÅ‘ket üresen, ha le akarod tiltani a titkosítást.LimitLoad CSVTranzakció betöltéseMaster Private KeysPublikus Mester KulcsMaster Public KeysMaximizeÜzenetMinimizeNameHálózatSoha ne mutasd meg senkinek az emlékeztetÅ‘det. Ne írd ki weboldalra.New AccountÚj partnerÚj jelszóNew transaction received. %(amount)s %(unit)sÚj verzió elérhetÅ‘NextNem jelenik meg több értesítés a verziófrissítésekrÅ‘l.Nincs emlékeztetÅ‘Nem található tranzakció ehhez az emlékeztetÅ‘hözNincs kapcsolatNincs elég pénzedNote: Newly created accounts are 'pending' until they receive bitcoins.Nem jelenik meg több értesítés errÅ‘l a verziófrissítésrÅ‘l.A tizedesjegy után megjelenÅ‘ nullák száma. Ha a beállított érték 2, az "1." így fog megjelenni: "1.00"OKOfflineCímkefájl megnyitásaKimenetekJelszóPassword was updated successfullyJelszavak nem egyeznekPénzküldés ideFizetés elküldveVálassz egy jelszót a tárcád kulcsainak titkosításához.Válassz egy szervert.Társítsd címkét a tranzakcióhoz a jövÅ‘beli könnyebb azonosíthatóságért.Please enter a list of outputs.Please enter your master public key.Ãrd be a jelszavadatPlease enter your wallet seed.A tapasztalt hibákat jelentsd GitHub-on:Indítsd újra az Electrumot az új GUI beállítások aktiválásához.Kérlek várj...Ãrd le vagy jegyezd meg ezt a %d szót (a sorrend fontos).Tulajdonságok mentveTulajdonságokPrivát kulcsPrivát kulcsok exportálva.Process Offline transactionProtokolProxyTranzakciós kimenetek metszéseQR kódQR code saved to clipboardQR kód mentése fájlbaFogadásBitcoin fizetések fogadásaReceivingPénz címzettjeAjánlott értékRecovery successfulEltávolítás a tárcábólRenameRename accountHibák jelentéseKérésKért összegRestore wallet from master public keyRestore wallet from seedÃlnevek fogadása http-n.MentésQR kód beolvasásaScan TxQREmlékeztetÅ‘Válaszd a 'Mégse'-t ha offline vagy.Fogadó cím választásaTranzakció fájlnév választásaMelyik fájlba exportálja a privát kulcsokatTárca tranzakcióinak exportálása ebbe a fájlbaMelyik fájlba mentse a címkéketSelect server manuallyHova mentse az aláírott tranzakciókatA felhasználói felület nyelve (újraindítás után).Select your transaction CSVVálassz egy tranzakciós fájltA kiválasztott cím a vágólapra másolódikKüldésSend FromSending transaction, please wait.Tranzakció küldése, türelem...SzerverServer is lagging (%d blocks)BeállításokMegjelenítésElÅ‘zmények megjelenítéseShow InvoiceQR kód ablak megjelenítése és a kért összeg címenként. Menüelem hozzáadása a kért összeghez.Fogadó címekShow unsigned TxQRAláírásÜzenet aláírásaÜzenet aláírásaAláírásSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSikeresVáltás Lite MódraSzinkronizáció...Célcím:A tranzakciós díj összege a küldÅ‘ által választható. Minél alacsonyabb, annál késÅ‘bb kerül feldolgozásra a tranzakció.Az összeg pirossal szerepel, ha nincs elég pénzed a tárcádban. Ha néhány címet befagyasztottál a rendelkezésre álló pénzed alacsonyabb lehet, mint a teljes egyenleged.The bitcoin URI was signed byA megjegyzést nem küldi el a címzett számára. A saját tárcádban fog tárolódni és az 'ElÅ‘zmények' fülön jelenik meg.A következÅ‘ címek hozzáadvaA következÅ‘ bemenetek nem lettek importálvaThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletEz a beépülÅ‘ szinkronizálja a címkéket több Electrum telepítés között egy távoli adatbázist használva az adattároláshoz. A címkék nem titkosítottak, a tranzakciók és a címek viszont azok. Ez a kód talán növeli a tárcád betöltÅ‘dési idejét néhány ezredmásodperccel, mivel a címkéket is szinkronizálni fogja indításkor.Az elmékeztetÅ‘ lehetÅ‘vé teszi, hogy adatvesztés esetén is visszaállíthatsd a tárcádat.Ez a tranzakció magasabb díjat igényel, vagy nem fogadja el a hálózat.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.Címzett/FeladóA tárca titkosításának letiltásához írj be egy üres új jelszót.Kezdéshez látogass el ideTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Tranzakciós díjTranzakció címkéjeTranzakció sikeresen mentveTranzakció állapota:A tranzakció sikeresen elküldveTransaction successfully sent:Transaction unrelated to your walletTranzakció:TxUnable to create csvUnable to export labelsA címkéket nem lehet importálniUnable to parse transactionUnable to read file or no transaction foundFagyasztás-kiIsmeretlenAláíratlanAláíratlan tranzakció létrehozvaAláíratlan tranzakciók mentve ide:Cserecímek használataUsedCserecímek használatával nehezebben követhetik le a tranzakcióidat más emberek.MegerÅ‘sítésVerzióÃlnév részleteiView detailsFIGYELMEZTETÉSFIGYELEM: Az ÖSSZES privát kulcsod titkos.A Tárca de-seeded, bejelentkezés sikertelen.FigyelmeztetésFigyelem: ne használd ezt, ha gyengébb jelszót választasz.MikorÃrj be egy Bitcoin címet, egy címkét a partnerlistádról (kitöltést segítÅ‘ ajánlások jelennek meg), vagy egy álnevet (e-mailhez hasonló cím, ami egyenesen az címzett Bitcoin címére továbbít)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Az exportált CSV fájl sikeresen létrejött.A Publikus Mester Kulcsod ez:A címkéid szinkronizálva lettek.A címkéid fel lettek töltve.A címkéid importálva innenA címkék exportálva ideAz emlékeztetÅ‘d QR kódként is megjeleníthetÅ‘, például ha mobiltelefonra szeretnéd menteni.Your seed is important!A tranzakciód elküldveYour wallet contains imported keys. These keys cannot be recovered from seed.A tárca generáló emlékeztetÅ‘d ezA tárcád titkosítva. Használd ezt a dialógust jelszócseréhez.A tárcád kulcsai nincsenek titkosítva.are frozenblokkokerrora partnereid listájáról?a tárcádból?pending accountsend %(amount)s to %(address)s?unknownwatching onlyElectrum-1.9.7/locale/de_DE/0000755000000000000000000000000012264174460015453 5ustar rootroot00000000000000Electrum-1.9.7/locale/de_DE/LC_MESSAGES/0000755000000000000000000000000012264174460017240 5ustar rootroot00000000000000Electrum-1.9.7/locale/de_DE/LC_MESSAGES/electrum.mo0000664000175000017500000007557612264174460023205 0ustar voegtlinvoegtlin00000000000000Þ•l| çÜx>y1¸êdkry“£²ºÊÐß î ù    , ? H U b t z „ › § ­ ³ »  Ê Ì )Û '!ˆ-!¶! Æ!Ó!Û!7ê!""*" 1">"E" V"c"/v" ¦" ³"À" È"Ò"cì" P# [#e#x##…#Œ#’#˜# ©# ·#Å#Í#-Ö#$ $$0$B$'\$„$–$²$·$À$Ð$ ×$ ä$ ð$/ü$,%„4%¹% Ò%à%ö%4û%0& A&L&]&/o&+Ÿ'3Ë'ÿ'f({(G‹(*Ó(*þ(1))-[)4‰)4¾)só)"g+,Š+·+Í+à+æ+, ,@(,i,ƒ, ‡, ¨,,´,á,è,$í,-%-*->-'F-`n-DÏ-O.d.x.Œ.“.§.,°.wÝ.RU/¨/»/ Ê/ Ö/à/ö/ý/ 00 40 @0N0V03Z0Ž0 ”0Ÿ0¯0¿0Ó0ã0;ì0(1.171H1\1n11Š1’1›1 15¨1 Þ1 ê1 ö1-212G2:L2‡2#2 ³2Á2GÒ283uS3É3Ì3Ô3å3í3!ö34/4 645D4z4?’4Ò4$ò4525+Q58}5¶5BÅ56 6 %616H6d6m6s6Ž6–6±6Ç6Ï6 ç6ñ6 77/7B7I7X7g7o7%~7¤7½7Ú7 ß7 ì7ö7#û78:8*X81ƒ8µ8Õ8,ì899S9o93Œ9À9 Å9!Ï9#ñ9::::C: H: U:\b:¿:Ø:ë: ð: ý: ;;'; .;9;J;c;r;ƒ;‹;Ÿ;°;zÀ;Ã;<ÿ<€="ž=*Á=Xì=-E>Ns>Â><á>L@Tk@À@OÝ@ -A:7ArAK‡A ÓAßAïAÿAB0BDBbB$B ¦B³B¶BËBãBûB+CCCLCTC]C'zC¢C·C[¼CDD'D :DGD*OD zD›D@£DäD±éD›E.FLF#gF‹F«FÊFZèFCG[GM{GÉGBèG"+H NHYH`HfH‚H”H¤HÄH ÌHnÚHDIJ5ŽJ ÄJ`åJFK VK bKmK„K K ¯K ¼KÝKäKóK LLL #L0L?L RL sL}LŒL›L°L ¹LÃLÌLàLïLõLýL M MMM0,M.]M¢ŒM/N >NJN SN<aNžN¦N­N½NÄNÕNæN/ûN+O AONO WOdOlO îO ùOP P$P *P6P ?PJP_P nPzP‚P4‹PÀPÉPçPQ2Q3PQ„Q!žQÀQ ÆQÐQàQéQ øQ R(R:R‹BRÎRâR óRS(S0SESYSjSàS3bT.–TÅTcÜT@ULXU4¥U4ÚU3V1CV:uV:°V¹ëV%¥X=ËX Y#Y?Y*FYqYŠYW›Y&óYZ!"ZDZ/\ZŒZ”Z(˜ZÁZ ÙZäZ [0[]@[Gž[Yæ[@\Z\ s\\ ž\K©\oõ\me]Ó]å] ö] ^^ .^8^K^^^y^Œ^^ ¦^8±^ ê^ö^_-_F_c_}_N…_Ô_ Ú_ä_ö_`0` O` Z` d`o`t`N}` Ì` Ú`è`.÷`&a>aDEa Ša-”aÂaÒaCèa?,bXlbÅbÈbÐb ðbúb'c"+cNcWcDic®cUÎc-$d:Rdd#¥d,ÉdCöd:eOJeše ´eÂeÖeõe ff%fDf!Lfnf ‹f•f ¯f¹fÑfâfg g(g ;g IgUg?fg$¦gËg ãgíg h h*hlYl klxlºúl"µmŽØm*gn7’n`Ên1+o]]o)»o"åoWqM`q)®qfØq?rZHr£r\¿r s(s8sLs$ds‰s œs!½s*ßs ttt&5t'\t„tB£t æt ðt út u=&udu ƒuLu Úuçuïuvv.vZNv©vX±v w¦wˆ·w@x(`x(‰x%²x'Øx)yc*yŽy ¤ylÅy,2zJ_z)ªz Ôzâzêz!ñz{3{!H{ j{ t{¯ây…±=A™b˜iËíZ–&NdbRAhKo4_&¿fa'ÒÂD:ãØR 5pgnºXôÏL|Êá \.cW ܃>:# Á•©ç—ÞBOl>‡?(B5¸€U¤ž°^àö?§Ue‹D4'Põ1 LœÉT7¹q`mŒñ³"/sê}J!kîþ_83-]¡ùký*HTrJ× YŽhI£¬SüXÆHu+F9w%Ÿì«CÃC2@+ï[/”d%ÚÍ´ ̨Åó0!äM)(  ·Qi‘Îj Gë1=<ªOt"`ß÷,Sx 8Ó0.ðGÔ$¼KQ‚I2-Y,PÛÑ¥„{6#øæÀ½a6µ<²Vš;ò3Z$*lV’‰®;v@\e)ŠéÝ­¦ ¾ÕúWgÐ9f† 7åEEÄMˆjû]F¶^›c[ÿÈÇzÖN~٢軓 Note: This requires the exchange rate plugin to be installed. This settings affects the fields in the Send tab to sign up for an account.%(txs)s new transactions received. Total amount received in the new transactions %(amount)s %(unit)s&About&Close&Copy&Create transaction&Create/Restore&Documentation&Export&Export History&File&From CSV file&From CSV text&From file&From text&Help&Import&Labels&Load transaction&Master Public Key&Network&New account&New contact&Official website&Open&Password&Plugins&Private keys&Report Bug&Seed&Send&Themes&Tools&Wallet+... and amountA copy of your wallet file was created inA new version of Electrum is available:A suggested fee is automatically added to this field. You may override it. The suggested fee increases with the size of the transaction.Account DetailsAccount nameActionsActive ServersAdd an optional, mouse keyboard to the password dialog.AddressAlias:All accountsAmountAmount received:Amount sent:Amount to be sent.Are you sure you understand what you are doing?Auto connectAuto-connectBalanceBase unitBase unit of your wallet.Bitcoin transactions are in general not free. A transaction fee is paid by the sender of the funds.BlockchainBroadcastCSV Export createdCancelChainChangeClearCloseConfirm PasswordConfirmationsConnecting...ConsoleContactsCopied your Bitcoin address to the clipboard!CopyCopy ID to ClipboardCopy to ClipboardCopy to clipboardCould not sync labels: %sCould not write transaction to file: %sCreate new walletCreate unsigned transactionDateDate: %sDefault ServersDeleteDelete aliasDerivation:DescriptionDescription of the transaction (not mandatory).DetailsDid you use Electrum before and want to restore a previous wallet or is this your first time and do you want to create a new wallet?Disconnected from serverDisplay zerosDo you want to removeDoneDouble clicking the label will allow you to edit it.Edit descriptionEdit labelElectrum PluginsElectrum SettingsElectrum communicates with remote servers to get information about your transactions and addresses. The servers all fulfil the same purpose only differing in hardware. In most cases you simply want to let Electrum pick one at random if you have a preference though feel free to select a server manually.Electrum could not find an existing wallet.Electrum is generating your addresses, please wait.Electrum preferencesElectrum sends your wallet addresses to a single server, in order to receive your transaction history.Electrum updateElectrum was unable to copy your wallet file to the specified location.Electrum was unable to export your labels.Electrum was unable to import your labels.Electrum was unable to open your transaction fileElectrum was unable to parse your transactionElectrum was unable to produce a private key-export.Electrum was unable to produce a transaction export.Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjunction with high-performance servers that handle the most complicated parts of the Bitcoin system.Enter a Bitcoin address or contactEnter a filename for the copy of your walletEnter a new file nameEnter private keysErrorError: cannot display pluginError: wrong signatureExit ElectrumExposing a single private key can compromise your entire wallet!Failed to update passwordFeeFee per kilobyte of transaction.File existsFormat: address, amount. One output per lineFreezeFromGetting block headers from %d nodes.Goto download pageHideHide used addressesHistoryHow do you want to connect to a server:If auto-connect is enabled, Electrum will always use a server that is on the longest blockchain.If it is disabled, Electrum will warn you if your server is lagging.If you ever need to restore your wallet from its seed, these keys will be lost.Ignore all versionsIgnore this versionImportImport private keysImportedImported keys are not recoverable from seed.In addition, Electrum connects to several nodes in order to download block headers and find out the longest blockchain.In particular, DO NOT use 'redeem private key' services proposed by third parties.Incorrect PasswordIncorrect seedInformationInput CSVInput raw transactionInputsInvalid AddressInvalid AmountInvalid Bitcoin AddressInvalid FeeInvalid valueInvoiceKeyKeyboard shortcut: type "!" to send all your coins.LabelLabel SyncLabels exportedLabels importedLabels synchronizedLabels uploadedLanguageLeave these fields empty if you want to disable encryption.LimitLoad CSVLoad transactionMaster Private KeysMaster Public KeyMaster Public KeysMaximizeMessageMinimizeNameNetworkNever disclose your seed. Never type it on a website.New AccountNew ContactNew PasswordNew transaction received. %(amount)s %(unit)sNew version availableNextNo more notifications about version updates will be shown.No seedNo transactions found for this seedNot connectedNot enough fundsNote: Newly created accounts are 'pending' until they receive bitcoins.Notifications about this update will not be shown again.Number of zeros displayed after the decimal point. For example, if this is set to 2, "1." will be displayed as "1.00"OKOfflineOpen labels fileOutputsPasswordPassword was updated successfullyPasswords do not matchPay toPayment sent.Please choose a password to encrypt your wallet keys.Please choose a server.Please enter a label for this transaction for future reference.Please enter a list of outputs.Please enter your master public key.Please enter your passwordPlease enter your wallet seed.Please report any bugs as issues on github:Please restart Electrum to activate the new GUI settingsPlease wait...Please write down or memorize these %d words (order is important).Preference savedPreferencesPrivate keyPrivate keys exported.Process Offline transactionProtocolProxyPruned transaction outputsQR codeQR code saved to clipboardQR code saved to fileReceiveReceive Bitcoin paymentReceivingRecipient of the funds.Recommended valueRecovery successfulRemove from walletRenameRename accountReporting BugsRequestRequest amountRestore wallet from master public keyRestore wallet from seedRetrieve aliases using http.SaveScan QR codeScan TxQRSeedSelect 'Cancel' if you are offline.Select a receiving addressSelect a transaction filenameSelect file to export your private keys toSelect file to export your wallet transactions toSelect file to save your labelsSelect server manuallySelect where to save your signed transactionSelect which language is used in the GUI (after restart).Select your transaction CSVSelect your transaction fileSelecting an address will copy it to the clipboard.SendSend FromSending transaction, please wait.Sending transaction, please wait...ServerServer is lagging (%d blocks)SettingsShowShow HistoryShow InvoiceShow QR code window and amounts requested for each address. Add menu item to request amount.Show Receiving addressesShow unsigned TxQRSignSign MessageSign messageSignatureSignature verifiedSignedSigned by:Signing address:Status: %d confirmationsStatus: SignedStatus: UnsignedSuccessSwitch to Lite ModeSynchronizing...Target address:The amount of fee can be decided freely by the sender. However, transactions with low fees take more time to be processed.The amount will be displayed in red if you do not have enough funds in your wallet. Note that if you have frozen some of your addresses, the available funds will be lower than your total balance.The bitcoin URI was signed byThe description is not sent to the recipient of the funds. It is stored in your wallet file, and displayed in the 'History' tab.The following addresses were addedThe following inputs could not be importedThe seed has been removed from the wallet. It contains the following master private keysThere was a problem sending your transaction:This blockchain is used to verify the transactions sent by the address server.This is a watching-only walletThis plugin can sync your labels across multiple Electrum installs by using a remote database to save your data. Labels, transactions and addresses are all sent and stored encrypted on the remote server. This code might increase the load of your wallet with a few microseconds as it will sync labels on each startup.This seed will allow you to recover your wallet in case of computer failure.This transaction requires a higher fee, or it will not be propagated by the network.This wallet is not encryptedThis wallet was restored offline. It may contain more addresses than displayed.To / FromTo disable wallet encryption, enter an empty new password.To get started visitTo make sure that you have properly saved your seed, please retype it here.TransactionTransaction ID:Transaction feeTransaction labelTransaction saved successfullyTransaction status:Transaction successfully sentTransaction successfully sent:Transaction unrelated to your walletTransaction:TxUnable to create csvUnable to export labelsUnable to import labelsUnable to parse transactionUnable to read file or no transaction foundUnfreezeUnknownUnsignedUnsigned transaction createdUnsigned transaction was saved to file:Use change addressesUsedUsing change addresses makes it more difficult for other people to track your transactions.VerifyVersionView alias detailsView detailsWARNINGWARNING: ALL your private keys are secret.Wallet is de-seeded, can't sign.WarningWarning: do not use this if it makes you pick a weaker password.WhenYou may enter a Bitcoin address, a label from your list of contacts (a list of completions will be proposed), or an alias (email-like address that forwards to a Bitcoin address)You will need to wait for 2 confirmations until the correct balance is displayed and more addresses are created for that account.Your CSV export has been successfully created.Your Master Public Key is:Your labels have been synchronized.Your labels have been uploaded.Your labels were imported fromYour labels where exported toYour seed is also displayed as QR code, in case you want to transfer it to a mobile phone.Your seed is important!Your transaction has been sent.Your wallet contains imported keys. These keys cannot be recovered from seed.Your wallet generation seed isYour wallet is encrypted. Use this dialog to change your password.Your wallet keys are not encryptedare frozenblockserrorfrom your list of contacts?from your wallet?pending accountsend %(amount)s to %(address)s?unknownwatching onlyProject-Id-Version: electrum Report-Msgid-Bugs-To: POT-Creation-Date: 2013-11-25 14:52+0100 PO-Revision-Date: 2014-01-01 20:25-0500 Last-Translator: rdymac Language-Team: German Language: de_DE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: crowdin.net Hinweis: Dies erfordert die Aktivierung des "Exchange Rate" Plugins.Diese Einstellung ändert alle Guthabendarstellungen.und legen Sie dort ein Konto an.%(txs)s neue Transaktionen erhalten. Gesamtbetrag aller neuen Transaktionen: %(amount)s %(unit)s&Über Electrum&Schließen&Speichern&Transaktion erstellen&Erstellen/Wiederherstellen&Dokumentation&Exportieren&Transaktionsverlauf exportieren&Datei&Aus CSV-Datei&CSV direkt eingebenAus &DateiAus Text&Hilfe&Importieren&Bezeichnungen&Transaktion laden&Öffentlicher Generalschlüssel&Netzwerk&Neuer Account&Neuer Kontakt&Offizielle Webseite&Öffnen&Passwort&Plugins&Private Schlüssel&Fehler melden&Seed&Senden&Thema&Werkzeuge&Geldbörse+... und BetragEine Kopie ihrer Geldbörse wurde angelegt unterEine neue Version von Electrum ist verfügbar:Eine empfohlene Gebühr wird diesem Feld automatisch hinzugefügt, kann aber überschrieben werden. Die empfohlene Gebühr steigt mit der Größe der Transaktion.AccountdetailsAccountnameAktionenAktive ServerZeige optional eine Bildschirmtastatur im Passwortdialog an.AdresseAlias:Alle SchlüsselBetragBetrag erhalten:Betrag gesendet:Zu sendender Betrag.Sind Sie sicher dass Sie verstehen was Sie tun?Automatisch verbindenAuto-ConnectGuthabenBasiseinheitBasiseinheit der Geldbörse.Bitcoin Transaktionen sind üblicherweise nicht kostenlos. Eine Transaktionsgebühr wird vom Sender bezahlt.BlockchainÜbertragungCSV Export erstelltAbbrechenChainWechselgeldLöschenSchließenPasswort bestätigenBestätigungenVerbinde...KonsoleKontakteBitcoin-Adresse wurde in die Zwischenablage kopiert!KopierenID in Zwischenablage kopierenIn Zwischenablage kopierenIn Zwischenablage kopierenKonnte die Bezeichnungen nicht synchronisieren: %sKonnte Transaktion nicht in die Datei %s speichern.Neue Geldbörse erstellenUnsignierte Transaktion erstellenDatumDatum: %sStandard-ServerLöschenAlias löschenAbweichung:BeschreibungBeschreibung der Transaktion (optional).DetailsHaben Sie Electrum bereits benutzt und möchten eine vorherige Geldbörse (Wallet) wiederherstellen, oder möchten Sie eine neue erstellen?Von Server getrenntNachkommastellenMöchten SieFertigDoppelklick zum Ändern der Bezeichnung.Beschreibung ändernBezeichnung ändernElectrum PluginsElectrum EinstellungenElectrum kommuniziert mit Servern um Informationen über Ihre Transaktionen und Adressen zu erhalten. Alle Server erfüllen den gleichen Zweck, in den meisten Fällen reicht es, Electrum zufällig einen auswählen zu lassen.Electrum konnte keine bestehende Geldbörse finden.Electrum erstellt Ihre Adressen, bitte warten.Electrum EinstellungenElectrum sendet Ihre Adressen an einen einzelnen Server, um Ihren Transaktionsverlauf zu empfangen.Electrum AktualisierungElectrum konnte die Geldbörse nicht in das angegebene Verzeichnis kopieren.Electrum konnte die Bezeichnungen nicht exportieren.Electrum konnte die Bezeichnungen nicht importieren.Electrum konnte die Transaktionsdatei nicht öffnenElectrum konnte die Transaktionsdatei nicht lesenElectrum konnte den privaten Schlüssel nicht exportieren.Electrum konnte den Transaktionsverlauf nicht exportieren.Electrum legt Wert auf Geschwindigkeit, Effizienz und Einfachheit. Es müssen keine regelmäßigen Backups angelegt werden, denn die Geldbörse (Wallet) kann jederzeit durch den Seed (oder der zugehörigen Phrase) wiederhergestellt werden, welcher sich einfach ausdrucken oder aufschreiben lässt. Electrum startet sofort, da es mit leistungsfähigen Servern zusammenarbeitet welche die komplizierteren Teile des Bitcoin-Systems übernehmen.Bitcoin-Adresse oder Kontakt eingebenGeben Sie einen Dateinamen für die Kopie Ihrer Geldbörse anNeuen Dateinamen eingebenPrivate Schlüssel eingebenFehlerFehler: Plugin kann nicht angezeigt werdenFehler: Falsche SignaturElectrum beendenDas Herausgeben eines privaten Schlüssels kann die gesamte Geldbörse kompromittieren!Passwort konnte nicht geändert werdenGebührTransaktionsgebühr pro Kilobyte.Datei existiert bereitsFormat: Adresse, Betrag. Eine Ausgabe pro ZeileSperrenVonBlockheader werden von %d Knoten geholt.Zur Downloadseite gehenAusblendenBenutzte Adressen ausblendenTransaktionenWie möchten Sie sich zu einem Server verbinden:Bei aktiviertem Auto-Connect verbindet sich Electrum zum Server mit der längsten Blockchain.Wenn ausgeschaltet, warnt Sie Electrum falls Ihr Server nicht reagiert.Wenn Sie die Geldbörse aus ihrem Seed wiederherstellen, gehen diese Schlüssel verloren!Alle Versionen ignorierenDiese Version ignorierenImportierenPrivate Schlüssel importierenImportiertImportierte Schlüssel können nicht aus dem Seed wiederhergestellt werden.Zudem verbindet sich Electrum zu mehreren Knoten um Blockheader zu laden und die längste Blockchain zu finden.Insbesondere sollten Sie NIEMALS private Schlüssel bei einem Drittanbieter einlösen ("redeem private key").Falsches PasswortUngültiger SeedInformationCSV eingebenRoh-Transaktionsdaten eingebenEingängeUngültige AdresseUngültiger BetragUngültige Bitcoin-AdresseUngültige GebührUngültiger WertRechnungSchlüsselTastenkombination: "!" drücken um alle Coins zu senden.BezeichnungBezeichnungen synchronisierenBezeichnungen exportiertBezeichnungen importiertBezeichnungen synchronisiertBezeichnungen hochgeladenSpracheDiese Felder leer lassen, wenn Sie die Verschlüsselung deaktivieren möchten.LimitCSV ladenTransaktion ladenGeheime GeneralschlüsselÖffentlicher GeneralschlüsselÖffentliche GeneralschlüsselMaximierenNachrichtMinimierenNameNetzwerkVerraten Sie niemals Ihren Seed! Geben Sie ihn niemals auf einer Webseite ein!Neuer AccountNeuer KontaktNeues PasswortNeue Transaktion erhalten. %(amount)s %(unit)sNeue Version verfügbarWeiterÜber Versions-Aktualisierungen werden keine Hinweise mehr angezeigtKein SeedKeine Transaktionen für diesen Seed gefundenNicht verbundenZu niedriges GuthabenNeu erstellte Accounts sind 'ausstehend' bis Sie Bitcoins erhalten.Über diese Aktualisierung werden keine Hinweise mehr angezeigtAnzahl der Nachkommastellen. Wenn es z.B. auf 2 steht, wird "1," als "1,00" dargestellt.OKOfflineDatei mit Bezeichnungen öffnenAusgängePasswortPasswort wurde erfolgreich aktualisiertPasswörter stimmen nicht übereinZahle anZahlung gesendet.Bitte wählen Sie ein Passwort um Ihre Geldbörse zu verschlüsseln.Bitte wählen Sie einen Server.Bitte geben Sie eine Beschreibung dieser Transaktion für den Transaktionsverlauf an.Bitte geben Sie eine Liste der Ausgänge ein.Bitte geben Sie Ihren öffentlichen Generalschlüssel ein.Bitte Passwort eingebenBitte Seed der Geldbörse eingeben.Bitte Fehler als "Issues" bei github melden:Bitte Electrum neu starten um die GUI-Einstellungen zu übernehmen.Bitte warten...Bitte diese %d Wörter aufschreiben oder merken (die Reihenfolge ist wichtig!).Einstellungen gespeichertEinstellungenPrivater SchlüsselPrivate Schlüssel exportiert.Offline-Transaktion verarbeitenProtokollProxyTransaktionsausgänge gekürztQR-CodeQR-Code in Zwischenablage kopiertQR-Code in Datei gespeichertEmpfangenBitcoin-Zahlung empfangenEingängeEmpfänger des Betrags.Empfohlener WertWiederherstellung erfolgreichAus der Geldbörse entfernenUmbenennenAccount umbenennenFehler meldenAnforderungBetrag anfordernGeldbörse aus öffentlichem Generalschlüssel wiederherstellenGeldbörse aus Seed wiederherstellenAlias über http holen.SpeichernQR-Code einscannenScanne TxQRSeed'Abbrechen' wählen wenn Sie offline sind.Empfängeradresse auswählenTransaktionsdateinamen auswählenDatei zum Export der privaten Schlüssel auswählenDatei zum Export der Transaktionen auswählen.Datei zum Sichern der Bezeichnungen auswählenServer manuell wählenDatei zum Sichern der signierten Transaktion auswählen.Sprache der Benutzeroberfläche auswählen (erfordert Neustart).Wählen Sie Ihr Transaktions CSV-DateiTransaktionsdatei auswählenMarkierte Adressen werden in die Zwischenablage kopiert.SendenSenden vonSende Transaktion, bitte warten.Sende Transaktion, bitte warten ...ServerServer hängt (%d Blöcke) hinterherEinstellungenAnzeigenTransaktionsverlauf zeigenRechnung zeigenQR-Code und angeforderten Betrag anzeigen. Fügt den Menüpunkt zum Anfordern eines Betrags hinzu.Empfängeradressen anzeigenUnsignierte TxQR anzeigenSignierenNachricht signierenNachricht signierenSignaturSignatur bestätigtSigniertSigniert von:Signierende Adresse:Status: %d BestätigungenStatus: SigniertStatus: unsigniertErfolgreichIn den Lite-Modus wechselnSynchronisiere...Zieladresse:Die Gebühr kann vom Sender frei gewählt werden. Die Verarbeitung von Transaktionen mit niedriger Gebühr dauert jedoch länger.Der Betrag wird rot dargestellt, wenn das verfügbare Guthaben nicht ausreicht. Das verfügbare Guthaben kann niedriger sein als das Gesamtguthaben, wenn mache Adressen eingefroren sind.Der Bitcoin URI wurde signiert vonDie Beschreibung wird nicht an den Empfänger gesendet. Sie wird lediglich in der Geldbörse gespeichert und im Transaktionsverlauf angezeigt.Die folgenden Adressen wurden hinzugefügtDie folgenden Eingänge konnten nicht importiert werdenDer Seed wurde aus der Geldbörse entfernt. Er enthält die folgenden privaten GeneralschlüsselEs gab ein Problem beim Senden Ihrer Transaktion:Diese Blockchain wird verwendet um vom Adress-Server gesendete Transaktionen zu verifizieren.Diese Geldbörse kann nur gelesen werden.Diese Erweiterung kann die Bezeichnungen über mehrere Computer synchronisieren, indem sie im Netz gespeichert werden. Transaktionen und Adressen werden verschlüsselt, Bezeichnungen nicht. Die Erweiterung kann das Starten der Applikationen verzögern, weil sie jedesmal neu synchronisiert.Mit diesem Seed lässt sich die Geldbörse nach einem Computerausfall wiederherstellen.Die Transaktionsgebühr ist zu niedrig, um vom Netzwerk verbreitet zu werden.Diese Geldbörse ist nicht verschlüsseltDiese Geldbörse wurde offline wiederhergestellt. Sie könnte mehr Adressen als dargestellt enthalten.An / VonUm die Geldbörse unverschlüsselt zu speichern, bitte ein leeres neues Passwort eingeben.Um loszulegen, besuchen SieUm sicherzugehen daß Sie den Seed tatsächlich gesichert haben, bitte hier erneut eingeben.TransaktionTransaktions-IDTransaktionsgebührTransaktionsbezeichnungTransaktion erfolgreich gespeichert.Transktionsstatus:Transaktion erfolgreich gesendetTransaktion erfolgreich gesendet:Transaktion ohne Bezug zu Ihrer GeldbörseTransaktion:TxKonnte CSV nicht erstellenKonnte Bezeichnungen nicht exportierenKonnte Bezeichnungen nicht importieren.Konnte Transaktion nicht lesenDatei konnte nicht gelesen wurden, oder keine Transaktion gefundenFreigebenUnbekanntUnsigniertUnsignierte Transaktion erstelltUnsignierte Transaktion wurde in folgender Datei gespeichert:Wechselgeld-Adressen verwendenVerwendetWechselgeld-Adressen erschweren es Dritten, Ihre Transaktionen zu verfolgen.VerifizierenVersionAlias-Details anzeigenDetails anzeigenACHTUNGACHTUNG: ALLE privaten Schlüssel sind geheim.Die Geldbörse enthält nicht die privaten Schlüssel, die zum signieren benötigt werden.AchtungAchtung: Lassen Sie sich dadurch nicht dazu verleiten ein schwaches Passwort zu wählen.DatumSie können eine Bitcoin-Adresse eingeben, ein Kürzel aus den Kontakten, oder einen Alias (eine email-ähnliche Adresse, welche an eine Bitcoin-Adresse weiterleitet)Sie müssen auf 2 Bestätigungen warten, bis das korrekte Guthaben angezeigt wird und mehr Adressen für diesen Account erstellt werden.Der CSV-Export war erfolgreich.Ihr öffentlicher Generalschlüssel ist:Die Bezeichnungen wurden synchronisiert.Die Bezeichnungen wurden hochgeladen.Die Bezeichnungen wurden importiert ausDie Bezeichnungen wurden exportiert nach:Der Seed wird auch als QR-Code dargestellt, falls Sie ihn in ein Mobiltelefon importieren möchten.Der Seed ist wichtig!Ihre Transaktion wurde gesendet.Ihre Geldbörse beinhaltet importiere Schlüssel. Diese können nicht aus dem Seed wiederhergestellt werden.Der Startwert (Seed) Ihrer Geldbörse lautetIhre Geldbörse ist verschlüsselt. Hier können Sie Ihr Passwort ändern.Ihre Geldbörse ist nicht verschlüsselt.sind gesperrtBlöckeFehleraus Ihrer Kontaktliste entfernen?aus Ihrer Geldbörse entfernen?ausstehender Account%(amount)s an %(address)s senden?unbekanntnur lesenElectrum-1.9.7/electrum.conf.sample0000644000175000017500000000077012044441755020771 0ustar voegtlinvoegtlin00000000000000# Configuration file for the electrum client # Settings defined here are shared across wallets # # copy this file to /etc/electrum.conf if you want read-only settings # copy it into your ~/.electrum/ directory if you want global settings # that can be rewritten by the client [client] server = electrum.novit.ro:50001:t proxy = None gap_limit = 5 # booleans use python syntax use_change = True gui = qt num_zeros = 2 # default transaction fee is in Satoshis fee = 10000 winpos-qt = [799, 226, 877, 435] Electrum-1.9.7/icons.qrc0000664000175000017500000000151412236532564016645 0ustar voegtlinvoegtlin00000000000000 icons/electrum.png icons/clock1.png icons/clock2.png icons/clock3.png icons/clock4.png icons/clock5.png icons/confirmed.png icons/key.png icons/lock.png icons/unlock.png icons/preferences.png icons/seed.png icons/status_connected.png icons/status_disconnected.png icons/status_waiting.png icons/status_lagging.png icons/switchgui.png icons/electrum_light_icon.png icons/electrum_dark_icon.png icons/unconfirmed.png icons/network.png Electrum-1.9.7/lib/0000755000000000000000000000000012264174460014022 5ustar rootroot00000000000000Electrum-1.9.7/lib/__init__.py0000664000175000017500000000123612236532564017703 0ustar voegtlinvoegtlin00000000000000from version import ELECTRUM_VERSION from util import format_satoshis, print_msg, print_json, print_error, set_verbosity from wallet import WalletSynchronizer, WalletStorage from wallet_factory import WalletFactory as Wallet from verifier import TxVerifier from network import Network, DEFAULT_SERVERS, DEFAULT_PORTS, pick_random_server from interface import Interface from simple_config import SimpleConfig import bitcoin import account import transaction from transaction import Transaction from plugins import BasePlugin from mnemonic import mn_encode as mnemonic_encode from mnemonic import mn_decode as mnemonic_decode from commands import Commands, known_commands Electrum-1.9.7/lib/plugins.py0000664000175000017500000000506712247641560017632 0ustar voegtlinvoegtlin00000000000000from util import print_error import traceback, sys from util import * from i18n import _ plugins = [] def init_plugins(self): import imp, pkgutil, __builtin__, os global plugins if __builtin__.use_local_modules: fp, pathname, description = imp.find_module('plugins') plugin_names = [name for a, name, b in pkgutil.iter_modules([pathname])] plugin_names = filter( lambda name: os.path.exists(os.path.join(pathname,name+'.py')), plugin_names) imp.load_module('electrum_plugins', fp, pathname, description) plugin_modules = map(lambda name: imp.load_source('electrum_plugins.'+name, os.path.join(pathname,name+'.py')), plugin_names) else: import electrum_plugins plugin_names = [name for a, name, b in pkgutil.iter_modules(electrum_plugins.__path__)] plugin_modules = [ __import__('electrum_plugins.'+name, fromlist=['electrum_plugins']) for name in plugin_names] for name, p in zip(plugin_names, plugin_modules): try: plugins.append( p.Plugin(self, name) ) except Exception: print_msg(_("Error: cannot initialize plugin"),p) traceback.print_exc(file=sys.stdout) def run_hook(name, *args): global plugins for p in plugins: if not p.is_enabled(): continue f = getattr(p, name, None) if not callable(f): continue try: f(*args) except Exception: print_error("Plugin error") traceback.print_exc(file=sys.stdout) return class BasePlugin: def __init__(self, gui, name): self.gui = gui self.name = name self.config = gui.config def fullname(self): return self.name def description(self): return 'undefined' def requires_settings(self): return False def toggle(self): if self.is_enabled(): if self.disable(): self.close() else: if self.enable(): self.init() return self.is_enabled() def enable(self): self.set_enabled(True) return True def disable(self): self.set_enabled(False) return True def init(self): pass def close(self): pass def is_enabled(self): return self.is_available() and self.config.get('use_'+self.name) is True def is_available(self): return True def set_enabled(self, enabled): self.config.set_key('use_'+self.name, enabled, True) def settings_dialog(self): pass Electrum-1.9.7/lib/account.py0000664000175000017500000001640112252645426017600 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python # # Electrum - lightweight Bitcoin client # Copyright (C) 2013 thomasv@gitorious # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from bitcoin import * from transaction import Transaction class Account(object): def __init__(self, v): self.addresses = v.get('0', []) self.change = v.get('1', []) def dump(self): return {'0':self.addresses, '1':self.change} def get_addresses(self, for_change): return self.change[:] if for_change else self.addresses[:] def create_new_address(self, for_change): addresses = self.change if for_change else self.addresses n = len(addresses) address = self.get_address( for_change, n) addresses.append(address) print address return address def get_address(self, for_change, n): pass def get_pubkeys(self, sequence): return [ self.get_pubkey( *sequence )] class OldAccount(Account): """ Privatekey(type,n) = Master_private_key + H(n|S|type) """ def __init__(self, v): self.addresses = v.get(0, []) self.change = v.get(1, []) self.mpk = v['mpk'].decode('hex') def dump(self): return {0:self.addresses, 1:self.change} @classmethod def mpk_from_seed(klass, seed): curve = SECP256k1 secexp = klass.stretch_key(seed) master_private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve = SECP256k1 ) master_public_key = master_private_key.get_verifying_key().to_string().encode('hex') return master_public_key @classmethod def stretch_key(self,seed): oldseed = seed for i in range(100000): seed = hashlib.sha256(seed + oldseed).digest() return string_to_number( seed ) def get_sequence(self, for_change, n): return string_to_number( Hash( "%d:%d:"%(n,for_change) + self.mpk ) ) def get_address(self, for_change, n): pubkey = self.get_pubkey(for_change, n) address = public_key_to_bc_address( pubkey.decode('hex') ) return address def get_pubkey(self, for_change, n): curve = SECP256k1 mpk = self.mpk z = self.get_sequence(for_change, n) master_public_key = ecdsa.VerifyingKey.from_string( mpk, curve = SECP256k1 ) pubkey_point = master_public_key.pubkey.point + z*curve.generator public_key2 = ecdsa.VerifyingKey.from_public_point( pubkey_point, curve = SECP256k1 ) return '04' + public_key2.to_string().encode('hex') def get_private_key_from_stretched_exponent(self, for_change, n, secexp): order = generator_secp256k1.order() secexp = ( secexp + self.get_sequence(for_change, n) ) % order pk = number_to_string( secexp, generator_secp256k1.order() ) compressed = False return SecretToASecret( pk, compressed ) def get_private_key(self, seed, sequence): for_change, n = sequence secexp = self.stretch_key(seed) return self.get_private_key_from_stretched_exponent(for_change, n, secexp) def check_seed(self, seed): curve = SECP256k1 secexp = self.stretch_key(seed) master_private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve = SECP256k1 ) master_public_key = master_private_key.get_verifying_key().to_string() if master_public_key != self.mpk: print_error('invalid password (mpk)', self.mpk.encode('hex'), master_public_key.encode('hex')) raise Exception('Invalid password') return True def redeem_script(self, sequence): return None class BIP32_Account(Account): def __init__(self, v): Account.__init__(self, v) self.c = v['c'].decode('hex') self.K = v['K'].decode('hex') self.cK = v['cK'].decode('hex') def dump(self): d = Account.dump(self) d['c'] = self.c.encode('hex') d['K'] = self.K.encode('hex') d['cK'] = self.cK.encode('hex') return d def get_address(self, for_change, n): pubkey = self.get_pubkey(for_change, n) address = public_key_to_bc_address( pubkey.decode('hex') ) return address def first_address(self): return self.get_address(0,0) def get_pubkey(self, for_change, n): K = self.K chain = self.c for i in [for_change, n]: K, K_compressed, chain = CKD_prime(K, chain, i) return K_compressed.encode('hex') def redeem_script(self, sequence): return None class BIP32_Account_2of2(BIP32_Account): def __init__(self, v): BIP32_Account.__init__(self, v) self.c2 = v['c2'].decode('hex') self.K2 = v['K2'].decode('hex') self.cK2 = v['cK2'].decode('hex') def dump(self): d = BIP32_Account.dump(self) d['c2'] = self.c2.encode('hex') d['K2'] = self.K2.encode('hex') d['cK2'] = self.cK2.encode('hex') return d def get_pubkey2(self, for_change, n): K = self.K2 chain = self.c2 for i in [for_change, n]: K, K_compressed, chain = CKD_prime(K, chain, i) return K_compressed.encode('hex') def redeem_script(self, sequence): chain, i = sequence pubkey1 = self.get_pubkey(chain, i) pubkey2 = self.get_pubkey2(chain, i) return Transaction.multisig_script([pubkey1, pubkey2], 2) def get_address(self, for_change, n): address = hash_160_to_bc_address(hash_160(self.redeem_script((for_change, n)).decode('hex')), 5) return address def get_pubkeys(self, sequence): return [ self.get_pubkey( *sequence ), self.get_pubkey2( *sequence )] class BIP32_Account_2of3(BIP32_Account_2of2): def __init__(self, v): BIP32_Account_2of2.__init__(self, v) self.c3 = v['c3'].decode('hex') self.K3 = v['K3'].decode('hex') self.cK3 = v['cK3'].decode('hex') def dump(self): d = BIP32_Account_2of2.dump(self) d['c3'] = self.c3.encode('hex') d['K3'] = self.K3.encode('hex') d['cK3'] = self.cK3.encode('hex') return d def get_pubkey3(self, for_change, n): K = self.K3 chain = self.c3 for i in [for_change, n]: K, K_compressed, chain = CKD_prime(K, chain, i) return K_compressed.encode('hex') def get_redeem_script(self, sequence): chain, i = sequence pubkey1 = self.get_pubkey(chain, i) pubkey2 = self.get_pubkey2(chain, i) pubkey3 = self.get_pubkey3(chain, i) return Transaction.multisig_script([pubkey1, pubkey2, pubkey3], 3) def get_pubkeys(self, sequence): return [ self.get_pubkey( *sequence ), self.get_pubkey2( *sequence ), self.get_pubkey3( *sequence )] Electrum-1.9.7/lib/wallet_factory.py0000644000175000017500000000060412072600727021152 0ustar voegtlinvoegtlin00000000000000class WalletFactory(object): def __new__(cls, config): if config.get('bitkey', False): # if user requested support for Bitkey device, # import Bitkey driver from wallet_bitkey import WalletBitkey return WalletBitkey(config) # Load standard wallet from wallet import Wallet return Wallet(config) Electrum-1.9.7/lib/pyqrnative.py0000664000175000017500000006505512236532564020357 0ustar voegtlinvoegtlin00000000000000import math #from PIL import Image, ImageDraw #QRCode for Python # #Ported from the Javascript library by Sam Curren # #QRCode for Javascript #http://d-project.googlecode.com/svn/trunk/misc/qrcode/js/qrcode.js # #Copyright (c) 2009 Kazuhiko Arase # #URL: http://www.d-project.com/ # #Licensed under the MIT license: # http://www.opensource.org/licenses/mit-license.php # # The word "QR Code" is registered trademark of # DENSO WAVE INCORPORATED # http://www.denso-wave.com/qrcode/faqpatent-e.html class QR8bitByte: def __init__(self, data): self.mode = QRMode.MODE_8BIT_BYTE self.data = data def getLength(self): return len(self.data) def write(self, buffer): for i in range(len(self.data)): #// not JIS ... buffer.put(ord(self.data[i]), 8) def __repr__(self): return self.data class QRCode: def __init__(self, typeNumber, errorCorrectLevel): self.typeNumber = typeNumber self.errorCorrectLevel = errorCorrectLevel self.modules = None self.moduleCount = 0 self.dataCache = None self.dataList = [] def addData(self, data): newData = QR8bitByte(data) self.dataList.append(newData) self.dataCache = None def isDark(self, row, col): if (row < 0 or self.moduleCount <= row or col < 0 or self.moduleCount <= col): raise Exception("%s,%s - %s" % (row, col, self.moduleCount)) return self.modules[row][col] def getModuleCount(self): return self.moduleCount def make(self): self.makeImpl(False, self.getBestMaskPattern() ) def makeImpl(self, test, maskPattern): self.moduleCount = self.typeNumber * 4 + 17 self.modules = [None for x in range(self.moduleCount)] for row in range(self.moduleCount): self.modules[row] = [None for x in range(self.moduleCount)] for col in range(self.moduleCount): self.modules[row][col] = None #//(col + row) % 3; self.setupPositionProbePattern(0, 0) self.setupPositionProbePattern(self.moduleCount - 7, 0) self.setupPositionProbePattern(0, self.moduleCount - 7) self.setupPositionAdjustPattern() self.setupTimingPattern() self.setupTypeInfo(test, maskPattern) if (self.typeNumber >= 7): self.setupTypeNumber(test) if (self.dataCache == None): self.dataCache = QRCode.createData(self.typeNumber, self.errorCorrectLevel, self.dataList) self.mapData(self.dataCache, maskPattern) def setupPositionProbePattern(self, row, col): for r in range(-1, 8): if (row + r <= -1 or self.moduleCount <= row + r): continue for c in range(-1, 8): if (col + c <= -1 or self.moduleCount <= col + c): continue if ( (0 <= r and r <= 6 and (c == 0 or c == 6) ) or (0 <= c and c <= 6 and (r == 0 or r == 6) ) or (2 <= r and r <= 4 and 2 <= c and c <= 4) ): self.modules[row + r][col + c] = True; else: self.modules[row + r][col + c] = False; def getBestMaskPattern(self): minLostPoint = 0 pattern = 0 for i in range(8): self.makeImpl(True, i); lostPoint = QRUtil.getLostPoint(self); if (i == 0 or minLostPoint > lostPoint): minLostPoint = lostPoint pattern = i return pattern def setupTimingPattern(self): for r in range(8, self.moduleCount - 8): if (self.modules[r][6] != None): continue self.modules[r][6] = (r % 2 == 0) for c in range(8, self.moduleCount - 8): if (self.modules[6][c] != None): continue self.modules[6][c] = (c % 2 == 0) def setupPositionAdjustPattern(self): pos = QRUtil.getPatternPosition(self.typeNumber) for i in range(len(pos)): for j in range(len(pos)): row = pos[i] col = pos[j] if (self.modules[row][col] != None): continue for r in range(-2, 3): for c in range(-2, 3): if (r == -2 or r == 2 or c == -2 or c == 2 or (r == 0 and c == 0) ): self.modules[row + r][col + c] = True else: self.modules[row + r][col + c] = False def setupTypeNumber(self, test): bits = QRUtil.getBCHTypeNumber(self.typeNumber) for i in range(18): mod = (not test and ( (bits >> i) & 1) == 1) self.modules[i // 3][i % 3 + self.moduleCount - 8 - 3] = mod; for i in range(18): mod = (not test and ( (bits >> i) & 1) == 1) self.modules[i % 3 + self.moduleCount - 8 - 3][i // 3] = mod; def setupTypeInfo(self, test, maskPattern): data = (self.errorCorrectLevel << 3) | maskPattern bits = QRUtil.getBCHTypeInfo(data) #// vertical for i in range(15): mod = (not test and ( (bits >> i) & 1) == 1) if (i < 6): self.modules[i][8] = mod elif (i < 8): self.modules[i + 1][8] = mod else: self.modules[self.moduleCount - 15 + i][8] = mod #// horizontal for i in range(15): mod = (not test and ( (bits >> i) & 1) == 1); if (i < 8): self.modules[8][self.moduleCount - i - 1] = mod elif (i < 9): self.modules[8][15 - i - 1 + 1] = mod else: self.modules[8][15 - i - 1] = mod #// fixed module self.modules[self.moduleCount - 8][8] = (not test) def mapData(self, data, maskPattern): inc = -1 row = self.moduleCount - 1 bitIndex = 7 byteIndex = 0 for col in range(self.moduleCount - 1, 0, -2): if (col == 6): col-=1 while (True): for c in range(2): if (self.modules[row][col - c] == None): dark = False if (byteIndex < len(data)): dark = ( ( (data[byteIndex] >> bitIndex) & 1) == 1) mask = QRUtil.getMask(maskPattern, row, col - c) if (mask): dark = not dark self.modules[row][col - c] = dark bitIndex-=1 if (bitIndex == -1): byteIndex+=1 bitIndex = 7 row += inc if (row < 0 or self.moduleCount <= row): row -= inc inc = -inc break PAD0 = 0xEC PAD1 = 0x11 @staticmethod def createData(typeNumber, errorCorrectLevel, dataList): rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel) buffer = QRBitBuffer(); for i in range(len(dataList)): data = dataList[i] buffer.put(data.mode, 4) buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber) ) data.write(buffer) #// calc num max data. totalDataCount = 0; for i in range(len(rsBlocks)): totalDataCount += rsBlocks[i].dataCount if (buffer.getLengthInBits() > totalDataCount * 8): raise Exception("code length overflow. (" + buffer.getLengthInBits() + ">" + totalDataCount * 8 + ")") #// end code if (buffer.getLengthInBits() + 4 <= totalDataCount * 8): buffer.put(0, 4) #// padding while (buffer.getLengthInBits() % 8 != 0): buffer.putBit(False) #// padding while (True): if (buffer.getLengthInBits() >= totalDataCount * 8): break buffer.put(QRCode.PAD0, 8) if (buffer.getLengthInBits() >= totalDataCount * 8): break buffer.put(QRCode.PAD1, 8) return QRCode.createBytes(buffer, rsBlocks) @staticmethod def createBytes(buffer, rsBlocks): offset = 0 maxDcCount = 0 maxEcCount = 0 dcdata = [0 for x in range(len(rsBlocks))] ecdata = [0 for x in range(len(rsBlocks))] for r in range(len(rsBlocks)): dcCount = rsBlocks[r].dataCount ecCount = rsBlocks[r].totalCount - dcCount maxDcCount = max(maxDcCount, dcCount) maxEcCount = max(maxEcCount, ecCount) dcdata[r] = [0 for x in range(dcCount)] for i in range(len(dcdata[r])): dcdata[r][i] = 0xff & buffer.buffer[i + offset] offset += dcCount rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount) rawPoly = QRPolynomial(dcdata[r], rsPoly.getLength() - 1) modPoly = rawPoly.mod(rsPoly) ecdata[r] = [0 for x in range(rsPoly.getLength()-1)] for i in range(len(ecdata[r])): modIndex = i + modPoly.getLength() - len(ecdata[r]) if (modIndex >= 0): ecdata[r][i] = modPoly.get(modIndex) else: ecdata[r][i] = 0 totalCodeCount = 0 for i in range(len(rsBlocks)): totalCodeCount += rsBlocks[i].totalCount data = [None for x in range(totalCodeCount)] index = 0 for i in range(maxDcCount): for r in range(len(rsBlocks)): if (i < len(dcdata[r])): data[index] = dcdata[r][i] index+=1 for i in range(maxEcCount): for r in range(len(rsBlocks)): if (i < len(ecdata[r])): data[index] = ecdata[r][i] index+=1 return data class QRMode: MODE_NUMBER = 1 << 0 MODE_ALPHA_NUM = 1 << 1 MODE_8BIT_BYTE = 1 << 2 MODE_KANJI = 1 << 3 class QRErrorCorrectLevel: L = 1 M = 0 Q = 3 H = 2 class QRMaskPattern: PATTERN000 = 0 PATTERN001 = 1 PATTERN010 = 2 PATTERN011 = 3 PATTERN100 = 4 PATTERN101 = 5 PATTERN110 = 6 PATTERN111 = 7 class QRUtil(object): PATTERN_POSITION_TABLE = [ [], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170] ] G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0) G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0) G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1) @staticmethod def getBCHTypeInfo(data): d = data << 10; while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0): d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ) return ( (data << 10) | d) ^ QRUtil.G15_MASK @staticmethod def getBCHTypeNumber(data): d = data << 12; while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0): d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ) return (data << 12) | d @staticmethod def getBCHDigit(data): digit = 0; while (data != 0): digit += 1 data >>= 1 return digit @staticmethod def getPatternPosition(typeNumber): return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1] @staticmethod def getMask(maskPattern, i, j): if maskPattern == QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0 if maskPattern == QRMaskPattern.PATTERN001 : return i % 2 == 0 if maskPattern == QRMaskPattern.PATTERN010 : return j % 3 == 0 if maskPattern == QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0 if maskPattern == QRMaskPattern.PATTERN100 : return (math.floor(i / 2) + math.floor(j / 3) ) % 2 == 0 if maskPattern == QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0 if maskPattern == QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0 if maskPattern == QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0 raise Exception("bad maskPattern:" + maskPattern); @staticmethod def getErrorCorrectPolynomial(errorCorrectLength): a = QRPolynomial([1], 0); for i in range(errorCorrectLength): a = a.multiply(QRPolynomial([1, QRMath.gexp(i)], 0) ) return a @staticmethod def getLengthInBits(mode, type): if 1 <= type and type < 10: #// 1 - 9 if mode == QRMode.MODE_NUMBER : return 10 if mode == QRMode.MODE_ALPHA_NUM : return 9 if mode == QRMode.MODE_8BIT_BYTE : return 8 if mode == QRMode.MODE_KANJI : return 8 raise Exception("mode:" + mode) elif (type < 27): #// 10 - 26 if mode == QRMode.MODE_NUMBER : return 12 if mode == QRMode.MODE_ALPHA_NUM : return 11 if mode == QRMode.MODE_8BIT_BYTE : return 16 if mode == QRMode.MODE_KANJI : return 10 raise Exception("mode:" + mode) elif (type < 41): #// 27 - 40 if mode == QRMode.MODE_NUMBER : return 14 if mode == QRMode.MODE_ALPHA_NUM : return 13 if mode == QRMode.MODE_8BIT_BYTE : return 16 if mode == QRMode.MODE_KANJI : return 12 raise Exception("mode:" + mode) else: raise Exception("type:" + type) @staticmethod def getLostPoint(qrCode): moduleCount = qrCode.getModuleCount(); lostPoint = 0; #// LEVEL1 for row in range(moduleCount): for col in range(moduleCount): sameCount = 0; dark = qrCode.isDark(row, col); for r in range(-1, 2): if (row + r < 0 or moduleCount <= row + r): continue for c in range(-1, 2): if (col + c < 0 or moduleCount <= col + c): continue if (r == 0 and c == 0): continue if (dark == qrCode.isDark(row + r, col + c) ): sameCount+=1 if (sameCount > 5): lostPoint += (3 + sameCount - 5) #// LEVEL2 for row in range(moduleCount - 1): for col in range(moduleCount - 1): count = 0; if (qrCode.isDark(row, col ) ): count+=1 if (qrCode.isDark(row + 1, col ) ): count+=1 if (qrCode.isDark(row, col + 1) ): count+=1 if (qrCode.isDark(row + 1, col + 1) ): count+=1 if (count == 0 or count == 4): lostPoint += 3 #// LEVEL3 for row in range(moduleCount): for col in range(moduleCount - 6): if (qrCode.isDark(row, col) and not qrCode.isDark(row, col + 1) and qrCode.isDark(row, col + 2) and qrCode.isDark(row, col + 3) and qrCode.isDark(row, col + 4) and not qrCode.isDark(row, col + 5) and qrCode.isDark(row, col + 6) ): lostPoint += 40 for col in range(moduleCount): for row in range(moduleCount - 6): if (qrCode.isDark(row, col) and not qrCode.isDark(row + 1, col) and qrCode.isDark(row + 2, col) and qrCode.isDark(row + 3, col) and qrCode.isDark(row + 4, col) and not qrCode.isDark(row + 5, col) and qrCode.isDark(row + 6, col) ): lostPoint += 40 #// LEVEL4 darkCount = 0; for col in range(moduleCount): for row in range(moduleCount): if (qrCode.isDark(row, col) ): darkCount+=1 ratio = abs(100 * darkCount / moduleCount / moduleCount - 50) / 5 lostPoint += ratio * 10 return lostPoint class QRMath: @staticmethod def glog(n): if (n < 1): raise Exception("glog(" + n + ")") return LOG_TABLE[n]; @staticmethod def gexp(n): while n < 0: n += 255 while n >= 256: n -= 255 return EXP_TABLE[n]; EXP_TABLE = [x for x in range(256)] LOG_TABLE = [x for x in range(256)] for i in range(8): EXP_TABLE[i] = 1 << i; for i in range(8, 256): EXP_TABLE[i] = EXP_TABLE[i - 4] ^ EXP_TABLE[i - 5] ^ EXP_TABLE[i - 6] ^ EXP_TABLE[i - 8] for i in range(255): LOG_TABLE[EXP_TABLE[i] ] = i class QRPolynomial: def __init__(self, num, shift): if (len(num) == 0): raise Exception(num.length + "/" + shift) offset = 0 while offset < len(num) and num[offset] == 0: offset += 1 self.num = [0 for x in range(len(num)-offset+shift)] for i in range(len(num) - offset): self.num[i] = num[i + offset] def get(self, index): return self.num[index] def getLength(self): return len(self.num) def multiply(self, e): num = [0 for x in range(self.getLength() + e.getLength() - 1)]; for i in range(self.getLength()): for j in range(e.getLength()): num[i + j] ^= QRMath.gexp(QRMath.glog(self.get(i) ) + QRMath.glog(e.get(j) ) ) return QRPolynomial(num, 0); def mod(self, e): if (self.getLength() - e.getLength() < 0): return self; ratio = QRMath.glog(self.get(0) ) - QRMath.glog(e.get(0) ) num = [0 for x in range(self.getLength())] for i in range(self.getLength()): num[i] = self.get(i); for i in range(e.getLength()): num[i] ^= QRMath.gexp(QRMath.glog(e.get(i) ) + ratio) # recursive call return QRPolynomial(num, 0).mod(e); class QRRSBlock: RS_BLOCK_TABLE = [ #// L #// M #// Q #// H #// 1 [1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], #// 2 [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], #// 3 [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], #// 4 [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], #// 5 [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], #// 6 [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], #// 7 [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], #// 8 [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], #// 9 [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], #// 10 [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], # 11 [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], # 12 [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], # 13 [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], # 14 [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], # 15 [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], # 16 [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], # 17 [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], # 18 [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], # 19 [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], # 20 [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], # 21 [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], # 22 [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], # 23 [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], # 24 [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], # 25 [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], # 26 [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], # 27 [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], # 28 [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], # 29 [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], # 30 [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], # 31 [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], # 32 [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], # 33 [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], # 34 [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], # 35 [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], # 36 [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], # 37 [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], # 38 [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], # 39 [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], # 40 [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16] ] def __init__(self, totalCount, dataCount): self.totalCount = totalCount self.dataCount = dataCount @staticmethod def getRSBlocks(typeNumber, errorCorrectLevel): rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel); if rsBlock == None: raise Exception("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + errorCorrectLevel) length = len(rsBlock) / 3 list = [] for i in range(length): count = rsBlock[i * 3 + 0] totalCount = rsBlock[i * 3 + 1] dataCount = rsBlock[i * 3 + 2] for j in range(count): list.append(QRRSBlock(totalCount, dataCount)) return list; @staticmethod def getRsBlockTable(typeNumber, errorCorrectLevel): if errorCorrectLevel == QRErrorCorrectLevel.L: return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0]; elif errorCorrectLevel == QRErrorCorrectLevel.M: return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1]; elif errorCorrectLevel == QRErrorCorrectLevel.Q: return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2]; elif errorCorrectLevel == QRErrorCorrectLevel.H: return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3]; else: return None; class QRBitBuffer: def __init__(self): self.buffer = [] self.length = 0 def __repr__(self): return ".".join([str(n) for n in self.buffer]) def get(self, index): bufIndex = math.floor(index / 8) val = ( (self.buffer[bufIndex] >> (7 - index % 8) ) & 1) == 1 print "get ", val return ( (self.buffer[bufIndex] >> (7 - index % 8) ) & 1) == 1 def put(self, num, length): for i in range(length): self.putBit( ( (num >> (length - i - 1) ) & 1) == 1) def getLengthInBits(self): return self.length def putBit(self, bit): bufIndex = self.length // 8 if len(self.buffer) <= bufIndex: self.buffer.append(0) if bit: self.buffer[bufIndex] |= (0x80 >> (self.length % 8) ) self.length+=1 Electrum-1.9.7/lib/icons_rc.py0000644000175000017500000047765112120165500017743 0ustar voegtlinvoegtlin00000000000000# -*- coding: utf-8 -*- # Resource object code # # Created: mer. mars 13 22:10:24 2013 # by: The Resource Compiler for PyQt (Qt v4.6.2) # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore qt_resource_data = "\ \x00\x00\x03\xbc\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ \x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\x39\x49\x44\ \x41\x54\x38\x8d\x55\x93\x4d\x4c\x5c\x55\x18\x86\xdf\x73\xef\xb9\ \xc0\xcc\x38\x3f\x74\x18\x3b\x14\x11\x09\x2d\x41\x6d\x6a\x43\x3a\ \x6a\xa2\xee\x6c\x13\x43\x42\x9a\x2e\x6c\x5c\x90\x92\x74\xa3\xac\ \x4c\x5c\x75\xa1\x09\x8b\x1a\xdd\xd1\x59\x5c\x37\x90\x26\xba\xd2\ \x26\x4d\x6c\xdc\x54\x93\x2a\x86\x85\x03\x4c\xd0\x2a\xa9\x25\xb4\ \x22\x04\x9a\x3a\x0c\x65\xee\x65\x98\xf3\xf3\x9d\x73\xdc\x88\xa1\ \xcf\xfa\x7d\x9e\xdd\xcb\x9c\x73\x38\xcc\xe4\xe4\x24\x4f\xa7\xd3\ \x67\x94\x52\xc3\x1e\x77\xaf\x4b\x29\x9d\x6c\x51\x55\x29\xb5\x24\ \x84\x98\x2f\x97\xcb\xf2\xf0\x9e\x1d\x04\x18\x63\x2c\x0c\xc3\xc1\ \xf6\xb4\xfb\x66\xf0\xa5\xec\xa9\x6c\x7b\x1e\xe9\x44\x06\x41\xdf\ \x26\x6a\xd1\x06\xfe\xde\xd8\x72\xf3\xdf\x89\xe5\xdd\x4d\x37\x16\ \x86\xe1\x6f\xee\x3f\x91\x1f\xc8\x53\x53\x53\x63\xbd\x43\x1d\x33\ \x7d\xf9\x14\xcf\x65\x0c\x82\x40\xa1\xd9\xdc\x42\x47\x6c\xd1\x93\ \xca\x21\x91\x37\xac\xef\xa3\xbf\x4e\xde\xb9\xd5\x9c\xbf\x2c\x2f\ \x7f\xc8\x18\xfb\xc2\x39\xe7\x38\x00\x84\x61\x38\xd8\x3b\x94\x98\ \xe9\xcf\x7b\x9c\x74\x0d\xb5\x7f\x08\x5d\x5d\x05\xac\xae\xae\xe0\ \x59\xf8\x28\xbc\xc0\xb1\xf3\xb8\x89\x23\x05\x8b\xb7\x2f\xe8\x40\ \x50\xeb\xda\xc5\xbd\x8b\x0b\x00\x16\x7c\xc6\x18\xef\x2c\x26\x6e\ \x0f\x1c\xcb\xf6\x04\x5c\x80\x07\x3e\xb8\xef\xc3\x3a\x8b\xb5\xb5\ \x87\x08\x3a\x23\xa4\x8f\x2a\x74\x14\x23\x18\xb4\xb0\xfc\x03\xa1\ \xff\xcd\xd8\x7b\xf0\x6b\xf0\xd6\x74\xf8\xd5\x75\x2f\x9b\xcd\x96\ \x8a\xa7\x6a\xa7\x79\xf7\x5d\x6c\x6c\x6e\x40\x6b\x82\x75\x80\x56\ \x84\x28\x8a\xd0\x94\xbb\xd0\x88\xa1\xd1\x84\xb4\x2d\x04\xb9\x7d\ \x64\x72\x12\x2f\x8f\xee\x0c\xf9\xbe\x7f\x8e\x13\x51\x29\xd3\xbd\ \xcf\x78\x36\x46\xa1\x04\x78\x41\x03\xe6\x51\x11\x76\x2f\x85\x66\ \xb3\x05\xa1\x24\x14\x63\x30\xd0\x30\x5c\xa0\xe7\x55\x81\x28\x96\ \x28\x1c\x37\x30\x26\x39\xcc\x9d\xaf\x5f\x4b\xe6\x15\x5a\x91\x45\ \x5b\x46\xc3\xfa\xfb\xf0\x4e\x6c\xc3\x45\x29\xd4\xbf\xad\xa1\x1a\ \x6e\x82\x4f\x33\x1c\x3d\xde\x86\xf3\x57\xba\x11\x3d\x11\xb8\xf1\ \x71\x0b\x67\xaf\x6a\xf8\xed\x9d\x25\x6e\x8d\xe1\x04\xc2\xca\x6c\ \x80\xfc\x80\x46\xf1\x45\x05\xc0\x00\x99\x16\x46\xae\x64\xe0\x58\ \x0a\xa4\x15\xa4\x51\xd0\x10\xe0\x47\x24\x46\x3e\x25\xd8\x0c\x81\ \x88\x7c\x2e\x9a\xa6\xb2\xbb\x8d\x77\x07\x46\x62\x78\x9e\x84\x86\ \x01\x40\x70\x8e\x80\x76\x82\x03\x81\xb5\x11\x02\x18\x28\xa6\xb0\ \xb5\x2a\xa0\xa0\x40\x91\x87\x56\x6c\x17\x39\x80\xc5\xfa\x1a\x5c\ \xaa\x60\xd8\x9f\x77\x18\x0a\x27\x0c\x3a\x9f\x53\x70\xcc\xc0\x41\ \xc3\x82\x60\xa1\x41\xd0\x30\x50\xb8\xbf\x28\x20\xad\x40\x32\x9f\ \x01\x11\x2d\xf1\x7a\xbd\x5e\x71\x3f\xb5\x2d\x77\xbd\x82\x93\xca\ \x12\x2c\x27\x28\x46\x70\x4e\xff\x1f\x30\xd0\x88\x9f\x68\xc4\x91\ \xc0\xe9\xf7\x2c\xf6\x85\x8f\x9b\xef\xe7\xd6\x85\x10\xb7\xbd\x72\ \xb9\x2c\x1b\x8f\xdc\xd8\x1f\xb7\x3a\x74\xff\x59\x42\xc7\x31\xc2\ \xec\x75\xc2\xef\x3f\x12\x24\x23\xdc\xfb\x45\x40\x3a\x8d\xfb\x55\ \x81\x9b\x57\xf7\xa0\xa0\x51\x99\xc9\x9a\xfa\x43\x76\xa9\x52\xa9\ \xc4\xcc\x39\x07\xc6\x18\x9b\x98\x98\xf8\xa0\xf7\x8d\xdd\x6b\x43\ \x17\xea\x7c\x6b\x45\x22\xd5\x25\x91\xcc\x13\xa6\xc7\x1b\x38\xff\ \xb9\x87\xdc\xf3\x06\x52\x18\x2c\xcc\x64\xcc\xf2\x8d\x67\x3e\x99\ \x9d\x9d\xfb\xcc\x39\x67\x9f\x3a\xd3\xf8\xf8\xf8\x99\x64\x97\xfa\ \x72\xe0\x9d\x9d\xa1\xec\x40\x8c\x74\xef\x3e\x2c\x14\x76\xd6\x19\ \x1e\xdf\xf3\x70\xf7\xeb\xec\xfa\xf6\x03\x77\x69\x6e\x6e\xee\x67\ \xe7\x9c\x7d\xea\x8d\x07\x8c\x8e\x8e\x26\x13\x89\xc4\x39\x22\x1a\ \x66\x81\x2e\x11\x69\xbf\x15\xdb\x45\x22\x5a\x6a\x34\x1a\xdf\x57\ \xab\xd5\xc8\x1d\x92\xfe\x05\x1f\x40\xce\x81\x8d\x7c\xc1\x5d\x00\ \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x04\xf3\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x06\xec\x00\x00\x06\xec\ \x01\x1e\x75\x38\x35\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x04\x70\x49\x44\ \x41\x54\x48\x89\xd5\x55\x6d\x68\xd5\x65\x14\xff\x9d\xe7\xff\xe6\ \xdd\xee\xcb\xff\xde\x6d\x72\x27\x6e\xf7\x3a\x37\x73\xb9\x69\xd2\ \x9c\xc3\x14\x34\x23\xd7\xc4\xd8\x34\x4d\x7a\x99\xa1\x56\x48\x0b\ \x67\xa0\x16\xb9\x84\xde\xa8\xa4\x0f\x52\x96\xa0\x50\x22\x95\x1f\ \x86\xb2\xf5\x62\x61\xd6\xd2\x32\x43\x54\xda\xc2\x35\x9c\xc2\x66\ \xf3\x8e\x69\x13\xb7\x7b\xaf\xff\xf7\xd3\x07\xb7\x31\x5f\x06\x81\ \xf9\xa1\x03\x87\xf3\xc0\x79\x9e\xdf\xef\x3c\xe7\x9c\xe7\x39\xc4\ \xcc\xb8\x9b\x22\xee\x2a\xfa\xff\x8a\x20\x30\x49\xda\x31\x2e\x87\ \xca\x6f\x71\x30\xf3\x1d\x6b\x64\xaa\xf6\xe1\xbb\x8d\x2f\xbb\x4f\ \x6e\xa9\xba\xe8\x9b\x80\xea\xd1\x3e\xf9\x4e\x23\x0f\x15\x49\x5b\ \x37\xbe\xfe\xe2\x73\xd3\x0a\x4a\x45\xc9\xe4\xd2\xdc\xf1\xd1\xf0\ \xa7\xc1\x42\x6a\x18\xe8\xe4\x0f\x00\xdc\x19\x41\xa8\x90\xd6\xd5\ \x6d\x59\xbd\x79\xe6\xbd\xf7\x2b\xcc\x36\x98\x18\x0f\xce\x5d\x18\ \x0a\x67\x65\x6e\x8b\xce\xd0\xf2\x7a\x7f\x37\x37\xdd\x50\x03\x22\ \x52\x7d\xb9\xb4\x93\x88\xfc\xff\x02\x7c\xf9\xaa\xfa\x9a\x77\x2a\ \x66\xce\xf1\xb9\x30\xe0\x91\x09\x17\x06\x5c\x5c\xc3\xd4\xa2\x29\ \xda\xf4\xc5\x59\x75\xfe\x5c\x7a\x6c\x84\x40\xd2\x28\x52\xf2\xf0\ \xc4\xef\xdf\xda\xb5\xf1\xf9\x78\x45\xf8\x0b\x22\xa2\xb1\xc0\xf5\ \x02\x5a\xb0\x6c\xcd\x82\x1d\x0b\xe7\x3d\x14\xf4\x60\x60\x58\x99\ \x4c\xd8\x9c\x44\xf3\xc9\x8f\xdd\xd6\x83\x89\x3d\xc9\x04\x37\x0a\ \x00\xf0\x8d\xa7\xa2\xb9\x2b\x8a\x5b\x1a\xde\xd8\x34\x6f\x4a\x5e\ \x31\xea\x1b\x56\x57\x65\x15\x8b\xb7\x6f\x1b\x79\x8c\xa6\x2f\x7a\ \x62\xd6\x9e\x25\x55\x4b\x72\x98\x4c\x78\x64\xc0\x13\x06\x58\x18\ \x70\x90\xc2\xe1\xf6\x4f\xf8\xc7\xdd\xe7\xf6\xf5\x9e\xe6\x75\x00\ \x20\x42\x71\x9a\xff\x48\x6d\xf9\x77\xf5\x2f\xbd\x50\xea\x1b\xa7\ \xc2\x83\x81\x49\x13\x0b\xc4\x9a\x8d\x35\x75\xe1\x42\x5a\x39\x1a\ \x3c\x90\x4b\xf9\xf3\xaa\x8b\x1b\x97\xaf\xa8\xce\x63\x61\x8e\x00\ \x63\x68\x7d\xbc\x6b\x1f\x0e\xee\xf8\xb3\xa9\xe7\x04\x6a\x87\xcf\ \xc8\x5a\x10\x1b\x4a\xe7\xe7\x4e\x12\xb2\x07\x17\x06\x00\x0f\x20\ \x46\x45\x59\x85\xbf\xa7\xb6\xfb\xbd\x40\x94\x5a\x07\x7b\xf9\x8c\ \x9a\x49\xfa\xdc\xc7\x63\x5f\x3e\xbd\x66\x69\x91\x90\x1c\x30\x3c\ \x10\x31\x78\x68\x7f\xeb\xc5\x83\x68\xde\xde\x76\xa8\xeb\x17\xac\ \x60\x66\x6f\x98\x40\xf4\x77\xe0\xd9\x03\x7b\xbf\x6e\xbf\x94\xee\ \x04\x93\x01\x16\xe6\x90\x35\xf0\x68\xcd\xa2\xbc\xb2\xca\xbc\xbd\ \x44\x94\x5d\xb6\x64\xfc\x37\x6b\xeb\x97\x4e\x97\x15\x06\x4b\x06\ \x20\x99\x43\xd6\x40\xe7\xc0\x61\xec\xdf\x7e\xea\xe7\xb3\x87\x51\ \xcd\xcc\xf6\xe8\x5b\x4b\x9e\xc3\xa9\xd7\x1a\xb6\x5e\x72\x73\xce\ \x55\x4e\x2d\x2c\xd1\x84\x60\x40\xd8\x00\x39\x10\x92\x87\x69\xb3\ \xf2\x72\x2d\x5c\x5d\xf9\xcc\x86\xca\x12\x9f\xcf\x07\x92\x1c\x90\ \xb0\x01\x61\x83\x84\x83\x9e\x6b\x27\xb0\xef\xfd\x63\x27\xce\x7c\ \x8b\xc5\x8e\xc5\x83\x37\xd7\x8c\x86\x7f\xd3\xd8\x6c\xda\x55\xfb\ \xe6\x8c\xb5\xf7\xe5\x57\x42\x10\x03\x04\x80\x3c\x10\xae\x5b\x10\ \x83\xe1\x02\x60\x00\x2e\x98\x3c\x5c\x36\xdb\xf1\xd9\xf6\x23\xad\ \x6d\x5f\x71\x55\xff\x05\xee\xb9\x5d\x53\x8c\x10\x10\x91\x36\x63\ \x29\x1d\x59\xb0\x5e\x2a\xd7\xe4\x71\x50\x65\x1f\x14\x49\x85\x20\ \x02\x09\x40\x08\x80\xc9\x85\x07\x13\x2e\xa7\xe1\x91\x85\xdf\x3e\ \xf7\xda\x4f\xef\x47\x4d\x6f\x07\x77\x8c\xd5\xd2\x23\x2f\x99\x99\ \xcd\x58\x69\x66\xdd\xc5\xe3\xd4\x5c\x56\x95\x13\x0d\x6b\x31\xf8\ \x95\x2c\xc8\x42\x05\x09\x02\xe0\xc1\x41\x0a\x29\x2f\x81\xa4\x73\ \x01\xbf\x1e\xb8\x72\xbe\xe3\x10\xaf\xea\xed\xb0\xc6\x04\xbf\x81\ \x00\x00\xba\xda\x52\x27\x1f\xa8\x9e\xb8\x7b\xf6\x7c\xfd\x95\x68\ \xf6\x64\x29\xa2\x4e\x86\x26\x05\x40\x44\x60\xd8\x48\x7b\x7d\xf8\ \xdb\x01\x3a\x7e\xb8\x92\xe8\x3d\x96\xb9\xfe\x68\xd3\x91\xd3\xb8\ \x9e\xcc\x31\xa7\x16\x8d\x9a\x68\x94\x48\x24\xfc\xe9\x74\x5a\xdf\ \xfa\xd1\xca\xc6\x65\x9b\x27\x94\x47\xb4\x02\x68\x22\x08\x22\x82\ \x07\x0b\xd7\xd0\x8b\x3f\x4e\x9e\xbf\xda\xd6\xe4\xdf\xb6\xb0\xfc\ \xa9\x26\x00\x66\x20\x10\xb0\x02\x81\x80\x9d\x91\x91\x61\xeb\xba\ \x6e\xa9\xaa\x6a\xe4\xe7\xe7\x5b\xc3\xa4\xc4\xcc\xe8\xeb\xeb\xcb\ \xe8\xea\xea\xf2\x77\x77\x77\x07\x13\x89\x44\xe0\x6c\x67\xfb\x3d\ \x97\xe4\xa3\xaf\x46\x27\xe8\xaa\x24\x69\x42\x10\x91\xcb\x8e\x67\ \x98\x83\x6e\xa2\x5d\xf9\x29\x9a\x31\xb3\x19\x40\x3a\x14\x0a\x19\ \xba\xae\x9b\xba\xae\x9b\xe1\x70\xd8\xd4\x75\xdd\x8c\x44\x22\x66\ \x76\x76\xb6\x19\x8b\xc5\xd2\x00\x1c\x19\x00\x2c\xcb\xb2\x98\xd9\ \x02\xe0\xb9\xae\xcb\x01\x7f\xf8\x2f\xf3\xf2\x9c\x4d\x7d\xa7\x92\ \xfe\x54\x2a\xa5\x39\x8e\x23\x24\x29\xc3\x95\xe5\x88\xa5\xc8\xb2\ \x31\xe8\x0e\xda\xa1\x50\xc8\x13\x42\xb0\x24\x49\x2c\x84\x00\x11\ \xb1\x24\x49\x50\x14\xc5\x1e\x18\x18\x30\x01\x38\x37\xa7\x08\x00\ \xd0\xd2\xd2\x22\x01\x90\x93\xc9\xa4\xda\xdf\xdf\xaf\xa4\xd3\x69\ \xd5\xb2\x2c\x85\x99\x15\x22\x92\x24\x49\xb2\x55\x55\xb5\x64\x59\ \xb6\x83\xc1\xa0\xad\x28\x8a\x1d\x0c\x06\x9d\x78\x3c\xee\xc4\xe3\ \x71\xef\xe6\x7a\xdc\x42\xf0\x5f\xcb\x5d\x1f\xfa\xff\x00\xa6\x30\ \x1f\x89\xba\x23\xab\xc4\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ \x60\x82\ \x00\x00\x04\x14\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ \x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\x91\x49\x44\ \x41\x54\x38\x8d\xad\x94\x4d\x6f\x1c\x45\x10\x86\x9f\xea\xee\x99\ \xd9\x5d\xdb\x6b\xaf\x70\x62\x01\x46\xc2\x8a\x65\xc7\x20\x12\x05\ \x29\x02\x09\x11\x19\x2c\x04\x52\xe0\x5f\x44\x3e\x20\x7e\x04\x77\ \xee\x1c\xac\x1c\xf8\x0f\x90\x13\x38\x24\x91\x10\x12\x09\xb1\x08\ \x84\xd8\x89\x43\x90\x0f\xfe\x5c\xef\x87\xf7\x73\x76\x67\xba\x38\ \xcc\xae\x71\x12\x72\xa3\xa5\x3a\x75\xf5\xd3\x55\xef\x5b\xdd\xa2\ \xaa\xfc\x9f\xcb\xbd\x68\xe3\xed\x2b\x72\x09\xcc\x92\x75\xba\xa8\ \xa9\x5c\x00\x10\xab\x6b\x69\x22\x37\xc0\xaf\xde\xbd\xaa\xb7\xfe\ \xeb\x9c\x3c\x5b\xe1\xb9\xcf\xa5\x14\x25\xb2\x32\x56\x98\xf8\x74\ \xfe\xec\x82\x9b\x9c\x3c\xed\x26\x27\x4e\x01\x50\xae\x1d\x50\x2e\ \xef\x27\x1b\xeb\x0f\x92\x46\xbb\xf6\x5d\xec\x74\xf9\xde\xd7\x5a\ \x7d\x21\xf0\xe2\x15\x79\x0f\x63\xbf\x7d\xf3\x8d\xb7\x0a\xe7\xcf\ \x5d\x88\x54\x3c\xa3\xd1\x04\x22\x06\x00\xef\x3d\xcd\x5e\x15\xa3\ \x96\xdf\xee\xad\xc5\xf7\xff\xfc\xbd\x8d\x4f\x3f\xbb\x7d\x55\x7f\ \x7a\x0e\x98\x55\x66\x1f\x7f\xf8\xc1\x47\xa5\x91\x52\x48\x60\x23\ \xf2\xc1\x28\x5e\x3d\x8a\xc2\x20\x4f\x51\xba\xfd\x26\x5e\x3d\xad\ \x6a\x8f\xeb\x3f\x7e\x5f\x8d\x5d\x7a\x66\x58\xa9\x19\x92\xa3\x44\ \x56\xe6\xe6\xe7\x0b\x61\xd1\x73\xd0\xdc\x22\xf1\x3d\x8e\xba\x87\ \x34\xe3\x0a\x8d\xee\x21\x8d\xb8\x42\x23\x3e\xa4\xd1\x3d\xa4\x97\ \x76\xd9\x3d\xfa\x8b\xb0\xe8\x99\x9b\x9f\x2f\x44\x89\xac\x0c\x39\ \x66\x68\x40\x21\x37\x7a\x79\x6e\x61\x36\x7a\x78\x70\x87\xc0\x45\ \x34\xfb\x15\xda\x69\x85\x56\x5a\xa5\xe3\x6b\x74\x7c\x8d\x56\x5a\ \xa3\x99\x54\x69\xf6\x2a\x18\x63\x79\x78\x70\x87\xb9\x85\xd9\xa8\ \x90\x1b\xbd\x9c\x99\x78\xec\xb2\x59\x9a\x9e\x99\x0e\x0e\xbb\x5b\ \xf4\x69\x11\xeb\x11\xa9\x3a\x40\x41\x14\x04\x32\x69\x14\x8f\xe2\ \xf1\x24\xf4\xe8\x69\x8b\x72\x7b\x8b\xe9\x99\xe9\xe0\xc1\xfd\x8d\ \x25\xe0\x96\x03\xb0\x4e\x17\x8b\xa5\x11\xd7\xd1\x32\x41\xce\xd0\ \xa2\x4c\x24\x11\x62\x40\xc5\x23\x99\xda\x78\xaf\x78\xa3\x78\x55\ \x7a\xc4\x04\x91\xd0\xd1\x2a\xc5\xd2\xa4\xb3\x4e\x17\x8f\x2b\xd4\ \x54\x2e\x8c\x4d\xe4\xd8\x4b\x1b\xb8\x48\xf0\xb6\x4d\x6c\x3a\x88\ \x11\x8c\x81\x8c\x98\xf9\xa2\x1e\xbc\x28\x82\xe2\xc4\xd0\xd7\x26\ \xa5\xf1\xd7\x18\xce\xaa\x63\x90\xef\x4d\x1f\x6b\x05\x8c\xc1\x3a\ \xc1\x3a\x41\x6c\x06\x14\x11\x74\x40\xf4\x29\xf8\x54\x49\xad\x22\ \x46\x31\x1e\x3c\xfd\xe1\x9d\x03\x0d\xad\xac\xd5\xeb\xf5\x4b\xb9\ \xa9\x1c\x31\x31\x36\xcc\xa0\xc6\x09\xc6\x66\x40\x00\xf5\x9a\xc1\ \x12\x10\x03\x22\x10\x69\x9e\xfa\x7e\x0d\xac\xac\x1d\xbb\x9c\x26\ \x7a\xa3\x5a\x39\xea\x47\x61\x0e\x1b\x18\x6c\x20\xb8\x50\x08\x22\ \x21\x88\x0c\x41\xee\xdf\x70\x91\xc1\x85\x26\xcb\x73\x42\x14\xe6\ \xa8\x55\x1a\xfd\x34\xd1\x1b\x27\xe6\xd0\xaf\xee\x3c\xaa\x24\x8e\ \x88\xc0\x05\x59\xcb\x81\x60\xc3\x0c\x12\xe6\x07\xb0\xd0\xe0\x02\ \x19\x48\x02\x41\x10\xe2\x08\xd9\xd9\xac\x24\xe0\x57\x8f\x81\x77\ \xaf\xea\xad\x5e\x12\x5f\xdb\xf8\x65\xa7\x5b\x08\x27\x10\x21\x33\ \xc4\x66\x87\x5d\x64\x08\xa2\xec\x12\xb1\x82\x98\x2c\x46\x82\x71\ \x36\x6e\xef\x76\x7b\x49\x7c\x6d\xf8\x59\x1c\xbf\x94\xd8\xe8\xf2\ \xf6\x66\xbd\xb3\xf7\xb8\x49\xce\x16\x31\x58\xf0\x8a\xf7\x99\x09\ \x3e\xcd\x34\x44\xc1\x88\x21\x6f\x8a\xec\x3e\x69\xb1\xb3\x59\xef\ \xc6\x46\x97\x9f\x7b\xcb\x22\x52\x98\xfb\x84\x8f\xc7\xa6\xed\x37\ \x53\xb3\x85\xdc\xd9\xc5\x89\xd0\x16\x52\xc4\x29\x88\x1f\x28\x63\ \xf0\x89\x90\xb6\x2d\xeb\x37\x6b\xfd\xfd\xcd\x76\xb7\xf2\x28\xfd\ \xe2\xc9\x4d\x7e\x00\xca\xaa\xda\x3b\x09\x1c\x07\x26\x47\x5e\x61\ \xe6\xcc\xa2\x7c\x99\x2f\xda\x8b\x53\x0b\x39\x5b\x7c\x39\xb4\xc5\ \xd3\x01\x00\x47\xfb\x7d\x8e\xb6\x7b\x7e\x6f\xbd\x9b\xb6\xaa\xe9\ \xda\xe3\xeb\xfa\x55\xe7\x80\xbf\x81\x32\xb0\xfd\x14\x70\x00\x2d\ \x02\x93\x40\xe9\xd5\x77\x78\x7f\xe4\x94\x79\x37\xff\x12\xe7\x9d\ \xe3\x75\x80\xa4\xcf\x56\xbb\xac\x7f\x34\xf7\xf4\xf6\xce\xaf\xfc\ \x0c\xd4\x81\x03\x60\x4f\x55\x93\xa7\x5a\x3e\xb9\x44\xc4\x02\xf9\ \x13\x11\x0d\xe6\x3f\x01\xba\x83\x68\x03\xb1\x3e\x03\xf8\x07\x66\ \x9b\xca\x76\xb3\x47\x45\x9a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\ \x42\x60\x82\ \x00\x00\x22\xc9\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\ \x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x05\x0e\ \x0b\x00\x13\x09\xfc\x20\x88\x00\x00\x20\x00\x49\x44\x41\x54\x78\ \xda\xbd\xbb\x79\xb4\x65\x57\x75\xde\xfb\x9b\x6b\xad\xdd\x9d\xee\ \x76\x55\x75\x55\xad\xaa\x54\x55\x52\x49\x08\x44\x17\xf0\xc3\xb8\ \x21\x1e\x36\xf6\xb3\x9d\x0c\xd3\xd8\xf8\x0d\x3b\xef\x81\x63\x61\ \x63\x84\x1b\x04\x36\xc6\x0e\x21\x60\x2b\x01\x09\x61\xac\xe7\x18\ \x3c\x12\xc7\x26\x8d\xe9\x13\xdb\x71\xe2\xe0\xe0\xe4\x59\x20\x0c\ \x11\x16\x42\x0d\x20\x95\xaa\x54\xfd\xed\x9b\x73\xcf\xd9\x67\x37\ \x6b\xcd\xf7\xc7\xde\xf7\x56\xa9\x81\xd8\xe0\xe4\x8c\x71\xc6\x19\ \xf7\x56\x9d\xbb\xd7\x9a\x6b\xce\x6f\x7e\xf3\x9b\x73\x09\x7f\x0b\ \xaf\x3b\x5e\xdb\xe7\x8d\xef\x1f\xee\xfc\x7c\xfb\xcd\x3d\xe2\xc8\ \x48\xed\x35\x02\x0e\x89\xc8\xf3\x8d\xe1\x05\xc0\x4d\xa8\x1e\x56\ \xd8\x0d\xf4\x00\x01\x50\xd5\xa0\xca\x96\xaa\x2e\x04\xd5\x93\xc0\ \x7d\x82\x7c\xce\x18\xf3\x05\xe0\x7c\x51\x96\x3e\x72\x4e\x6f\xfd\ \xc0\x68\xe7\x19\xbf\xf9\xfa\x69\x6e\xb9\x6b\xfd\x9b\x5e\xbb\x7c\ \x33\x5f\xbe\xfd\xb5\x3d\x6e\x7d\xff\xd6\xce\xcf\xef\xf9\xa9\xae\ \xb5\xd6\xa6\xaa\x3c\xc7\x59\x79\xa5\x11\xf9\x5e\xeb\xec\xb5\x91\ \x73\x38\xe7\x70\xd6\x62\xac\x20\x62\x10\x31\x58\x6b\x15\x6b\x40\ \x44\x34\x04\x82\xaf\xa9\xcb\x9a\x49\x5e\x30\x9e\x4c\x98\x14\x55\ \xf0\x3e\x3c\xa8\xe8\x1f\x59\x63\x3e\x1e\x42\x78\x08\xa4\xfc\xc5\ \x7f\x91\xfb\xed\x67\xbe\xf7\x75\x03\x7e\xee\xb7\x36\xff\xf7\x1a\ \xe0\xf6\x9b\x7b\x4c\x4f\xa7\xfc\xc3\x77\x2d\x37\x8b\xf8\xe9\x5e\ \x6c\x8c\xdb\x2d\xa2\x3f\xec\x9c\xbd\xd9\x39\x7b\x22\x89\x63\x92\ \x38\xc2\xb9\x08\xe7\xac\xc6\x49\x22\xdd\x4e\x46\xa7\x93\x91\x24\ \x29\x69\x9a\x12\xa5\x29\xc4\x11\xb5\x2a\x45\x3e\x21\xdf\xdc\x64\ \xb4\xb1\xc9\x78\x34\xa2\xaa\x2a\x2d\xab\x5a\xf2\x3c\x67\xb8\x35\ \x66\x34\x9a\xe0\x43\xb8\xd7\x18\xf3\xdb\x88\xfe\x07\x5f\xfb\xf5\ \xb7\xfc\x6e\x59\x01\xfc\xd2\xcb\x61\xef\xde\x69\x7e\xf6\x1b\xf0\ \x88\xbf\xb1\x01\xee\x7c\xdd\x80\x9f\x6f\x2d\x7e\xdb\x6b\xe2\xa8\ \xdb\xed\xec\x75\x46\x5e\xe3\xac\xbd\x25\x49\xe2\xd9\x34\x49\x88\ \x93\x98\x4e\x9a\xea\xec\xec\xb4\xec\xde\xb5\x8b\xe9\xe9\x69\xd2\ \x2c\xc5\x3a\xd7\x9c\x3e\x60\xac\x81\x28\x02\x17\x35\xcb\xd0\x00\ \xb5\x07\x5f\x53\x16\x13\x86\x9b\x43\x16\x97\x96\x58\x5a\x5a\x66\ \x38\xdc\xd2\xa2\x28\x64\x63\x38\x66\x73\xb8\x45\x59\x56\xe7\x55\ \xf5\x7d\x41\xf9\x03\xd0\x8b\x6f\xf9\x97\x45\xd5\xac\x27\xe5\x2d\ \xff\x72\xf2\xbf\xc6\x00\xb7\xbd\xa6\x43\xaf\x17\x73\xcb\xfb\x1a\ \x2b\xff\xc6\xeb\xa6\xe6\x5c\x64\x5f\x19\x47\xee\x97\xd3\x24\x3a\ \x98\xa5\x09\x69\x9a\x30\x37\x37\xa7\x07\x0f\xec\x97\x5d\xb3\xd3\ \x58\x67\x08\x01\x10\x8b\xb1\x16\xeb\x22\xc4\xda\x76\xc3\x8a\xaa\ \x47\x83\x47\x83\xa2\x3e\xa0\xaa\xa8\x82\x8a\x02\x60\x8c\xa0\x28\ \x5b\xc3\x11\x17\x2f\x5c\xe2\xd2\xe2\xa2\x8e\x86\x23\x59\xdb\x1c\ \xb2\xbe\x31\x64\x52\x94\x67\x54\xf5\xd7\xbd\xf7\x1f\xf9\x95\xdf\ \xab\x57\x01\xde\xfe\xe3\x16\x63\x33\x7e\xf5\x5f\x6d\xfd\xed\x19\ \xe0\xdd\x37\x77\x39\x7c\x60\x17\xaf\xfc\x47\x8f\xf3\xe6\x57\xe2\ \x0e\xee\x9d\x79\x5e\x12\x45\xff\x28\x49\xa2\xff\x33\x4b\x13\xba\ \xdd\x94\xab\xf6\xec\xd2\xc3\x57\x1f\x90\xfe\x60\x0a\x31\x82\xa0\ \xed\xb7\x1d\xc6\x39\xc4\x39\x30\x11\x6a\x0c\x12\x14\xea\x9a\x50\ \x57\x54\x55\x49\xf0\x1e\xb4\xb5\x4b\x03\x8b\x57\xac\x50\x30\x62\ \x88\x6c\x44\xf0\xca\xf9\xf3\x17\x38\x7d\xe6\x8c\xae\xad\xaf\xc9\ \xca\xea\x3a\x1b\x9b\x5b\x94\x55\xfd\x87\xb5\x0f\xff\x24\xaf\xf4\ \xbe\xdb\xfe\x9d\xf7\x77\xbc\x1a\xd6\x8a\x98\x77\xfe\xdb\xf2\x9b\ \x37\xc0\xed\xaf\xed\x72\xeb\xfb\x1b\xf4\xbd\xed\xd5\x71\x6f\x30\ \xe8\xbd\x2a\x4b\x93\xb7\x25\x49\x7c\xa0\xd7\xed\xb2\x67\xcf\xac\ \x1e\xbd\xe6\x90\x0c\x06\x5d\x54\x41\x8c\x25\x8a\x22\x4c\xe4\x9a\ \x7d\xa8\x80\xb1\xa8\x35\x08\x02\x41\x51\x5f\xa3\xde\xe3\x6b\x4f\ \xed\x6b\x34\x28\x72\xc5\xc9\x8b\x08\xb4\x26\x14\x11\x0c\x82\x11\ \x8b\xb5\x16\x63\x2c\x65\x51\x70\xf2\xf4\x29\xce\x9c\x39\xab\xcb\ \x2b\xab\xb2\xb2\xb6\xc1\x68\x3c\x39\x5d\x56\xfe\xed\x45\xad\x1f\ \xbd\xed\x0f\xc2\x16\xc0\x5b\x7e\xc4\x71\xdb\x87\xea\xaf\xbb\x3f\ \xfb\xf5\xfe\xf1\x3d\x3f\xd5\xe3\x8d\xed\xe6\xdf\x7d\x73\xb6\x67\ \x30\xe8\xfd\x62\x96\x65\xff\xb8\x9b\xa5\x73\xbb\x66\x67\xf5\xba\ \xe3\x47\x39\x7e\xfc\xa8\xa4\x69\x87\xa0\x20\x18\x62\xe7\x30\x71\ \x8a\xc6\x09\x22\x40\x50\x30\xa6\xd9\x4e\xf0\x50\x17\x84\xaa\xa0\ \xf6\x15\xb5\xf7\xa8\x2a\xd2\x1c\x34\x06\x40\x4c\xfb\x16\x44\x2c\ \x22\x4d\xe8\x18\x6b\x30\x22\x04\x0d\x20\x30\x33\x3b\xcd\xdc\xec\ \x8c\x28\xaa\x22\x48\xf0\x61\xda\x7b\xff\x3d\x1a\x7c\xe7\x5b\xaf\ \xe7\xc1\xbf\x78\x90\xe1\xdd\x0f\x06\x7e\xe9\x87\x23\xee\x7e\x30\ \xfc\xcd\x0d\x70\xfb\xcd\xdd\x9d\xcd\xbf\xe7\xb5\x9d\xfd\xbd\x5e\ \xf7\x9d\x9d\x2c\x7d\x7d\xaf\xdb\x89\x0e\xec\xdb\xab\x37\xdc\x70\ \x1d\x7b\x76\xed\x12\x63\x2c\xc6\x18\x8c\xb5\x38\x23\x58\x6b\x21\ \x8a\x11\x1b\x41\x08\xe0\x03\x75\xe9\x29\xc6\x39\xf9\x70\xc8\xe6\ \xc6\x06\x9b\x9b\x43\x46\x5b\x23\x26\xe3\x9c\x7c\x9c\x93\x4f\x26\ \x94\x45\x41\x5d\xd6\x84\x00\x2a\x16\x63\x63\x5c\x94\xe2\x5c\x82\ \xb1\x09\xc6\x5a\xd4\x58\xc0\x10\x34\xe0\x7d\x20\x49\x32\xe6\xf7\ \x5c\x25\x69\x96\xaa\xaa\xc7\xd7\x3e\xf6\xb5\xff\x56\xef\xfd\xbe\ \x17\x5d\x2f\xf7\xdf\xfd\xa0\xae\xde\xfd\x60\xe0\xcd\xaf\x74\x7c\ \xfa\xa1\xf0\xd7\x37\xc0\xbb\x7f\xb2\xcb\x9b\x7e\xa7\xd9\xfc\x1d\ \x37\x77\xf6\xf7\xfb\xdd\x77\xa6\x69\xf2\x9a\x41\xbf\x27\xd7\x1c\ \x3e\xa4\x27\xae\x3b\x2e\xdd\x5e\x57\x44\xc0\x3a\x8b\x89\x9a\x13\ \x12\xdb\xe4\x77\xac\x23\xf8\x40\xbe\xb9\xc9\xfa\xea\x06\xab\x4b\ \x2b\x2c\x2d\x2c\xb3\xb8\xb0\xcc\xca\xf2\x1a\xeb\x6b\x1b\x8c\xb7\ \x46\xe4\xe3\x9c\xad\xe1\x88\xe1\x70\xc4\xd6\x28\x67\x34\x9a\x90\ \x8f\x0b\x8a\xa2\xc6\x7b\x45\xb0\xd8\x24\xc3\x65\x03\x24\x4a\x00\ \x4b\x40\x1a\xa0\x54\xc1\x18\x4b\x9c\xa6\xec\xda\xb3\x47\x7a\x53\ \x33\x52\xd5\xb5\xd6\x55\x21\x55\x55\x3f\xb3\xf6\xf5\x35\x2f\x3a\ \x21\xf7\xdd\xfd\x90\x2e\x7d\xfa\xa1\xc0\x1b\x5f\xee\xb8\xe7\xe1\ \xf0\x3f\x37\xc0\x6d\xaf\x4e\x39\x74\x68\x2f\x1f\xfb\x6f\x6b\xdc\ \xf1\xda\xce\xee\x7e\xbf\xfb\xf6\x34\x8d\x7f\x62\xd0\xef\x71\xec\ \xe8\x11\x3d\x76\xf4\x1a\xe9\x74\x32\x8c\x35\xd8\xc8\x61\x9c\x45\ \x9c\x41\x8c\x43\xac\x45\x7d\x60\x73\x75\x9d\xd5\x85\x25\x96\x2f\ \x2e\xb2\xb8\xb0\xc2\x6a\x0b\x56\xa3\x71\x4e\x51\x94\x54\x75\xdd\ \x6e\x02\xca\xda\x53\x56\x35\x55\x15\xa8\x2a\x4f\xd5\xfe\x5c\x57\ \x35\xbe\x6e\x3f\x03\x18\x97\xe2\xa2\x84\xa0\x42\x68\x37\x1f\x25\ \x31\x26\x49\x90\x24\xa6\x3f\x37\xcb\x60\x66\x5a\xca\xa2\xd0\xaa\ \xc8\xa5\x2a\xab\x6b\xeb\xda\x1f\x79\xe1\x09\xf9\xfc\x67\x1e\xd2\ \xd5\x7b\x1e\x0e\xdc\xfa\x8a\x88\xcf\x3c\xc9\x13\x9e\x62\x80\x57\ \xbc\x64\x86\x57\xdf\x76\x9e\x5f\x7f\x75\xda\x9d\x9e\xea\xbf\x29\ \x4b\x93\x37\xf4\x7a\x3d\x39\x7e\xf4\x88\x5e\x73\xe4\xb0\xa4\x9d\ \x0c\x89\x22\x4c\x14\x21\xc6\x34\x38\x6a\x0c\x38\xcb\x68\x63\xc8\ \x85\xb3\x17\x59\xba\xb4\xc8\xfa\xea\x3a\x93\x49\x73\x9a\x79\x51\ \x52\x54\x9e\x1a\x47\xed\xa1\x0e\x30\x29\x4a\xf2\xbc\xa4\xf6\x82\ \xc7\x51\x79\xa1\x0e\x86\xaa\xf2\x58\xe7\xc8\xd2\x0e\x69\x92\x12\ \x7c\x4d\x3e\x1a\x42\x5d\xe0\xab\x12\x63\x62\x5c\x9c\x61\x93\x08\ \x93\x25\x48\x1c\xa3\xce\x20\xc6\xd0\x19\x0c\xe8\x4d\x4f\xcb\x24\ \xcf\xb5\x18\x8f\xa5\x2c\xab\xe3\xde\xfb\x3d\x2f\x3c\x61\x3e\xfd\ \x99\x87\x75\xeb\x35\xcf\x0e\xdc\x78\x63\xc6\x5f\x3c\x50\x3f\xbd\ \x01\x7e\xe3\xf5\x33\xbc\xfe\x7d\x2b\xbc\xed\xff\x12\x3b\xbf\x67\ \xee\x47\xb2\x34\x79\x47\xaf\xdb\x49\x8e\x5e\x73\x58\x8f\x1d\x3b\ \x2a\x69\x9a\x22\x71\x82\x24\x49\x93\xce\x7c\x80\x10\xf0\x75\xcd\ \xe2\xf9\x45\x2e\x3c\x7e\x81\xa5\xc5\x15\xea\xaa\xc6\x18\xa1\xaa\ \x3c\xe3\x49\xc1\xd6\xb8\xa0\x3b\x77\x80\xe7\xbc\xf8\xfb\xb9\xea\ \xea\x13\xf4\x66\xe6\xb9\x74\xf1\x02\x8b\x0b\x0b\xcc\x5f\x7d\x3d\ \xd7\x3f\xff\x25\xec\x3d\x7c\x3d\x33\x57\x5d\xcd\xd2\xa5\x73\xf8\ \xaa\x22\xeb\x74\x48\xb3\x0e\xd6\xc5\xa4\x69\x8a\x13\x4f\x31\xde\ \xa4\x2e\x26\xd8\x24\x21\x9a\x9d\x83\x34\x41\x9d\x45\x8c\xa0\x42\ \x63\x84\xa9\x69\x3a\xbd\x9e\x8c\x87\x9b\x5a\xe4\x23\x29\xcb\xea\ \x46\xef\x03\x2f\xb8\xce\x7d\xfa\x2d\x1f\x09\xd5\xdf\xb9\x36\x70\ \xcf\xc3\x97\xd3\xac\xdb\x41\xfc\x9f\x9e\xe2\x67\xef\x5a\x03\x60\ \xcf\xee\xb9\x9b\xe2\xc8\xbd\x3d\x4b\xd3\xee\xfe\x03\xfb\xf5\xba\ \xeb\x4f\x48\x92\xa4\x4d\x5a\x32\x16\x15\x83\x04\x0f\xaa\x8c\x86\ \x43\xce\x9f\xbd\xc4\xda\xda\x06\x75\xe5\xa9\xbd\xc7\x8b\x20\x46\ \xa8\xbd\xa7\x28\x2b\xc6\x93\x92\xd9\xa4\xcb\xfc\xf1\x67\x42\x55\ \x91\x5c\x3c\x43\xfd\xf9\x4f\xb3\xb6\xbe\x89\x4b\xfb\xec\x3b\x72\ \x02\x71\x11\xc5\x68\x8b\x2f\x7d\xee\x2f\x28\xcb\x31\x65\x55\x53\ \xd6\x9e\xcc\x45\x0c\xfa\x03\x10\xc5\x15\x39\x55\x91\x93\xaf\x5f\ \x22\xc4\x90\x1d\xbc\x1a\x21\xa0\xd5\x04\xf1\x35\x8a\x20\xc6\x32\ \x7f\xf5\x61\xae\x1b\x8d\xa4\xc8\x73\x2d\xab\x4a\x6a\xbf\xf5\xfa\ \x80\xbf\xff\xe6\x1f\x88\xff\xcd\x7b\x3e\x5e\xfa\x5b\x5f\xe1\xb8\ \xfd\xa3\x8d\x17\x98\x6d\x03\xf4\xbb\x09\x00\x77\xdd\x32\x33\x93\ \xc4\xee\xad\x69\x1a\x1f\x9e\xdd\x35\xcb\x89\x67\x3c\x83\xa4\x3f\ \x00\x6b\x11\x63\xd0\xe0\x91\xb2\x00\x5f\xb3\xb5\xb1\xc1\xc9\x47\ \x1f\xe7\xe2\xc5\x45\x26\x93\x02\xef\x03\xaa\x81\x10\x3c\x55\x55\ \x13\x54\xa9\x43\xa0\xaa\x6a\xaa\xb2\x82\xba\x06\x5f\x51\x57\x15\ \x65\x59\x33\x29\x2b\xaa\xaa\xc2\xd7\x35\xd4\x15\xbe\xae\x28\xcb\ \x92\xa2\xac\x28\x2b\x4f\x5d\x79\x7a\xbd\x2e\x71\x9a\x10\xa7\x19\ \x9d\xa9\x19\x7a\x73\xbb\x89\x93\x98\x62\x79\x81\xf1\xb9\xc7\x09\ \xc6\x21\x69\x8a\xc6\x11\x12\xb9\x26\x53\x58\xc7\xa1\x63\xc7\x38\ \x7c\xdd\x31\xd9\xbd\x7b\x4e\xfb\xdd\x24\x71\x46\xde\x3e\x95\xfa\ \xeb\x00\x6e\xff\x68\xcd\xdb\xfe\x41\xf7\xb2\x01\xde\xfb\xba\x69\ \x7e\xf2\xf6\x45\xfe\xd9\x4f\xa4\xce\x45\xd1\x0f\x26\x69\xfa\xb2\ \xfe\x60\x8a\x63\xd7\x5d\xaf\x83\x99\x39\x41\x05\x15\xdb\x78\x80\ \xf7\xe0\x3d\xa3\xb5\x75\x1e\x7b\xf4\x0c\xab\xab\x1b\x84\x10\xd0\ \x10\xf0\xa1\xc6\x87\xc6\x00\x45\x51\x51\xd7\x9e\x10\x02\x3e\x04\ \xf4\x4a\x76\x07\x04\x42\xf3\xbd\x27\xfe\x1a\x1f\x02\x75\x5d\x13\ \x7c\x4d\x1c\x47\x74\x07\x3d\x24\xcd\x90\xac\x83\xe9\x74\x89\xfa\ \x7d\xb2\x99\x59\x92\x4e\x46\xb9\xbc\xc0\xf8\xf4\x49\x82\x58\x24\ \x4e\x50\xe7\x10\xdb\x64\x09\x13\xc5\x1c\xbb\xe1\x04\x7b\x0f\xed\ \x63\x7a\xba\x4f\x27\xb5\x87\x05\xfd\xa5\x5f\x78\x99\xed\x02\xac\ \xad\x8d\x2e\x87\xc0\xcf\xfd\x56\xc3\xef\x07\x83\xfe\xee\x38\x8e\ \xdf\x9a\x75\xbb\xec\xd9\x7f\x48\x0f\x1e\xbd\x5e\x50\x8f\x86\x1a\ \x51\x0f\xea\x01\x65\x3c\x1c\x73\xea\xe4\x19\xd6\xd6\x36\xd0\x16\ \xce\x2b\xdf\x9e\x74\xf0\x04\xdf\x1a\xc4\x07\xf2\xb2\x24\x9f\x14\ \x54\xb5\xdf\xe1\x9d\xaa\x4a\x5d\x79\xca\xb2\xc2\x6f\xd3\xe0\xf6\ \x35\x29\x4a\xaa\xf1\x84\x51\x5e\x20\x91\xa5\x08\x10\x19\xd3\x14\ \x52\x56\x10\x15\x4c\x04\xa9\x9b\x02\x81\x62\x65\x89\xdc\x19\x3a\ \x87\x8f\x20\x6a\xd0\x50\x03\x1e\x82\xa7\x33\xd5\xe7\x9a\x13\xc7\ \x65\x63\x75\x5d\x87\x5b\x63\x99\x94\xa3\x1f\xd7\x8a\x7f\xf7\x86\ \xbf\xe7\xfe\xf4\x7d\x7f\x58\x87\x5f\x7e\x55\x82\xf9\x8d\x9f\x99\ \x69\x00\xf0\x67\xa6\x22\x6b\xcd\xab\xb2\x2c\xbd\xb6\x3b\x35\xc3\ \xb1\x67\x3e\x17\x49\xba\xa8\x4d\x11\x9b\xa1\x36\x05\xdb\x21\x04\ \xc7\xf9\x73\x97\x58\x5d\xdd\x80\x96\xc2\x7a\x1f\xc8\x27\x25\xe3\ \xd2\x33\x1c\x57\xac\x6f\x95\xac\xb5\xef\x61\xee\x29\xbd\xa0\x62\ \xae\xa0\xf7\xa6\x21\x4a\x36\x06\x63\xa1\xa5\xc0\x0a\x4c\x26\x13\ \x16\x97\x96\xb9\x74\x69\x81\xd3\x67\xcf\x73\xfa\xdc\x79\x16\x16\ \x97\xd8\xd8\x1c\x52\x94\x05\xa1\x65\x8b\xe2\x1c\x49\xaf\x47\x9c\ \x3a\xca\x85\x4b\x4c\x2e\x5c\x68\xc2\x54\x15\x69\x0b\x2d\x7c\xcd\ \xc1\xc3\x07\x99\xdf\x3f\x2f\x33\x33\x03\xed\xa4\x0e\x81\x5f\x49\ \x62\xed\x02\xfc\xfa\x1f\x14\x97\x6b\x81\xdf\xfe\x85\x3d\xbb\x93\ \x34\xb9\x77\x7a\x6e\xf7\xc1\xc3\xd7\x9d\xd0\x67\xbf\xf8\x25\x42\ \xd9\xf2\xf4\xd0\xd2\x58\xf5\x2c\x3f\xfe\x18\x17\xcf\x9c\x62\x3c\ \xca\x77\xe2\x77\x94\x8f\x21\xe9\xf3\xe2\xef\xff\x31\x8c\x75\x97\ \xdd\xfd\x8a\x0f\xe7\x22\xd2\xac\xd3\xb8\xb9\xf7\x14\x93\x31\x75\ \x55\x93\xa4\x29\x71\x92\x22\x22\xa8\x2a\x9b\xeb\xab\x8c\xb6\x36\ \x19\x0d\x37\x58\x5d\xba\xc8\xf2\xf2\x39\xac\x15\xf6\xcc\xef\x61\ \xf7\xfc\x1c\xd3\x33\x53\x74\xb3\x08\x2b\x80\xd6\xf8\x3c\x67\xbc\ \xbe\x81\x17\x47\xf7\xf0\x51\xe2\x5e\x1f\x2d\x72\xa4\xce\xc1\xe7\ \x20\x81\xc5\xb3\x17\xf8\xfc\xdd\x7f\xa9\x27\x1f\x79\x5c\x96\x56\ \xb6\x98\x54\xf2\x43\x75\x90\x3f\x7c\xef\x27\xaa\xe0\x9a\xd2\x76\ \xda\x00\xdf\x9f\xa6\xd9\xc1\xa4\xdb\xe5\xc8\x0d\x37\x09\x18\xd4\ \x5a\xa4\xad\xd0\x24\x8a\xc9\x57\x97\x19\x6e\x0e\xb1\x36\xa1\xd7\ \x8f\xa8\xaa\x92\x7c\x34\x61\x2b\x2f\x09\x41\xc8\xba\x7d\xac\x8b\ \xbe\x26\xef\xd6\x36\xe0\xad\xb5\x74\xba\xfd\xa7\xfc\x9b\x88\x30\ \x98\x9e\x65\x30\x3d\x8b\xaa\x72\xf4\xc4\x33\xa9\xca\x92\x53\x8f\ \x3e\xc4\x03\x7f\xf5\x69\xd6\x56\x57\x38\x78\x68\x3f\xf3\xf3\x73\ \x0c\x3a\x29\xd6\x2a\xd6\x45\x24\x59\x46\xbe\x31\x64\x72\xf1\x3c\ \xee\xd0\x11\x8c\x02\x1a\x50\x02\xe2\x6b\xf6\xec\x9f\x67\x6e\xf7\ \x2e\x59\x5e\x5c\xd5\xe1\x28\x97\x49\xe5\x7f\x3e\x76\xfc\x27\xa0\ \xb0\x00\x3f\xf4\x6d\x83\x24\x8e\xa2\xf7\xf5\x66\x66\x0e\xee\x3e\ \x70\x48\x8f\x3d\xeb\xb9\x82\xf7\xad\x67\x36\x29\x4d\xbd\x67\xf5\ \xc2\x79\xb6\x56\xd7\x30\xb6\xa9\xef\x23\x17\x63\xa3\x88\x49\x51\ \xe1\x31\x1c\xbb\xf1\x79\x18\x63\xff\xe7\x25\xa8\x3c\xb1\x10\xd5\ \x2b\x90\x50\x44\xae\x78\x1b\x9c\x8d\x98\xdb\xb3\x97\x83\x87\xaf\ \xe3\xe1\xfb\xef\x65\x6b\xb8\x41\x1a\xc7\x64\x69\x44\xe4\x2c\xa2\ \x60\x04\x82\xaf\xa9\xc6\x63\x8c\x75\xb8\x2c\x45\x7d\x81\x68\xd5\ \x08\x2d\xd6\x81\x0a\x6b\xcb\x2b\x0c\x37\xb7\xa4\x28\xea\xab\x83\ \xca\x7f\x78\xd1\xf5\xf6\x82\x79\xef\x4f\x0d\xf0\x21\x1c\x8f\x93\ \xe4\xff\x70\x71\xc2\xc1\x6b\x8e\x0b\x41\x2f\xa3\x73\x53\xe3\x32\ \x5e\x5f\x63\xb4\xb6\x0a\x4d\x71\x0a\x62\x30\xd6\x11\x45\x31\xfd\ \x41\x8f\x34\x4d\x29\x8b\x09\x65\x31\xa1\xae\xab\x16\xe1\xf5\x49\ \x1b\x97\xd6\xd5\x69\xc5\x8f\x26\x6d\x5e\xb9\xe9\x2b\xbf\xa3\xaa\ \x3b\x76\x1a\x4c\xcd\xf0\x77\xbf\xef\x47\x58\x5a\x58\x66\xe1\xe2\ \x45\xb6\x36\x86\xf8\xaa\x82\xe0\x11\x20\x8e\x63\x4c\x08\x14\xeb\ \xab\xf8\x49\x8e\xa0\x68\x50\x50\x03\x35\xec\x3d\x70\x80\x5e\xbf\ \x2f\xdd\x4e\xa6\x71\x24\x04\xd5\x1f\x0b\xaa\xe2\x92\x34\x16\x63\ \xcc\x0f\xc6\x69\x4a\x9c\x66\x3a\x7f\xe0\xea\xe6\xf4\x83\xee\xb8\ \xa5\x56\x15\xe3\xf5\x35\xca\x3c\x47\xc4\xa0\x22\x8d\x11\x68\x30\ \x2c\x4b\x3b\x4c\xca\x4d\xfe\xec\x23\x1f\x60\x6d\x63\xc8\xa4\xac\ \xc1\x3a\xbe\xe7\x07\x5f\xc5\x35\xd7\xdd\x80\xf7\xbe\xad\xf1\xc1\ \x58\xcb\x97\x1f\xf8\x2b\xfe\xe4\x63\xff\x9a\xc8\x19\xba\x9d\x8c\ \x24\xc9\x18\xcc\xec\xe2\xc0\x35\xd7\x72\xcd\xb5\x37\xd2\xeb\x4f\ \xed\x18\x64\xdb\x70\xaa\xca\xf4\xec\x2e\x8e\x1c\x7b\x16\x0b\x67\ \x1f\xe4\xaa\xdd\x33\x4c\x0f\x3a\xb8\x38\x42\x00\x6b\x2c\x2e\x6a\ \xc8\x54\xb9\xb9\x49\x36\xdd\x45\x54\x40\x41\x51\x6c\x14\xb3\x6b\ \xf7\x2e\x16\x2e\x2c\xca\xea\xda\x26\xa3\x49\xfd\x32\x67\xcd\x5b\ \x8c\x35\xd6\xc4\x51\xf4\x03\x2e\x8a\x98\xdd\xb5\x5b\x5c\x9c\xa0\ \x3e\x40\x5b\xa7\x23\x86\x62\x3c\x62\xbc\xb1\xd1\x9c\xbe\x34\x75\ \xf9\xf6\x02\x8d\x18\x92\x24\x66\x7a\x30\x60\xf7\xae\x39\x0e\xec\ \x9d\x67\x6e\xaa\x87\x96\x39\xa7\x4f\x7e\x19\xac\x7d\x8a\x06\x53\ \x4e\x26\x6c\xae\x2d\x41\x35\x26\x73\x35\xb1\x4c\xd8\x5c\x3c\xcd\ \x17\xfe\xfc\x0f\xf9\xd0\xef\xdc\xce\xc9\xaf\x3c\x40\x08\xfe\x09\ \xe1\xb1\xed\x39\x57\x1f\xbd\x9e\xcd\x8d\x4d\x46\xc3\x31\x55\x51\ \x82\x0f\x68\xdd\x78\x9b\x75\x16\xf1\x35\xf5\x68\x48\xa8\xea\x1d\ \x9e\x27\x0a\x54\x15\x57\xed\x99\xa7\xdb\x49\x89\xe3\x08\x67\x38\ \xe8\x43\xb8\xc9\x15\x55\x35\x9b\x76\xd2\xe7\x18\xe7\xd8\xb3\x77\ \x3f\x78\xcf\xe5\x10\x6d\x94\x99\x62\x34\xa2\x1c\x8f\x31\xc6\x5c\ \xb1\xf1\xd6\x37\x4d\xc3\xc1\xbb\xd6\x91\x26\x29\x53\xfd\x01\xdd\ \x6e\x17\x8c\x21\x8a\x22\x9e\xc4\x7f\x5a\xad\xcf\xd0\xe9\x74\xd8\ \xb5\x6b\x96\x43\xfb\xe7\xc9\xd2\x94\xc8\x45\x94\xde\x73\xfa\xcc\ \x05\xee\xf9\xf3\xff\xc8\xfc\xde\x03\xf4\xa7\x66\x76\xbc\x60\xfb\ \xd5\x1b\x4c\x51\xd7\x81\xb2\x98\xe0\xcb\x12\x8d\xa3\x26\x9c\x50\ \xac\x6d\x54\xa3\x3a\x1f\xe3\x8b\x09\x26\x4b\xd0\x20\x48\x08\xe0\ \x3d\xb3\x33\x53\x24\x59\x42\x9a\x44\x1a\xb9\x5c\xaa\x42\xbf\xcb\ \x19\x23\xcf\x88\x22\x97\x1a\x63\x75\x76\xcf\x1e\x01\xdf\xa0\x0a\ \x02\x62\x08\x55\x45\x39\x1e\x83\x06\xac\x75\x4d\xec\x8b\x5c\x06\ \x32\xb9\x9c\xea\xac\x83\x58\xc0\xab\xd2\xed\x76\x88\x9c\xfb\x9a\ \x28\xe8\x9c\xa3\xd3\xe9\x32\x3d\x33\xcd\xec\x54\x9f\xc1\xa0\xc7\ \x28\x2f\x99\x54\x9e\x2f\x7f\xf5\x14\x55\x55\x7e\x1d\x15\x4f\x51\ \xef\x09\x6d\xc9\xdc\xc0\x94\x60\xac\x21\x4a\x22\xf2\x7c\x42\x5d\ \x94\x44\x69\x8a\x04\xc0\x2b\x78\x4f\x94\x46\xf4\xba\x1d\xb2\x2c\ \x15\x67\x87\x28\xfa\xed\xce\x88\x3c\xc7\xb9\x88\x28\x8e\xe9\x0d\ \x06\xcd\x56\xb6\x0d\x60\x2c\x75\x9e\x53\x4f\x46\x58\x6b\x11\x63\ \x77\xd0\x59\x64\x07\xce\xb7\xf5\xcc\x56\xec\xd5\x46\x2b\x30\x06\ \x31\xf2\xf5\xd5\x48\x69\x8c\x9c\x76\x3b\x48\x1c\x51\x6e\xe5\x14\ \xc5\x84\x38\x4d\x9f\x92\x4e\xb7\x43\x61\x6d\x79\xa1\x39\x0c\x23\ \x20\x0d\x88\x36\x7f\xae\x59\x9b\x75\x16\x54\xf1\x93\x12\xed\x86\ \xc6\xfd\x5b\x66\x2a\xc6\x30\xe8\xf7\x49\x93\x18\x67\x05\x21\xdc\ \xe0\xac\x95\x67\x19\x6b\xc9\xba\x1d\x91\x38\x06\x1f\x40\x04\x35\ \x82\x18\x43\xf0\x15\x54\x13\xe2\xd8\x21\xc6\xed\x84\xc5\xce\xe6\ \xb5\x55\x72\xb7\x49\x8f\x28\x46\x1a\xe9\x5b\xbe\x0e\x1f\xa8\xca\ \x9a\xd1\x28\x67\x73\x6b\x4c\xb2\xbe\x49\xb5\x5c\xb1\xb0\xb0\xcc\ \xa5\xc5\x15\xae\x3e\x7e\x13\x59\x4b\x9a\xae\xc4\x80\x10\x02\x5f\ \xbe\xff\x73\xf4\x7b\x1d\x3a\x59\x42\xe4\x5c\xc3\x53\x94\x16\x33\ \x04\x5f\x07\x82\xf7\x54\x45\x41\xa8\x3d\x56\x1a\x21\x56\x82\x82\ \x57\xfa\xbd\x2e\x51\x14\x35\xca\xb5\x91\x3d\x4e\x8c\x39\x2a\x46\ \xc8\xba\xdd\x56\x96\x96\xf6\x60\x04\x2c\xa8\xaf\x90\x50\x11\x27\ \x31\xc6\x46\x8d\xe4\x75\x85\x2c\xa5\x28\x21\x34\xc5\x0d\x6d\x7a\ \x6b\xb0\xc2\xb4\x46\xd2\xa7\x35\x42\x55\x79\xd6\x36\x87\xa4\x8b\ \x2b\x0c\xf3\x02\x1f\xa0\xaa\xe1\xe0\xb5\xcf\xe6\xb9\x2f\x7c\x09\ \x71\x92\x3e\x61\xf3\x22\xc2\xa3\x5f\xfe\x12\xa7\xbe\xfa\x25\x8e\ \x1d\xd9\x47\x12\x47\x84\x10\x98\x4c\x9a\x7a\xa2\x79\x2b\x75\x55\ \x53\x97\x15\xb1\x6b\xe4\x76\xeb\x1a\x66\x2a\x00\x21\x90\x65\x19\ \xd6\x1a\x8c\x18\x0c\x3e\x72\x46\x64\x1e\x63\x48\xb2\x0c\x50\x44\ \xf4\x72\x91\xac\xa1\xf1\x80\xed\x5c\xbd\xbd\x18\xd3\x4a\xdc\xad\ \x31\x40\x09\x2d\x77\x08\x28\xd1\x24\xc2\x5a\xf3\xf4\xa7\x1f\x02\ \x73\xbb\xe7\x79\xfe\x8b\xbf\x8b\x24\x89\x48\xb3\x8c\x2c\xeb\xd0\ \xed\x4d\xb1\x6b\x7e\x3f\x33\xbb\xf6\xa0\x41\x09\x21\x3c\x01\xfd\ \x1f\xfe\xd2\xbd\xfc\xc7\x8f\xfe\x1e\xbd\xd4\x60\x8c\x61\x52\x94\ \x0c\x87\x23\xac\x8d\x76\xd6\x86\x5e\x5e\x9f\xd6\x81\x50\x07\x30\ \x8a\xa8\x34\x5a\x01\x4a\x92\x24\x08\x82\x88\xa8\x11\xc4\x89\x48\ \x1f\xc0\x45\x0e\x08\x6d\xce\x68\x75\x79\x0d\x68\xf0\x4f\x3a\xc4\ \x56\xcc\x13\x69\x2d\x2b\x28\x06\xd3\xee\xd7\x1a\x21\x8a\x23\xa2\ \xc8\x61\x9e\x84\x01\xda\x16\x29\xfb\x0e\x5c\xcd\xbe\x23\xc7\x2f\ \x13\xad\x96\xba\x12\x3c\x61\x5b\x2a\x7f\x02\x5b\x54\x96\x2e\x5d\ \x60\x7a\x7a\x8e\x2a\x5f\xa5\x2a\x1b\x4d\x21\x78\x8f\x31\x06\xd4\ \x10\xb4\x75\xb6\xb6\x17\x11\xda\xf4\x88\xbb\xfc\x3b\x44\x71\xd6\ \x6e\x1f\xa4\x20\xe0\x9a\x8f\xf6\xe4\xd5\x43\x68\xbf\xd0\x88\xf4\ \x0d\xda\x6a\xc0\x68\x20\x68\x40\x54\x10\x51\x84\x00\x6a\x50\x42\ \xe3\x09\x4d\x17\x03\x51\x85\xaf\xe9\xf8\x57\xf0\x7e\xef\x9f\xf8\ \xbf\xf4\x72\x86\x90\x9d\xda\xe0\x72\x8d\xf0\x9d\x2f\xfd\xfb\x5c\ \xff\xac\xe7\xf2\xe5\x2f\x7e\x96\x0b\x27\xef\x67\x75\x6d\x48\x64\ \x2d\xbd\x6e\x86\x31\x96\x16\x0b\x11\x0c\x21\x68\x93\xfa\x42\x78\ \x72\xf2\x68\x3d\x57\x76\x60\xcc\x35\x0f\xd6\x56\xc3\xf7\x4d\x23\ \x43\xcc\x15\x9f\x0d\xc9\x08\x21\x20\x84\xc6\x7d\xf4\x72\x06\x68\ \x1a\x18\x8a\xa1\xe1\x08\xc6\x1a\x5c\xdc\x50\xe4\x27\xd7\x05\xdb\ \x39\x7d\x34\x1a\xb2\xba\xb4\x78\xc5\xef\x14\x63\x2c\x9d\x6e\x8f\ \xfe\xd4\x34\x2e\xc9\xc0\xd7\x3b\x61\xd0\x3c\xdf\x33\xbf\xef\x20\ \xb3\x73\x7b\xb8\xaf\xdb\xe3\xe4\x17\x3f\x4d\x12\x3b\x62\x6b\x49\ \xe2\xb8\x75\xa4\xe6\x94\x43\x50\x44\xed\x13\x9b\x5f\x2d\xad\x7e\ \xf2\xc1\x38\x55\xf5\x04\xa5\x2e\x4b\x08\x75\x93\x33\xc5\x36\x78\ \x60\x9a\xae\x6d\x68\x8d\x23\xda\x74\x7a\xc4\x34\x75\x80\x73\x82\ \x73\x11\x36\x6a\xfa\xff\x4d\x0f\xd0\x52\x5b\x43\xdc\x49\x9b\x0e\ \xf0\x93\x9e\x68\xac\xe5\xc2\xd9\xc7\xf9\xe4\x1f\x7d\x98\x38\x8e\ \x48\x92\x74\xc7\xdd\xa3\x38\x21\xed\x74\x99\xdf\x7b\x90\x1b\x9f\ \xfd\x02\xba\x83\xa9\x1d\x6f\x80\xa6\xe0\xb1\x2e\xe2\xc6\xe7\x7d\ \x1b\x2b\x97\xce\xb1\xbc\x72\x91\x7e\xa7\xd3\x3c\x5b\x6c\x63\x84\ \x1d\x0a\x6f\xc0\x38\x30\xa6\x21\x43\x2d\x67\x09\xad\x96\xa9\x2d\ \x66\xb9\xa0\xba\xae\x21\xec\x2f\xf3\x1c\x7c\x8d\xfa\x80\x48\x68\ \x62\x20\x38\x0c\x0d\xa8\x38\x6b\x88\xe2\x18\xd7\xf6\xfc\xad\x73\ \x4d\x55\xe8\x1c\xc6\x6c\x37\x3f\x0d\x18\x83\x2b\x8a\x56\x32\x7f\ \x7a\x02\x30\x19\x8f\x58\x5e\x38\xcf\xec\xdc\x0c\xdd\xc4\xe0\xac\ \xa3\xae\x6a\xc6\xeb\x1b\xac\x5c\x9a\x70\xf6\xe4\xc3\x9c\xfa\xea\ \x83\x7c\xdf\xcb\x7e\x9c\xc1\xf4\x65\x36\xd8\x40\x8f\x12\x27\x29\ \xd7\x3e\xeb\x85\xfc\xc5\x1f\xff\x6b\xe6\x66\x72\x9c\x75\x38\xd7\ \x60\x97\xb4\xc2\x8b\x69\x0f\x84\x56\xa0\xd5\x60\x10\x51\xca\xb2\ \x91\xed\x54\x95\xa0\x8d\x07\x9c\x53\x0d\xcf\xc8\x47\x23\xf0\x35\ \xe2\xb5\x05\x43\x03\x46\x88\x92\x98\xde\xa0\x8b\xb3\x96\x38\x49\ \xb1\x36\xc2\xb4\x02\xe9\xf6\xff\x69\x8e\x29\x6c\xb7\x76\x9b\x43\ \x6f\x1b\x9c\x4f\xf7\x32\xd6\xd2\x1f\x0c\xd8\xbf\x77\x1f\xfb\x0f\ \xec\xa3\x93\xa5\x94\x65\xc5\x24\x9f\x30\x1e\x8f\x59\x5e\x5e\xe1\ \xfc\x99\x47\x78\xe0\x0b\x9f\xe1\x5b\xbe\xf3\x7b\xb1\xd6\xed\x60\ \xc1\x76\xd8\xcc\xec\xba\x0a\xb5\x11\xa3\xbc\xa4\x97\xf9\xb6\xa5\ \xb6\x0d\xde\x4a\x36\x90\x06\x84\x5b\x90\xdd\x2e\xed\xf3\x71\xde\ \x8a\xb7\xaa\x1a\x10\xa7\xaa\x5f\xd5\x10\x5e\x9a\x8f\x47\x8d\x6a\ \xbb\x93\x01\x40\xb4\xc6\x38\x47\xd4\xc9\xa0\x28\xda\xcd\x35\xf1\ \x68\xda\xbf\x2a\xd0\x90\x26\xdd\x41\x99\x2b\xde\x4f\x67\x80\x66\ \x23\x71\x14\xd1\xeb\x76\x99\x9e\x9e\xa6\xdf\xeb\x12\xbc\x67\x32\ \x29\x98\x4c\x0a\x92\x24\xa5\xaa\x4b\xce\x9c\xfa\x2a\x2f\xf8\xf6\ \xef\x79\x42\x3d\xb5\x6d\x08\xeb\x1c\x2e\x4a\xf0\xc1\xe3\x51\x8c\ \xea\xe5\x50\x09\xa1\xf1\x4e\x01\xea\xa6\x64\x26\x04\xb0\x86\xe1\ \x70\x8b\xaa\xaa\xf1\x21\x48\x50\xbc\xab\x6b\x7f\x5f\xa8\x3d\xe5\ \xa4\xd0\x7c\x34\x92\xac\xdb\x6b\xf2\x3e\x02\xea\x31\x46\x90\x28\ \xc2\x8f\xc7\x34\x70\xd1\xea\x01\x21\x60\x4c\x43\x86\x44\xcd\x65\ \xb2\xd1\xba\xb9\xb6\xc6\xfa\xda\x2c\xb8\x05\x4c\x6b\xb1\xb6\xc1\ \x10\x5a\x9a\x9d\x65\x13\x92\x38\x21\xe9\x0d\x9e\xc2\x27\x77\x8a\ \x23\xd5\xcb\x73\x05\xdb\x7f\x74\x3b\xfe\x0d\xc4\x91\x6b\x8c\xe2\ \xeb\xd6\x3b\x1b\x5a\xbc\xb9\xb9\x41\x3e\x29\xf0\x41\x51\xd8\x30\ \x3e\x84\xfb\xaa\x26\xa7\xca\xda\xca\x5a\xab\x59\x5f\xd6\x00\x8d\ \xb5\x98\x28\x21\xec\x3c\xd0\x37\xc0\xa8\x4a\xd8\x6e\xf0\xb5\xa5\ \xb3\xb6\x45\xca\x36\x1b\x53\x1f\x9e\x36\x0a\xb4\x3d\x49\x1f\x02\ \xb5\x0f\xd4\x75\x33\x2b\xe0\x6b\xcf\x24\x9f\xb0\xb5\xb5\xc5\x70\ \x38\xe4\x86\x9b\xfe\x0e\xc6\x3e\xbd\xc2\x54\x14\x39\x79\xbe\x85\ \x71\x76\x87\x60\x29\x81\xa0\x9e\x38\x72\xc4\x91\x45\x7d\x85\x86\ \x0a\xd5\xba\x79\x5e\x59\x32\xdc\xda\x62\x9c\x4f\xa8\xbd\x02\xfa\ \x98\x53\x95\x47\xca\xb2\x5a\x09\xde\xcf\x2d\x5d\xba\xc4\xbe\x43\ \x07\x1b\x2d\x6d\x3b\x67\x84\xd0\xf4\x01\xe3\x08\xef\x6b\x8c\x75\ \x0d\xbb\x92\xd0\x50\xe1\x06\x7a\xf1\x65\x45\xe9\x73\x46\x93\x92\ \xc5\xe5\x55\x96\x97\x57\x98\x9d\x1f\x3c\x0d\x0e\x34\xdf\x99\x14\ \x05\x9b\x9b\x43\x56\x57\x56\x19\x8f\xc7\x84\xe0\x29\x27\x13\x56\ \x57\xd7\x58\x5e\x59\xe5\x99\x2f\xf8\x0e\x0e\x5d\x73\x5d\x43\x74\ \xae\x10\x45\x44\x04\xef\x3d\x97\xce\x9d\x86\xe0\x71\xae\x51\x95\ \x95\xd0\x30\x48\x1f\x48\xb3\x84\x24\x32\x84\xba\x68\xe6\x09\x00\ \x2b\x86\xf5\x8d\x0d\xc6\xe3\x9c\xa2\xac\x9a\x68\x47\xfe\xd2\x39\ \x2b\xa3\xaa\xae\xef\xa9\xaa\xea\x07\x56\x16\x17\xa1\x2a\x1b\x32\ \xb3\xc3\xf4\x2a\x5c\x14\x63\xd3\x8c\x7a\x73\x13\xe3\xda\x02\x43\ \x4d\xcb\x0a\x03\xbe\x56\x46\xf9\x84\xd5\x8d\x11\xeb\x5b\x63\x16\ \x97\x57\x19\x6e\x8e\x39\xf1\xec\x83\x8d\x27\x3d\xe9\xfc\x9d\x73\ \x18\x1b\x33\xdc\x1a\x73\x69\x71\x99\x24\x49\x89\x93\x84\x28\xc9\ \xd8\x77\xf4\x59\x3c\xff\xef\x1e\x63\x66\x76\x77\x13\x16\x57\xc4\ \xfd\xb6\x2d\xab\xb2\xe0\xbe\xbf\xfc\xff\xe8\xf5\x7b\x44\xd6\x42\ \xf0\xa8\x34\xee\x6f\xad\xd0\xcd\x62\xac\x51\x7c\x5d\x12\xda\xb2\ \x2c\x8a\x2c\x0b\x0b\x8b\x6c\x8d\x72\xea\xaa\xd2\xca\x23\x22\xf2\ \x49\xe7\xbd\x57\x55\xfd\x78\x59\x14\x3f\x30\x1e\x8f\x75\x65\x61\ \x51\xe6\x76\xcf\x35\xf9\x5e\x0c\xa8\x62\xac\xc3\x26\x29\x95\x19\ \x12\xea\xba\x21\x43\x48\x9b\x2e\x85\xb2\xac\x58\x5a\x5a\xa6\xb3\ \xeb\x18\x37\xde\x78\xed\x4e\x58\x5a\x6b\x1b\x02\x75\x05\x18\x06\ \xef\x39\x76\xe2\x99\xfc\xcc\x9b\xdf\x71\x05\x91\x32\x0d\xd6\x5c\ \x31\x16\x73\x39\xf5\xe9\x13\x4e\x3f\x84\xc0\x67\xff\xfb\x9f\xb2\ \xb1\x72\x91\xab\x0f\xee\xa3\xa9\x7e\x7d\x5b\x11\x06\x7a\xfd\x2e\ \xbd\x4e\x4a\xf0\xbe\x8d\x73\xc1\xa0\xd4\x65\xc5\xe2\xd2\x12\xc3\ \xd1\x98\xaa\x0e\x12\x54\x47\xce\xd9\xcf\x98\xb2\xf2\xaa\xca\x9f\ \x4d\x8a\x72\x52\x95\xa5\x9c\x7d\xfc\x4c\xe3\xa6\x41\x09\xda\x94\ \x96\x5a\x4c\x88\x92\xa4\xf1\x82\x96\x83\x07\xdf\xb6\xbd\x5a\xf4\ \x5e\x5d\x5d\xc3\xa6\xdd\xc6\x58\xed\x5b\xc4\x3c\x55\xe4\x6c\x1b\ \x23\x2e\x8a\x9b\xb7\x8b\x76\x66\x7f\xc4\x98\x1d\xd5\xe9\xe9\x37\ \xef\xb9\xfb\xcf\xfe\x98\x2f\x7e\xf6\x53\xcc\x4e\x4d\x11\x3b\xd3\ \x64\xa3\x76\x1d\x82\x32\xe8\x66\xa4\x71\xd2\xb0\xe0\x06\x6c\xb0\ \x22\x2c\xaf\xae\xb2\x31\xdc\x62\x34\xca\x29\x2b\x05\xe4\x53\x55\ \x15\x56\xcc\x1b\xdf\xbf\x05\xe8\x42\x55\xd5\x7f\x5c\x4c\x0a\x16\ \x16\x16\xc9\xb7\xc6\x0d\x68\xd4\x9e\xca\xd7\xd4\x75\xd5\xb8\x51\ \x96\xa1\x46\xa8\xea\xaa\xe9\x03\xb6\x65\x68\xd9\x36\x3b\xb3\x56\ \xeb\x7f\xb2\xa0\xf9\x54\xfd\xff\x89\xf2\xf7\x93\xa5\xf1\x27\x34\ \x55\x5a\xd2\x72\xe9\xfc\x19\x3e\xfc\xbb\x77\x71\xdf\x3d\x7f\xc6\ \xae\xb9\x69\x7a\xdd\x04\x87\x52\x15\x05\x75\x59\x11\x7c\x4d\x96\ \xa5\x0c\x06\xfd\x2b\x14\xe9\x46\xba\x13\x63\x38\x77\xf1\x02\xeb\ \x1b\x43\xaa\xaa\x62\x52\x83\x20\xbf\x67\x8d\x34\x8d\x91\xb2\xac\ \xab\x24\x91\x0f\x4c\x8a\xc9\x2b\xc6\xe3\x31\x8f\x3d\x76\x5a\xaf\ \xbb\xe1\x84\xd4\xbe\x22\x68\xa3\x0f\x84\x30\xc1\x25\x29\x36\xcb\ \xa8\x86\x5b\xcd\xf8\x9a\xd5\x76\xc4\xc0\x93\x66\x19\x51\x9c\xb6\ \x54\x93\x1d\xce\xb0\x53\xa2\x88\xec\x20\xfa\x76\x6d\xa1\xa1\xa1\ \xdb\xdb\xa7\xae\xaa\xf8\x76\x6a\xac\xae\x2a\x86\x1b\x6b\x9c\x3f\ \xfb\x18\x5f\x7d\xe0\x0b\x5c\x3a\xf7\x18\x9d\x2c\x65\x7e\xf7\x2c\ \xfd\x2c\x21\x4d\x2c\x56\x14\x5f\xd7\x8c\xab\x9a\x6e\x37\x61\x7a\ \xba\x4f\x9c\x44\x84\xd6\x63\x1a\xb5\xd8\x30\xdc\xdc\x62\x69\x65\ \x9d\x8d\xe1\x50\x27\x95\x17\x55\x3d\x6b\xac\x7c\x72\xff\x81\x69\ \x5c\xeb\x5e\x7a\xd7\x1b\xa6\x3f\x5b\x56\xd5\x67\xf2\x7c\xfc\xa2\ \xb3\xe7\xce\xb2\xff\xe0\x7e\x92\x2c\x6b\xb5\xfb\x76\x23\xa5\x90\ \xf4\xfa\xd4\x65\x49\x5d\x14\x58\x8d\x10\xd3\x3c\xa4\x93\xc5\x3c\ \xf8\xd9\x3f\x65\x73\x54\x90\x4f\x72\xca\xb2\xa6\x2c\x2b\x42\x68\ \x58\xda\xe1\xe3\x27\xf8\xd6\xef\xfe\x41\xb4\xae\x58\x5b\x5e\xe4\ \x9e\xff\xfe\x5f\x38\x7b\xfa\x24\xcf\x7b\xe1\xb7\xf1\xdc\x6f\xf9\ \x76\x8c\xb5\x94\xf9\x98\x3f\xfe\xe8\x07\xb9\x78\xe6\x14\xde\x57\ \x68\x5d\x11\x47\x96\x4e\x27\x65\xdf\xfc\x6e\xd2\xd8\x91\x46\x8e\ \xc8\x09\x46\xc2\x4e\xde\x37\xc6\x30\x98\xea\x31\x3b\x37\x45\x68\ \xcb\x3c\x69\x69\xb1\xb5\x11\x8f\x9f\x3b\xcf\xea\xda\x3a\xe3\xbc\ \x90\xbc\x00\x11\xf9\xad\xe0\x75\xf4\xf3\x77\x2e\x61\xee\xf8\xa9\ \x01\x00\x75\xe5\x47\xbe\x0e\xb7\x17\x45\xc1\x68\x6b\x28\x8f\x9d\ \x3c\xd9\xc8\x08\x6d\x1c\x69\xf0\xd4\x55\x89\xaa\x34\xfd\x37\x63\ \x1a\x3c\x08\x35\xd6\x0a\x83\x5e\x87\xd4\x14\xc4\x61\x48\xe4\xb7\ \xa8\x47\xab\x14\x1b\x4b\x6c\x2c\x5d\x60\xe1\xfc\x63\xac\x2e\x5d\ \x6a\xc6\xe5\x44\xa8\x8a\x09\x17\xce\x9c\xe2\xe4\xc3\x5f\x62\x65\ \x69\xa1\x61\x87\x08\x3e\x04\xd6\x96\x17\x28\xc6\x43\xa6\x7a\x19\ \x87\x0f\xee\xe7\xc8\xa1\x03\x5c\xb5\x7b\x17\x73\x83\x1e\x83\x6e\ \x87\x2c\x76\x8d\xde\x88\x6d\x04\x5a\x63\x99\x99\x99\xe6\xd0\xc1\ \x83\x38\xd7\x50\xf5\x86\xae\x3b\x9c\x8b\x58\x5e\x5d\xe3\xe2\xe2\ \x22\x2b\x6b\x1b\x3a\x29\x2a\x82\xd7\x45\x90\x0f\xde\xf1\xb1\xdb\ \x3c\x80\xbb\xf5\xfd\x43\xfe\xc5\x9b\x76\xf3\x13\xef\x5e\x0a\xef\ \x7b\xfd\xe0\x53\x65\x29\x7f\x3a\x1e\x8d\x5e\x7a\xf1\xc2\x05\xe6\ \xe7\xe7\x99\xdb\xb5\x0b\xef\x7d\x93\xf3\x45\xd0\xb2\xc0\xb6\x2c\ \xad\xd8\xdc\xc0\xd7\x35\xd6\x3a\xba\x9d\x94\x24\x89\x99\x9b\x9d\ \x65\x94\x17\xac\xaf\x0f\x99\x94\x15\x1b\x1b\x9b\xac\xae\x6f\xd2\ \xe9\x64\x3b\xbc\xbc\x91\xc5\x53\xfa\xfd\x1e\x49\x1c\xef\x14\xeb\ \x02\x64\x69\x8a\xf6\x7b\xcc\x0c\x7a\x4c\xf7\x3a\xa4\x69\x82\xaf\ \xeb\x66\x12\x64\xa7\x9b\xa4\x3b\xf3\x85\x83\x41\x97\xc3\x47\xaf\ \x26\xeb\xf5\xda\x60\x93\xa6\x83\xac\x42\x59\x55\x3c\x72\xea\x34\ \x17\x17\x97\x74\x34\xca\x65\x5c\x28\x88\xdc\xae\x9e\x05\x91\x37\ \xf3\xe6\x1f\x8e\x9a\xf9\x80\x8d\x61\x33\x60\xbc\xb9\x31\xda\x9c\ \x99\xe9\xff\x5a\x51\x94\x2f\x1e\x6e\x6e\x76\x1f\x7b\xf4\x51\x1d\ \xf4\xfb\x12\xc5\x31\x3e\xe8\x4e\x5c\xd7\x65\x41\xd4\x69\x26\x2c\ \xca\xcd\x0d\xd4\xd7\xd8\xd8\x90\xb9\x18\x52\x43\x59\x05\xe6\x66\ \x67\xc8\xf3\x82\x10\x94\x49\x51\x11\x5d\xa1\xf2\x8a\x08\xd6\x38\ \xa2\x76\x00\xf2\xca\x57\xe4\x22\xd2\x24\x26\x4d\x52\xd2\xb4\x43\ \x96\x26\xd4\xb5\xa7\xaa\xcb\x76\xbe\x98\x66\xbe\x58\x95\x5e\xbf\ \xc7\x91\x6b\x0e\x31\x98\xea\xb5\xda\x81\x6c\x03\x3f\x2a\xf0\xd8\ \x99\x53\x9c\xbb\x70\x91\xf5\xf5\x4d\xc6\x93\x9a\x10\xe4\x7e\x45\ \x7e\xff\x3d\xff\xbe\xa1\x41\xef\xfa\x70\xd5\xe8\x3e\xbf\xf0\xdb\ \x43\xee\xba\x65\x9a\x5f\xf9\xa0\xd7\xba\xae\xff\x47\x5d\xd7\x77\ \xe6\xf9\x84\xc5\xc5\x25\x39\x79\xf2\x31\x0d\x81\x26\x4d\x6d\xc7\ \x16\x50\x57\x05\x71\xb7\x47\x36\x33\x8b\x38\x47\xa8\x6a\x54\x03\ \xe3\x7c\x82\x0f\x8d\x54\x65\x9d\x25\x8a\x1c\x71\x12\xe3\xa2\xa8\ \x1d\x07\x6d\xdc\x36\x8a\xa2\xa6\x43\xe3\x5c\xc3\xf6\xda\x61\xcb\ \x24\x8d\x49\xb3\x0e\x69\xd6\x25\xcd\x3a\x44\x49\x46\xda\xed\x11\ \xa7\x3d\x6c\x94\x61\x5d\x82\x4b\xba\xcc\x5e\xb5\x9f\x63\xd7\x3f\ \x83\xc1\xec\x6e\x54\x63\x20\x26\xe0\xa8\x71\xa8\x89\x58\x5c\x5a\ \xe5\xe4\xa9\x53\x2c\x2c\x2d\xe9\xd6\xa8\x90\x49\xa9\xa5\x22\xbf\ \x2a\xc6\x2d\x01\xbc\xf9\x95\xf1\x13\xa7\xc4\xfe\xe4\x73\x13\x3e\ \x75\xe7\xf5\xfc\xe8\x3b\x2f\xd4\x2f\x7d\x9e\x7b\x04\x78\x76\x08\ \xe1\x48\x59\x96\x92\x24\x89\x4e\x4d\x4f\x89\x6c\x8f\xbc\x9a\xb6\ \xee\x0e\x4a\x92\xf5\x70\x9d\x0e\x21\x04\xaa\xc9\x84\xe1\x78\x82\ \x31\x42\xa3\xa5\x28\xde\x07\x42\x50\x92\x4e\x8f\xd9\xb9\x3d\x4c\ \xf2\x2d\xb6\x36\xd6\x58\xba\x74\x16\x5f\x16\x5c\xb5\xff\x00\x53\ \x33\xbb\x28\x8b\x09\x93\xf1\x16\xcb\x17\x1e\x27\x8d\x22\xa6\xa7\ \xa6\xe9\xf5\xfa\x44\x49\xd2\xf0\x05\x1b\x11\x82\x10\x77\xfa\xcc\ \x1d\x38\xcc\xd5\xd7\x5d\x4f\xda\x1b\x34\xc5\x98\x89\xc0\x46\x18\ \x1b\x61\xa3\x94\xe1\xd6\x16\x0f\x3e\x78\x3f\xa7\x4f\x9f\xd2\xf5\ \x8d\xa1\x0c\xc7\x35\x5e\xe5\x2e\x45\x7e\xe7\x3d\x1f\x2b\xcb\x9f\ \xfb\x21\xc7\x1d\x1f\xab\x9e\x3a\x26\xf7\xdc\x63\x25\xff\xf9\xf3\ \x05\xff\xe9\xf3\xe5\xe6\x4b\x9f\x1f\x3d\x0a\x7c\x87\xf7\x7e\x76\ \x32\xc9\xe9\x76\xbb\x0c\xfa\x7d\x31\xa6\x95\x94\xc5\xe0\x4c\x23\ \x98\x44\x71\x87\xa8\x6d\x59\xd5\x55\x8d\xd6\xe5\x13\xda\x6b\x62\ \x0c\xbe\xae\x58\x5f\xbe\xc4\xd2\xf9\xd3\x6c\x2c\x5f\x44\x7c\x45\ \x7f\xd0\x27\x8e\x23\x86\x6b\xcb\x2c\x9e\x7f\x9c\xf5\xa5\x8b\x18\ \xf5\x0c\xfa\x7d\xfa\xbd\x01\x49\xda\x69\x8a\x31\x02\x2e\x4e\xe8\ \xec\x39\xc0\xae\x63\xd7\xb3\xf7\xba\x1b\xb0\x9d\x6e\x33\xbf\x10\ \xa5\x68\x9c\x21\x69\x07\xe9\xf6\xc9\x8b\x92\x87\xbe\xf4\x05\x1e\ \x7d\xe4\x61\x5d\x59\x59\x95\x8d\xad\x92\xaa\x96\x3f\x07\x7e\xf1\ \xce\x4f\xf8\x65\x80\xef\x7b\x61\xc6\x7f\xfb\xe2\xd3\x18\xe0\x3f\ \x7f\xbe\xe0\xae\x5b\xa6\xf9\x93\xcf\x4d\x78\xd1\x33\xcb\xf3\x4e\ \xdc\x92\x2a\xdf\x56\xd7\x55\x6f\x92\xe7\xf4\xfa\x3d\x19\xcc\xcc\ \xe0\x6c\x84\xb4\x77\x00\x8c\x89\x76\xd0\x38\xed\x4d\x13\x65\xcd\ \xa2\x09\x81\x50\x57\x88\x18\x22\xe7\x30\x02\xbe\x18\x43\x5d\x12\ \x59\xa1\xdf\xef\x31\x3d\x35\x43\x16\x3b\xea\xc9\x84\xba\x2c\x30\ \xea\xe9\x65\x3d\xba\x59\x87\x38\xb2\x88\x7a\x4c\x64\x49\xa7\xf7\ \xd0\x3f\x78\x8c\x99\xe3\x37\xd1\x9b\x3f\x00\xce\xa1\x36\x42\xe2\ \x14\x8d\x53\x24\xc9\xa0\xdb\x65\x5c\x4c\x78\xe0\xaf\xee\xe1\x2b\ \xf7\x7f\x41\x17\x17\x16\xd9\x1c\x4e\xa4\xac\x79\x58\x31\x3f\x7b\ \xe7\x27\xfc\x83\x8d\xeb\x47\xfc\xda\xbf\x9d\x7c\xed\x49\xd1\x3f\ \xf9\xdc\x84\xdf\xbc\x65\x8a\x37\xfd\xf6\x44\xbf\xf3\x19\xfe\x2b\ \x88\x19\xa9\xea\x8b\xaa\xba\xca\xc6\x79\xae\x69\xa7\xcf\x60\x7a\ \x4e\x8c\x69\x8c\x20\x36\x42\x5c\x84\x1a\x87\x60\x88\xd2\x2e\x59\ \x6f\x86\xa8\xd3\x27\x4a\xbb\xd8\x28\xc1\x8a\x60\x8d\x21\x89\x63\ \x3a\x59\x4a\x27\x4d\x48\x93\x84\x24\x8a\x48\xe2\x26\x5d\x45\x51\ \x4c\x1a\x27\xc4\x2e\xc2\xc5\x09\x71\x6f\x40\xb6\xfb\x2a\x7a\xfb\ \xaf\xa1\x7f\xf5\x09\x3a\xf3\x47\xb0\x51\xdc\xe4\x7e\xd3\xcc\x03\ \xaa\x89\x10\x67\xc1\x45\x0c\xd7\x57\x78\xf0\x9e\x4f\xf1\x95\x7b\ \x3f\xab\x8b\x17\x2f\xb0\x39\xcc\xa5\xa8\x78\x3c\xa8\xbc\x29\x19\ \x44\xff\xf5\xee\x2f\xd6\xdc\xfa\x8a\x88\x77\x7f\xb4\xfa\xeb\xdd\ \x17\x78\xef\x4f\xf7\xf8\xb9\x7f\xbe\xc5\xbb\x5e\x13\x65\x49\x9a\ \xbe\x2e\xcd\xd2\x5f\xee\x74\xba\xb3\x73\x7b\xe6\xf5\xd8\xb5\x37\ \x72\xe4\xf8\x0d\xe2\x92\x0c\xac\xa0\x2e\xda\xc1\x04\xad\x43\x33\ \x41\xda\x02\x5b\x5d\x14\x54\x65\x4e\xd5\x76\x73\x7d\x55\x10\xea\ \xaa\xed\xe9\x35\x54\xd8\xab\x43\x4d\x8c\x4b\x52\xa2\xb4\x83\xeb\ \x74\x89\xba\x03\xa2\xde\x00\x9b\x66\x0d\x78\x06\x6d\xc4\xcd\x16\ \xe1\x45\x42\x2b\xdd\x7b\x96\xce\x9e\xe4\xa1\x7b\xfe\x2b\x8f\x7d\ \xe9\x5e\x5d\x5e\x5c\x60\x73\x98\x4b\x5e\x72\x26\x04\x79\x4b\x64\ \xdc\x87\xde\xf5\xf1\xc2\xbf\xf1\xe5\x8e\x3b\x3e\xf6\xd4\xbb\x03\ \xee\x6b\x19\xa0\xd3\x49\xb9\xe3\xe6\xc0\x1b\x3f\x30\xce\xdf\xf5\ \x93\xf6\xff\x55\x18\x79\x1f\x7e\xd5\xfb\xb0\xaf\x2a\x6b\x36\xc7\ \x13\xbd\xf6\x79\xdf\x2a\xfd\x3d\x07\xdb\xaa\x31\x34\xb1\x9f\x4f\ \xd0\x62\xd2\xe8\xfe\x5a\x37\x22\x6a\x96\x90\x29\xcd\x10\x65\x5b\ \x44\xe9\x76\x6f\xdd\xd8\x46\x85\x36\x11\x26\x8a\xb1\x51\xd2\x08\ \xac\xdb\x53\x65\x65\xde\x5c\xb6\x50\x81\xd0\x0e\x67\x68\xb3\x79\ \x9f\xe7\x9c\x7e\xe8\x5e\x1e\xbd\xef\x1e\xce\x7c\xf5\x21\x5d\x5d\ \x5d\x95\xcd\xad\x82\xb2\xe6\xd1\xa0\xf2\x2b\xc1\x84\x8f\xbe\xeb\ \xe3\x85\x7f\xe3\xcb\x9e\x7e\xf3\x5f\xf7\xbe\xc0\x1f\xdd\x33\xe6\ \x65\xdf\xde\xe7\x25\x37\x19\xde\xf4\x81\xbc\xfe\xae\x67\xcb\x17\ \x55\xf5\x91\xaa\xaa\x6e\xac\xca\x62\x4f\x9e\x6f\xc9\xfa\xc6\x9a\ \x62\x3b\x32\xb5\xe7\x1a\xc4\xf6\x10\xab\x50\x05\xa4\xae\x5b\x1d\ \xa0\xa9\xd3\x45\x43\xab\x05\x82\x71\x16\x1b\xc5\xd8\x38\xc1\xc6\ \x69\xfb\x19\x63\xad\x6b\x0a\x97\xb6\x43\xa4\xa1\x6e\xc7\x71\x3d\ \x12\xda\x51\x1a\x0d\xad\xcb\x06\x56\xcf\x9d\xe4\x81\xcf\x7c\x92\ \x47\xbe\xf0\x69\xce\x3c\xfa\x65\x5d\x5d\x5d\x97\xe1\xb8\xa4\xac\ \xb8\x37\xa8\xdc\x1a\x67\xf1\x1f\xdd\xf1\xe1\x2a\xfc\xc2\xcb\x2c\ \xef\xf9\xb8\xff\xc6\xaf\xcc\x7c\xf0\xad\xfb\x59\x5e\xdd\xe0\xe7\ \xff\xf9\x16\x1f\x7a\x47\x8f\x73\xe7\xc2\x73\xac\xb1\x6f\x8d\x93\ \xe4\xe5\x83\xa9\x19\xa6\xe6\x0f\x30\xbb\xef\xa8\x1e\xbe\xf1\xb9\ \xb2\xef\xe0\x91\x46\x3c\x1d\x6d\xa0\x75\x8e\x50\x37\x6e\x2a\xe6\ \x8a\x76\xf8\x76\x4f\xd1\xec\xcc\x20\xb4\x53\x16\xed\x6a\xb6\x9b\ \xaa\xe6\x72\x97\x5a\x2c\x38\x07\xc6\xb1\xb9\x78\x89\x53\x0f\xfe\ \x0f\x2e\x9e\x7e\x98\x85\x73\x8f\xeb\xea\xca\x0a\xc3\xad\x5c\x46\ \x13\x4f\x1d\xe4\x23\xaa\xf2\xce\x3b\x3f\x51\xdf\x0f\xf0\xb5\xdc\ \xfe\x1b\xba\x35\xf6\xbe\xd7\x0f\x78\xc3\x5d\x9b\xed\x85\x8a\x74\ \x97\x31\xf6\x47\x8d\x31\x6f\xe9\x74\x3b\x7b\xa7\x66\xe6\x18\xcc\ \xce\xd3\x9f\x9d\xd7\x83\x07\x8f\xcb\xbe\x7d\x07\x88\x32\x0b\xa1\ \x6c\xa7\x4b\x43\xc3\xf6\xb7\x55\x1d\x31\xad\xa2\x24\x97\xaf\xc3\ \x65\x9c\x72\x00\x00\x02\x3d\x49\x44\x41\x54\xc8\xb4\x1d\xd9\x26\ \xbe\x4d\x13\x16\x36\x82\x28\x86\x10\x58\xb9\x74\x96\x33\x8f\x3c\ \xc8\xe2\xd9\x53\xac\x2e\x9c\xd7\x95\xa5\x25\xb6\xb6\x46\xb2\x95\ \x57\x14\xa5\x2e\x05\xe4\x9f\xaa\xf2\xc1\x3b\x3f\xe1\x97\xfe\xba\ \x9b\xff\x1b\xdf\x1b\xfc\xcd\x5b\xa6\xb8\xe5\x37\x37\x00\x78\xd7\ \x3f\x4c\x63\x11\x39\x0e\xf2\x06\x6b\xed\x6b\x3a\x9d\x8e\x9b\x9e\ \x9e\xa1\x33\x98\xa1\xd3\xe9\x31\xb3\x6b\x17\x7b\xf7\xef\x67\x76\ \xcf\x1e\x92\x4e\xd6\x0a\xf3\x7a\xb9\x51\xa9\xdb\xda\x79\x8b\x01\ \xdb\x1e\x60\x9a\x8e\x8e\xfa\x9a\xf5\xd5\x55\x16\x2e\x9c\x65\xf1\ \xc2\x69\x86\xab\xcb\x0c\xd7\x96\x75\x65\x65\x85\xd1\x68\x24\xe3\ \xbc\x62\x5c\x04\x42\xe0\x0f\x14\xf3\x6e\x1f\x78\xe0\x37\xfe\x7d\ \x5d\x02\xbc\xe9\x69\xd0\xfe\x6f\xed\xe2\xe4\xef\xdc\xba\x9b\xf3\ \x17\x57\xf8\xc7\xff\xa6\x11\x1b\xdf\xf1\x7f\xbb\x4e\xec\xa2\x1b\ \x55\xf5\x0d\xc6\x9a\x57\x65\x69\x62\x7b\xfd\x3e\xdd\x5e\x8f\x34\ \x4d\x35\x4a\x12\xe9\x74\x7b\x0c\xa6\xa7\x18\x4c\x4d\xd3\xed\xf7\ \x48\xd2\x0c\x17\x25\x20\xae\xed\xe4\x2a\x65\x51\x90\x8f\x87\x0c\ \x37\x37\xd8\x5c\x5f\x67\x38\xdc\xa0\xcc\xc7\x8c\x47\x5b\x0c\x37\ \x37\x18\x6e\x6c\x6a\x5e\x4c\x24\x9f\x78\xf2\x52\x09\x41\xff\x0b\ \x22\xb7\x87\x20\xf7\xdc\xf9\x89\x7a\x0b\xe0\xa7\xbf\x1f\x06\xdd\ \x98\x7f\xf6\xe1\xf2\xaf\xbd\x9f\x6f\xf8\xee\xf0\x95\x77\x76\xdf\ \xfb\xba\x59\x86\xc3\xf5\xd4\xd8\xe8\x68\x50\xfd\x07\x46\xf8\xb1\ \xc8\x45\xfb\xd2\x34\x26\xcb\x52\xb2\x2c\x25\x4e\x62\x75\x2e\x92\ \x27\xc8\x5e\x6d\x57\x79\xbb\xc0\xf1\xc1\xe3\x2b\x4f\x51\x4e\x18\ \x8f\xc6\x9a\x8f\x73\x99\x94\x05\x45\x59\x53\x56\x4a\x51\xe9\x96\ \xaa\x7c\x02\x91\xf7\xab\xea\x7d\xc6\x4a\x7e\xfb\x47\xea\xf0\x37\ \x3d\xf5\xbf\xb5\xcb\xd3\x4f\xbe\x60\xf5\x8e\xff\xa7\x8b\xaf\x0b\ \x07\xa6\x1b\x94\x6f\x81\xf0\x72\x23\x7c\x97\x31\xe6\x9a\xc8\x19\ \xac\xb5\x38\x6b\x5a\xfd\xef\x8a\x06\x47\x3b\x10\xe1\x83\xa7\xae\ \x7d\xdb\x2b\x08\x54\x1e\x6a\xcf\x4a\x08\xdc\x8d\xf0\x71\x23\xe6\ \x93\x55\x1d\x96\x9d\xb3\xf5\xed\x1f\x2d\x15\xe0\xf5\x7f\x0f\x76\ \x4f\xf7\x78\xdb\xef\x6f\x7d\x43\xeb\xff\xa6\x0d\xb0\xfd\xfa\xb5\ \x57\x67\xbc\xf5\x77\x73\x00\xde\xf8\xa3\x7b\x48\x65\x0d\xd1\x20\ \x41\x6d\x1c\x82\x5e\x0d\x7a\x13\xc2\xf3\x05\xbd\x51\xe0\x08\x30\ \x07\x74\x81\x48\x9b\xc1\xb2\x49\x08\xac\x05\xd5\x73\x8a\x7c\x19\ \xb8\x57\x90\x2f\x38\x6b\xbe\x52\xd5\x61\xa4\xa0\x71\x14\xe9\x3f\ \xfd\x50\xf3\x8c\x57\x7f\x37\x1c\xde\xdb\xe5\x6d\xbf\x3f\xfa\xa6\ \xd6\xfd\xff\x03\x45\x6a\x6e\xdd\xad\x8a\x50\xfe\x00\x00\x00\x00\ \x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x07\xca\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x2c\x00\x00\x00\x2c\x08\x06\x00\x00\x00\x1e\x84\x5a\x01\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01\ \x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x03\x12\ \x0b\x1b\x37\x09\x46\x12\x44\x00\x00\x07\x4a\x49\x44\x41\x54\x58\ \xc3\xed\x98\x6f\x8c\x5c\x55\x15\xc0\x7f\xe7\xde\xf7\xde\xbc\xb7\ \x33\x9d\xd9\xed\xee\xb2\xdd\xdd\x6e\x44\xb0\xa5\x2d\xd2\x96\x18\ \x0d\x6a\xfc\x66\x48\x4c\xf8\x93\x98\x18\x13\x15\x12\x8d\x21\xf1\ \x83\xc1\x2f\xed\x02\x82\xd9\x50\xa4\x7f\xf4\x83\x41\xfe\xc4\x0f\ \x92\xd8\x7e\xc3\xf0\x01\x8c\x92\xa8\x51\x29\x62\xd0\x14\x42\x6b\ \x04\x4b\x2d\xd8\xd0\x75\xd7\x6d\xb7\x0a\xbb\x3b\x3b\x33\xef\xde\ \x7b\xfc\xf0\x66\xa6\xdb\x52\xba\x5b\x28\x42\xb4\x93\xdc\x79\xb9\ \x73\xef\x9d\xfb\xbb\xe7\x9d\x73\xee\x39\x47\x78\x97\x9f\x5d\xbb\ \x76\xd5\xd4\xf8\x2f\x0a\x7c\x1a\xe4\xda\xc8\x9a\x01\x31\x76\x95\ \x73\xb9\x57\xd5\x53\x0a\xc7\x45\xe5\x79\x35\x61\x7f\x73\xc1\xfd\ \x7c\x62\x62\xa2\xf5\x6e\xf6\x93\x77\xba\x70\xe7\xce\x9d\x57\x88\ \xf1\x77\xd4\x7a\x7b\xbf\x32\x3a\xb2\x36\x5b\xbd\x7a\x35\xe5\x72\ \x05\x6b\x6d\x77\x4e\x9e\xe7\xbc\xf9\xe6\x1b\x9c\x38\x31\xc3\xe4\ \xe4\x24\xcd\x56\x6b\x46\x45\x7f\x1c\x91\xff\x60\xdb\xb6\x89\x99\ \xff\x1a\xf0\xee\xdd\xf7\xdf\x52\xca\xd2\x47\x36\x6d\xba\xba\x3c\ \x32\x3c\x42\xa5\x52\x21\x4d\x53\xd2\x52\x8a\x8d\x22\x44\x40\x83\ \xe2\xbc\x23\x77\x8e\x66\xb3\x41\xbd\x5e\xe7\xd0\xc1\x83\xbc\xfa\ \xda\x51\x54\x99\x41\xc2\x6d\x77\x6c\xbb\xfb\x89\xf7\x1c\x78\xf7\ \xee\xfb\xbe\x3c\x38\xb4\x66\xdf\xd6\xcd\x5b\xa5\x6f\x75\x1f\xfd\ \xfd\x03\x58\x6b\x11\x11\x04\x41\x51\x54\x3b\x2d\x10\x54\xd1\xa0\ \x28\x8a\x73\x8e\x63\xc7\x8e\xf1\xcc\xfe\xa7\x69\xb6\x9a\x5e\x54\ \x3e\x3f\x3e\x7e\xd7\x93\xef\x19\xf0\xfd\xdf\xbf\x7f\xc3\xe8\xd0\ \xf0\xa1\xad\x5b\xae\x8d\x07\x06\x06\xa8\xd5\x6a\x20\x82\x41\x10\ \x11\x9a\x79\x8b\xf9\xb9\x39\x16\x1b\x75\xac\x89\xc8\xb2\x8c\x38\ \x8e\xb1\x91\xed\x1e\x40\x55\x99\x99\x99\xe1\xa9\xa7\x7e\x41\x9e\ \xe7\x4d\x43\xb8\x7a\xfb\xf6\x7b\x8e\xae\x94\x21\xba\x10\xe0\x4a\ \x96\xed\xba\xe6\xa3\x9b\xe3\xde\xde\x5e\xaa\xd5\x02\x56\x10\x4e\ \xcc\x9e\xe4\xd0\x8b\x2f\xf0\xf2\xe1\xbf\x12\x42\xe8\xce\x8f\xe3\ \x98\x35\x6b\x86\xd9\xb8\x61\x13\x43\x43\x43\x94\xd2\x04\x55\x65\ \x60\x60\x80\xeb\xae\xfb\x24\xcf\x3c\xb3\xbf\xa4\xd8\x1d\xc0\x97\ \x2e\xba\x84\xf7\xec\xd9\x71\xe5\x15\x57\x5e\x75\x64\xe3\xc6\x4d\ \xb2\x76\x6c\x0c\x6b\x2c\x22\x70\xf0\xd0\x8b\xec\xdf\xff\x74\x67\ \xda\x51\x84\x83\x1a\xe4\xb8\x88\x2a\xc2\x18\xca\x35\x22\xb2\x6e\ \xcb\xe6\xad\xac\x5b\xbf\x9e\x55\xab\x2a\xa8\x2a\x41\x95\xc7\x1f\ \xff\xa9\xce\xcf\xcd\xab\x7a\xb3\xee\xce\x3b\xef\x7c\xf5\xa2\x4a\ \xd8\x63\x6e\x1a\x1d\x19\x95\x4a\xa5\x82\x35\x06\x11\x98\x9e\x9e\ \xee\xc0\x3a\x51\xbd\x7d\xfb\xf6\x6f\x3f\x22\x22\xba\x74\x9d\xaa\ \xca\x9e\x3d\x3b\x6f\x3d\xf4\xe7\x83\x3f\xaa\x56\xab\xa5\x38\x1e\ \xa3\x54\x4a\x30\x22\x6c\xb8\x6a\x83\x1c\x38\x70\x40\x4c\xe4\x6f\ \x00\x1e\x58\x09\x87\x59\x29\x70\x56\x4a\x3f\x57\xae\x54\xc8\xb2\ \x9e\xae\x81\x3d\xf7\xdc\x1f\x8a\xd7\x24\xba\x6d\x7c\xfc\xee\x87\ \xcf\x86\x2d\xc6\x44\xc7\xc7\xef\xfa\x49\x08\xe1\xb6\x57\x5e\x39\ \xcc\xc2\xfc\x7c\x77\x6c\x74\xed\xda\xe2\x50\x41\xae\x5f\x29\xc7\ \x8a\x81\xd3\xac\x67\x1d\x40\x92\xc4\x88\x08\xce\x39\x8e\x4f\x1e\ \x07\x98\x5d\x5c\x70\x0f\x2e\xb7\x7e\x7c\xdb\x5d\xfb\x16\x16\xe6\ \x5f\xcd\x73\x87\xf7\x1e\x80\x72\xb9\xdc\x19\x5e\x77\xd1\x81\xad\ \x91\x3e\x00\x6b\x23\x40\x58\xa8\xd7\x51\x55\x40\x9f\x9f\x98\x98\ \x70\xcb\x1a\x8b\x88\xb6\x5c\xfe\x47\x80\xbc\x95\x17\x46\x19\x25\ \x1d\x4b\xea\xbf\xe8\xc0\x41\xb5\x56\x00\x17\x37\x59\xee\xf2\x0e\ \xca\xc9\x15\xbb\x19\x95\x49\x00\xdf\xf6\x24\xc6\x74\x6d\xbe\xff\ \xa2\xb8\xb5\xbd\xdf\xbb\xbe\x1c\x16\x4b\x97\x8b\xf0\x61\xd7\x06\ \x95\xc2\x90\xd0\xf6\xa6\xa9\x3f\x75\xc3\xde\x7b\x6f\x3a\xaa\x90\ \x0a\x64\x80\x05\xaa\x80\x07\xde\x04\x9a\x40\x1d\x91\xfa\x42\xfe\ \x8f\xc1\xb7\xdb\x6b\xdf\x7d\x37\x7f\x4a\x35\x4c\x79\x3f\x37\xf5\ \xd5\x89\xdf\x35\x56\x0c\xac\x8a\xec\xdd\x71\xe3\x37\x04\xf9\x26\ \x8b\x6c\x30\x00\x0a\xd2\x96\x86\xa2\x04\xb4\xeb\x6f\x05\xad\x02\ \xd5\x73\xf8\x47\x0b\xf4\x2d\xfd\x63\xeb\x5b\x1d\xcf\xf1\x56\xe1\ \x07\x7d\x16\x04\x6b\xaa\xec\xbd\xf7\xc6\x97\x15\x1e\xbc\xf5\x9e\ \x9f\x3d\x22\x82\x9e\x17\x78\xdf\xbd\x37\x7e\x4d\x44\x1e\xea\xe8\ \x6b\xa5\x5a\xa3\x5a\xeb\xe7\xb5\xc0\xe9\xcd\xb4\xb8\x6a\x01\xfa\ \x06\x47\xd8\x72\xf9\x7a\x54\xde\xea\xd6\x35\x78\x34\x04\x54\x03\ \xde\xe7\xbc\x7e\xaa\x3b\xf2\x16\xe0\xde\xfe\x21\x1a\x8b\xf3\xb4\ \x1a\x0d\x42\xf0\x1b\x05\x1e\xda\xbb\xe3\xa6\x06\x3c\xf9\xe8\xf9\ \x55\x42\xe4\x76\x80\x8f\x7f\xe6\xb3\x78\x93\xe1\x5c\x60\xa1\xde\ \x40\x66\xa5\x0b\xdc\x69\x00\xce\x79\x54\xce\x7d\xff\x88\x89\x90\ \xb6\x95\xd8\x24\x25\x50\x7f\x5b\xf5\xeb\xff\xd0\x66\x2a\x3d\x29\ \xd6\x08\x84\x45\x5e\xf8\xfd\xaf\x10\xf8\x16\xf0\xe8\x72\x3a\xbc\ \x09\xc0\x91\xe1\xbd\xd2\x72\x9e\x46\x2b\x27\xf8\xc2\x11\x34\x9b\ \x4d\xac\xb5\x2c\xd6\xeb\x5d\x69\xe5\x2e\x90\x24\xd1\x79\x2f\xd1\ \x56\xee\x8a\xc3\xa9\x12\x42\xf1\x7e\x5c\xdb\x70\x05\x68\xe6\x8e\ \xc4\x07\x4a\x26\xc2\x44\xe5\x33\x58\x96\x03\xb6\x00\xa1\x1d\xd0\ \x94\x92\x84\x3c\x0d\x90\xbf\xc1\xa9\x53\xb3\xdd\x38\xf7\xc0\xf3\ \x7f\x02\x60\x68\x75\x4a\x52\x4a\x96\xe0\xc9\x39\x2f\xfc\x52\x29\ \xa1\xbf\xda\x62\x7a\x7a\x8a\xe1\xe1\x11\x16\xeb\x8b\x1c\x3f\xfe\ \x7a\xa1\x0e\x15\x4b\x9a\x96\x28\x95\x92\xb6\x08\xe4\x0c\x96\x15\ \x79\x09\x31\xa6\x0b\x50\xab\xae\xe2\x63\x1b\x6a\x1c\x9d\xfc\x0b\ \x47\x5e\x51\x16\xea\x4d\xd2\x44\xb9\x76\x5d\x1f\xc3\xfd\xd9\x12\ \x54\x39\x6f\xb4\x32\x7c\x59\x95\xa9\xd9\x63\xfc\xed\xf0\x2c\x0b\ \x0d\xc7\xec\xc9\x69\x2e\x5f\x53\xe6\x23\xa3\x55\x4a\x89\x6d\xcf\ \x95\x77\xe6\xd6\xa2\x24\x2b\x84\x65\x2c\xc6\xc6\x94\x4c\xcc\x96\ \xde\x3e\xbc\xcb\x09\x3e\x47\x35\x2c\xd5\xfb\x15\x44\x53\xc5\xc8\ \xd8\x48\x4f\xbb\x9f\xc0\xfa\x2b\xce\x7d\x3a\x7d\x07\xc0\xbd\x03\ \x6b\xc1\x24\x05\xb0\x89\x10\x63\x01\x25\x78\x87\x06\xb7\xc4\x35\ \xc9\x45\xc8\x61\xce\x5a\x14\x1a\x17\x0e\xdc\x57\x09\x2c\xb4\x1c\ \xc6\x18\x44\x14\x8c\x00\x86\x60\x0c\x41\xe3\xf6\x16\x82\x88\x39\ \x53\xc2\xc6\x9e\xee\xab\xa2\xc1\x77\x85\xa6\xa1\x30\x3a\xf5\x8e\ \x10\x8a\xa6\xc1\xb5\xb5\x56\x31\x46\x10\x1c\x69\xe4\x2e\x1c\x38\ \xb6\x86\x6a\xaa\xf8\xc6\x49\x82\xc4\x68\x88\xd0\x00\xae\xd5\x22\ \xe4\x39\x2e\x6f\x92\xb7\x9a\xb8\xbc\x81\xcb\x9b\xb8\x56\x03\x97\ \x37\x4e\xff\xe6\x5a\x78\xef\x8b\x16\xdc\x99\x4f\xef\x89\x92\x84\ \xac\xa7\x42\xd6\x53\x26\x2b\x57\x48\x7b\xca\x64\x3d\x15\xca\xb5\ \x41\x22\xdb\xf3\xee\x63\x89\x0f\xca\xe7\x12\xf0\x25\xe0\x0b\x02\ \x56\xbd\x24\xe1\xf7\x10\x58\x2f\xe9\xf0\x25\xe0\xff\x01\xe0\x4b\ \x5e\xe2\xff\xcf\x4b\x44\xcb\xa9\x84\xa2\xa0\x01\x08\xa8\xca\xfb\ \x7e\x98\xe5\xab\x97\x1a\x40\xdb\x71\x6c\x90\x6e\x7c\xfb\xc1\x03\ \xd6\xf6\x57\xbb\x6a\x5e\xc0\xb6\x85\xad\x1f\x2c\x09\x6b\x91\xb3\ \x78\xc0\x60\x92\x2a\xea\x1c\x22\x5a\x34\x55\x44\x02\x12\x14\x31\ \x0e\x31\x16\x11\x73\x3a\xf3\x38\xa3\x46\x51\xf4\x45\x0c\x62\x14\ \xc1\x60\x54\x50\x04\x1b\x25\xd8\xa8\x84\x8d\x4b\xd8\x38\xc5\xc6\ \x19\x36\xee\x39\xbb\x32\x14\x56\x02\x7c\x04\x58\x7f\xec\xc8\x4b\ \x8c\x5d\xb9\x09\x30\x45\x41\x84\x22\x4b\xd2\xa2\x32\x08\x44\x04\ \x0c\x88\x05\x13\x83\x89\x91\x28\x41\x6c\x13\x13\x95\xb0\x4b\x33\ \x0e\x75\x04\x1f\x8a\x8c\x23\x04\x82\xf7\xd8\x38\x26\x4a\x32\x6c\ \x94\x62\x6c\x7c\x3a\xb5\x52\x65\xf2\xef\x87\x3b\x2c\x2f\x2f\x5f\ \x5b\x13\x7d\x50\x54\x1e\x78\xf6\x37\xbf\x44\x7e\xfb\x6b\x06\x86\ \x86\x49\xd3\x32\x71\x9a\x51\xca\x2a\x94\x92\x8c\x28\xce\x88\xe3\ \x04\x44\xf0\xae\x85\x00\x3e\x6f\x02\x45\x49\xaa\xf3\x9a\x42\xf0\ \x84\xe0\x71\xce\x11\xbc\xc3\x05\x87\x77\x1e\xef\x1d\xd2\x6a\xd2\ \x6a\x34\x98\xfb\xf7\x29\x34\x14\x87\x09\xce\x53\x9f\x9f\xa3\xd5\ \x6c\xb4\x59\xe4\x87\xcb\xa4\xab\x9d\xfa\xda\xcd\x5f\x57\xf4\x3b\ \xc0\xd8\xfb\xa4\xaa\x53\x88\x7c\xf7\x96\xbb\x9f\x78\xf8\xec\x62\ \xe0\xdb\x26\xe5\x8f\x3d\xf6\x05\xdb\x78\xa9\x31\x6a\x22\x46\x82\ \x37\x83\x2a\x3a\x28\x22\xc3\x68\xb8\x4c\x45\x06\x45\x59\x23\x50\ \xd5\xc2\x97\xd7\x3a\xc9\x76\xfb\x59\x6b\xfb\xf8\x7f\xb5\xfb\x6f\ \xb4\xf5\x71\x4e\xc0\xa1\x2c\x04\x61\x5a\x54\xfe\xa9\x46\x4f\x18\ \x95\x29\x44\x67\x44\x74\x46\xf0\x53\x47\xdc\x27\x5e\x9f\x98\x98\ \x08\xe7\xe2\xfa\x0f\xa3\x92\x6c\xa5\x7c\x7e\x20\x54\x00\x00\x00\ \x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x05\xdd\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01\ \x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x03\x12\ \x0b\x21\x05\xe4\x38\x9d\xbd\x00\x00\x05\x5d\x49\x44\x41\x54\x48\ \xc7\xb5\x56\x5b\x6c\x54\x55\x14\x5d\xe7\x71\x5f\x33\xd3\xce\x14\ \x06\x2a\x7d\xd1\x4e\x29\x8f\xb6\xb4\x3c\x44\xc2\x23\x41\x23\x24\ \x1a\x42\x44\x79\x05\xd0\xf8\x48\xf8\x50\x09\x7e\x80\xa2\xfc\x38\ \x5f\x06\xa3\x46\xa0\x04\x4d\x30\xa8\x44\x24\x16\x10\x89\x06\x23\ \xc1\xd8\x88\x4a\x54\x0c\x41\x0a\x05\xb1\x15\x68\x29\x4c\x9f\x43\ \xe7\x7d\xef\x3d\xe7\xf8\xd1\x69\x69\x29\x25\xfe\x78\x92\x95\xfb\ \x71\xf7\xd9\x2b\x7b\xed\xbd\xce\x39\xc0\xff\xbc\xc8\x7d\xff\x86\ \xc3\xb4\xfc\xb4\x11\x72\x09\x1f\x47\xb9\x14\x44\x8a\x68\x49\xd2\ \x6e\x69\x68\x08\xbb\xf7\xdb\x36\x79\xd9\xbb\xc1\xbf\xbe\xde\xd2\ \x05\x00\xfc\x5e\x01\x95\x2b\x76\x3c\xcd\x0d\x63\x2d\x6f\xa6\x53\ \xac\x32\x5f\xbe\x6e\x70\x9f\x46\x19\x00\x11\x13\xae\xd3\xbd\xa0\ \x7c\x5f\xdb\xed\x58\xfc\x42\x3a\x13\xdf\xf5\xf7\xb1\x6d\x17\x87\ \xee\x2d\x5d\x1e\x0e\x08\x21\xda\x01\xe8\x23\x2a\xa8\x7a\x38\xec\ \x63\x13\x82\x87\x82\xc1\x71\x8b\x1c\x09\x4b\x11\x02\x4a\x29\x18\ \x63\x60\x8c\x82\x51\x0a\xce\x39\x72\x3c\x1a\xfc\x1e\x0d\x6e\x26\ \xd9\xdb\xda\xde\xd9\xd4\x1e\xe9\xdd\xd9\x58\xff\x4a\x7d\x68\xf1\ \x76\x7f\x4d\x6d\xf1\x0f\x95\xe5\xe3\x4b\xde\x7a\x69\x49\xf0\xae\ \x0a\x14\x61\x13\x76\x1f\x2d\x2d\x2b\x59\x1c\x4b\xda\x20\x50\x30\ \x34\x02\x4d\xd3\x60\x68\x1c\x4a\x11\xb8\x0a\x20\x04\x48\xdb\x12\ \x86\xae\xe0\xf7\xfb\xf3\x1e\x9d\x54\x30\x5f\xd9\x99\x19\x3f\x17\ \xee\xdf\x6c\xdb\xca\x7c\xe6\xa9\x79\x35\xbf\x9f\x6d\x8e\x0c\x64\ \x1d\x24\xa8\x5a\x55\xf7\x6c\x51\x51\xc1\xc2\x64\xda\x51\xb7\x7b\ \xba\xdb\xa5\x42\x37\x94\x8a\xb8\x42\x46\x94\x90\x69\xaf\xc7\x2c\ \xca\xf3\x5b\x65\xc1\xf1\xc1\x90\x65\x99\x1a\x67\x14\xa6\xc1\xe1\ \x4a\x85\x40\xc0\xe7\x59\xbb\x7c\xc1\x43\x94\x00\xb1\xb4\x80\x54\ \xca\x19\x41\x60\x99\xfa\x3a\xa5\x08\x3a\x6e\xdc\x3a\x57\x5c\x3e\ \xf1\x3b\x8f\xae\xb9\x91\x68\xac\xe5\xc7\x1d\x2b\xf7\x0d\x16\xb9\ \xaa\x9e\x4d\x6d\x6b\x7a\x61\x62\xe1\xd8\x0d\x33\xab\x4a\xab\xfc\ \x3e\xc3\x63\x1a\x0c\x94\x12\x24\xd2\x2e\x18\xa5\x70\x84\x82\x1c\ \x22\xfd\x20\x01\xa5\x34\x74\xb3\x3d\xd2\x5c\x53\x5b\x75\x88\x6b\ \x2a\xa9\x04\xc9\xc0\xee\x6b\x1b\xd6\xfd\x43\xab\xc5\x25\x60\xef\ \x25\x60\x6f\xc7\xba\xdd\x2f\xce\x99\x5e\xf2\xda\xc2\x39\x53\x4b\ \x53\xae\x04\x21\x04\x20\x40\xd2\x16\xa0\x8c\xcb\xc1\xbc\x03\x9d\ \xef\x89\xf6\x8d\xcf\xcf\xcf\xff\xd8\x9f\x6b\x35\xe5\x7a\xbc\x97\ \xa4\x94\xd7\x5c\xa8\x8e\xd1\x46\xf1\xec\xe7\x1b\x3f\x68\x38\xd3\ \xbc\xe1\xdc\x85\x7f\xfa\x38\xa3\xa0\x94\x20\x65\x4b\xa4\x6c\x01\ \x4a\xa8\x1c\x56\x81\x37\x0a\x37\xe9\x71\x8c\xea\xca\xd2\x06\x06\ \x3d\x49\xb9\x9b\xb2\xa9\xe9\xb0\x9b\xb0\x47\x23\xa8\x7e\xe2\xbd\ \xe2\xf9\x0f\x86\xf6\xcc\x9a\x51\x91\x9b\xb6\x5d\x08\xa9\x90\xb2\ \x05\x52\xb6\x04\xc8\x5d\x12\x5d\x68\x08\xc7\x43\xcb\xde\x79\x3f\ \xc7\x6f\x9e\x7f\x73\x55\xa5\x43\x08\x51\xf7\x33\x52\x68\xf1\x76\ \xff\x9c\x59\x65\xc7\x57\x3e\x36\xbb\x22\x91\x11\xc8\xb5\x38\x52\ \xb6\x82\xc6\x19\xbc\xa6\x86\x48\x8a\x91\x11\x4e\xae\x5e\xb3\xeb\ \x43\xc3\xd0\x18\x25\x14\x1a\x07\x18\xa1\xfd\x02\x4a\x20\x63\xdb\ \x81\xde\x58\xfc\xe0\x95\xa3\x5b\xbf\x04\x80\xca\x27\xdf\x5e\x9f\ \x93\x9b\xbb\x54\xd7\x78\x02\x14\x90\x12\x10\x4a\x42\xb8\x80\x54\ \x12\x99\xb4\x83\xc6\xfa\x4d\x1b\x86\x35\x79\xee\x8c\xd0\x92\xd0\ \xa4\x89\x21\x9f\xc9\xe1\x33\x39\xbc\x3a\x85\x2b\x15\x00\x81\xcf\ \xbe\x3a\x7d\xbe\xab\x3d\xf6\xfd\x40\xec\xc5\xa3\x5b\x0f\x00\x38\ \x30\xf2\x64\x09\x53\x54\xae\xe2\xfb\x3f\xf9\x26\x3c\x62\x8a\x5c\ \x21\x91\x76\x14\x0c\x4d\x41\x2a\x85\x84\x2d\x40\x08\x70\xfc\xe4\ \x1f\x57\xda\xae\x76\x2f\x6d\x39\xf9\xfa\xed\x7b\xc9\xb5\x60\xe3\ \xc1\x82\x45\x73\x6b\x15\x55\x8e\x99\x71\xb9\x95\xec\x4c\x78\x25\ \xe4\x1b\x00\xb6\x0d\x23\x20\xa0\xca\xd2\x29\x2c\x9d\x81\x51\x02\ \x29\x25\x4e\x9d\x6e\x8c\x36\x36\xdd\x7c\xee\xd2\xb1\xcd\xad\xa3\ \xf5\x43\x0a\x55\xd1\xd9\x75\x5b\x33\x38\x34\xa9\x60\xfd\xd9\xd4\ \x3c\x93\x6b\x7a\x74\xd8\x98\x66\x43\xa9\xa5\x33\x58\x3a\x85\x94\ \x0a\x42\x2a\xcc\x9d\x3d\x25\x30\xbd\xb2\xe8\xd3\xda\xb5\x75\xcf\ \x8f\x46\xc0\x34\x3e\x46\x4a\x51\x1e\x4f\x3b\x53\xba\xfb\x12\xd5\ \xbd\x3d\xbd\x6b\xf2\x02\x39\x2d\x23\x24\x22\x4a\x50\x8f\xce\x00\ \x05\x48\xd5\x2f\x53\xca\x01\x6a\x6a\x26\x4f\xca\x1b\x13\xa8\xf3\ \x79\x3e\xda\xd0\xd5\xd3\xb7\xf7\x72\x6d\xdf\xa7\x08\x87\xe5\xe0\ \xf9\x45\x8f\x3c\x10\x8d\x25\x0a\xe3\x89\xa4\x79\xfd\x6a\xdb\xe3\ \x25\x25\x45\xa1\xce\xc8\xad\x23\x23\x9d\x4c\x00\x9d\x13\x28\xe9\ \x82\x33\x0a\xdb\x51\x48\x65\x5c\xc4\x92\x0e\x88\xee\xf5\x96\x55\ \x94\xcf\xcb\x8b\xf6\xcd\x1e\xdb\xd6\xfd\x6a\x6c\x4d\x5d\xab\xe3\ \xba\xed\x4c\xdb\x93\xdb\xdb\xc9\xfc\x3d\x91\xce\x31\x20\xc8\x2f\ \x2e\x2e\x2c\x90\x6e\x26\x9a\x4e\x3b\xbb\x47\x10\x68\x8c\x6a\x4a\ \xba\xd8\x7f\xf8\xa7\x46\x9d\x93\xc4\xec\xda\x8a\x1a\xcb\x97\x63\ \xa5\x32\xee\x20\x11\x98\xae\x07\xc6\xe5\x4f\xcb\x1d\x2b\xa7\x49\ \x21\x60\x3b\x2e\x5c\x21\x21\xa5\x82\xa1\x33\xe8\x8c\x8a\xd6\xb6\ \x8e\x13\x17\x0f\x6f\x3a\x35\x28\x61\xd6\x0b\x9e\x99\x8f\xac\xd9\ \xf2\xcb\x99\xcb\x57\x7e\x3d\x5a\xb7\xbe\xa9\x61\xef\xe1\x1b\x89\ \x9c\x9b\x9d\xbd\xa9\x7c\x25\xe1\x61\x4c\x37\x5c\x29\x21\xc4\x1d\ \xb8\xb2\x3f\xb1\x94\xaa\xdf\x4c\xae\x1d\x6f\x6f\xbd\x7e\xa2\xe5\ \xdb\x9d\x2f\x3b\x4e\x14\xfd\x0e\x82\x24\x00\x34\x00\x66\x68\xe9\ \xf6\x9e\x8e\xf3\x5f\xd4\xc6\xaf\x9f\xb5\x01\x98\x59\x18\x81\xd0\ \xfc\xc9\xc1\x8a\x45\xab\x3d\x81\x60\xa9\x69\x78\xc6\xe8\xa6\xc7\ \xab\xb8\xee\x91\x42\x91\x8c\x9d\x8a\x67\x92\x89\x2e\xe9\xa4\xae\ \x25\x3a\xaf\x1d\xb8\x7e\x6a\xcf\x09\x00\xe9\x21\xc8\x0c\x38\xd9\ \xc8\x9f\xbe\xa2\x30\x72\xfe\x48\x0c\x80\x91\xbd\xee\x86\x82\x03\ \xa0\x9c\x9b\x9a\x59\x50\x3d\x8e\x5b\x63\x73\x18\xd5\x84\x13\xef\ \x88\xf4\xb5\xfe\xd6\x0a\xc0\xce\x22\x33\x04\x69\x00\xea\xee\x4b\ \x9f\x67\x2b\xd2\xb3\x5f\x9e\x95\x71\x40\xca\x81\x78\x99\x85\x00\ \xe0\x66\xe1\x64\x13\xbb\x00\xd4\x7f\x7b\x55\xdc\x59\x74\x48\xfc\ \xc0\x66\x35\x34\xd1\x68\xeb\x5f\xda\xd8\x71\x00\xf0\x14\x8e\xa7\ \x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\xb2\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ \x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\x2f\x49\x44\ \x41\x54\x38\x8d\x55\x93\x4d\x4f\x5c\x65\x00\x85\x9f\xf7\xde\x3b\ \xc3\x0c\x30\xcc\x0c\x0c\x84\x8f\xb6\xa1\xa4\x14\x17\x46\xa5\x96\ \xe0\xca\x44\x8d\xac\x0c\x0b\x93\xa6\x46\xd3\x84\x95\x4b\xe3\x1f\ \xe8\x82\x7f\x30\x1d\x93\x71\x23\x76\xdb\x9d\x2e\x34\x96\x26\xb5\ \x4d\xa5\x69\xc7\x82\xb4\x26\x16\xa9\x14\x2b\xd3\xa1\x4e\xe8\x50\ \x98\xcb\x9d\xb9\xf7\xbe\x5f\x2e\xa4\x09\x3d\xc9\xd9\x9d\xe7\xec\ \x1e\x61\xad\xe5\x68\xe6\xe7\xe7\xbd\x4c\x26\x73\x36\x8e\xe3\x33\ \x8e\xd6\xd3\x52\x4a\xda\x4a\xad\xc4\x71\xbc\x1a\x86\xe1\xaf\xa5\ \x52\x29\x3a\xba\x17\x2f\x0f\x84\x10\xa2\x5c\x2e\x9f\xee\x52\xea\ \xca\xeb\xbd\x03\x6f\xa5\x7b\xfb\x49\xe7\x72\x9c\x78\x5a\xa5\x59\ \xad\xb2\xb5\xfd\xd4\xfe\x10\x1e\xfc\x51\xb3\xf6\x42\xb9\x5c\x7e\ \x60\x0f\x41\x61\xad\x45\x08\x21\x8a\xc5\xe2\x85\x37\x7b\xb2\x0b\ \x85\xae\x7e\x2f\xab\x1d\x12\x5d\x69\x82\x38\x66\x40\x2b\x3a\x83\ \x16\x3b\x8d\x17\xf4\xfd\xfd\x88\xef\x83\xe7\x72\x31\xe1\x7e\xb9\ \xb0\xb0\xf0\xb5\xb5\xd6\x7a\x00\xe5\x72\xf9\xf4\x84\x97\xf8\x66\ \xc0\xcd\x79\x72\x67\x8f\x1d\xa5\x29\xf4\xf7\xb3\xf1\x68\x1d\x5c\ \x87\x51\x2f\x41\x3d\x08\xe8\x37\x1e\xe7\x64\x2a\xa1\xda\xbb\x97\ \x0e\xce\x9f\xbf\x07\xdc\x73\x85\x10\xde\x60\x3a\xbd\x38\x92\x1f\ \x1e\xf1\x42\x89\xe7\x7a\x78\xae\x8b\x31\x86\x27\x9b\x9b\xe4\x9b\ \x3e\x83\xb1\x64\xb0\xe9\x23\xda\x6d\xae\x5a\x4b\x66\x7c\xdc\x69\ \x04\x7b\xef\x7d\x75\xf9\xf2\x82\x93\xcd\x66\xa7\x5e\x4b\x75\x4e\ \x9a\xbd\x80\x6a\xad\x86\x54\x0a\x83\x45\x2a\x49\xb3\xd9\x24\xda\ \xdb\x03\xdf\x87\x56\xc0\x76\x4f\x0f\xcd\x42\x1f\xb6\x33\xc7\x3b\ \xf9\xbe\x53\xae\xeb\xce\x78\x4a\xa9\x29\xd9\x93\xc3\xd9\x8f\xc9\ \xe4\x73\x28\x2c\x42\x1b\x30\x96\xa0\xdd\x22\x8e\x22\xe2\x8e\x24\ \x8f\x47\x47\xd9\xe9\xee\xa2\x60\x34\x7e\xbb\x4d\x34\x74\x0c\xbd\ \xb9\x71\xc6\x71\xa5\x9c\x56\xae\x47\x68\x14\x22\xe9\x11\x1b\x7d\ \x58\xc5\xf3\x17\xbb\x94\xd7\x1e\xf2\x79\xe5\x2e\xdf\xde\xbc\x41\ \xac\x35\xfb\xc1\x01\x3f\x5e\xbb\x4a\x20\x15\x1d\x4a\x4d\x79\x5a\ \x6b\x4f\x1a\xcd\xd6\x76\x95\x6c\xaa\x8b\x42\x36\x07\x56\x83\x35\ \xbc\x3f\x33\x83\xb5\x96\x58\xc6\xc4\x4a\x12\x63\x70\x52\x49\xde\ \xfd\xf0\x03\xe2\x8e\x24\xda\x18\xcf\x09\xb4\xae\x18\x0c\x23\x63\ \x27\xc9\x14\x7a\x89\x85\xfd\xbf\x58\xb4\x2b\x50\x2e\xd0\x91\xc0\ \x4d\xa7\x88\xac\xe6\xd9\x6e\x83\x46\xd0\xc4\xca\x08\x5f\xeb\x65\ \x0f\x58\x76\x6b\x55\xc2\x81\x61\x9e\x6c\xfe\x43\x6f\x77\x0f\x99\ \x54\x1a\x84\xc5\x3a\x16\xad\x0d\x06\x8b\xc2\x20\x85\x61\xa3\xb6\ \x45\x68\x35\xd3\xbb\x49\xa4\x94\xbf\x79\x8d\x46\xa3\x72\x3f\x8a\ \xd6\x4f\x0e\x0d\x4f\x44\x0e\xa8\xa4\x4b\xec\x39\x58\xa5\x31\xc6\ \x62\x1c\xd0\xc6\xe0\x47\x2d\xfc\x56\xc0\xc4\xe4\x1b\xc4\x8e\xe5\ \xf6\xcf\xd7\x9f\x85\x61\xb8\xe8\x94\x4a\xa5\x68\xab\xdd\xfe\x44\ \xfe\xb9\xa6\x87\xc7\xc7\xf0\xb2\xdd\xdc\xf9\x7d\x95\xb5\xad\x4d\ \x22\x4f\xf0\x57\xad\x4a\x5b\x58\x1e\xff\x5b\xe3\xa7\x5b\x37\x08\ \x5d\xd0\x77\xef\x98\x87\xbe\xff\x69\xa5\x52\xf1\x1d\x80\x62\xb1\ \xf8\xe0\x66\xbd\xfe\x85\xba\xbf\xaa\x95\xb0\xf4\x9e\x18\x26\x33\ \x34\x40\x20\x0c\xd7\x2b\xb7\xa9\xb7\x7c\x8e\x4d\x9c\xe2\xa3\x73\ \x1f\x63\x57\x96\xcd\x77\xf5\xfa\xc5\xa5\xa5\xa5\x5b\xd6\x5a\xfb\ \x8a\x4c\x73\x73\x73\x67\x47\x12\x89\x2b\x93\xf9\xfc\x58\x70\xfc\ \x38\xed\x44\x02\xa3\x14\x6e\xab\x45\x7a\x7d\x9d\x5f\x6a\xb5\xed\ \xb5\x83\x83\xcf\x0e\x61\xf3\x8a\x8d\x2f\x33\x3b\x3b\xdb\x99\x4e\ \xa7\x67\xb4\xd6\x6f\x27\x94\x9a\x92\x51\xe4\xf8\xc6\x2c\x2b\xa5\ \x56\xf7\xf7\xf7\xaf\xad\xac\xac\x34\xed\x11\xe8\x3f\xd1\x06\xe4\ \x0c\x33\xbb\x13\x33\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x06\x71\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\ \x00\x48\x00\x46\xc9\x6b\x3e\x00\x00\x00\x09\x76\x70\x41\x67\x00\ \x00\x00\x30\x00\x00\x00\x30\x00\xce\xee\x8c\x57\x00\x00\x05\x9a\ \x49\x44\x41\x54\x68\xde\xed\x99\x4d\x88\x1c\x55\x10\xc7\x7f\xf5\ \xba\x67\xf6\x23\x89\x42\x08\x41\x4c\x62\xd4\x80\x11\x89\x82\x39\ \x08\x1e\xfc\x42\x85\x80\x10\x30\x20\x28\x7e\xde\x02\x8a\x5e\xe3\ \x35\x07\x2f\xa2\x27\x03\xa2\x21\x0a\x9e\x22\x68\xc4\x93\x7a\x50\ \x23\xe6\x24\xf8\x1d\xc1\x10\x94\x1c\x34\xdf\x1a\x92\xcd\xee\x64\ \x66\xfb\x55\x79\xe8\x8f\xe9\xee\xe9\x99\xed\xde\xec\x66\x57\xd8\ \x82\xa1\x7b\xde\xab\x57\xef\xff\x7f\x55\xaf\x5e\xbd\x19\x58\x91\ \x15\x59\x91\xff\xb5\x48\x55\xe3\xf8\xe6\xed\xdb\x8f\x7e\xf7\xed\ \x91\xc7\x3e\x9d\x9c\x38\xf6\x8f\x82\xf7\xa0\x1e\x54\x93\xe7\x90\ \x77\xef\xc1\x16\x41\xdf\x7b\x38\xf9\xd5\x21\x8e\xbd\xff\x44\x3c\ \xa0\x2f\x61\x25\x81\xdd\x5f\x1e\xb9\x6e\xcd\xe4\xc4\xce\xdb\xe0\ \xef\x4b\x0e\xef\xc1\x7b\x41\x55\x89\xbc\xc3\xfb\x00\xf5\x86\x57\ \xc5\x7b\x45\xbd\x11\xa9\xa2\x5e\xf1\x6a\xf8\x48\xf1\xaa\x25\x1d\ \x25\x52\xc5\x7b\x43\x93\x36\xef\x15\x55\x23\xf2\xb9\xb1\x3e\x37\ \x36\xd1\xc1\x47\xd0\xb9\x6b\x17\xeb\xee\x7e\x81\xf3\x3f\xbc\x37\ \x27\x81\x7b\x36\x46\x13\xf7\xed\xfd\x99\x9e\x39\x5c\x18\xe0\x02\ \x47\xd0\x0a\x08\xc3\x80\xa0\xe5\x08\x5b\x8e\x30\x08\x08\x02\x41\ \x24\x76\xa3\x13\x25\x08\x21\x40\x91\x36\x60\x86\x18\x08\x06\x66\ \x80\x41\xf2\xc0\x1c\x98\xa0\x16\x20\x06\xa6\x06\x6a\xa8\x81\x99\ \x61\x0a\xe6\x41\x9c\x20\x22\x18\xc2\xf4\xb6\x9d\xfc\xf4\xee\x17\ \xeb\x39\x5f\xc4\xea\xaa\x08\xfc\x71\xf4\x2f\xae\x44\x96\x18\x00\ \x71\x0e\x27\x82\x0b\x04\xe7\x92\x4f\x28\x04\x2d\x87\x04\xe0\x82\ \x78\x32\x5c\x7f\xd2\x78\x5c\xc2\x4e\x04\x44\xfa\x3a\xe9\x77\x62\ \x3d\x44\xc0\x25\xfd\x80\x91\xbc\x8b\xa0\x16\xbf\xaf\x6e\x19\x93\ \xeb\x37\x0c\x60\xad\x24\xd0\x9b\x35\xc4\xb9\xcc\x70\x06\x22\xdd\ \x35\x09\x00\x33\xcb\xc0\x40\x1f\x18\x32\x48\x24\x05\x94\x91\x91\ \x98\xcc\x81\x67\x6e\xe2\xc1\xad\xab\x79\xe0\xb6\x35\xec\x7b\x72\ \x13\xde\xe0\xc3\xdd\xb7\xd0\x53\x98\xe9\x19\x6f\x3d\xbd\x01\x4d\ \x26\x4e\x09\xce\x19\x42\x48\xec\x69\x12\x8f\x23\x60\x62\x98\x80\ \x25\x36\x54\x15\x11\xc1\x61\x19\x68\x04\x44\x53\xb2\x46\x8e\x71\ \x1c\x46\x02\x68\xa2\x8b\x20\xc0\xe5\xae\xf2\xcd\xf1\xcb\x98\x09\ \x0f\xdf\xbe\x86\x30\x70\x3c\xb5\xff\x04\xef\x3c\xbb\x89\x4e\x4f\ \x79\xf9\xe0\x29\x02\xe7\xfa\x76\xea\x78\x80\x3c\xf8\x02\x29\xc3\ \x00\x35\xc3\x0c\x54\xe3\x67\xda\x8e\xf5\xb1\x9a\xc5\x24\x2c\x67\ \x20\x5d\x0c\x44\xd0\x9c\x7d\x13\x29\xe8\xb5\x43\xc7\xc5\x8e\xb2\ \x71\x6d\x0b\x27\xe9\xca\x54\xe2\xaf\xf6\x80\x25\x46\x53\x4f\x18\ \x29\xa8\x78\xc3\xa9\x33\x44\x15\x71\x49\x8c\x2a\x38\xb1\xd2\x04\ \x96\x79\x2b\x45\xf7\xda\x8e\xf5\xdc\xbb\x79\x32\xd3\x78\x68\xdf\ \x9f\x6c\x59\xd7\xe6\xf0\x2b\x5b\x00\xb8\xd8\xf1\xa8\x09\x7b\x77\ \xde\xc0\x9e\x43\x67\xe8\x45\x70\xe0\xb9\x1b\x79\xe9\xe0\x29\x84\ \xd4\x0b\x75\x09\x98\xa2\x16\x0f\x53\x88\x33\x8a\x19\x62\x8a\x68\ \x1c\xef\xa2\x82\x89\x90\x7a\xd8\x99\x60\xc4\xd9\x27\xb6\x23\x05\ \x9b\xaf\x7e\x76\x0e\x7c\xbc\x24\x66\x10\xe2\xd8\xf1\xf6\x09\x34\ \x75\x87\x81\x73\xc2\x9e\x43\x67\x10\x81\xf1\xb6\xe3\xc5\x83\xa7\ \x71\x12\xf4\xc3\xb4\x16\x81\x24\xe3\x5d\x1f\xb4\x09\x9d\xc3\xe1\ \x62\x02\x5e\x70\x26\xf1\x53\x40\x5c\x2e\xfc\x25\x0e\x92\x6c\xaf\ \x8b\x20\xd6\x9f\x51\x72\x1b\x4b\x92\x39\x00\x02\x0b\xb2\x0c\x9b\ \x66\xdc\x56\xb2\x60\x58\x6c\x7c\xca\x2b\x63\xed\x74\x64\x2d\x0f\ \x18\xa7\xff\x6d\xf3\xeb\xeb\x6b\xf1\x96\xcb\x30\x29\x30\x19\x6c\ \x6b\xa2\xd3\xa4\xcf\x39\xc7\x07\x87\xcf\xb1\xff\xc7\x2e\xb5\x37\ \xb1\x69\xbc\x51\x97\x83\x98\x19\xab\xc7\x87\x87\x50\x25\x01\x45\ \xe7\xb2\x7b\x4d\x45\x0a\x59\xaa\x06\x01\xb3\xe5\xe3\x81\x3c\x89\ \xa8\x62\x5d\xab\x3d\x90\x4f\xd2\xcb\x40\x44\xe0\xb7\xd3\x11\xdd\ \xa8\x26\x01\x23\x2e\xae\x96\x8b\x74\x67\x3d\x17\xae\x58\x83\x3d\ \xe0\x75\xd9\x78\x60\x6a\x6a\x2a\x7e\x49\x73\x76\x2d\x02\x4a\x3f\ \x51\x2f\xa1\x4c\x4f\x4f\x63\x29\x0e\x69\x50\x0b\x29\xba\xe4\x04\ \x3a\x9d\x4e\x56\x30\xe6\x2b\xde\xb2\x54\x1f\x64\x9e\x25\x0d\xa1\ \x4e\xa7\x83\xf7\x3e\x3b\xcc\xb2\x32\xbc\xee\x49\xec\xd5\x58\xaa\ \xa3\x60\x66\x66\x26\x5b\xf9\x18\xbb\x24\xd5\xb7\x54\xc6\x4b\xb5\ \x07\x94\xf2\xdd\xf9\x9a\x81\xcf\x2e\x49\xe4\x4a\x8b\xfc\x85\xaa\ \x0e\x01\xbd\x0a\x0f\xc8\x90\x89\x46\x89\xf7\x9e\x5e\xaf\x57\x04\ \x4d\xa9\x56\x92\x06\xe5\xb4\x7a\x9b\xd7\x26\x9e\xab\xc8\xab\x92\ \x6e\xb7\xdb\xcf\x34\x0c\x29\xec\x68\xb8\x07\x34\xad\xa7\xe7\x01\ \xba\xc9\xaa\x47\x51\x34\x60\x67\x00\x7c\xd6\xde\xe4\x3e\x80\x5c\ \xf5\x26\xae\x22\x26\xc9\x0f\x01\xdd\x6e\x77\xa0\x7d\xd4\xb3\x71\ \x16\x2a\xdc\x54\x46\x78\xa2\xe9\xea\xf7\x7a\xbd\x81\x4d\x3a\x6a\ \xd5\x07\x42\x48\xea\x12\x48\x86\x2d\x84\xa8\x2a\x51\x14\x65\xc0\ \x87\x81\x9f\xcb\x1b\x8d\xb2\x50\xec\x81\xd1\xc0\xe6\x5a\xf5\x28\ \x8a\x0a\x87\x51\x93\x90\x29\x13\xcd\xb2\x50\x6d\x0f\x8c\x38\xba\ \x47\x89\xf7\x1e\x55\xcd\x99\xa9\x77\x9d\x9c\x93\x48\xd3\x73\x60\ \xd8\x86\x29\x03\x53\xd5\x0c\xf0\xb0\x10\x99\xcf\xfd\xb8\xfa\x1c\ \x80\x06\x9b\xb8\x98\xb2\xd2\x3c\x5d\x5e\xdd\xf2\xa4\x8b\x71\xa9\ \x2f\xee\x81\x46\x59\xc8\x11\x45\x11\x91\x2f\x02\x5c\x48\x60\x75\ \xf4\x0b\x1e\xa8\x7b\xa1\xa1\x3c\x78\xb1\x56\xb5\x06\xf8\x1c\x28\ \xb0\xc1\x3b\xe5\xc8\x73\xa0\xca\xd8\x42\xaf\xf4\x30\x9d\x01\x3d\ \x71\xd0\xb9\x30\x0e\x4c\x00\x3d\xc0\x0f\xf7\x40\x38\x06\x54\xc7\ \xf8\xb0\xc9\xe7\x1b\x26\x75\xc0\x4b\x9a\x85\x5a\x13\xdb\x80\xfb\ \x81\x9b\x81\x49\x40\xca\x1e\x48\x08\x99\x31\xa6\x72\xf2\x02\x4c\ \x8e\x25\x93\x14\x08\xf5\x23\x2d\x7e\x4f\x4f\x57\x4b\x3c\xd7\xf7\ \x3a\x66\x89\xd5\xa4\xaf\xe0\x4e\x4b\x95\xe2\x05\x2b\xfc\x24\xdf\ \xef\x7b\xf3\xeb\x2e\xc8\x2a\x08\xc2\x3b\x80\x47\x92\xce\x4b\x40\ \xaf\x4c\x40\x80\x90\xdf\x3f\xfa\x84\xad\x8f\xef\xba\xf3\x8d\xb3\ \x7d\x94\xf9\x7a\x24\x2b\x35\xd2\x8f\x2b\xf5\x4b\xf2\xc7\x48\xae\ \x9f\x0a\xdd\x54\xdf\x95\xc6\x96\x75\x74\x15\x04\x2d\xf8\xe5\xe3\ \xe3\xc0\x6c\x1a\x3e\x29\xe0\xb2\x04\x20\x21\xb7\x3e\xfa\x3c\xed\ \x35\x9b\x10\x69\x81\xb4\x10\x69\x21\x2e\x44\x08\x12\x44\xa5\xd4\ \x56\xaa\x16\xa5\x14\xa1\xf9\x7f\x57\xc4\x95\x15\x0b\xfe\x07\x14\ \x24\xf9\xa7\x4c\x67\x51\xed\x72\xec\xf3\xef\x99\x3e\x7b\x0a\x38\ \x0f\x9c\x03\xa6\x80\xde\xa8\xe3\xb6\x0c\x47\x2a\xda\x17\x5b\x2c\ \xf7\xc9\xb7\xad\xc8\x8a\x2c\x94\xfc\x07\x23\xb1\x9b\x4b\xfd\xd6\ \xd1\x00\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\x74\x65\x3a\x63\ \x72\x65\x61\x74\x65\x00\x32\x30\x31\x30\x2d\x30\x32\x2d\x31\x30\ \x54\x31\x31\x3a\x31\x34\x3a\x35\x36\x2d\x30\x36\x3a\x30\x30\xd9\ \x95\x52\xab\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\x74\x65\x3a\ \x6d\x6f\x64\x69\x66\x79\x00\x32\x30\x30\x38\x2d\x30\x34\x2d\x30\ \x32\x54\x31\x35\x3a\x35\x34\x3a\x34\x38\x2d\x30\x35\x3a\x30\x30\ \xe9\x62\x0e\xc9\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \ \x00\x00\x06\x26\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\ \x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\ \x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\x01\ \x42\x28\x9b\x78\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x03\x12\ \x0b\x1e\x32\x04\x5b\x12\x8e\x00\x00\x05\xa6\x49\x44\x41\x54\x48\ \xc7\xa5\x54\x7b\x6c\x53\x75\x18\x3d\xf7\xdd\xdb\x76\x65\x6c\xeb\ \x5e\x65\x8e\x41\xd9\x9b\xc7\x1c\x81\x81\xe2\xd8\x6a\x27\x20\x31\ \x08\x6e\x08\x11\xc5\x77\xa2\x41\x45\x8d\x28\x60\x82\xcf\xa8\xa0\ \x18\x7c\x90\x60\x4c\xc0\x11\x98\x6e\x80\x0f\xa2\x0c\xf6\x10\x44\ \x24\xe0\xc0\x09\x54\xb7\x95\xb5\x2b\xdd\xa3\x5d\x29\xac\xbb\xb4\ \xb7\xf7\xd1\xeb\x3f\xfd\x43\x07\x4c\x17\xbf\xe4\xfb\xe7\xfc\x92\ \xef\x7c\xbf\x73\xbe\x1c\x0a\xa3\xd4\x9c\x39\x73\x78\xaf\xd7\xab\ \x02\x80\x7d\xd1\xa2\x15\x13\x27\x4e\x2e\xa0\x48\x5c\x0c\x06\x83\ \x2a\xfe\x6f\x2d\xa9\xa9\x79\x69\x6f\xfd\x57\x81\x95\xab\x1f\xdc\ \x04\x00\xbb\x6a\x6b\x2f\xf9\x7c\x03\xb1\xaa\xc5\x8b\x77\x8c\x65\ \x0e\x79\xb3\x87\xcc\xcc\x4c\xdb\xf4\xe2\xe2\xe4\x47\x57\xaf\x5e\ \x7f\xea\xd7\x53\x62\xc9\x8c\x69\x96\x8e\xae\x0e\x22\x1c\x16\xbb\ \x01\x90\xb7\xce\xbe\xbd\xf4\xbf\x10\x50\x23\x81\xea\xea\x6a\xca\ \xe1\x70\x68\x49\xa9\xe9\x99\xf3\xe7\xcd\xb5\x03\x31\xca\xe7\xef\ \xa3\x87\x85\x61\xc2\x64\x4a\x80\xbd\x72\x7e\xc5\xd4\xe9\x25\x4f\ \xac\xa8\xb9\xef\x29\xef\xe0\xe0\x49\xb7\xd3\xe9\x1a\x8d\x80\x1e\ \x09\x24\xa5\x65\xb4\xd4\xd5\xd7\x5b\xa7\x4c\xce\x49\x1d\x0c\x0c\ \x20\x1c\x89\xc0\x60\xd0\x43\xc7\xe9\x10\x12\x42\x30\xf0\x7a\xaa\ \x64\x46\x71\x26\x4d\xb1\x12\x43\xd2\x36\x00\xcd\x63\x22\xc8\xb5\ \xe6\xe4\xe7\x64\x4f\x48\xe5\x38\x0e\x62\x34\x0a\x83\x21\x01\x87\ \x1b\x9b\x7e\x22\x18\x9a\xbf\xbf\x7a\xe9\x4c\x51\x0c\xc3\x94\x90\ \x80\x17\xd6\x6d\xd8\xde\xd2\xd8\xb8\x7e\xcc\x1e\xec\xfb\xfa\x1b\ \xdb\x5b\xef\xbd\x7f\x0e\x84\x06\x8e\x63\x11\x09\x8b\x62\x6b\x73\ \xcb\x82\x96\x43\x87\xcb\xa3\xa2\x24\xb1\x1c\x0b\xde\xa0\x03\xcf\ \xeb\x2b\x67\xce\x9d\x5b\x3c\x66\x0f\x2e\xb9\xdd\x7e\x4b\x76\x76\ \x9e\xdd\x56\x51\x26\xc9\x51\x64\xa4\xa7\xd3\x2a\x41\x2d\xcc\x2b\ \xc8\x7f\x60\xde\xed\x73\xb3\x15\x55\x46\x4c\xd5\x30\xb5\xa0\x30\ \xcd\x60\x34\x2e\x6b\x6d\x6e\xde\x32\x1a\x01\x31\x12\xb0\x2f\x58\ \xf4\xf6\x73\xcf\x3e\xbd\xd6\x94\x60\xd0\xe9\xf4\x1c\x34\x4d\x83\ \xd9\x9c\x0e\x02\x80\x10\x0e\x81\x24\x48\x78\x3c\x7d\xb2\xe3\x8f\ \xce\x48\xdb\x99\xb3\x67\x5c\x6e\xd7\x9a\x87\x1e\x58\xd5\x7a\xee\ \xfc\xf9\x3f\x7c\xbd\xde\x8a\xfa\xfa\x7a\x75\x54\x89\x14\xc8\xcd\ \x83\x81\x80\x7a\xa4\xf9\x68\x8f\x2c\xc7\xe4\x04\x93\x09\xc2\xb5\ \x21\x08\xe1\x10\x68\x8a\x46\x30\x78\x45\x3b\xdd\xf6\x1b\x61\x9b\ \x5f\xae\x0b\xf8\x7d\xed\x96\xcc\xcc\x3d\x65\xb3\x4a\x53\xaa\xee\ \xac\xcc\x1d\x39\xfc\x86\x12\xb9\x9d\xdd\x2e\x4f\x5f\xa0\xb1\x6e\ \xf7\x17\xaf\x9c\x77\x76\x4b\x53\x26\x4d\xba\x93\x02\x15\x1b\xe8\ \xf7\x0b\x17\xbb\xdd\x0a\x01\x92\x6d\xfb\xb5\x4d\x2e\x2e\xca\xe7\ \xec\x76\x5b\x59\xc5\x1d\xf3\xd2\x34\x4d\x03\xc7\xe9\x74\x3d\x03\ \xfe\xe8\x5d\x0b\x17\xbc\x9a\x96\x95\x65\xe9\x72\x38\x7e\xbe\x21\ \x01\x00\xf4\xf7\x7a\xfa\x01\x68\x56\x6b\xee\x2a\xdb\xfc\xf2\x92\ \xe6\x1f\x8f\x75\x7f\xb0\x79\x4b\x4e\xaf\xcf\xbf\x44\x56\x55\x63\ \x76\xd6\x04\x9d\xc9\x64\x20\x02\x97\xfd\x18\x16\x42\x10\xc2\x02\ \x28\x9a\x24\xab\x6c\x95\xf6\x59\xa5\xa5\xd6\xf1\xa6\xc4\xe9\xed\ \x57\xaf\x7e\x74\xd5\xed\x56\x88\xd1\x0c\xb2\x5a\xad\x5c\xba\xe5\ \x96\x7b\xc0\x82\x66\x48\x46\xfa\xec\xd3\x8f\xeb\xdd\x9e\x1e\xc2\ \x68\xd0\x63\xc0\xd7\x0f\x8e\x65\x31\x14\x12\xc4\xec\x5b\xb2\x74\ \x92\x1c\x85\x29\x61\x1c\x06\xfa\x07\xc5\xcf\x77\xee\x7a\xa7\xa1\ \xae\xee\x75\x00\xda\x0d\xa3\x62\xda\xb4\x69\x86\x67\x5e\x7c\xfe\ \xd8\x27\xdb\xb7\xf7\x26\x26\x27\x95\x1c\x3f\xd2\xb2\x57\x56\xa2\ \x13\x0f\x35\x1e\xe9\x31\xa7\x98\xb5\xcb\xc1\x00\xc6\x8f\x1f\x8f\ \xa6\xd6\xe3\xa7\x37\xbf\xb3\x25\xf9\xbb\xef\x0f\x9f\x48\x4d\x4d\ \x87\xa2\xca\xa0\x59\x5a\x69\xa8\xab\x7b\x0d\x80\x76\xd3\x2c\xca\ \xcb\xcb\x13\xab\x2a\x6d\x53\x23\x91\xe1\xe4\xc2\x82\xdc\x95\x55\ \x0b\xef\xde\xf6\xe4\x23\x8f\x6f\x6a\x6b\x6f\xef\x0a\x85\x42\x51\ \x96\x65\xc1\xf3\x3c\x28\x86\x92\x00\x80\xd7\xb1\x3c\xaf\xd3\x81\ \xe5\x58\x18\x0d\x7a\xfd\x96\xad\x5b\x5d\xe5\x76\xfb\x8a\xeb\xce\ \xb4\xa8\xa8\x88\x9d\x9c\x9f\xbf\x37\x22\x8a\xed\xab\x56\x2e\x5f\ \x97\x66\x36\xeb\x29\x8a\x84\x1a\xd3\xe0\x72\x75\x43\x92\x63\x51\ \x9a\xa1\x89\x39\xb3\x67\xb2\xd7\xc2\x02\x52\xcd\x19\x18\x1a\x0a\ \xc9\x49\x49\x89\x4c\x58\x14\xc0\x30\x2c\xfe\x74\x74\x22\x23\x3d\ \x43\x5b\xbb\x6e\x63\xf5\x89\xd6\xa6\x7d\xff\x88\x0a\x73\x56\xd6\ \xd2\x77\xdf\x7a\xf3\xde\x0b\x17\xce\x2d\xa5\x28\x12\x3d\x1e\xb7\ \x46\x92\xb4\x6c\xb1\x64\xb0\x93\x26\xe5\x60\xef\x97\x07\xd4\xd5\ \xab\x56\xea\x65\x59\xd1\x0c\x06\x03\x31\x2c\x5c\x05\xab\xa3\x99\ \xb0\x28\x80\xa2\x28\xf4\xf7\xf9\xe4\xf7\xb6\x6e\xdb\xc8\x50\x8c\ \xd5\x7f\xc9\x7d\xf0\x3a\x89\x38\x8e\x2b\xee\xed\xeb\x13\x4d\x26\ \x13\xa2\x92\x84\x63\xc7\x7f\x69\xdd\xb1\xb3\x36\x9f\x24\x29\x25\ \x29\x39\x19\xaa\x2c\x89\x9b\x3f\xdc\xe6\x7a\xfe\xa5\x8d\xaf\x5f\ \x0e\x0e\x49\x1c\xc7\x43\xcf\xeb\xa1\x2a\x31\xf4\xb8\xbd\x38\xf4\ \x43\x93\xef\x44\x6b\xeb\x8e\xa3\x4d\x87\xd7\x38\x9d\xce\xe8\x75\ \x67\x7a\xb1\xa3\xa3\xa5\xbd\xb3\x6b\x67\xae\x75\xf2\xc3\xe9\x69\ \x69\xfc\xb8\x71\x89\x46\xa8\xca\xec\x8a\x8a\x72\xab\x24\x89\x10\ \x84\x61\xde\xa8\x37\x0e\xd7\xed\xae\x5d\x5b\x58\x58\xbc\x9c\x80\ \x66\xda\xf4\xc6\xbb\x9d\x0d\xfb\x0e\x1c\x2a\x2a\x28\xcc\x65\x58\ \x86\x73\x76\x7b\x7e\x0e\x06\x06\x7d\x71\x93\xd5\xeb\xd2\x34\x23\ \x25\x75\x19\xcb\xb0\x3a\x9a\xa6\x31\x6b\x56\x89\xd9\x56\x59\x6e\ \x93\xa4\x28\x8e\x34\x9d\x1c\xf2\x0f\x5e\x11\x3a\x9c\x4e\x17\xc7\ \x71\xcc\xc9\xd3\xa7\xbd\xfd\x03\x7e\xf6\xc2\xef\xed\xaf\xf5\x79\ \xbd\x1d\x04\x41\x5d\x13\x86\x42\x47\x9d\x7f\x5e\x38\x17\xf7\x96\ \x18\x69\x32\x0d\x20\x79\x69\x4d\x4d\xc3\x0b\xcf\x3e\x73\x5b\xdb\ \xd9\x33\xa2\xa2\xa9\x52\x96\xc5\x32\xce\xe3\x71\xa3\x76\x4f\xc3\ \xae\xdf\x4e\x9d\xda\xc1\xf3\xbc\x12\x89\x44\xae\x00\x88\xc6\x15\ \x20\x01\xc4\x00\xa8\x00\xa4\x38\x1e\x05\x10\x01\xa0\xfd\xfd\x07\ \x46\x00\xc6\x6f\xf7\xef\x5f\x27\x4a\xd2\x56\x8f\xab\xe7\x6c\x77\ \x57\xc7\xa5\x97\x37\xbc\xb2\x21\x25\x25\x59\xc7\xb1\x6c\x3e\x00\ \x26\x12\x89\x08\xf1\x41\xc3\xf1\xa1\x44\x5c\x8e\x18\x00\x39\xde\ \xb1\x9b\xa5\x69\x62\xbc\x4d\x00\x0c\x00\xb8\xd2\xb2\xb2\xc7\x22\ \xe1\xb0\xa7\xd3\xe1\x38\xa8\x28\xca\x65\x00\x21\x00\xc1\xf8\x96\ \xff\x5a\xc4\x28\x38\x1d\x97\x80\x88\x6f\xa4\xc4\x37\x1e\x53\xfd\ \x05\x6c\xb2\x71\x61\xdf\x53\xd7\x0d\x00\x00\x00\x00\x49\x45\x4e\ \x44\xae\x42\x60\x82\ \x00\x00\x28\x52\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ \x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\ \xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x00\x48\x00\x00\ \x00\x48\x00\x46\xc9\x6b\x3e\x00\x00\x00\x09\x76\x70\x41\x67\x00\ \x00\x00\x80\x00\x00\x00\x80\x00\x30\xe1\x31\x9a\x00\x00\x27\x7b\ \x49\x44\x41\x54\x78\xda\xed\x9d\x79\x9c\x5d\x55\x95\xef\xbf\x67\ \xba\xf7\x9e\x3b\xdf\x5b\x75\x6b\xae\xa4\x92\xca\x40\x26\x48\x42\ \x48\x40\x06\xc9\x53\x1c\xd0\xf6\xbd\x6e\xf5\xa3\xa1\xb5\x45\x6c\ \xf5\xd1\x74\x7f\x9e\xdd\xad\x4f\x51\xbb\x1f\x8e\xb4\xb6\x8d\x43\ \xab\xad\xd2\x4d\x23\x22\xd1\x16\x15\x71\x40\x51\x90\xc6\x20\x06\ \x08\x84\x24\x86\x0c\x90\x2a\x52\xf3\x78\xe7\xf1\xdc\x73\xce\xfb\ \x63\xdf\xb1\x86\x10\x20\xa9\x4a\x55\xf2\xfb\x7c\xce\x27\xa9\x33\ \xdf\xb3\x7f\x7b\xad\xb5\xd7\x5a\x7b\x6d\xc9\xb6\x6d\x4e\x27\x24\ \x49\x3a\xe5\xb7\x04\x14\x40\x7d\xf7\x27\x82\xdb\x55\x55\x0a\xde\ \xfa\xb1\xe8\x4f\x00\x03\x28\x02\xa7\xf7\x07\xcd\x01\x4e\x77\x9b\ \xd4\x42\x9d\xef\x1f\xfb\x22\xa1\xbc\xed\x83\x9e\x15\xad\x4b\x7d\ \xff\xa8\x39\xa4\x37\xca\xb2\xe4\x1f\x3a\x9e\xfe\x14\xf0\x00\x90\ \x02\x2c\xc0\x44\x90\xa4\xbc\x95\x61\xd7\x6c\xe7\x50\xc2\x42\x22\ \x80\x7a\xc3\x17\x22\xef\x71\xfb\xd4\xcf\x2f\xe9\x0e\xf8\xb3\x29\ \x83\x9e\x23\xf1\xbd\x77\x7c\x2a\xfe\x73\x20\x50\xf3\x7b\xec\x77\ \x7e\xdc\x7f\x45\xd1\xb0\x64\x00\xcb\xb4\xa5\x74\xd2\x88\xff\xec\ \x9b\x85\x7d\x08\x72\xd8\x08\xa2\xcc\xb4\x9d\x75\xe4\x90\x16\x88\ \x0a\x50\x6e\xf8\x42\xe4\x2f\x43\x8d\xae\x6f\x5c\x78\x79\x1b\x00\ \x7f\x78\xb0\x8f\xc7\xff\x7b\xe8\xdb\xfe\xa0\x53\x6d\xef\xf2\xad\ \x71\xe9\x4a\xb3\xea\x90\xdb\x01\xfc\x41\x27\x9a\x26\x57\x2e\x4e\ \xc4\x0a\x18\x86\x09\x80\x65\xd9\x89\x42\xde\x7a\x26\x97\x2e\xfe\ \x31\x9d\x34\x0e\x8c\x0e\xa6\x9f\xbe\xff\x76\xf3\x29\x84\x0a\x31\ \x10\x24\x29\x13\x65\x5e\x30\x97\x2a\x60\x21\x10\x40\x7a\xdb\x07\ \x3d\xab\x96\xac\xf4\x3f\x76\xc5\xeb\xbb\xfc\xba\x57\x65\xd7\x2f\ \xfb\xc8\xa6\x0b\xf8\x83\x4e\x9a\x3b\x7c\xf8\x83\x0e\x74\x8f\x86\ \x3f\xe4\x7c\xc1\x9b\x25\xa2\x79\x8a\x86\xc5\xc4\x68\x96\x44\x2c\ \xc7\xe4\x48\x96\x4c\xca\x18\x4c\xc6\xf3\xf7\x1f\xdd\x1f\xdd\xf9\ \xd0\xf7\x78\x02\xc8\x03\x05\x04\x11\xac\xd3\xfa\x81\x66\xc0\x39\ \x1b\xa0\x0a\x09\x50\xc3\x11\xfd\xcd\x4b\xba\x03\x7e\x7f\xc8\x49\ \x36\x55\xa0\xa1\xc9\xc5\x9a\xcd\x9d\x68\x9a\x32\xe3\x45\x86\x61\ \x62\xe4\x4c\xf2\x39\x0b\xcb\xb4\x31\x0a\xe6\xb4\x73\x7c\x7e\x07\ \xfe\xa0\x93\x65\xab\x42\xe4\xb2\xc5\xb6\xfe\x9e\xc4\xb5\xcd\xed\ \xde\x6b\xd7\x6f\xcd\x3d\x71\x64\xdf\xe4\xbf\xdc\x7f\xbb\xf9\x1b\ \x20\x43\x95\x08\x8b\x52\x3d\x9c\xc9\x12\x40\xde\xbe\x43\x8a\xac\ \xd9\xd4\x70\x93\xcb\xad\xfe\xef\xb5\x17\x36\xd1\xb5\x3a\x30\x6b\ \xa3\x9b\x45\x8b\x74\xd2\x20\x97\x2d\x12\x9b\xc8\x33\xdc\x9f\x44\ \x91\x25\x42\x11\xbd\xee\x1d\x42\x0d\xae\x59\x1f\x68\x9a\x36\xc3\ \x7d\x49\xc6\x86\x33\x0c\xf5\x25\xbf\x7b\xfb\x4d\xf1\x1b\x81\x04\ \x82\x08\x73\x36\xc2\x38\xdb\x55\x80\x04\x28\xef\xbf\xb9\xe1\x2d\ \x7e\x7f\xe0\x9b\x2b\x96\x6f\xf0\xaf\xdf\x12\xc6\x74\x1d\xc7\x66\ \x7a\x4f\xce\x65\x8b\xf4\x3f\x97\xe0\xf9\xe7\x12\x64\x52\x05\x32\ \x29\x03\xdd\xa3\xb2\x62\x6d\x18\xcd\xa1\x70\x78\xdf\x38\xd9\xac\ \x91\x9d\x18\xce\xf7\xab\x9a\xa4\xfb\x43\x8e\x0e\xcd\xa1\xe0\x76\ \x6b\x44\xda\xdc\x34\xb5\xb8\x51\xa7\x90\x2a\x9b\x29\x72\x78\xff\ \x04\xc9\x78\xe1\xe8\x57\x3f\x36\xf2\x76\x32\xf4\x22\x46\x19\x06\ \x73\x40\x82\xb3\x99\x00\x12\xa0\x5e\xff\xf9\xc6\x2f\x2b\x9a\x72\ \xfd\xeb\x5e\x77\x15\xcb\x96\xb7\x03\x90\xb1\x06\xc8\x14\xfb\x2b\ \x27\x4e\x8c\xa4\x39\x7a\x20\xc6\xf3\xcf\xc6\xc8\xa6\x8d\xbe\xe3\ \xcf\x26\x9e\x3c\xf2\xb4\xb5\xbf\x6f\x1f\x07\x3e\x7c\x6b\xdb\xf7\ \xae\x7a\x73\x37\x9a\xa6\xd0\xdf\x13\x67\xdf\xee\x11\xbe\x78\xe3\ \xe0\xa7\x0b\xe3\x3c\x03\x64\x43\xcb\x58\xba\xe9\x12\xe9\xfc\x86\ \x56\xf7\x86\x48\xab\x7b\x4b\x63\x8b\x87\xe5\xab\x83\xe8\xee\x7a\ \x8d\x78\xe8\xe9\x09\xfa\x7b\x12\x7b\x6f\xfd\xd8\xc4\xdb\x80\x71\ \x20\xc9\x1c\x48\x82\xb3\x95\x00\xd2\xf6\x1d\x52\xd3\x86\xad\x4d\ \xbf\xd6\x5c\xf2\x86\xed\x7f\xd2\x45\x5b\xc3\x1a\x9c\x72\x04\x80\ \x94\xf9\x1c\x39\x73\x9c\xc9\xd1\x2c\x47\xf7\x8f\xd3\xf3\x6c\x3c\ \x7b\x78\xef\xe4\xaf\x1f\xdc\x69\x3d\x88\xc9\xf3\x40\x9a\x92\xa8\ \xbe\xf6\xa6\xc0\x4d\xe7\x6f\x6b\x7e\xdd\xf9\xdb\x9a\x2b\x24\x78\ \xf2\x77\x43\x99\xdb\xff\x65\xf8\xa3\x13\xc7\xd8\x53\x3a\x17\xc0\ \xa9\x85\xe8\x7e\xe3\x9f\xbb\xde\xd6\xda\xe5\xfb\x93\x96\x4e\x2f\ \xdd\xab\x83\x15\x89\x50\x34\x4c\x9e\x7c\x74\x98\x63\x87\xa2\xb7\ \xff\xf8\xcb\xb9\x4f\x03\x63\xa5\x6b\xcd\x93\xfd\x51\x2f\x05\x67\ \x23\x01\xa4\xed\x3b\xa4\xa6\xb5\x17\x35\xfe\xa6\xa1\xc9\xb3\x7e\ \xdb\xf6\x36\xbc\x7e\x07\x00\x2e\xa5\x11\xd3\x2a\x90\x29\x44\x79\ \xe6\xc9\x31\x7a\x0e\xc5\xb2\xfb\x1f\x1b\xfd\xcd\xaf\xef\xb0\xee\ \x01\x86\x11\x3a\x3a\x81\x68\x98\x1c\x60\xe3\xa6\xe5\xbd\x1f\x6f\ \xf8\x52\x73\x9b\xfb\xf2\xae\xd5\x21\xba\x56\x07\x38\xba\x7f\x92\ \x03\x8f\x8f\xf6\x7c\xed\x83\x63\xef\x03\x7a\x10\x64\x91\x00\x17\ \xe0\x75\x45\x58\xfd\xf6\xeb\x83\xff\xd8\xd0\xaa\xaf\xdf\x7c\x49\ \x4b\x85\x04\xd1\x89\x1c\x4f\x3d\x3a\x9c\xfe\xe6\x87\xc7\xff\x27\ \xf0\x0c\x30\x89\x18\x25\x9c\xb6\x0f\x77\xb6\x11\xa0\xae\xf1\xb7\ \x5c\xde\x42\x20\xec\xc2\x30\x4c\x6c\x13\x14\x55\x22\x3e\x99\xe7\ \xe9\xdd\x23\x3c\x7b\x60\x72\xef\x9d\x9f\x4d\x7c\x1d\x18\x04\xa2\ \x40\x8c\xaa\x91\x56\x40\xe8\x68\x10\x8d\xda\x78\xd9\x5b\x78\xeb\ \x05\x17\x47\xde\xe7\x0d\x68\xcb\x3a\x96\xf9\x19\xe9\x4f\xf3\xdc\ \xa1\xe8\xdd\x3b\xff\x29\xf5\x71\x84\x48\xcf\x52\x43\x02\x20\xb8\ \xe3\xc3\xde\xcf\xb7\x75\xf9\x5e\xb3\xf5\x8a\xf6\xca\x0b\x3e\xf1\ \xfb\x61\x0e\x3c\x3a\xf2\xcd\xfb\x6e\x33\xbe\x08\x0c\x71\x9a\xa5\ \xc0\xd9\x44\x00\xe9\x35\xd7\x2a\x91\x95\xe7\x87\x1f\x68\x68\xf2\ \xac\xdf\xb8\xad\x99\x70\xb3\x13\x49\xaa\x3a\x71\xca\x3a\xfc\xfe\ \xbb\x07\xff\xf3\xa9\x5f\xf1\x73\x60\x02\xd1\x78\x31\x84\x61\x96\ \xa7\xea\xc0\xb1\x29\xd9\x11\x80\x1b\x08\x02\xe1\xd6\xb5\x5c\xb4\ \xf5\x4a\xe7\x95\x1d\xcb\xfd\x17\x7b\x03\xda\xb2\x27\x1e\x1e\xfe\ \xdb\x07\xbe\x63\xed\x04\xe2\x08\xe2\xc8\x80\x03\xf0\x00\x0d\xef\ \xfe\x44\x70\xe7\xaa\x0d\x0d\x1b\x97\xaf\x0e\x01\x30\xd8\x97\xe4\ \xe9\x3f\x0c\x3f\x76\xfb\x4d\xf1\x1b\x80\x3e\x84\x14\x30\x38\x4d\ \x38\x5b\xfc\x00\x12\xa0\xae\xbc\x20\xfc\xa3\x40\xc0\xb5\x7e\xfd\ \x85\x11\xfc\x0d\x8e\xba\xc6\x3f\x7a\x60\x92\x83\x7b\x46\xb3\x5f\ \xff\xc4\xf0\xe7\x72\x63\x3c\x05\x8c\x20\x1a\x3f\x8a\xe8\xbd\x05\ \xa6\xbb\x70\x6d\x84\xa1\x56\x1e\xba\x65\x87\x0e\x12\xfb\xc9\xc1\ \xfc\xa3\x30\xa6\x03\xac\xdf\x4e\x27\xa2\xd1\xcb\xec\x2c\x22\x08\ \x54\x04\xcc\xe1\xe3\xe9\xff\x68\x68\x76\xff\x6b\x99\x00\x3e\xbf\ \x13\x7f\xd0\xb5\x1c\xe2\x1e\x04\x51\x14\x4e\x23\x01\xe6\x12\xf2\ \xcb\xbf\xc5\x4b\x86\xf2\x57\xff\x1c\xf9\xa4\xcb\xa5\x5e\xba\x6e\ \x73\x23\xbe\x80\x56\x37\xc6\x2f\x37\xfe\x37\x3e\x3d\x7c\x73\x6e\ \x8c\xc7\x81\x7e\x60\x00\x18\x45\x58\xe3\x39\x66\x77\xd0\xd8\x88\ \x06\xca\x22\xc8\x32\x5a\xba\xb6\x0f\x18\x3c\xf0\x5b\x7e\x5f\x3a\ \x66\xcd\x70\x4d\xfa\xbe\xff\x30\x7e\x94\x49\x56\xdb\xb7\xb9\xc3\ \x83\xee\x51\x1a\x01\x27\xa0\xcd\xf3\x77\x3b\xa5\x98\x2f\x09\x20\ \xef\xf8\x88\xff\x55\xd9\x4c\xf1\x23\x2b\xd6\x84\x71\xea\x2a\x6e\ \x9f\xa3\x72\xb0\xbf\x27\x5e\x69\xfc\xcc\x30\x7b\x10\x3a\x7f\x14\ \x21\xf6\xf3\x9c\xbc\xfe\x2d\x07\x79\x8a\x08\xc2\x28\xa5\x8d\x9a\ \xfd\x53\xa5\x87\x79\xf5\x7b\xb5\x55\x0e\x5d\x9c\xa6\x39\x14\xe2\ \x93\xb9\xda\xef\xa5\x70\x8e\x00\x2f\x0b\x12\xa0\x6a\x9a\x74\x6b\ \x73\xbb\x17\xcd\xa9\xa0\x3a\xab\x3d\x3f\x11\xcd\xb3\x6f\xf7\x08\ \x25\xb1\xff\x24\xa2\xf1\x47\xa8\x36\xfe\x4b\xf1\xcd\xdb\x54\x83\ \x3c\xb5\xef\x31\x55\x7a\x48\x80\xb2\x61\xf3\xb2\xcf\xac\x5d\xb3\ \x01\xbf\x27\x8f\x1e\x4e\xd0\xfb\x48\x94\x74\xca\x98\x98\x87\x6f\ \x75\xda\x31\x1f\x4c\x96\x6f\xb8\x25\xf2\x09\xdd\xad\x75\xb6\x2f\ \xf5\xa1\x39\x64\x5c\x4e\xc1\x43\xc3\x30\xd9\xb3\x6b\x88\x47\x7e\ \x35\xf8\xfd\x92\xce\x1f\xa6\xbe\xe7\x9f\xca\xc0\xcc\x4c\xaa\x43\ \xbd\xe1\x0b\x91\xdb\x02\xfe\x86\x57\x2c\x5b\xd1\x41\x4b\x73\x27\ \x92\x24\x53\xcc\x9b\xc4\x27\xf2\xcf\x53\xb5\x15\xe6\x3c\x40\x74\ \xba\x30\xd7\x12\x40\xda\xbe\x43\x6a\xb4\x4d\xfe\x6a\xe3\x25\xcd\ \xe8\x6e\x8d\x86\x66\x1d\xdd\x2b\x5e\x63\xdf\xee\x11\x8e\xec\x9f\ \x7c\x7a\xd7\xdd\xdc\x8d\x68\xf8\x51\x84\xa5\x7e\xaa\x1b\x7f\xc6\ \x6f\x71\xfd\xe7\x1b\xff\xde\x86\x6b\xc2\x1d\x19\x32\xc5\x7e\xac\ \x5c\x0a\xa9\xf4\x85\x9e\x79\x2a\xb1\x87\xea\x88\xe3\x1c\x01\x5e\ \x22\xe4\xf3\x36\x36\xfc\xad\x27\xe8\xf4\x87\x23\x3a\xb2\x2a\xe1\ \x0f\x8b\x10\xee\xe4\x68\x96\xfe\xe7\x12\xd9\xbb\x6e\x4e\x7c\x0d\ \x61\xe9\x8f\x21\x1a\x3f\xc7\x1c\x34\xfe\xfb\x3e\xdb\xf0\x97\x8a\ \xa6\xdc\xbc\x7a\x7d\x03\xbe\x80\x4a\x3c\xfd\x3c\x39\x4b\x25\x14\ \x11\xc1\xa3\x91\x3e\x46\x10\x04\x28\xce\xc1\xfb\xcc\x19\xe6\x52\ \x05\x48\xdb\x77\x48\x8d\xb2\x22\x5d\xdf\xbd\x3a\x08\x88\xe1\x55\ \x19\x4f\xef\x1e\xe1\xb1\x87\x86\xef\x45\x58\xeb\xb5\x43\xbd\xd3\ \xea\x76\x05\x94\xeb\x3f\xd7\xf8\x1e\x87\xae\xfe\xdb\xc6\x6d\xcd\ \x74\x76\xfb\x51\x35\x31\x3a\x94\x6b\x62\x44\x6d\x5d\x34\xb0\x08\ \x33\x87\xe6\x92\x00\xf2\x8a\xf5\xc1\x3f\x73\x79\x54\x7f\xa8\xc1\ \x85\x24\x4b\xb8\x3c\xe2\xf1\xfd\x3d\x71\xc6\x47\xd2\x13\xbb\xee\ \xe6\x47\x08\x27\x4b\x94\xea\x38\xfe\x74\x42\x79\xff\xcd\x0d\x6f\ \x55\x1c\xca\x37\x36\x6e\x6b\xa6\x63\x99\x9f\x50\xc4\x85\x3f\xe4\ \xa8\x6c\x00\xcd\x9d\x5e\xd6\x5f\x14\xba\x12\x31\x04\xd4\xa8\x8e\ \x24\x16\x3c\xe6\x92\x00\x8a\x43\x57\x6f\xec\x58\xe6\x07\xc0\xe1\ \x54\x2a\x4e\x9f\xa3\x07\xa2\x3c\x7a\xff\xd8\x3d\x08\x63\x2f\x8a\ \x18\xe7\x9f\xee\xd0\xab\xfc\xee\x9b\x82\x5b\x14\x55\xfe\x66\xf7\ \x9a\x20\x8d\x2d\xee\x8a\x2d\xe2\xf6\x39\xe8\x3d\x1a\x67\xa0\x37\ \x09\x40\xfb\x32\x3f\x9d\xdd\x81\x35\xaf\xbf\x4e\x7b\x27\xe0\x43\ \x78\x19\x1d\x73\xfc\xfd\x4e\x0b\xe6\xca\x06\x90\xde\xfe\x21\xef\ \x16\x55\x53\x3a\xdb\x3a\x7d\x00\xb8\x74\xf1\xe8\xc9\xd1\x2c\xe3\ \x23\xe9\x89\x3d\xf7\xf1\x2b\xaa\xbe\xfd\x17\x33\xd6\x7f\x49\xef\ \xb3\x7d\x87\x14\xd1\xbd\xda\x0f\x96\xad\x0e\xf9\xdb\x3a\x7d\x95\ \xc6\x37\x8b\x16\xcf\x3c\x3d\xce\x91\x7d\x13\x59\x45\x96\x00\xf4\ \x8e\x65\x01\x2e\xbc\xac\x95\x62\xc1\x7c\x7f\x47\x77\x6a\xdd\x40\ \x6f\xea\x7b\xbf\xb8\xd5\xf8\x21\xc2\x3e\x29\x8f\x0c\xca\xdb\x82\ \x52\x11\x73\x45\x00\x25\x1c\x71\xbd\xb3\xa1\x49\xaf\x3e\xd8\x29\ \xf4\x6c\x7f\x4f\x9c\xe3\x47\x13\x4f\x22\xfc\xfa\x71\x44\xa0\xe5\ \x74\xbb\x59\xe5\x75\x5b\x9b\x6e\xf1\x07\x1c\x9d\x4b\x96\x0b\x89\ \x14\x1b\xcb\x11\x9d\xc8\xd1\x73\x24\xc6\xd0\xf3\xa9\xfe\xff\xfa\ \x56\xec\x56\x55\xa1\xf0\x7e\x89\x7f\x00\xdc\x1d\xcb\x02\x5c\xf9\ \xa6\x2e\x7a\x0f\xc7\x2f\xeb\xef\x49\x5c\xb6\x61\x6b\xe1\xab\xc5\ \x82\x35\x50\x34\xed\xfe\x54\xbc\xf0\xe8\x9e\xdf\x45\xef\xda\x7b\ \x3f\x47\xa9\xe6\x13\x2e\x08\x22\xcc\x19\x01\x6c\xa4\xcb\x9b\x5a\ \x3d\x95\x1d\x65\xb7\xef\xc4\x68\x8e\x07\x7e\x9c\x7f\x08\x21\xf6\ \xd3\x54\x3f\xde\x69\x7d\x1f\x6c\xde\x10\x69\x73\x13\x9d\xc8\x11\ \x1d\xcf\x32\x3e\x92\x21\x19\x2b\x64\x9f\x3b\x18\xbd\xff\x81\xef\ \x58\xf7\x20\x8c\xd1\xcc\x7f\x7d\x73\xf8\x6f\x90\xa5\xaf\x00\x9e\ \x8e\x65\x01\xd6\x6c\xe8\xe0\xc2\x8d\x1d\x14\xec\x49\x46\xc7\x07\ \xda\xb3\x69\xa3\x7d\x64\x20\xb5\xad\xb1\x45\xff\xc0\xc6\x8b\xd3\ \x5f\xbb\xfd\x93\xf1\xcf\x50\x75\x55\x9f\x6e\x1b\xe6\x65\x63\xce\ \x08\x20\xab\xac\x9b\x9a\x8f\x67\x18\x26\xd9\x74\x81\xf4\x10\x87\ \xa9\xc6\xf3\xe7\xe2\xa3\x49\x89\x68\xee\x96\xfd\x8f\x8d\xbe\xa9\ \x58\xb4\x1c\x13\x23\xd9\x81\x9e\x67\x0a\x07\x0f\x3e\xcc\xd3\x54\ \xbd\x8e\x31\x20\xdd\xb7\x8f\x81\x9f\xde\x31\xf4\x97\xc0\xbf\x67\ \xd3\xa6\xe7\x82\x8d\x1d\x38\xe4\x10\x92\xad\xe0\x0f\x8d\xe3\x0f\ \x39\x69\xee\xf0\xd2\xb5\x2a\xc4\xee\x07\xfb\x6f\xd8\xf6\xc6\xf8\ \xd3\xbb\x7f\xc6\xcf\x39\x03\xd2\xcb\x4f\x06\x73\x41\x00\xe9\xad\ \x7f\xef\xd9\xe4\x74\x4e\x7f\x54\x32\x5a\x60\x6c\x30\x73\x18\x21\ \x36\xcb\xd1\xbd\xd3\x3d\xec\x03\xb0\xee\xf8\x54\xfc\xab\xc0\xf7\ \x11\x21\x63\x47\xe9\xb9\x59\x04\x11\x53\x54\xa5\x91\x7c\xe4\x51\ \xfe\xfb\xe7\xca\xd0\x75\xd9\x94\xf1\x95\x89\xe1\x7c\xf3\xe6\x0b\ \xb3\x58\x4a\x02\xb4\x22\x72\x29\xdc\xed\x0f\x39\xe9\x5a\x1d\xa2\ \xb5\x6b\xec\x0a\xc8\xed\xa2\x3e\xa3\xf8\x8c\xc5\x9c\x10\x40\x73\ \x28\x21\x87\xab\x3a\x72\x72\x3b\x9b\xf0\xab\x1d\xc4\x79\xa6\xbc\ \xab\x76\x52\xc6\x5c\xf4\x18\x0b\xd1\xd8\x63\x08\x71\xad\x94\x9e\ \x5d\xa8\xd9\xca\x1e\x3f\x19\xb0\x0e\xed\xe2\xe1\x43\xbb\xc6\xdf\ \x7c\xcd\x8d\x85\xaf\x0d\x3c\x1f\xbb\x60\xed\xe6\xc8\xb4\x0c\xe3\ \xfe\x9e\x04\x89\x58\xa1\x88\x48\x30\x51\xa9\x9f\x9a\x76\x46\x62\ \x4e\x08\x60\x5b\x96\x64\xd6\x68\x75\xb7\xd6\x8c\x43\x0e\xe1\x50\ \xc2\x48\xb2\x54\x3b\x55\x6b\xae\xc4\xa5\x49\xd5\xab\x97\xa6\x1a\ \x18\x2a\x5b\xf1\xd6\x0c\xe7\xc6\x81\xa3\x77\xdd\x9c\xd8\x71\xc5\ \xdb\x13\x37\x24\xe3\x85\xeb\x3a\xbb\x03\x7a\xa4\xd5\x8d\xa6\xc9\ \x1c\x3f\x96\x20\x3e\x99\x9d\x78\xf0\x4e\xeb\x7e\x16\x80\xe8\x2f\ \x63\x4e\x6c\x00\xcb\xb4\xeb\x7a\x42\xba\x30\x40\x22\x9f\x43\xf3\ \x27\x08\x86\x9d\x4b\x10\x0d\x50\x9b\xa0\x31\x27\xaf\xc5\xc9\x1b\ \x9b\x16\xd5\x78\x44\xf1\xe1\xef\x71\xcb\xc3\x44\xef\xb9\x72\x47\ \xfc\xba\x86\x26\xd7\x66\x24\x28\x16\xcc\xd1\x9f\x7c\x3d\x7f\x2b\ \x22\xe7\x20\xc9\xdc\x18\xb3\x2f\x1b\x73\x42\x00\x59\x91\x6c\x4d\ \xab\xb6\x6d\xb6\x30\x49\x3c\x9d\x41\xf7\xaa\xf8\x42\x2e\x77\x63\ \x37\xab\xc7\x9f\xe3\x38\x42\x14\xcf\x14\xa6\x3d\x13\x60\x51\x6d\ \x54\x03\xc8\x3e\xb4\xd3\xfa\x24\x64\x7c\x40\x79\x7c\x9b\x41\x18\ \x8f\xe5\x00\xd6\x99\xf8\x3b\xea\x30\x17\x9e\x2c\xfb\x91\x5f\xa5\ \xf6\xc7\xc6\x72\x75\x3b\x0b\x05\x61\xec\x2f\x5b\x1d\xe0\xaa\xb7\ \x7a\xff\x14\xe1\x5d\x73\x72\x66\x4f\x57\x2b\x67\x0d\x65\x10\x1e\ \xcb\x21\xe0\x38\x70\xac\xb4\xf5\x21\x22\x98\x29\x16\x48\xad\x82\ \x39\x21\xc0\xf1\xbd\x4c\xda\x36\x03\xc9\x78\xa1\xb2\x33\x31\x99\ \x27\x3a\x96\xa3\x6d\x89\x9f\xee\xf3\x42\xdb\xd7\x5d\xc9\x15\x08\ \x37\xab\x73\x8e\xde\xeb\xe5\xa0\x6c\x17\xa4\x10\x44\x18\xa7\x1a\ \xc0\x2a\x3b\xb2\xce\x78\xf1\x0f\x73\x44\x00\xc0\xcc\xe7\x8b\x7f\ \x88\x4e\x54\xa5\x40\x2a\x61\x10\x9f\xc8\x51\x28\x98\x9c\xbf\xad\ \x99\xd7\xbd\xad\xf5\xd3\xc0\x52\x04\x09\x1c\x9c\xf9\x16\x74\xd9\ \x68\x2c\x20\xfc\x17\x39\x16\xe0\x44\xd2\xb9\xea\x69\x66\x21\x6b\ \x3e\x32\xdc\x9f\xac\xec\x70\x7b\x35\x00\x3c\x3e\x95\xe6\x0e\x2f\ \x2b\xd6\x86\x3d\x37\xdc\x12\xf9\x77\x24\x96\x01\x7e\x16\x86\x24\ \x58\xf0\x98\x33\x02\xdc\xf9\xd9\xc4\x9d\xd9\x94\x91\x2c\x4b\x01\ \xa7\x4b\xc1\xe5\x56\x49\x27\x85\x2d\xb0\x76\x73\x84\xf3\xce\x6f\ \x58\xfe\x81\x2f\x37\xff\xa8\xa4\x0e\x02\x88\xf1\xf4\xa2\x09\xbd\ \x9e\x89\x98\x33\x02\x00\xf9\x64\xd4\xf8\xf6\x73\x87\x63\x75\x07\ \xd2\x09\xa3\x52\xbd\xe3\xfc\x6d\x2d\x6c\xba\xb4\xa5\xf9\xf5\x6f\ \x6b\xfd\xcf\xb7\x7c\xc0\xfd\x41\x20\x8c\x98\xac\xb1\x28\x42\xaf\ \x67\x22\xe6\x72\x66\x90\xcb\xdb\x46\xd7\xbb\xfe\x2e\xf2\xf8\x86\ \xad\xcd\xde\x5a\x2f\x9a\xe6\x50\xea\x66\x04\x25\xa2\x79\xf6\xec\ \x1a\x62\x6c\x30\xfd\xe4\xc1\x3d\xe3\x5f\xfc\xed\x4e\xfb\x7e\xaa\ \xae\xd9\x05\x61\x5d\xbf\x1c\x2c\xd6\xa9\x61\x0a\xe0\x7d\xed\x75\ \xda\x3b\xce\xdb\xd4\xf0\xd5\xad\x97\xb7\xd6\xcd\xcb\x77\xea\x2a\ \x4d\x4d\x4d\x68\x8a\x08\xcf\xe6\xcd\x51\x0e\xed\x1f\xa6\xf7\x70\ \x94\x91\x81\xd4\xbd\x0f\xfd\x34\xfa\xcf\x47\xff\x20\xa6\x77\x53\ \x75\x1b\x2f\x08\x4b\xfb\xc5\x62\xb1\x12\x40\x42\x88\xf2\xd0\x75\ \x9f\x0c\xed\x6c\xe9\xf0\x5e\x79\xc1\xb6\xe6\xca\x79\xba\x23\x4c\ \x4b\x78\x3d\x9e\x92\x71\x68\x53\x64\xb2\xb0\x97\x82\x51\xe0\x99\ \x27\xc7\xe8\xef\x49\x90\x8c\x15\x1e\x7c\xf6\x8f\xd1\x5b\xef\xbf\ \xdd\x7c\x80\xfa\xe0\xd1\x82\x88\xbd\x9f\x2c\x16\x2b\x01\x40\xe8\ \x71\xb7\x12\x64\xf9\x7b\x3e\xdc\x70\x77\x4b\xa7\x6f\xe5\xba\x4d\ \x8d\x00\x34\x7a\x37\xe0\x54\xfd\x68\x0e\x05\x8f\x4f\x43\x92\x20\ \x6d\x3e\x4f\xd6\x1c\x06\x20\x9b\x2a\xd0\xdf\x9b\xa2\xf7\x70\x94\ \x64\xa2\x70\x78\xf0\xf9\xd4\x6d\xbf\xfe\x61\xfa\x9e\x58\x2f\x23\ \x54\x83\x37\x0b\x6a\x08\x36\x1b\x16\x33\x01\x40\x24\x55\x7a\x71\ \xb0\xe2\xaf\x3f\xd7\xfc\x60\x38\xa2\x7b\xd7\x6d\x6a\xac\x10\x00\ \xc4\x94\x70\xaf\x5f\x23\xc7\x50\x5d\x55\x10\x10\x39\x04\x23\xfd\ \x29\x7a\x0f\xc7\x88\x4e\xe4\x92\xc9\x78\xe1\x37\x7f\x7c\x7c\xe2\ \x5b\xbb\xee\xae\xab\xee\x55\x4e\xdd\x5e\x90\x64\x58\xec\x04\x90\ \x10\x24\xf0\xaf\xdf\xce\x2b\x2f\xb9\x2a\xf4\xb9\xd6\x25\x81\xee\ \x8b\x2e\x5e\x4b\x48\x5f\x09\x80\x59\xb4\xb1\xed\x22\x59\xf5\x20\ \xaa\xd3\x44\x51\x25\x14\x75\xfa\x20\x20\x11\xcd\xd3\xdf\x93\x60\ \xa0\x27\x41\x26\x65\x0c\x46\x27\x72\x3f\x7c\xfc\xa1\xd8\x77\x0f\ \xfc\xb6\x92\x9a\x55\x6b\x2b\x2c\x18\x32\x2c\x76\x02\x80\x20\x81\ \x13\xf0\x23\xd3\xfd\xde\x4f\x87\xbe\x13\x6e\xf2\x74\x5f\x7c\xe9\ \x06\xfc\xee\x16\x8a\x76\x8e\x74\x6e\x08\xc3\x4c\xe1\xd4\x55\x82\ \x8d\xf5\xd3\xc6\x67\xc2\x48\x7f\x8a\x91\x81\x14\x23\xfd\x69\x52\ \x49\xe3\xd0\xc4\x48\xe6\xee\x7d\x8f\x26\x7e\xfa\xf4\x03\x1c\xa5\ \x5e\x45\x9c\xf1\x64\x38\x1b\x08\x00\xd5\xa2\x0c\x7e\x14\x96\x5d\ \xf3\x21\xef\x27\xc2\xcd\x9e\xd7\xae\xbf\x70\x7a\xa2\x85\x24\x4b\ \xf8\x02\x5a\xdd\x0c\xe2\xd9\x50\x56\x11\x23\x03\x69\x46\xfa\x53\ \xe4\x73\xd6\x82\x23\xc3\xd9\x42\x00\x98\x52\x99\xe3\xe2\xff\xc5\ \x9b\x37\xbd\xa2\xf1\x63\x91\x36\xaf\x67\xf5\xfa\xd0\xb4\xf2\x6d\ \xb2\x2a\xe1\xf3\x3b\x2b\x29\xdc\xb3\xc1\xa1\x04\x51\x25\x2f\xd9\ \x5c\x92\xbe\xbe\xe3\xd3\xc8\xf0\xd3\x3b\x13\xdf\x89\xf5\x32\xca\ \x74\xe3\xf1\x8c\x20\xc3\xd9\x44\x00\xa8\xda\x04\xe5\x92\x2e\xcb\ \xde\xf1\x51\xff\x67\x82\x11\xfd\x92\xa5\x2b\x02\x94\xd3\xb6\x6b\ \x31\x13\x11\x0c\xc3\x24\x9f\x35\x09\xfb\xdb\xf0\x3b\xba\x2b\xfb\ \x13\xe6\x61\x0a\x66\x6c\x9a\x64\x48\xc6\x0a\x0f\x4c\x8e\xe6\x7e\ \xf9\xcb\x1f\xa4\xee\xad\x19\x49\x9c\x11\xb3\x7f\xcf\x36\x02\x40\ \xb5\xae\x8f\x13\x11\x0d\x0c\xad\xdf\xce\xab\x37\x5f\x16\x78\x6f\ \xa8\x49\x5f\xdf\xb5\x32\x40\x79\x42\x49\xdd\x45\xb2\x84\xee\x51\ \xf1\xf8\x34\x12\xd1\x02\xf9\x6c\x91\xce\xa6\x4d\x04\xfc\xe1\xca\ \x39\x53\xeb\x0b\xc2\x74\x35\x11\x9b\xcc\xff\x78\x74\x20\x7d\xdf\ \x8f\xbf\x92\xbb\x87\x6a\x54\x6f\xde\x46\x12\x67\x23\x01\xca\x28\ \xab\x04\x37\x22\x22\x18\xda\xbe\x43\xda\xb1\x6a\x63\xf8\x5d\x2e\ \xb7\xd6\xd4\xd1\xe5\xa7\xad\xd3\x33\x4d\x35\x00\x58\x36\xd8\x96\ \x4d\x57\xe7\x4a\x02\xee\xa5\x95\xfd\xb5\xbe\x84\x99\x90\x4d\x15\ \x18\x19\x4c\xd3\x73\x38\x4e\x62\x32\x37\x18\x9d\xc8\xfd\xf0\xb1\ \xdf\xc6\xee\xfa\xe3\x43\x94\xb3\x95\xe7\xdc\xeb\x78\x36\x13\x00\ \xaa\xd2\xa0\x4c\x84\x00\x10\x5c\x7d\x19\x57\x6e\xdd\x1e\xb8\x36\ \xd4\xe0\x5a\x17\x6c\xd4\x59\xb2\xdc\x8f\x2f\x30\xb3\x51\xd8\x10\ \xe8\xc2\xe7\x0e\x81\x96\x22\xc7\xd0\x09\x1f\x66\xdb\x16\xe9\x64\ \x11\xa7\xae\x90\x4d\x15\xe9\x3d\x12\x65\xa4\x3f\xcd\xe4\x58\x76\ \x26\xaf\xe3\x9c\x4c\x0d\x3f\xdb\x09\x50\x86\x4c\x55\x2d\xb8\x11\ \xaa\xc1\xef\x68\x60\xf5\x1b\xfe\xdc\xfd\xf6\x96\x76\xf7\xab\x1d\ \x6e\xd5\xdd\xd1\xe5\x27\xd2\xe2\x9e\x56\xe6\xb5\x0c\xcd\xa1\xa0\ \x39\x65\x5c\xba\x4a\x6d\x6a\x7a\x19\xa9\x44\x81\x54\xac\x80\x53\ \xaf\xd6\x02\x30\x0c\x93\x81\x9e\x04\x3d\x87\xe3\x44\xc7\xb3\x87\ \x07\x9f\x4f\xdd\xf6\x83\x7f\x49\x7f\x1b\x41\x84\xd3\x5e\x24\xe2\ \x1c\x01\xea\x51\x4b\x04\x17\x62\xc4\xe0\x03\xfc\x5b\xae\xe6\x35\ \x9d\x2b\xdd\x97\x37\xb5\xb8\xb7\xf9\x42\x0e\x77\x43\x93\x4e\xa4\ \xc5\x33\xab\x64\x00\x70\xb8\x14\x1c\x2e\x05\x55\x93\x71\xba\x64\ \x8a\x45\x9b\x64\xb4\x80\xdb\xa7\x55\x26\xac\xd6\xa2\xbf\x27\xce\ \xd1\x03\x51\x12\x93\xb9\xa1\xe3\xc7\x12\x5f\xbe\xfb\x96\xcc\xb7\ \x11\x91\xc9\xd3\x56\x2c\xe2\x1c\x01\x66\x86\x8c\x88\x28\x6a\x08\ \x22\xb8\x4b\x9b\x17\xf0\x6e\x7a\x3d\x57\xad\x58\xe3\xbe\xd4\xdf\ \xa0\x6f\xd0\xdd\x6a\x63\x38\xa2\x13\x6a\x74\x12\x6a\xd0\x67\x95\ \x0e\x20\x46\x14\x9a\x26\xa4\x84\xc3\xa1\xcc\xea\x75\x2c\x13\x21\ \x3a\x9a\x3d\xb2\xff\x89\xd1\x4f\x3e\x78\x67\x5d\x88\xfa\x94\xc6\ \x20\xce\x11\xe0\x05\x6e\x49\x69\xd5\x30\x84\x9d\x50\x96\x0c\x6e\ \x84\x74\xf0\x44\x56\xb1\x61\xc3\x56\xe9\xc2\xa6\x76\xcf\x86\x50\ \xd8\xb5\xce\xe9\x51\xdd\x6e\xb7\x46\x28\xa2\xe3\x0b\x38\x4e\xb8\ \x66\x40\x19\x0e\x97\x82\x4b\x57\xd0\xbd\x6a\x9d\x17\xb2\xf7\x48\ \x94\xa3\xfb\x27\xe9\xef\x4d\x7c\xf7\xae\xaf\xc6\xff\xa9\x30\x4e\ \x3f\xd5\x62\x16\xa7\x44\x1a\x9c\x23\xc0\xc9\xa3\x2c\x15\x54\x84\ \x64\x70\x96\x36\xbd\x76\x8b\xac\x64\xdd\xf9\x17\xcb\x9b\xfd\x61\ \x57\xb7\x2f\xa0\x75\x79\xfd\x8e\xa5\x6e\xaf\x86\xdb\xeb\x40\x77\ \x2b\x84\x1a\x75\x5c\xba\x3a\xa3\xa4\x90\x64\x09\x7f\xb0\xde\xe7\ \x90\x4d\x15\xd8\xb7\x7b\x84\xfe\xde\xd4\xd1\xdf\xdd\x37\xf2\xa1\ \xa7\x7e\xc5\xef\xa9\x96\xad\x7d\xd9\x24\x38\x47\x80\x97\x86\x32\ \x19\xca\x6a\x42\xa3\x2a\x21\xca\x52\xa2\xbc\x39\xbb\xb7\xb1\xa5\ \x6b\x95\xbc\xd2\xa5\xab\xcd\xa1\x46\xd7\x32\x7f\xd0\xb9\x54\xd3\ \x15\x77\x4b\xbb\x87\x25\xcb\xfd\xd3\x86\x9a\x0e\x97\x42\x28\xe2\ \x9c\x56\xca\xf6\xd0\xde\xb1\xd4\x2f\x76\x0e\x5d\x77\xf0\x61\x7e\ \xc7\x29\xaa\x68\x76\x8e\x00\xa7\xe0\xb1\xd4\x13\xa2\x2c\x21\x6a\ \x89\x51\x4b\x0e\x27\xe0\x5c\x79\x31\x5b\x2e\x7d\x5d\xf0\x1d\x1e\ \xbf\xb6\xae\x6b\x65\x68\x9a\x17\x52\x92\x25\xc2\xcd\xae\xba\x92\ \xb6\xfd\x3d\x71\x9e\x7c\x64\x38\xfd\xb3\xef\x0e\xbd\xe7\xf0\x2e\ \x76\x51\x5f\xe1\xe4\x25\x39\x92\xce\x11\xe0\x34\xbc\x06\x82\x10\ \xb5\xa4\x28\x4b\x8a\x5a\x72\xb8\x00\xcf\xb6\x37\x72\xf5\xf9\xaf\ \x68\xb8\x21\xd2\xe2\x6e\x5a\xb7\xb9\xb1\x4e\x1a\xc8\xaa\x44\xa4\ \x55\x9f\x56\xd1\xfc\xc9\x47\x86\xd3\xeb\x62\xd2\x13\xd9\xa4\xb1\ \x6b\xd7\x13\x63\x3f\xd9\x79\xff\xb4\x90\xf4\x49\x7f\xe8\x73\x04\ \x98\xa3\xdf\xce\x74\x52\x94\x03\x53\x01\xa0\xeb\x1d\x1f\xf5\xff\ \x63\x73\xa7\x67\x6b\xed\x02\x12\x00\x6e\xdf\xf4\x25\xea\xf6\xec\ \x1a\x44\x1e\x31\xb9\x32\xdc\xc9\xd8\x48\x1f\x63\x93\xf9\x1f\xff\ \xc3\x2d\xfd\x1f\x7f\x6e\x84\x41\xaa\x79\x8c\x27\xa5\x1a\xce\x11\ \x60\xee\x21\x03\xda\x5d\x9f\xeb\xb8\xce\xad\xab\x6f\xd2\x14\x69\ \x83\xc3\x21\xb7\xc7\x92\x85\x63\xa3\x3a\xcb\x07\x34\x9b\x0b\x2e\ \x69\xc1\xb2\xa1\x90\x2d\x62\xdb\xd0\xb9\xc2\x57\x47\x0a\xc3\x30\ \x79\xe8\xde\x5e\xde\xbd\xf9\x35\x2c\xf5\x36\x72\xe0\xc0\x6e\x86\ \x06\x8e\xa7\xee\xf8\xf1\xb1\x77\xee\xbc\x9f\x47\x78\x11\x33\x86\ \xcf\x11\x60\xee\x20\x01\xea\x77\x6f\x6e\x7b\x73\x43\xc8\xf5\xf9\ \x70\xb8\xa1\x73\xc5\xca\x75\x04\x42\x61\xe4\x40\x88\xd4\x40\x1f\ \xcf\x3e\x7b\x90\xa3\x43\x03\x8c\x74\x39\x51\x75\x95\xa2\x21\xda\ \x2f\x1c\xd1\x69\x5e\xe2\x9e\x56\xe2\xde\x3f\x19\xe6\xad\x17\x5c\ \x06\xc0\xf1\xde\xc3\x3c\xfd\xd4\xe3\xc3\x6f\xfa\x9b\xde\x57\x21\ \x4a\xcf\x94\x49\x70\x42\xcc\x25\x01\xce\xe6\xc9\x16\xd2\x47\xae\ \x75\x47\xee\xfd\xd7\xae\xdb\xdb\x5b\x83\x3b\x2f\xbd\xec\xd5\x9d\ \x17\x5d\xf5\x26\x42\x5d\xdd\xc8\x01\xb1\x50\x84\xb7\xbd\x93\x8d\ \xaf\x7c\x2d\x17\xac\x58\x45\xe8\x58\xae\xd2\xf8\x00\xf9\x7c\x91\ \x54\xac\xbe\x98\x59\x47\x97\x97\x3d\x83\x47\x2a\x7f\x2f\xe9\x5a\ \x4d\x7b\x6b\x6b\xcb\xdf\xbd\xc3\xf9\x2e\x44\xa8\xfb\x8c\x9b\xee\ \x76\x46\xbd\xcc\x1c\x42\xfa\xc0\x0e\x67\xd3\xe5\xdb\x5a\x1e\xe8\ \xec\xec\xb8\xe6\x95\x57\xbf\x19\x6f\x7b\xa7\x38\xa2\xe8\xe0\x5a\ \x01\x52\xd5\x9d\xbc\x6a\xcb\x65\x44\x1c\x1e\xd4\x64\xb5\x7e\x95\ \xaa\xca\xd3\x7a\xaa\xee\x15\xab\x91\x1e\x9b\x1c\x02\x49\x03\xc5\ \x4d\x6b\xe7\x32\xae\xd8\xda\x7a\x2d\x62\x96\x93\x9b\x33\x6c\xfa\ \xfb\xd9\x48\x00\xe9\x03\x3b\x9c\x4d\x57\x5d\xd1\xfe\x9b\x15\x2b\ \x56\xae\xdf\xf8\xca\xd7\x82\x56\x6a\x6c\xc9\x01\x9e\x4b\xc1\xb9\ \x02\xf4\xf5\x75\x17\xad\x59\xbb\x1e\xc7\x58\xb5\xc7\xab\x9a\x3c\ \x63\x70\x49\xf7\x6a\xc4\xb2\x69\xf0\x75\x43\x78\x2b\xad\xed\xcb\ \x69\x0c\x07\x9a\xde\xfd\x46\xe9\x6a\xce\xc0\xe9\xef\x67\xcc\x8b\ \xcc\x11\xa4\x8f\x5c\xeb\x8e\x94\x1b\x7f\xd5\x96\xcb\xea\x8f\xea\ \xab\xa9\xd4\x87\xd7\x9a\xea\xa4\x40\x7b\x7b\x3b\x11\x59\x42\x73\ \xc8\x38\x74\x95\x86\x86\x30\xa1\x40\xe3\xb4\x07\x38\x9d\x32\x93\ \xa9\x04\xa8\x01\xd0\x02\xe0\x68\xa4\xb3\x6b\x15\xaf\xd8\xd2\x7c\ \x35\x62\x74\xa1\x73\x06\x4d\x78\x3d\x9b\x08\x20\x01\xea\x65\x5b\ \x9a\x6f\x6b\x6b\x6d\x9b\xde\xf8\x92\x03\xb4\xf6\xfa\x7d\x8a\xb7\ \xf2\x5f\x39\x10\x42\x47\x22\xd4\xe8\x62\xf5\xea\x2e\x3a\x1a\x37\ \x13\xd0\xd6\xe0\x53\x97\x57\xce\xb1\x6d\x30\x0a\x26\xd9\x4c\x1e\ \x64\x31\xc3\x09\xf7\x12\xda\xdb\x96\xd3\xdd\x15\xdc\xda\xd5\xc8\ \x4a\x84\x1a\xd0\x38\x43\xea\x1f\x9c\x4d\x04\x50\xee\xfe\x62\xe7\ \x27\x43\xe1\xf0\x1b\x36\xbe\x62\xbb\xd8\xa3\xb5\x88\x0d\xc0\x11\ \x99\xe1\x8a\xc0\xb4\x5d\x4e\x5d\xc5\xe3\xad\x7a\x08\x65\xa9\xea\ \x0f\x30\xf2\x45\x06\x7a\x62\x44\xf4\x9a\xf4\x35\xbd\x05\xc5\xa1\ \xd1\x14\xe9\xe4\x86\xbf\x08\xed\x40\xa8\x81\x33\x66\xda\xfb\xd9\ \x42\x00\xf9\x8e\xcf\xb6\xbd\xca\xe3\x72\x7d\x64\xdb\xc5\xaf\x14\ \x3a\xdf\xb5\x02\xdc\x1b\xa1\x38\x29\xce\x50\x9a\xa7\x5f\x25\x4d\ \x6f\xa3\x60\xa3\x83\x6c\x71\x08\xc3\x4e\x60\xd9\x79\xb2\x56\x35\ \xe3\x28\x3e\x91\xa2\x90\x2d\x12\xd4\xbd\x90\xcb\x94\xee\xa1\x81\ \xde\xc2\xd2\xae\x55\xac\xed\x0e\xbe\x1a\x91\xea\x76\xc6\x18\x83\ \x67\x03\x01\xa4\x0f\xec\x70\x46\xfc\x6e\xf5\xd6\x75\x1b\x36\xa2\ \x84\x42\xe0\xde\x20\x0c\x3d\x63\x14\xec\xd2\xb0\x5c\x6b\x3a\xb9\ \x9b\x49\x32\x36\x26\x71\xe3\x19\x26\x8d\xbd\x14\xcc\x18\x00\xd9\ \x54\x9e\xf1\xe1\x34\xa6\x25\xd3\xe2\x0b\x62\xa6\x6b\x52\xd1\x9c\ \x6d\x78\x03\x21\xc2\x8d\x0d\xee\x77\x5e\xcd\x6b\x38\x83\xca\xcd\ \xcf\xfb\x0b\xcc\x01\x94\xcb\x2e\x6a\xfe\x7f\xe1\x70\xa4\xb3\x73\ \xed\x06\xd1\xf8\x65\x5d\x6f\x8e\x88\x7f\xd5\x30\x18\x06\xe4\xa7\ \xf8\x68\x24\xad\xee\xcf\x40\x20\x8c\x3d\x9a\x9f\xf6\x00\xdb\xb6\ \x18\xed\x8f\x93\x4a\x18\xac\x6b\xe9\x00\x20\x97\x19\xa9\x9e\xa0\ \x0b\x35\xd3\xd6\xbe\x8c\x2b\xb6\xb6\xbc\x8e\x33\x48\x0d\x2c\x76\ \x02\xc8\xdf\xf8\x87\xe6\x2d\xba\x53\xbb\x7e\xdb\x25\x97\x81\xa3\ \xb5\xda\xf8\x76\x11\xf2\x03\xe2\xff\x39\x9d\xc9\xa1\x71\x26\x47\ \x26\xb0\xe2\xd5\x3a\x46\x28\x35\xba\xbc\x68\xa1\x6a\xda\xb4\x07\ \xd8\xb6\xc5\x58\x5f\x1c\x55\x95\x98\x18\xcd\xb3\xaa\x41\xdc\xdf\ \xc8\x4e\x82\x55\x22\x94\xa4\x81\x16\xa0\xa9\xb9\x9d\xae\x76\xcf\ \x56\xa0\x15\x31\x1a\x98\xf7\x72\xb2\x8b\x9d\x00\x4a\x73\x83\xf3\ \x0b\x4b\xbb\x56\xe0\x08\x87\xc1\xb9\xa4\x7a\xa4\x58\xed\xa1\x96\ \x5d\x2d\x63\x9f\xcd\xcd\xe2\xa9\x95\xa9\x94\xb2\xa9\x45\x62\x3c\ \x43\x26\x95\x63\x72\x3c\x4b\x7c\x28\xc3\x86\xa6\x6a\x4a\x3a\xa9\ \x1a\x29\xe0\x68\xc0\xa5\x7b\x89\x34\x77\xf2\x57\x6f\xd1\x5e\x45\ \x55\x0d\x9c\x23\xc0\xe9\xfa\x6d\x3b\x3f\xdf\xf1\x1e\xb7\xae\x5f\ \xba\x6e\xc3\x26\x90\x65\x30\x6b\x7a\x77\xfe\x78\xf5\x44\x6f\x10\ \x45\x55\x90\x65\x09\x4f\xd8\x3f\xcb\xdd\x64\xf2\x85\xfa\x4a\xf6\ \xc9\xc9\x2c\xb1\xf1\x14\xb6\x05\x07\x1f\x1f\x65\x73\xcb\xb2\xba\ \xd8\x40\x9d\x1d\xa0\xb7\x01\xd0\xd4\xdc\xc6\xa6\xb5\xe1\x4b\x11\ \xb9\x8c\xf3\xae\x06\xce\x08\x4b\xf4\x34\x41\xd3\x1d\xf2\x47\x57\ \xae\x5e\x0f\xae\x92\x43\x27\x73\x10\xa2\xfb\xc0\xa9\x42\x6d\x90\ \xca\x15\x26\xd0\xf6\xc2\x37\x54\x24\x89\xd8\x78\x06\x7f\x44\x23\ \x36\x96\x21\x15\xcb\x60\x99\x36\x03\x3d\x71\xb2\xe3\x45\x2e\xbe\ \x68\x75\xdd\xf9\xb9\xcc\x08\x15\xd9\xe2\x68\x00\xa0\x29\xd2\x49\ \x57\xa7\xf7\x22\x18\x69\x41\x54\x2b\xd7\x98\xc7\xba\x47\x8b\x55\ \x02\xc8\x77\x7e\xb6\xed\x3a\x97\x4b\xef\x5c\xda\xb5\x1c\x4a\xba\ \xdb\x4a\xe6\x98\x1c\x4b\x90\x8f\x66\xaa\x67\xce\x30\xd6\xaf\xa0\ \x56\x62\x00\x8d\x4d\xcd\x8c\x1f\x9d\xe4\xf9\x67\x46\x89\x8d\x26\ \x29\x16\x4c\xb2\x69\x83\x7d\xbb\x47\xb8\xbc\x6b\x15\x2e\xa5\xde\ \x46\xa8\xb3\x03\x00\x1c\x8d\x28\x0e\xad\xac\x06\xfe\x07\xc2\x0e\ \x98\x57\x35\xb0\x58\x09\xa0\x79\xdd\xea\x8d\xab\xce\x5b\x8f\xec\ \xa8\x3a\x6a\xe4\x92\x78\x76\x68\x35\x3f\x5b\x3a\x81\x04\xb6\xeb\ \xa3\x7d\x8a\xac\x62\x5b\x36\xb6\x25\x3a\x6b\xd1\xb0\x78\xea\xf7\ \x83\x78\x8b\x12\xdd\xc1\x08\xb6\x3d\x43\xa8\xbf\xd6\x0e\x70\x09\ \xd7\x71\x28\x1c\xa9\x55\x03\x4e\xe6\x51\x0d\x2c\x46\x02\x54\x7a\ \x7f\x67\x67\x17\x38\x6b\x7a\xa5\xee\x20\xdc\xd9\x80\xe4\xab\x2e\ \x5e\x85\xa2\x9f\xf4\x8d\x6b\x73\x1b\x2c\xdb\xe6\xd8\xe1\x49\xe2\ \x23\x39\x36\xb8\x03\xa5\xe3\xd3\x3f\xa7\x55\x3b\x1c\x74\x8a\xe1\ \x60\x53\x73\x3b\x6d\xcd\xee\x75\x88\xec\xa3\x79\x2d\x90\xbd\x18\ \x09\xa0\x06\x7c\xa2\xf7\x2b\xaa\x2c\x8c\xbf\x13\x41\x7a\x11\x04\ \x90\x81\x52\x4e\xc0\xf8\x40\x8a\xc3\x7b\x27\xb8\x38\xd2\x8a\xc7\ \xe9\xaa\x1e\x9f\x02\x23\x73\xbc\x2a\x49\x34\x11\x20\x72\xe9\x5e\ \x02\x01\xbf\xfb\xea\x8b\xd9\x86\x30\x04\xe7\x2d\x36\xb0\xd8\x08\ \x20\xdf\xfa\x8f\xcd\xaf\x76\x38\x44\xef\x97\x1c\xce\x97\x7f\xc7\ \x1a\xb4\x34\xb7\x61\xc5\x0d\x06\x7a\x93\x3c\xfa\xdb\x41\xae\x5e\ \x73\x3e\x4d\x4e\x37\x6e\x8f\x17\xcd\xe9\xc0\x30\x66\x58\xef\xca\ \x36\x20\x7d\xac\xfa\xb7\x47\xd4\x2e\x08\x86\x9a\xd8\x7a\x81\x77\ \x33\xd5\xe0\xd0\xbc\xa8\x81\xc5\x46\x00\x25\xe8\xd7\xfe\xba\xbd\ \xa3\x4b\xfc\xe5\xd0\x5e\xd6\xcd\xb0\xb3\xd3\x76\xa5\x93\x06\x8f\ \x3e\x38\xc8\x96\x8e\x2e\x36\xb4\xb4\x93\x4a\xa7\xf0\xfb\x02\x38\ \x35\xad\x62\x1b\xd4\xbd\x90\xa2\x40\xf2\xb9\xaa\x14\x28\x79\x05\ \xc3\x8d\x11\x96\x2f\xf1\xaf\xa7\x6a\x08\xce\x4b\x5b\x2c\x26\x02\ \x48\x9f\xf9\xeb\xc0\x0a\xa7\x43\x7e\xfd\xf2\xee\xd5\xc8\x8a\x2c\ \x42\xb2\xca\xcb\x08\xbf\x9b\xf5\x04\x90\x55\x89\x42\xca\x62\x5b\ \xd7\x12\xae\x5a\xb5\x06\x80\x58\x34\x8a\xdb\xed\x45\x73\x88\x67\ \x14\xf2\x06\x45\xd3\x22\x97\x37\x91\x24\x19\x45\x55\x44\xe3\x67\ \x4b\x35\x0a\x4a\xc1\xa1\x50\xb8\x89\x86\xa0\xb3\x0b\x41\x80\x79\ \x33\x04\x17\x13\x01\xe4\x95\x4b\xfd\xef\x6a\x6d\x5d\x8a\xa6\x69\ \xc8\x9a\x07\x5c\x5d\xa0\x75\x8a\x7f\xa5\x53\xa3\x0e\xda\x43\x01\ \x5e\xbb\x7a\x1d\x00\xc9\x54\x12\xa7\xd3\x85\xaa\x2a\x68\xa5\xac\ \xa2\xa2\x65\x31\x34\x92\x60\x6c\x22\x49\xb6\x60\x22\x95\x6d\x90\ \xf4\x73\xd5\x9b\x38\xdb\x70\xe9\x5e\x74\x8f\xd3\x7d\xe1\x4a\xd6\ \x22\x24\xc0\xbc\xb8\x85\x17\x13\x01\x54\x87\x26\x5d\xd3\xb1\xb4\ \x4b\xfc\xe5\x6a\xa4\xda\xa9\x14\x50\xfc\x2f\xf1\xb6\x55\x38\x03\ \x61\x12\x89\x78\xe5\xef\x78\x2c\x8a\xc7\xed\xc1\xe1\xaa\x92\x2b\ \x1a\x4b\x01\xe0\x70\x68\xc8\x72\x8d\x71\x6f\xc4\xc5\x06\xe0\x14\ \x4e\xa1\x80\x37\xc4\x8a\x25\xb4\x53\x1d\x09\x9c\x23\xc0\x4b\xfd\ \x1d\x77\x7c\xa6\xed\xcf\x74\x5d\xef\x6c\x6c\x28\x85\x75\xe5\xa9\ \x12\xf5\x25\x38\xda\xca\xb9\x02\x65\x68\x8e\x3a\x57\x6f\x32\x99\ \xc6\xef\x0f\xe0\xaa\xb1\x35\xbc\xba\x13\x5d\x77\xa2\xeb\x3a\x1e\ \xf7\x94\x3a\x05\xf9\x92\x1a\x50\xdc\xa0\xb8\x09\x36\x36\xb3\xba\ \xdb\xdb\x4d\x55\x02\xcc\xb9\x1a\x58\x2c\x04\x50\x74\xa7\xf2\xa6\ \x8a\xf1\x07\x40\xac\x6a\x78\xd9\x79\x28\x46\x4f\xc9\x83\x24\x09\ \x14\x45\x7c\xb6\x54\x3a\x89\xdb\xed\xc5\xe1\xaa\x6d\x68\x8b\xee\ \x65\xcd\x2c\xe9\x0c\xe3\xf1\x4c\x51\x3b\xd9\x9a\xd8\x80\xc3\x8f\ \xae\xbb\xe9\xee\xf4\xad\x47\x48\x00\x8d\x79\x68\x8f\xc5\x12\x0b\ \x50\x9d\x0e\xae\x5e\xb2\x64\x79\xcd\xae\x22\xe4\x7b\x5e\xf8\xca\ \xe2\xa4\xf8\xfc\x53\x61\xcf\xbe\x84\xb1\xc3\xa1\x91\x4c\xa5\x49\ \x25\x93\x34\x36\x35\x21\x97\x1c\x00\xb2\x22\xe3\xf1\xf9\x90\x54\ \x1d\xac\xe9\x79\x03\x18\x71\x41\x4a\x49\x03\x2d\x88\xae\x7b\x71\ \x38\x95\xf2\x82\x18\x2a\xf3\x40\x80\xc5\x20\x01\xe4\xdb\x3f\xd5\ \xfa\xa7\x5e\x6f\xc8\xaf\xbb\xdd\x00\xa8\xda\x8b\xe0\xb5\x99\x9a\ \x79\xff\x54\xf1\x5f\x03\x55\x55\x88\x46\xa3\xf8\xfd\x01\xbc\x1e\ \xe1\x48\x92\x15\x19\x9f\x3f\x88\xcb\xbf\x1a\xf4\x65\xe0\x98\x25\ \xc3\xc8\x48\x94\x6e\x12\xc0\xe7\x0d\xd1\x18\x72\x2e\xe1\x9c\x11\ \xf8\xf2\x7e\x83\xee\x54\xae\x08\x85\x1b\x4f\x7c\x56\xce\x98\x79\ \xbf\x5d\x10\xa9\x61\xb5\xb0\x92\x90\x3d\x30\xe3\xe9\x91\x48\x13\ \xb9\x7c\x06\x45\xb1\x69\x69\x6d\x46\x55\x55\x64\x45\xc6\xeb\xd1\ \xd1\x5c\x21\x2a\x4b\xe4\x2a\xb3\x8c\x3a\x0a\xe3\xa5\xb7\xd6\x50\ \xaa\xb6\x43\x59\xff\x9f\xb3\x01\x5e\x02\x14\x87\x26\x5d\xd6\xd2\ \xd6\x3e\xf3\x51\xc3\x24\xd6\x1f\x65\x72\x2c\x41\xac\x3f\x0a\x33\ \x24\x75\x90\x7f\xa6\xea\xf4\x31\x06\x20\xf5\x78\x35\x57\x70\x0a\ \x24\x59\x74\xd2\x54\x32\x46\xa4\x31\x52\x69\x7c\x49\x96\x28\xe6\ \x63\x60\x95\xee\x5f\x4c\xcf\xfc\x3e\x66\xfd\x7d\x75\xdd\xcb\x05\ \xcb\x59\x49\x55\x02\xcc\xa9\x14\x58\xf0\x36\xc0\x3b\x5f\x4f\x83\ \xa2\x48\xeb\x2a\xd6\xff\x14\x14\x53\x79\xac\x52\x94\xce\xb2\x2d\ \xf2\xc9\x1c\xce\xb0\xa7\xfe\x24\x33\x0b\x89\xff\x3e\xe9\x67\x26\ \x93\x71\xa2\x93\x13\x9c\xb7\x66\x23\x1e\xb7\xab\x42\x0a\xdb\xca\ \x93\x89\x1d\x20\xe0\x69\xc5\xb6\x2c\xcc\xa2\x85\xea\x98\xf2\x89\ \xcb\x2a\xa0\x04\xdd\xe5\xa6\x29\x8c\x8f\x63\x15\x09\x30\xa7\x4b\ \xe7\x2e\x74\x02\xc8\xaf\xb8\x30\xb2\xc9\xeb\x0d\xce\x7a\x82\x39\ \x65\xfe\x9e\x52\x8e\xe8\xe5\x0c\x70\xbd\x34\x57\x71\xff\xf1\x3e\ \x9a\x9b\xdb\xf1\xf9\x7c\xc2\xe3\x38\xf5\x99\x45\x93\xe1\x91\x04\ \xa6\x65\xe3\xf7\xb9\x08\x06\xdd\x27\xbc\x9f\x65\xd7\x2d\x9e\x7d\ \x4e\x02\xbc\x08\x48\x7e\x8f\xb6\xd1\xe7\x9b\x3d\xa9\xc3\xe9\xd7\ \xc9\xe5\x0c\x4c\xd3\x44\x51\x14\x54\x5d\x23\x3e\x18\xc3\x34\x4d\ \x64\x49\x26\xd8\xec\x07\xed\xc5\xa9\xde\x65\xdd\xe7\xd1\xd8\x10\ \xa9\xf3\x09\xd4\x22\x95\x2e\x60\x96\xe2\x02\x85\x99\x54\xce\x14\ \xd8\xf3\xb3\x7a\x3a\xb0\xf0\x09\x20\x17\x8b\x76\xb0\x6c\xfd\x97\ \x51\x34\x8a\xd5\x1f\xa6\xca\x04\xda\x82\x95\x63\x56\x22\x8b\x69\ \x8a\x46\x99\x55\x25\x9c\x04\x9c\xae\x99\x8d\x3c\x4d\x73\xe0\xf5\ \x38\x48\xa5\x72\x98\x96\x8d\x2c\x89\xa9\xe4\x65\x48\x85\x71\x1c\ \x8d\x27\xfb\x94\xd3\x8f\x05\x4f\x00\x9f\x57\xbd\xd4\x1f\x0c\x4d\ \x3f\x62\xdb\xf5\x79\x7f\xa7\x10\x66\xb1\x88\xaa\xce\x6c\x3f\xcb\ \x92\x84\xa2\x2a\xb4\xb7\x87\x66\xbe\xb8\xdc\xfa\xd6\x2c\xa3\x92\ \x39\xc6\x42\x1f\x05\xc8\x86\x61\x4a\xda\x0c\xf9\xfa\xd5\xf1\xd8\ \x94\x0b\xdc\x4e\x11\xa2\x05\x64\x49\xc6\xe9\x7b\xe1\xa2\x91\xb5\ \x68\x68\x6c\x22\x9d\x4e\xce\x7a\x5c\x51\x4f\xf2\x93\x16\xe3\x27\ \x77\xde\x69\xc6\x42\x97\x00\xb3\xc3\x28\x82\x3a\x83\x8e\x2e\xab\ \x04\xc3\x9c\x55\xf7\x17\xa3\x19\x12\x29\x31\x2c\x74\x3a\x35\x3c\ \x11\xdf\x34\x69\x62\x18\x06\x33\x11\x4f\xd5\x5e\x78\x59\x1b\x71\ \x83\x18\x00\xd9\x5c\x25\x41\x75\x5e\x56\x2c\x59\xe8\x12\x60\x76\ \x14\x8b\x27\x3e\x3e\xb5\xf1\x15\x1d\x5c\xdd\xc0\x32\x52\xf9\x6a\ \xbf\xc8\xe7\x8d\xfa\x2c\xe2\x12\xb2\xd9\x02\xd6\x0c\x52\xc6\xf9\ \x42\x49\x28\xa5\xc4\x50\x0a\x89\xd2\x7d\x52\x3c\xb8\x87\xfd\x54\ \x6b\x0a\xce\x29\x09\x16\x2d\x01\x8a\x86\x21\xec\x80\x93\x85\xe4\ \x01\x14\xb0\x2c\xd4\x52\x0e\x7f\xe5\x5e\xc5\xaa\x25\x5f\xce\xfa\ \xb1\x2d\x9b\x54\x3a\x5b\x97\x05\xa4\xaa\x0a\x6a\x0d\x01\xcc\xa2\ \x49\x3e\x5f\xac\xdb\x90\xdd\x60\x66\xc0\xcc\x60\x16\x2a\x76\x80\ \x49\x75\xb9\x9a\x39\x25\xc0\xe2\x55\x01\x20\x26\x7c\x3a\x1c\xa2\ \xd0\x83\x56\x9a\xf9\x61\x0c\xce\xec\xff\xb7\xc5\xb2\xf6\xc8\x32\ \x66\x49\x3c\x57\x3e\x52\x8d\x2a\x29\x8f\x20\x40\x90\xc0\x30\x8a\ \x38\x4a\x99\xc7\x53\x47\x23\x8a\xaa\xa0\x4c\xfd\xc2\x9a\x1f\xf2\ \x13\x00\x24\x53\x51\xfa\x06\xd3\x87\x11\x8d\x3f\x2f\x4b\xd4\x2c\ \x78\x09\x70\xc2\xf5\x04\xcb\xb3\x7d\xe5\x6a\xa5\x0f\xe4\x59\x12\ \x43\xcc\x14\xe4\x7b\x41\x1a\xc0\xa5\xe5\x2a\xbb\x1d\x9a\x8a\x33\ \x34\xbb\x23\xa7\x9c\x08\x2a\x49\x32\x1e\xcf\x89\x1d\x3e\xe5\x49\ \xa2\xe4\x07\x01\x48\x24\xa2\x4c\x26\xf2\xe3\x54\x57\x2f\x9b\xf3\ \xc5\xaa\x16\xbc\x04\xb0\x6d\x12\xd9\x4c\x06\x4a\x52\x3b\x9b\x35\ \x48\xa4\x73\xc8\xb2\x84\xcf\xeb\xc2\xeb\x71\x83\x95\xaa\x66\x04\ \x59\x89\x13\xdc\x4c\x10\xc6\x19\xf6\xe0\xf4\xeb\x42\x85\xbc\x80\ \x93\xa8\xac\x1e\x42\xa1\x40\x35\xfd\x6b\x36\xe8\x2d\x42\xfc\x97\ \xf2\x03\xa3\x93\x63\xf4\xf6\xa7\x7b\x39\x8d\x8b\x4f\xbc\x10\x16\ \x3a\x01\xec\x74\xb6\xf8\xc7\x4c\x3a\xf5\x1a\x10\x8d\x31\x3a\x59\ \x15\xef\xb9\x7c\x11\xb7\xdb\x85\xec\x97\xc1\xea\x2d\x5d\x51\x1f\ \x8c\xa9\xb5\xf8\xdd\xba\x13\x57\x83\x47\x58\xfc\x27\x18\xce\x29\ \x35\x72\xdd\xb2\x2d\xb2\x79\x18\x19\xcf\xa0\xc8\x59\x9a\x23\xbe\ \xe9\xfe\xff\x32\x5c\x6d\x90\xed\xab\xfc\x39\x39\x39\xcc\x6f\x1e\ \x29\xec\xa7\xbe\xa6\xf0\x9c\x62\xa1\xab\x00\x2b\x9e\x32\xf6\x4f\ \x4c\x88\x70\x6e\x71\x4a\x5a\xb6\x65\xd9\x64\x32\x39\x28\x5a\xa2\ \xe1\xa7\x46\xf8\xd2\xf9\x4a\xe3\x03\x64\xb2\x79\xac\x64\xee\x84\ \x0f\x1c\x1f\x1b\xc3\xe3\x15\x75\x03\x1c\x4e\x0d\xdd\xed\xad\xa4\ \x9f\x99\x96\xcd\x64\x3c\x3b\xf3\x85\x8a\x5b\xe4\x02\x26\x45\x72\ \x68\x2a\x1e\x25\x16\xcd\x4c\x1c\xea\xe7\x30\x62\xa9\xba\x79\x51\ \x01\x0b\x9e\x00\xfb\x0f\x47\x9f\x4e\x25\x85\x58\x57\x66\xf0\xfc\ \xa9\xb2\x04\xd9\xcc\xcc\x17\xcf\x30\x8c\xcb\xe6\x4e\xec\xa1\xf3\ \xfb\x75\xc2\xa1\x00\xcd\xcd\x8d\x84\xc3\x41\x54\x55\xad\x1b\x25\ \x4c\x83\xec\x04\xf7\x72\x08\x5f\x0a\x46\x0e\x34\xe1\x21\x1c\x1c\ \xec\xe1\x58\x7f\xf2\x10\xa2\x90\x74\x86\x93\xac\x23\x7c\xaa\xb1\ \xe0\x09\x70\xdb\xbd\xd6\xb1\x7c\xbe\x30\x90\x88\x47\xd1\x34\x85\ \x86\x90\x5b\x0c\xc7\xd4\xea\xff\x8b\x46\x11\x72\xd3\x53\xb4\x66\ \xf2\x14\x3b\x5f\x20\x9b\x48\xd3\x14\x34\x87\x5a\x09\x01\x7b\xdd\ \xf5\x89\xa2\x7e\x6f\x8d\x67\x51\x92\xc1\xb5\x04\x64\x1d\xb4\x30\ \xe4\x46\xc4\xbf\x8e\x46\xc6\x46\x06\xf8\xd6\x5d\xd1\x5f\x20\xd6\ \x1d\xca\x31\x4f\x53\xc4\x17\xbc\x0d\x00\x14\x33\xb9\xe2\xee\xe3\ \xc7\x7b\xff\x6c\xfd\x86\x10\x5e\xb7\x13\xaf\x7b\x7a\xa0\xc6\xcc\ \xe6\x50\x54\xad\x4e\xb7\x4b\x5e\x17\xce\xac\x41\x3e\x2f\x7a\xbd\ \x43\x53\x51\x83\x27\x98\x2b\x58\x9c\xde\x41\x25\x59\x22\x12\x76\ \xa3\x39\x5c\xa8\x8a\x88\x03\x54\x20\xfb\xc4\xec\x63\xbd\x0d\x72\ \xc7\xc1\x16\x92\x62\x72\x2c\xc1\xe8\x58\x74\xe2\xc8\x10\xcf\x20\ \x0a\x48\x67\x11\x04\x98\x73\x2c\x74\x09\x60\x03\xc5\xa1\xf1\xdc\ \x2f\x46\x47\x06\x4e\x7c\xa2\x6d\x63\x67\x52\xf5\xce\x21\x49\xc2\ \xd3\xe4\x27\xdc\x12\x24\x1c\xf1\xe3\x6d\x09\xbc\x40\x00\x69\xf6\ \x0e\xea\x74\xaa\x28\x9a\x4b\x88\x7b\xcf\x79\xa2\xee\x80\xac\x88\ \xd4\x30\xd9\x01\xf9\x52\x56\x72\xb1\xc8\xd8\xd8\x10\x3f\xbe\xff\ \xf8\x3d\x88\xc6\x2f\xaf\x35\x34\xe7\x06\x20\x2c\x7c\x02\x00\x98\ \x1f\xba\x25\xfa\x93\x64\x3a\x33\x38\x3e\x31\x7a\xe2\x13\x8b\x16\ \xa4\x66\xb0\x07\x34\xa5\x3e\x39\x44\xf1\x82\x6b\x15\xf8\x5f\x09\ \xbe\x4b\xab\x25\xe4\x2c\x93\x89\xf1\x31\x42\xa1\xc6\xe9\xf7\x05\ \x31\xc6\x2f\x97\x97\x75\xf8\xa1\x98\x04\x67\x13\xa4\x7b\xc5\x3e\ \xdb\x22\x36\x39\x4e\x7f\x7f\xef\xc4\x77\xee\xe3\x97\x88\x35\x86\ \x52\x08\xfd\x7f\xae\x42\xc8\x4b\x84\x09\xe4\x63\x89\xc2\x0f\x8f\ \x1c\x3a\xf0\x82\x27\x17\x0d\x03\xd2\x99\xd9\x4f\x90\x1c\xc2\x6b\ \xa8\xfa\xc5\xe7\x91\x4a\x45\x25\x15\x2f\x98\x33\xb7\x51\x2a\x93\ \x63\x60\x20\xca\x40\xdf\x00\xe9\x44\x1a\x6c\x0b\xcc\xbc\x48\x01\ \x8f\x3f\x55\xa9\x12\x62\xe6\x0d\x7a\x9f\xdd\xc3\x1d\xdf\x7b\xe0\ \x1e\x44\xe3\xc7\x98\x47\xf1\x0f\x8b\x83\x00\x16\x50\xf8\xe7\x6f\ \x8d\x7c\x7d\x62\x62\x3c\xf5\x42\x52\x00\xa0\x98\x2f\xcc\x4e\x82\ \x8a\xc3\xa8\x66\x34\x60\x17\x40\xf6\x63\xe5\xa6\x0f\x11\x0d\xc3\ \x62\x32\x9a\xa1\x68\x5a\x98\x85\x34\x93\x23\x07\x89\x0d\x1d\x82\ \x42\xe9\x3d\x0a\xe3\x90\x7d\x0e\x2b\xdd\xc3\xa1\xbd\xf7\xf2\xcc\ \x81\xdf\xf5\xdf\xf1\xb3\xc2\x7d\x88\xc6\x4f\x72\x8a\x96\x9a\x7b\ \xa9\x58\x0c\x04\x00\x28\x1e\x1e\x64\x68\x6c\x32\xf7\xed\xa3\x33\ \x48\x01\xc3\x30\xe9\x1b\x8a\xd1\x37\x14\xab\x94\x7a\x3b\x21\x09\ \x00\xac\xac\x48\x17\x37\x46\xa1\x98\x00\x59\x21\x16\x9b\x20\x18\ \xac\x17\xff\xe5\x61\xa3\x59\xca\x06\xb6\x4d\x83\x42\x61\x4a\x46\ \xb0\x6d\x31\x3a\x70\x8c\x81\xe3\x07\xb8\xe9\x4b\xfd\xdf\x00\xa2\ \xa5\x2d\x8d\x18\xff\xcf\x1b\x16\x0b\x01\x2c\x20\xff\xfe\x4f\x8d\ \xdd\x3c\x32\x3a\x3e\x74\xec\xd8\xe1\xba\x83\xa9\x4c\x01\xcb\xb2\ \xb1\x2c\x9b\x58\xb2\x80\xe2\x5e\x8a\xea\x5b\x83\xad\xb4\x62\x27\ \xd2\xf5\x86\xa1\x5d\xd3\x78\xb6\x51\x9d\x5e\x66\xa6\x88\x27\xa7\ \xbb\x91\x15\x55\x18\x8d\x56\x4d\x90\x48\x9e\x62\x47\xa6\xe2\x09\ \x8e\x1c\x7a\x9c\x7b\x7e\x7d\xfc\xfb\x47\x86\x78\x1a\x18\x47\x48\ \x80\x1c\xf3\xd8\xfb\x61\xf1\x10\xc0\x46\xf4\xa4\xe4\x23\x7b\x46\ \xff\xef\xb3\x47\x0e\x92\xcd\x54\x7b\xb7\x56\x53\x14\xca\xed\x6b\ \x42\x52\x44\xd0\x46\x52\xdc\xa0\x36\x62\xc6\x12\x50\x76\xe6\x98\ \xd9\xe9\xf3\x08\xcd\x14\x18\x93\x64\x52\x29\x42\xe1\xfa\xaa\xe2\ \x1e\xdd\x81\xd3\xa1\x62\x96\x9c\x4a\x8a\x2c\x11\xf4\x57\x87\x92\ \xc5\x82\xc1\x53\x7b\x1e\xe6\xb1\xa7\x06\x1e\xfd\xb7\xbb\x8d\x1f\ \x20\x4a\xc3\x4d\x22\x7a\xff\xbc\x58\xfe\xb5\x58\xe8\x7e\x80\x5a\ \x58\x40\xee\x4b\x3b\xf3\xf7\xaf\x5e\x96\xbc\xeb\xf1\xc7\x7e\x77\ \xcd\x15\x57\xbe\x16\x00\xaf\xdb\x59\x71\xf0\x38\xbd\x53\x7c\x04\ \x92\x82\x6d\xdb\x14\x13\x49\x64\x45\x25\x91\x32\xc0\x8e\x12\x6c\ \x0c\x82\xc7\x0d\x96\x25\x26\x97\x9a\x16\x89\x78\x8c\x50\x78\x7a\ \x55\xf1\xa6\x46\x2f\x45\xd3\xc6\xe7\xf7\xe1\xd0\xe4\x4a\x50\xc8\ \x2a\x9a\x1c\xd8\xb7\x9b\xfe\xa1\xf1\xfe\x0f\x7d\x29\xfa\xef\xc0\ \x28\x82\x00\x71\xe6\xc9\xf3\x37\x15\x8b\x45\x02\x40\xc9\x27\x00\ \xa4\xae\xff\xec\xd8\x8d\xe3\x13\x93\x47\xf7\x3e\xf9\x58\xe5\xa0\ \xa6\x29\x68\x9a\x82\x5d\x4c\x56\x1c\x32\x00\x96\x51\x9d\x03\x38\ \x19\x4b\x11\x8d\xc7\x29\x18\x05\xd2\x89\xa4\x90\x06\x76\xc9\x83\ \x58\x2c\x92\x48\xc4\xf0\xcc\x92\x82\xae\x2a\x12\xaa\x42\xa5\xf1\ \xf3\xb9\x1c\xfb\xf6\x3e\xca\x33\x87\x9f\xed\xbf\xe6\xc3\xfd\x9f\ \x00\x7a\x10\x2b\x87\x45\x11\xa2\x7f\xde\x7b\x3f\x2c\x2e\x02\x40\ \x69\x44\x00\xc4\xbf\x71\xd7\xe0\xfb\xfa\xfb\x7b\x53\x7d\x7d\xbd\ \x75\x27\xd8\x66\x1e\x33\xdd\x83\x99\x7d\x1e\x33\xf5\x2c\x76\xb1\ \xaa\x2a\x9c\xaa\x82\x65\xda\x24\x53\x19\x0c\xa3\x20\x12\x4a\x4a\ \xc8\x25\x12\x24\x93\x49\x4e\x34\x07\x21\x95\xcc\x50\x2c\x18\xa4\ \x93\x49\x9e\xf8\xc3\x6f\xca\x8d\x7f\x13\xa2\xf1\x87\x81\x09\x84\ \xe8\x9f\xb7\x61\xdf\x54\x2c\x26\x15\x50\x86\x09\x64\x7f\xbb\x97\ \x03\xe1\x50\xdf\xb5\x36\xdc\x0e\x78\x3b\x3b\xbb\x2a\x27\xd8\xb6\ \x01\xc5\xe9\xc6\xb7\xae\x6b\xb4\x35\xf9\x31\x6d\x1b\x97\x43\xa5\ \x98\xac\x1a\x84\x87\x8f\x1c\xc5\xe5\x0e\x9f\xf0\xc1\xb6\x6d\x31\ \xd8\x7f\x9c\xa3\x47\x9e\xe4\xa9\x83\xa3\xbf\xff\xd0\x2d\xd1\xaf\ \x20\xc4\xfe\x30\x42\xf4\xa7\x10\xb6\xca\xbc\x38\x7d\x66\xc2\x62\ \x24\x40\xd9\x20\x4c\xfd\xf0\xb7\xec\x32\x8c\xbe\xf7\xfc\x85\xcd\ \x6d\x80\xa7\x96\x04\xb3\x41\xd3\x14\x66\x4a\xeb\x3c\xde\xdb\x43\ \x30\x14\x99\xf5\xba\x62\xd1\xa0\xff\xf8\x51\xfa\xfb\x7a\xb2\xdf\ \xff\x45\xcf\xce\x3b\xef\xe3\xe7\x88\xc6\x1f\xa1\xda\xf3\xe7\xcd\ \xe3\x37\x1b\x16\x23\x01\x40\x7c\xe4\x02\x90\xb8\x77\x17\x0f\x43\ \xdf\x75\xc0\x6d\xf1\x58\xd4\xb3\x7e\xc3\xa6\x17\x7d\xb3\x6c\x36\ \xcb\xc0\xc0\x10\x4b\xba\x56\xcf\x78\x7c\x64\xa8\x8f\xe1\xa1\x67\ \x79\xee\xf9\x89\x23\xff\xe7\x93\xc3\xff\x96\x32\x39\x82\xe8\xf1\ \x63\x88\xe1\x5e\x86\x33\xac\xe7\x97\xb1\x58\x09\x00\x25\xdf\x00\ \x10\xbf\x77\x17\xbf\x83\xbe\xeb\xde\xf6\x06\xf3\xe6\x6c\x26\xbd\ \x7c\xe3\xe6\x6d\x33\xe6\xf4\xcf\x86\xc3\x87\x0e\xd1\xd0\xd8\x84\ \xd3\x51\x3f\x89\x64\x62\x6c\x98\x91\xe1\x5e\x86\x46\x46\x27\x7e\ \xf2\xeb\xe3\xf7\x7c\xe7\x3e\x7e\x81\x18\xe2\x8d\x97\xfe\x4d\x50\ \x35\xf8\xce\xb8\xc6\x87\xb3\x63\xed\x60\x19\x51\x04\x26\xe0\x92\ \x58\xfe\xb5\x9b\x9a\x3f\xdf\xd1\x12\xbc\xf4\xfc\x4d\x5b\x99\x6d\ \x4a\x79\x2d\x0c\xc3\xe0\x47\x3f\xfc\x01\xdd\x2b\xd7\x13\x0c\x84\ \xf1\xfb\x3d\x4c\x4e\x0c\x33\x32\xd2\x4b\x2c\x9e\x2a\x37\x7c\x39\ \xb0\x13\x45\x34\x7c\x9c\x6a\x92\xc7\x8b\xb6\xf6\xcf\x2d\x1e\x7d\ \xea\x51\x26\x81\x17\x68\xb8\xe9\xfd\xde\x1b\xd6\xaf\x0e\xbd\xbb\ \x7b\xf9\x4a\xcf\xea\xf3\xd6\x9f\x50\x1a\x3c\xb6\x7b\x17\xa3\xa3\ \x31\x42\xe1\x08\xb1\xd8\x38\x32\x19\x8e\x0f\x65\xf6\xee\x7e\x7a\ \xfc\x89\xef\xfc\x82\x5f\x22\x7a\x79\xac\xb4\x25\x10\x0d\xff\xb2\ \x12\x3c\xce\x11\xe0\xf4\x40\x46\x54\xe2\xf2\x00\xc1\xf3\x3a\xd8\ \x70\xe3\xfb\x5b\x3f\xd5\x10\xd2\x37\xac\x5d\xbf\x89\xa9\x06\xa2\ \x61\x18\xec\x7d\x72\x37\x23\x23\x03\x44\xe3\x59\xfa\x87\xb2\x7b\ \x87\x27\x8c\x83\xdf\xfd\x89\xf1\x68\xdc\xe0\x79\x44\x20\x27\x89\ \x68\xf4\x24\xa2\xe1\xcb\xc9\x9d\x2f\xcb\xc1\x73\x8e\x00\xa7\xf1\ \x75\x10\x76\x8f\x0b\xb1\x7e\x5f\xe8\x4f\xaf\xe4\xd5\xd7\xbc\xb1\ \xe3\x46\x7f\xc0\xdb\x14\x0e\x46\xd0\xdd\x6e\xb2\x99\x0c\xa3\xa3\ \x83\xec\x3b\x3c\xfe\xfb\x9d\xf7\xc6\x1f\xdc\xd7\xcb\x21\xaa\xc6\ \x5c\xba\x66\xcb\x20\xc2\xb9\xa7\x34\xaf\xff\x1c\x01\x4e\x3f\x14\ \x44\x65\x2e\x37\x25\x22\x5c\xb2\x96\x2d\x97\x6d\x71\x6d\xd5\x5d\ \xaa\x3f\x91\x34\xb2\xb7\xff\x28\xff\x87\x58\x9e\xe3\x88\xb1\x7b\ \x0a\xd1\xe0\x59\x44\x2f\x2f\x6f\xe5\x54\xee\x53\xea\xd2\x3d\x47\ \x80\x39\xfa\xed\x08\x69\xe0\x44\x10\xc1\x43\x75\x01\x07\x05\xa1\ \xc3\xcb\x19\xbb\x59\xaa\xa9\xdb\x26\xd5\x46\x3f\x2d\x1f\xef\x1c\ \x01\xe6\x16\x32\x55\x89\xe0\xa0\xba\x78\x83\x85\x68\xf0\xf2\xac\ \x9d\x53\xde\xd3\x67\xc3\x5c\x12\xe0\xff\x03\x10\xe2\x7d\x58\x4a\ \x1a\xc9\x2c\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\x74\x65\x3a\ \x63\x72\x65\x61\x74\x65\x00\x32\x30\x31\x30\x2d\x30\x32\x2d\x31\ \x31\x54\x31\x31\x3a\x32\x39\x3a\x31\x39\x2d\x30\x36\x3a\x30\x30\ \x69\xe3\x50\x98\x00\x00\x00\x25\x74\x45\x58\x74\x64\x61\x74\x65\ \x3a\x6d\x6f\x64\x69\x66\x79\x00\x32\x30\x30\x36\x2d\x30\x35\x2d\ \x30\x38\x54\x31\x30\x3a\x33\x37\x3a\x32\x34\x2d\x30\x35\x3a\x30\ \x30\x1e\xe3\xe9\x9d\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x0b\xd7\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x30\x00\x00\x00\x30\x08\x06\x00\x00\x00\x57\x02\xf9\x87\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ \x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x00\x0e\x74\x45\ \x58\x74\x54\x69\x74\x6c\x65\x00\x43\x6f\x6d\x70\x75\x74\x65\x72\ \xf8\x18\x12\x76\x00\x00\x00\x17\x74\x45\x58\x74\x41\x75\x74\x68\ \x6f\x72\x00\x4c\x61\x70\x6f\x20\x43\x61\x6c\x61\x6d\x61\x6e\x64\ \x72\x65\x69\xdf\x91\x1a\x2a\x00\x00\x0b\x17\x49\x44\x41\x54\x68\ \xde\xe5\x9a\x6b\x6c\x1c\xd7\x75\xc7\x7f\xe7\xde\x3b\xb3\x0f\x52\ \x24\x45\x9a\x54\x15\xc3\x7a\x50\xf1\x0b\x6e\xed\x24\xaa\x25\x51\ \xa9\x95\x5a\x40\x12\xd4\x71\x81\x02\x89\x03\xa3\xaf\x00\x4e\xd0\ \xda\x75\x61\x03\x82\xd3\xd8\x7d\xa0\x68\xd3\x7e\x28\xea\x18\x0d\ \x8a\x3e\xd2\xc4\xf5\x97\xc4\x4e\xea\x0f\x8a\x8d\x54\x34\x1a\x19\ \x74\x5b\xc4\x70\x22\xb7\x31\x1a\xc7\x52\x52\x47\xa1\x64\x5a\x12\ \xc5\xa7\x44\x72\x97\xbb\x33\xf7\x9e\x7e\xb8\xb3\x4b\x52\x92\xf5\ \xa2\x10\xc1\xe8\x00\xc3\xb9\x3b\x3b\x3b\x7b\xfe\xf7\x3c\x7e\xe7\ \xce\xd2\xa9\x2a\xef\xe6\xcd\xbd\xab\xad\xff\x7f\x2f\x60\xf8\xdb\ \xcf\xff\x2d\x2a\x0f\xa2\x48\xd0\x40\x08\x81\x10\x14\x5d\x3e\xf6\ \x81\x40\xc0\x7b\x45\x43\x20\xa8\x8f\xe7\x43\x71\x8d\x2a\xde\xfb\ \xe2\xb5\x12\x34\x10\xbc\x6f\x8f\xe3\x7b\xc5\xf9\x10\xd0\xa0\x78\ \x1f\x82\x48\xf8\xec\x9f\xfc\xd1\x9f\x3f\x71\xd9\x02\x86\x87\x87\ \xbb\x30\xfc\xee\x07\x77\xee\x12\x63\x0c\x22\x06\x11\x41\x10\x44\ \x80\x62\x0c\x8a\x6a\xdc\xa3\xc1\x85\xb0\xe0\xf1\x2d\x11\xc1\xe3\ \x7d\x3c\xe6\xde\x13\x7c\x4e\xee\x3d\x3e\x2f\x8e\xc5\x6b\x0d\x01\ \x55\xa5\x5e\xaf\x9b\x91\x97\x46\x3e\x0f\x5c\xbe\x80\x46\xa3\x61\ \x4a\x55\x1b\x16\x6a\x0d\x6e\xf9\xd8\xe7\x08\xab\xae\x05\x8a\xc6\ \xc3\x79\xb7\xce\x8a\x63\xef\x17\x3f\x4d\xf0\x6a\x56\x1d\x42\xed\ \x30\x41\x19\xd8\xb2\x0d\x05\xb4\xb0\x42\x95\x38\xf3\xad\x73\xcb\ \xc6\x1b\xd7\x77\x83\x82\xf7\x9e\x3c\x28\xcd\xcc\x73\x72\x66\x01\ \x55\xe8\xa8\xa4\xdc\xb0\xa1\x97\x50\xcc\x48\x0c\xa5\xb8\x67\x59\ \xc6\xff\x7c\xef\xdf\x49\x92\x84\xa0\x81\x2b\x23\x40\x15\x30\xa8\ \xd8\x15\x33\xa9\xc5\x48\xcf\x38\xe7\x9c\xc1\x5a\x47\xee\x03\x2a\ \xa0\xa2\x2c\x34\x32\x02\x16\x15\x58\xd7\xb7\x86\x10\x84\x50\x88\ \x0d\x45\x18\xc6\xdd\x00\x90\x24\x29\x21\x5c\x11\x01\x31\x96\x61\ \xe5\x6c\xb7\xc6\x68\xe1\x89\xd6\xfb\x0a\x69\xd9\x90\xfb\xe8\xb9\ \x3c\x04\x72\xaf\xcc\xd7\x33\x54\x95\x72\xea\x48\x13\xcb\x62\xe6\ \x41\x21\x14\x9e\x04\x25\xc4\xe4\x05\x20\xbd\x32\x02\x66\xc9\xf3\ \x0e\x9a\x59\xd6\xfe\x82\x25\x11\xd1\xea\xe5\x86\x6b\x71\x22\x35\ \x26\x86\x8e\x8f\x02\x16\xea\x4d\x72\x1f\x00\xa5\xb7\xab\x4c\xa3\ \xe9\xa3\xe7\x74\x29\x1f\x82\x46\x5f\xfa\xdc\x17\x1e\x48\xae\x8c\ \x07\xbc\xcf\xc9\x9a\x19\xa8\xe2\x7d\xde\x36\x72\xc9\x13\xac\x30\ \x46\x51\x8c\x51\x9a\x59\x86\xf7\xe0\x15\xe6\x6b\x0d\x34\x28\x69\ \x6a\xb1\xd6\xd0\xcc\x63\xd9\x6c\xdf\xa3\xf8\x7c\x50\x45\xfd\x15\ \x14\x30\x0b\xd8\x46\x83\xb9\xf9\xd3\x68\x9e\xe1\xb3\xc5\x22\x94\ \x96\xbe\x18\xa4\x7d\x7d\x51\x59\x11\x72\x7c\xa6\x84\x00\x8d\x3c\ \x90\xe7\x39\x22\x96\xae\x6a\x89\x2c\xf7\xa8\x4a\x7b\xc6\x51\xda\ \xc9\xac\x45\xd2\x03\x38\xe7\xda\xa1\xeb\x56\x11\x41\x2c\x64\xf3\ \x32\x31\x71\x12\xcd\x17\x09\xcd\xf9\xc2\x50\x83\x08\x98\x08\x83\ \x25\xeb\x81\xc4\x5a\xb4\xb1\x80\x2f\x92\x33\x6b\x78\x12\x31\xb8\ \xd4\x52\x4e\x1d\x8a\xd0\xca\xd9\xa0\x10\x7c\x01\x2e\x0d\xf8\xb0\ \xe4\x01\x6b\x1d\xbe\xe5\x81\xcb\xa5\xa9\x38\xa5\x6c\xca\x8c\x9f\ \x78\x8b\x2f\x3c\xf2\x91\x4b\xa0\x69\x1d\x0d\x4a\xee\x03\x07\x46\ \x95\x1f\x8c\x57\xe8\x2c\x57\xc1\x28\x8a\xa5\xed\x38\x0d\x50\x54\ \xa9\x56\x1e\x15\x29\x80\x35\x86\xe0\xb5\xf0\x40\xb8\x6a\x34\x25\ \xf3\x23\xfc\xe8\xa4\xc7\x19\x40\x0d\xc6\x18\x54\x04\x89\xbe\xc0\ \x20\x04\x42\x91\x13\x8a\x4a\xcb\xa3\x82\xb6\x39\x20\x72\xd5\x68\ \xaa\x5e\x49\x5c\xfc\x80\x18\x83\x88\x25\x88\x80\x2a\x22\x85\xf1\ \xad\x10\x34\xbe\x1d\x8b\x71\xa2\x0a\x01\x57\x9b\xa6\x06\x10\x11\ \x8c\x18\xd4\x44\x18\x8a\x01\x54\xe2\x8c\xb7\x66\x44\x4d\xe1\x13\ \xf0\x21\x3f\x43\xc0\x55\xa4\xa9\x4d\x12\x9c\xb3\x18\x67\xc1\x38\ \x02\xd2\x06\x56\xdb\x91\x01\x54\x04\x13\xdb\x1f\xf2\x6c\x85\x80\ \xab\x47\x53\xd5\x40\xe2\x2c\x2e\x49\x70\x2e\x45\xad\xc3\x2b\x31\ \x17\x8d\x20\x26\x20\xe2\x11\x2f\x80\x87\x10\x27\x38\xcb\xb2\x25\ \x01\xde\x07\xf2\xa2\x3c\x85\x15\x21\x73\x1e\x9a\x5a\x4b\xfc\x9c\ \x92\x07\xbd\x6c\x9a\xe6\x79\xce\x8f\x5e\x7d\x11\x93\x54\x91\xa4\ \x8c\x18\x57\xc4\x4f\x2b\x10\x74\x45\x48\x8b\xc4\xdc\xc8\xf2\x66\ \x3b\x3c\x5d\x08\x9e\x50\xcc\x4a\x2b\x17\xce\x65\xf8\x72\x9a\x5a\ \x6b\xc8\x7c\x2c\xab\x3e\x28\xf3\xf5\x26\xaa\x4a\x9a\x5c\x1a\x4d\ \x8d\xc0\x17\x1f\xfb\x24\xbd\x7d\xbd\x74\x77\xf7\x50\x2a\xa5\x18\ \x63\xda\x65\xd8\x87\x80\xf7\xa1\xa8\x76\x71\xa7\xc8\xa3\x15\x39\ \x10\xdf\xa0\xc8\x85\x33\x66\x3c\x32\x34\x52\x54\x04\x44\x71\x89\ \x6d\xd7\xe1\xa6\xf7\xf8\x10\xdd\xde\xd5\x51\x22\xcb\xc3\x92\xb1\ \x17\xa0\x29\xaa\x74\xaf\xe9\xa4\xb7\xa7\x8b\xb5\x6b\xbb\xa9\x54\ \x2a\x18\x13\x4b\xa4\x0f\xb1\x64\xc7\x10\x0e\xfc\xf0\x8d\x83\xbc\ \xfa\xea\xab\xec\xde\xbd\x9b\x7a\xad\x46\x28\x6e\xea\x62\x7d\xce\ \x96\x90\x2f\x60\xc4\x42\xcb\x60\x96\x6a\x2f\x28\x69\xe2\xb0\xc6\ \xc6\xa4\x16\xc5\x37\x72\xd2\x24\xc5\x5a\xa1\x52\x4a\x8b\x49\xd0\ \x8b\xa2\x69\x9e\xe7\x3c\xf7\xdc\x5e\xaa\x9d\x1d\x54\xaa\x15\x12\ \xe7\xea\x91\x35\x11\x7a\xcb\xc1\x58\x5b\x58\x48\x2b\x95\xaa\x7c\ \xe3\xeb\xcf\x04\x44\x02\xca\xdf\x45\x01\x41\xf1\x79\xde\x76\x6b\ \xec\x57\x0c\x18\x96\xa0\x46\x9c\x79\x10\xca\xa5\x04\x63\x6d\xe1\ \x98\x80\x18\x4b\xa9\x64\xe8\x28\x27\x88\x8d\x15\x83\xa0\xf1\xfa\ \x0b\xd0\x54\x15\x6e\x7d\xdf\xad\x0c\xac\xfb\x39\x8e\x1c\x19\x6d\ \xbc\xf1\x83\x43\x37\x56\xab\x55\x5f\x2e\x97\x03\xd4\xa8\x01\xf1\ \x0f\x80\xa1\x36\xbf\x08\xd4\x69\x34\x5c\xfe\xf4\xd3\x4f\x4f\x02\ \x38\x0d\x31\x89\x15\x48\x9c\x5d\xa2\xb1\x91\xb6\x00\xa4\x20\xb3\ \x0a\x95\x52\x82\xb1\x82\x18\xc8\x9b\x9e\x24\x49\xb1\x02\x69\xea\ \x08\x41\x31\x26\xe2\x47\x8a\xe2\x79\x3e\x9a\x82\xf2\x0b\xb7\xdc\ \xc6\x86\x0d\x1b\x19\xe8\xef\xd3\x24\x71\x3b\x1f\xfb\x83\x3f\xfe\ \x57\x60\x11\xf0\x7a\x11\x0f\xad\x5c\x8c\xb3\x78\x3f\xe7\x1c\xc6\ \x14\x25\x4c\x4c\x11\xf7\xa6\x68\xcc\xa2\x47\xd2\x34\x45\xd0\x48\ \x6d\x0b\xa5\x54\x70\xce\x14\xf7\x50\x8c\x17\xd4\x28\xa8\x5c\x90\ \xa6\xde\x7b\xde\x7c\xf3\x27\x2c\xd4\x6a\x74\x74\x76\x94\xdf\xb3\ \xfe\x3d\x5f\xfb\xd2\x3f\xfd\xfd\x68\xb9\x5c\x3a\xd8\xdd\xdb\xe3\ \x5e\xf8\xb7\x6f\x75\x18\x63\x12\x11\x6c\x88\x8d\x67\x8e\xea\x42\ \xd0\xf0\x1f\x9a\x2d\xfe\xc3\x5d\x77\xdd\x73\xc2\x85\x10\x68\xe9\ \x74\x89\xc3\x14\x06\x8b\x2d\x8e\x62\x30\xa6\x08\x24\x23\xb8\xc4\ \xb5\xea\x2d\x69\x22\xf1\xb6\x05\x65\x51\xc5\xab\x81\xe0\x11\x23\ \x17\x45\xd3\xb4\x6c\x11\xe3\x49\x4b\x96\x6d\xdb\xb6\xd9\xe0\x19\ \x7c\xf2\x9f\xbf\x92\x04\xe5\xfe\x0d\xd7\xae\x9f\xea\xef\xef\xcf\ \x93\x24\xb5\x31\xea\x8c\x33\xa9\x5d\x5b\xad\x54\xee\xb5\x69\xf5\ \x69\x60\x77\x14\x50\x14\x6b\x6b\x2c\xc6\x18\xac\x35\x85\xe1\x06\ \xdb\xf2\x86\x89\x42\xac\x35\x60\x81\x10\x28\x9b\x22\xe4\x8b\xee\ \xd5\xfb\x80\x18\x45\xbc\x69\x57\x9b\xf3\xd1\x34\xcf\x73\xbe\xf9\ \xcd\xe7\xf2\x24\x49\xd4\xda\xf8\xdd\x20\x66\x6e\x6e\xee\xc0\xf7\ \x5e\x39\xf0\xd6\xd0\xd0\xd0\xdc\x67\xee\xff\xd4\x9f\x3a\x9b\xfe\ \xb2\x20\x15\xd0\xb2\x0a\x3e\x84\x90\x18\x23\xdf\x12\x11\x71\xad\ \x52\x15\x2b\x83\xc1\x2c\x13\x61\x8d\xc1\x58\x83\x29\x04\x38\x2b\ \x45\xec\x0a\x56\xa5\x30\x6e\x89\x07\xd6\x04\xf2\xe0\x23\x3d\x5b\ \x79\x74\x7e\x9a\x36\x7f\x7c\xe8\xcd\xa1\xe5\xdd\xa0\xf7\xde\xcf\ \xcc\xcc\x9c\x4e\x92\x64\xf1\xb7\x3e\xf5\xeb\x0f\x19\xcc\xfa\x89\ \x13\xe3\x9f\x9c\x9a\x3a\x7d\x6a\xb2\x36\x59\xef\x72\x89\x5d\xbb\ \xb6\xbb\xf1\xd2\x4b\x07\x26\xda\x49\x8c\x2a\x8d\x46\x83\xff\x3d\ \xf0\x02\x2d\xb3\xda\xed\x4b\xbb\x3b\x5a\xb9\xc9\x3b\x9c\x3f\xbb\ \x41\x7d\x67\x9a\xaa\x92\xde\xbe\x63\xdb\x7f\xad\x5b\x37\x40\xc8\ \xf3\x46\xa5\xb3\xa3\x34\x3d\x3d\xc3\x35\xbd\xbd\x64\xbe\xb9\xf8\ \xc6\xa1\x43\xa5\xd9\xa9\x53\xda\xd3\xd7\xfd\xe1\x46\x7d\xb1\x99\ \x24\xf6\xe5\xef\x7c\xf7\xbf\x3f\x36\x3c\x3c\x9c\x47\xb8\xab\xba\ \x10\x02\xd5\x6a\xc2\x0b\x5f\x7a\x80\x96\x1b\x63\x28\xc5\xf1\xf2\ \x5d\xa4\x55\x99\x5a\xa4\x2e\xea\x74\xb1\x1e\x88\x63\x4f\x0b\x8e\ \x17\x43\xd3\xfe\x6b\x7a\x69\x36\x1a\x6c\xdd\xba\xd5\xfd\xe4\xf0\ \x9b\x3a\xd0\xd7\x07\x46\xb8\x69\xcb\xcd\xf6\xf0\x4f\x0f\xcb\xe6\ \x2d\x1b\x65\x72\x72\x8a\xcd\x9b\x37\x95\xc7\x4f\x9c\xdc\x78\xcb\ \xad\x37\xff\xf6\xbe\x7d\xfb\xbe\xdc\xae\x42\x79\x96\x1b\x55\x65\ \xa0\xaf\x37\x86\x8b\x11\xac\x58\xc4\x5a\x8c\x48\xdb\xf0\x73\x0b\ \x68\x2d\x72\x96\x56\x70\xf1\xb5\x8f\x0b\x9c\x0b\xd0\x54\x55\x31\ \x22\x6c\xda\xb4\x91\xda\xc2\xbc\x7d\xff\x6d\xef\xe3\xc8\xd1\xa3\ \x0c\xac\x1b\xa0\x52\xa9\x24\x1b\x36\x5c\xc7\xdc\xa9\xd3\x0c\x6e\ \xde\xc4\xd4\xd4\x94\xdc\x71\xc7\x1d\x95\xe7\x9f\x7f\xee\xcf\xf6\ \xec\xd9\xf3\xd5\x27\x9e\x78\xa2\x5e\xac\x89\xe5\xf9\xfd\x2f\xbe\ \x78\x37\x68\x60\x05\x05\x97\x1b\x17\xb1\x1a\x08\xe4\x3e\xaf\xc4\ \xf6\x20\x14\xcb\xc4\xd6\x32\x53\xe3\xac\x87\x62\xf9\x78\x0e\x9a\ \xd6\x6b\x35\x2a\x95\x2a\x5f\x7f\xe6\x19\xc4\x08\x79\xee\x99\x9e\ \x9e\x66\x61\xa1\xc6\xce\xa1\x9d\xcc\xcd\x2f\x70\xfc\xd8\x31\x66\ \x66\xa6\xb9\xf1\x86\x9b\x98\x18\x9f\xe0\xf8\xf1\xe3\x8c\x8e\x8e\ \x12\x54\xf9\xe8\x47\xef\xba\x76\x68\xe7\x07\x5f\x1f\x19\xd9\xff\ \x10\xf0\x57\x00\xee\xf7\x1f\x7c\xf8\x13\x8f\x3f\xfe\xf8\x80\x6a\ \x51\x1e\x5a\x04\x5c\x46\xc1\x66\xb3\x29\x79\x7e\x5a\x4e\x2d\x66\ \x1d\x9b\xae\xdb\x70\x70\xe7\x8e\x21\x5b\xab\xd7\xda\x59\x20\x22\ \x24\x69\x99\xef\xbe\xf2\x0a\x03\x7d\xeb\xe8\xea\xea\xa6\xab\x6b\ \x0d\xe5\x72\x19\x97\x26\x18\x0a\xcf\x89\x81\x62\xc1\x6f\xad\xa3\ \xa7\xa7\x87\x72\xb9\x4c\xb5\x5a\xa5\x54\x2a\x15\x05\x43\x96\xad\ \xea\x74\x59\x5b\x1f\x13\x6f\x70\xf3\xe0\xfa\xe1\xe1\x7d\xf7\xb7\ \x05\x00\x3c\xf2\xc8\x23\x27\xdf\x29\x07\x25\x36\x44\x0e\xa8\x7c\ \xe1\x6f\xfe\xfa\x57\x87\xb6\xef\x68\xde\xfe\x8b\xdb\x2b\x8d\x46\ \x63\xc5\x75\xa5\x52\x99\x90\x67\x7c\xe3\x5f\x9e\x5d\x9c\x9c\x9c\ \xf4\xa5\x52\x29\x24\x2e\x29\x4a\x23\x88\xc8\x39\xf2\x7d\xa9\x49\ \x14\x23\x17\xb5\x68\x6d\x36\x9a\xa5\x3c\xcb\x47\xda\x39\x20\x2b\ \x3a\xb6\xb3\x36\x03\xa4\x3b\x76\xed\xd8\x78\xef\xc7\x3f\xfe\xf9\ \xbe\xfe\x6b\xee\x36\xe2\x4a\xdf\x7f\xed\x35\x9a\xcd\xe6\x19\x02\ \x4a\x54\xab\x5d\x7c\x68\xd7\xae\xa4\xb6\xb0\x70\x3c\x49\x92\x1f\ \x77\xad\xed\x71\xe5\x52\x5a\x35\xc6\x24\xc6\x88\xd1\x82\xa6\xea\ \xb5\xd6\xc8\x1a\x2f\xbf\x7d\xe4\xe8\x93\xfb\xf7\xff\xe7\xc9\x4b\ \x5d\x79\xef\xdd\xbb\x77\xb6\x2d\x00\x30\xf7\xdc\x73\x8f\x1d\x1b\ \x1b\xb3\x2b\x94\x36\x9b\x32\x31\x31\x51\x9a\x9d\x9d\xed\x1b\xba\ \x7d\xfb\xbe\xbb\xef\xfe\xb5\x8d\x2a\x41\x4e\x9d\x9a\x01\x02\x65\ \x77\xe6\x23\x25\x4f\xc9\x5a\x86\x86\x86\x6c\xb3\x91\x6f\xfa\xca\ \x93\x5f\xb6\x17\xa2\xe9\x7b\x6f\xbc\xf1\x1f\x1f\x7c\x70\xcf\xee\ \xd5\x3c\x46\x70\x5b\xb7\x6e\x35\x87\x0f\x1f\x76\xe5\x72\xd9\x9e\ \x39\xfb\x22\x52\x36\xc6\x74\x1e\x3a\x78\xe8\xf5\xc7\xfe\xf0\xd1\ \xeb\x8a\x5e\xf3\xc2\xcf\x26\x94\x4b\xa2\xa9\xae\xe2\x97\x46\x37\ \x38\x38\x18\xc6\xc6\xc6\x74\x76\x76\x76\xc5\x4d\xf2\x3c\x0f\xde\ \xfb\x86\x73\xee\xe4\xcb\xdf\x79\xe5\xa1\xde\xde\xde\x35\xd6\x5a\ \x7b\x9e\x70\xbb\x6c\x9a\xae\xca\x03\xcf\x3e\xfb\x6c\x00\x9a\x8f\ \x3e\xfa\xe8\x66\xeb\xd8\x3f\x37\x3f\xbf\xbe\xde\x68\xa6\x7d\x7d\ \xbd\x4c\x4d\x4d\x73\x29\xc7\x46\xbd\xde\x28\x55\x2a\xa5\xa9\xa9\ \xe9\x4b\xa2\xe9\xaa\x04\x14\x37\xf0\x9f\xfd\xdc\x9e\xbf\xbc\xee\ \xda\xc1\xd1\xf1\x93\xe3\x1b\x36\xf5\xf4\x30\x39\x39\xc5\xcd\x37\ \xdd\x70\x49\xc7\x6d\xdb\xb6\xbb\x1f\x1e\x7c\xfd\xfc\x34\x1d\x1f\ \x3f\x8b\xa6\xab\x12\x00\xf0\xf0\xc3\x0f\xfc\x7c\xb9\xd2\xb9\x7b\ \xcb\xe0\x96\x6a\xa9\x94\xca\xcc\xf4\x4c\x8b\x7e\x74\xad\xe9\x24\ \x6b\x36\xcf\x79\xf4\x59\xce\xe0\xe6\x4d\xb4\xae\x9f\x9f\x3b\x6d\ \x3f\x70\xdb\xfb\xf9\xe9\xe8\x28\xfd\x03\xfd\xe7\xa6\xe9\x2f\xed\ \x3a\x8b\xa6\xab\x16\xd0\x68\xe6\x7f\xf1\xe9\xcf\xfc\xe6\xd1\x63\ \xc7\x8f\x7d\xe0\xb5\xef\xbf\x46\x20\x30\x7a\xf4\x48\x5c\x45\x22\ \x68\xf1\xac\x92\xe2\xe9\xb1\x2c\x6b\xe7\xc6\xc6\xc6\x50\x55\xde\ \x7a\x6b\x8c\xed\xdb\xb6\x73\x7a\x6e\x9e\x63\x6f\xbf\xcd\xf4\xf4\ \xd4\x3b\xd0\xf4\x57\xce\xa2\xe9\xaa\x04\xdc\x77\xdf\x7d\xfd\xa5\ \x4a\x7a\xe7\xf5\xd7\xdf\xd0\x79\xfd\x7b\xaf\x67\xd7\x1d\x1f\x6a\ \x1b\x18\x17\x62\x4b\x46\xb7\x90\xd1\x3e\xdf\x5a\x19\x2e\xcb\x6b\ \x45\xe1\xde\xdf\x60\xe9\x39\xe9\xd9\x34\xdd\xb2\x79\xcb\x0a\x9a\ \xae\x36\x07\xe6\x66\x67\x67\x4e\x3c\xf0\x7b\xbf\xb3\xce\x3a\x27\ \xfc\x0c\xb6\xac\x99\x95\xb2\x66\x36\x72\x45\x72\xe0\xa9\xa7\x9e\ \x5a\xbc\xf3\xce\x3b\x6f\xe9\xe9\xe9\xe9\xe4\x67\xb8\x2d\xa7\xe9\ \xaa\x73\x60\x64\x64\x24\x27\xfe\x6a\xf4\xae\xdb\xde\xf5\xff\xec\ \xf1\x7f\x9d\x3d\x46\xc4\x32\x49\xfc\x0b\x00\x00\x00\x00\x49\x45\ \x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\xb0\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ \x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\x2d\x49\x44\ \x41\x54\x38\x8d\x55\x93\x4f\x6c\x93\x65\x00\xc6\x7f\xef\xf7\xbd\ \xed\xda\x6d\x5f\x4b\xc7\xb6\x8c\x09\x68\xc0\x95\x11\x4d\x98\x0b\ \x33\xc4\x84\x8b\x87\x1d\x17\x12\x35\x98\x10\x92\x25\xbb\x1b\x2f\ \x26\x5c\x3c\xec\xa2\xd7\xda\x43\x3d\x11\x0e\x1e\xd4\x93\x1e\x34\ \x46\xd4\x04\xc8\x22\x94\xd1\xcc\x11\x75\x71\xb8\x65\x0c\x5a\x36\ \x60\xb4\x6b\x69\xbf\xef\x7b\xfb\xfe\xf1\x20\x4b\xc6\xef\xfc\xfc\ \x9e\xd3\xf3\x08\xe7\x1c\xfb\x99\x9f\x9f\x97\x41\x10\x9c\x56\x4a\ \x4d\xfa\xd8\x33\x4a\x29\x17\x2a\x5d\x51\x4a\x2d\x45\x51\x74\xbb\ \x58\x2c\xc6\xfb\xf3\x62\xaf\x40\x08\x21\x4a\xa5\x52\xbe\xdf\x33\ \xdf\xbe\x31\x3c\x70\x2a\xd5\x37\x48\x6f\x90\xe5\x68\xfc\x90\xe6\ \xf6\x03\x36\x1f\x55\xdd\x0f\xb5\xf0\xaf\x6a\xdb\x5d\x2c\x95\x4a\ \xcb\xee\x85\x28\xf7\xe4\x42\xa1\x70\xf1\xe4\x40\xea\xf2\xa0\x97\ \x91\xd9\xc8\x92\xf0\x35\xed\xe6\x23\xda\x49\x47\x90\xc8\x31\xdc\ \xe3\xc4\x27\x87\xd6\xde\xfc\xfe\x71\xfb\x76\x3c\x37\xf7\xb1\x10\ \xe2\x4b\xe7\x9c\x93\x00\xa5\x52\x29\x3f\x7e\x30\x7d\x79\x28\x4a\ \x48\xdd\x7a\xca\x13\xad\x19\x1c\x1a\xe6\xdf\xd5\x55\xc8\x7a\xbc\ \x16\x48\xb6\x9f\xb5\x19\xf2\x05\x1f\xa4\x6d\x42\x07\xcd\x2f\x9e\ \x9f\x3f\xbf\x08\x2c\xfa\x42\x08\x39\x92\x49\x5f\x3d\x9c\xca\x8d\ \xca\x30\x46\xfa\x3e\xd2\x97\x58\x6b\xd8\x58\x5f\x27\xa7\x9b\x8c\ \x24\xba\x8c\xb8\x26\x42\x75\xf8\xe5\xa1\xe6\x6c\x5f\xcb\x5b\x8a\ \xe4\xd9\xd2\x95\xaf\xae\x78\xd9\x6c\x76\x2a\x7f\x30\x33\x61\xea\ \x4d\x1e\x54\xab\x74\xb5\xc1\xe2\xe8\x6a\x4d\xb3\xd9\x24\x6e\x35\ \x20\x6c\x41\xdc\xc6\xc4\x11\x07\xe8\x90\x33\x5d\x66\x82\x67\xe3\ \xbe\xef\x4f\x4b\xad\xf5\x94\x10\x09\xac\xaf\x09\x72\x39\x34\x0e\ \x61\x2c\x58\x47\x3b\xec\xa0\x92\x31\x28\xc0\x74\x91\x36\xe4\xed\ \x6c\x44\x2b\x8c\x19\xf3\x15\xc6\xf4\x4e\x7a\x49\x61\xdf\x89\x48\ \x12\x59\x8b\x48\x26\x50\xd6\xa0\xac\x45\x59\xc3\xd3\x7a\x9d\xd2\ \xf5\x15\xe6\xbe\x59\xe4\xf3\x5f\x57\xa0\x1b\x53\x0f\x23\x2e\x2d\ \x76\xe8\xef\x76\xe8\x41\x4f\x49\x6d\x8c\xec\x02\x9b\xb5\x2a\xd9\ \x54\x9a\xc1\x6c\x16\x9c\x01\x67\x79\x77\x7a\x9a\xfe\xee\x2e\x43\ \xad\x0d\x72\x9d\x1a\x98\x90\x9c\x17\xf3\xd9\x44\x97\x40\x76\xd1\ \x5a\xfb\xb2\x15\xaa\xdf\x7d\x1b\xbd\xf7\xca\xb1\x63\x08\xa5\x50\ \x5a\x83\xf8\x7f\x24\xd6\xf7\xa9\x7b\x07\xd8\x49\x9e\xc2\xcf\x8c\ \x71\xa4\xbd\x86\xab\xfd\x4d\xd2\xc4\x34\x10\xb4\x94\xbd\x23\x81\ \x3b\x26\x6c\xa0\x13\x03\x6c\xac\xaf\x31\xd0\x1f\x10\xa4\xd2\x20\ \xc0\x79\x02\x63\xc0\xe2\xd0\x7e\x0f\x7f\x04\x27\xa9\x44\x8a\xbe\ \x78\x9b\xc9\x64\x84\xd6\x7a\x49\xee\xec\xec\x94\x97\x89\xff\x79\ \x7d\x3c\x77\x22\xf6\x3c\x74\x32\x81\x92\x3e\x4e\x3b\xac\xb5\x58\ \x4f\x60\xac\xa0\x15\x47\xb4\x3a\x21\xf9\xb7\x26\xb0\xc2\xf0\xe3\ \xad\x6b\xb5\x28\x6a\xfc\xec\x15\x8b\xc5\x78\xb3\x11\x7e\x18\x6d\ \xdd\x33\xa3\xf9\x31\x64\x36\xc3\xcd\xbb\xcb\xac\x6c\xde\x27\x96\ \x92\x7b\xd5\x2a\xa1\x10\xac\x6d\x6d\xf1\xd3\x8d\xeb\x44\xbe\x4f\ \xbc\x51\xb1\x2b\x8f\xdb\x17\xca\xe5\x72\xcb\x03\x28\x14\x0a\xcb\ \xd7\x56\xb7\x3f\xd2\xf7\x97\x2d\x9e\x63\xe0\xe8\x11\x82\x43\x23\ \xb4\x05\xfc\x56\xbe\xc5\x76\xa7\xcd\xe1\x13\x79\xce\xbd\x7f\x0e\ \x36\x16\xed\x77\x77\xb7\x3e\x5d\x58\x58\xb8\xe1\x9c\x73\x2f\x9d\ \x69\x76\x76\xf6\xf4\x68\x20\xbf\x9e\x78\x75\xe4\xb8\x4d\x67\xd8\ \xf5\x02\x8c\x35\xa4\xa3\x3a\xae\xb1\xc5\xcd\x3f\xd7\x6a\x2b\x4f\ \x9e\x5f\x78\x21\xdb\x97\xde\xb8\xc7\xcc\xcc\x4c\x6f\x3a\x9d\x9e\ \xd6\x5a\x4f\xa6\x84\x3d\x63\x8c\xf6\xeb\x1d\x55\xd6\x5a\x2f\xed\ \xee\xee\x5e\xad\x54\x2a\x4d\xb7\x4f\xfa\x0f\x87\xf5\xc7\xde\x75\ \x18\x2c\x4f\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\xc2\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ \x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\x3f\x49\x44\ \x41\x54\x38\x8d\x55\x93\x4b\x68\x9c\x55\x1c\xc5\xcf\xfd\xee\x37\ \x9d\x4c\xd2\xc9\x4c\x93\xe9\xa4\x1a\x4d\x43\x6a\x1e\x90\xf8\x0a\ \x8d\xf5\x49\x15\xa1\x5a\x17\x59\xb4\x54\x51\x08\x0d\x58\x17\xce\ \x2a\xeb\x82\x48\x96\x41\x91\x38\xc8\xa7\x82\x52\xa9\x15\x71\x25\ \xb8\x91\x66\xd1\x45\x08\xc8\xe4\xd1\x24\x0b\x1b\x2b\xcd\xa3\x79\ \x21\xa6\x79\x7d\x5f\xbe\xcc\x9d\x7b\xff\xf7\xfe\x5d\xd8\x40\x7a\ \x36\x67\x73\x7e\x67\x75\x8e\x60\x66\x1c\xd6\xe0\xe0\xa0\x9f\x4e\ \xa7\x4f\x6b\xad\xbb\xa5\x74\x2f\x6a\xad\xb9\x5c\xa6\x29\xad\xf5\ \xb4\x52\x6a\xbc\x58\x2c\x56\x0e\xe7\xc5\x41\x81\x10\x42\x04\x41\ \xd0\x56\x73\x94\x7e\xee\x6c\xad\x7b\x3e\x75\xa4\x0e\xd5\xc9\x2c\ \x1e\x6f\x5e\xc5\x6e\xb4\x82\x95\xb5\x75\xfe\xfd\xa6\xfa\x73\x7d\ \x8d\xfb\x82\x20\x98\xe5\x87\xa0\x7f\x00\x0f\x0f\x0f\xf7\xb5\xb7\ \x27\xbf\xcf\x27\xea\xfd\x8c\x67\x91\x90\x06\xf1\xde\x1a\xd4\x86\ \x43\xb6\x2a\x0b\x2d\xad\x18\xf8\x68\xb1\xeb\xb7\x5b\xf1\x78\xa5\ \xf2\xe1\x80\x10\xe2\x6b\x66\x66\x1f\x00\x82\x20\x68\x6b\x6d\xf3\ \xbf\x3b\x21\x7d\xdf\xc4\x1b\xd8\x08\x09\xb9\xdc\x71\xdc\xbb\xfb\ \x37\x9c\x95\x68\x3a\xe9\x63\xe3\x9f\x18\xf5\x39\x87\x0b\x6f\x98\ \x84\xa6\xf2\x97\x7b\x7b\xef\x4d\x00\x98\x90\x42\x08\x3f\x7f\xa2\ \x6a\xa4\x29\x5b\xd7\xe8\x3b\x05\x5f\x4a\xf8\xbe\x84\x73\x0e\x4b\ \x8b\x0b\xc8\x64\x43\xe4\xf3\x1a\xf9\x86\x10\x10\x65\xdc\x1a\x21\ \xbc\xfc\x4a\xe4\xcd\xde\x49\xbc\x16\x04\x3f\x5e\xf3\x32\x99\x4c\ \x4f\xfb\xa9\xaa\x67\xed\xfe\x0e\x56\x56\xd7\x60\x88\xe0\x1c\x60\ \x0c\x21\x0c\x43\xa8\xca\x0e\x20\x22\xb0\x88\x61\x5d\x19\x99\x63\ \xfb\xc8\xd6\x54\x70\xfe\x9d\xad\x0e\x29\xe5\x39\x9f\x88\x7a\x6c\ \xa5\x56\x48\x11\x22\x5d\x7b\x0c\xe4\x00\xc1\x16\x80\x43\x1c\x97\ \x61\x74\x05\x4e\x08\x00\x06\x32\xa1\xd0\x7d\x46\x21\x8a\x2b\x68\ \x69\xb1\xb0\xb6\xba\xdb\x93\xd2\x9c\xb1\x5a\x42\x69\x07\xe1\x1f\ \x81\x36\x0e\x9a\x1c\xb4\x71\x78\xb0\xb5\x8d\x6f\xbf\x99\xc3\xc7\ \x57\x26\xf1\xf9\xd0\x1c\xd8\x53\xd8\xde\x55\xf8\xf4\x6a\x19\xd5\ \xa9\x18\xc9\x24\xf5\xf8\xd6\x5a\xdf\x82\xb1\xb4\xbc\x8e\xcc\xd1\ \x2a\xe4\xea\x32\x80\x63\x48\x49\xb8\x52\x68\x46\x7d\x3e\x09\x63\ \x34\xc8\x69\xb0\xa7\x90\xcd\x55\xf0\xc9\x10\xa1\x26\x4b\x20\x22\ \xe9\xc7\xb1\x2d\x59\xc1\xef\x36\x36\xb5\x40\x38\x0d\x6d\x09\xb5\ \xe9\x10\x6d\x9d\x33\x48\x26\xf7\x00\x10\xfc\x14\x01\xb0\x60\xa1\ \xb1\xb0\xa8\xe0\x3c\x8d\x1d\xf2\x10\x45\x6e\xd2\x07\x30\x09\xb9\ \x06\xe2\x06\x2c\x2d\xcc\xe3\xe9\x67\x76\xd0\xf5\xc2\x3c\x00\x02\ \xb3\xf9\xdf\x85\x01\x84\x01\x0b\x8d\xa9\xdb\x0a\x56\x28\x64\x1f\ \xab\x05\x11\x4d\xfb\x9b\x9b\x9b\xa5\x99\x19\xf5\x57\x57\x67\x6d\ \x47\xc3\xc9\x25\x3c\xf1\xd4\x36\x38\x61\x00\x36\x10\x6c\xc0\x20\ \x00\x06\x5b\x3b\x06\x61\xa4\x70\xb1\xcf\x41\x91\xc4\x40\x21\xbb\ \xac\x94\xba\xe9\x15\x8b\xc5\xca\xea\x8a\x7a\x7f\x2b\xfc\xc3\xbc\ \x7d\x31\xc4\xf1\x26\xc2\x8d\x1b\x84\xd1\x51\x82\x4b\x10\xc6\x27\ \x14\xac\x34\xb8\x3d\xab\xf0\xd9\xd0\x1e\x5c\xc2\xe0\xfa\xb5\x8c\ \xbd\xbf\x20\x2e\x97\x4a\xa5\x08\x0f\x27\x2d\x0a\x85\x42\xe1\x87\ \x9f\x3e\x30\x9b\xe5\xb7\xb8\x34\xfb\x3a\xdf\x5b\x79\x89\x1f\xec\ \xf7\xf0\xa5\x4b\x6d\x7c\x67\xb1\x83\x43\xd7\xca\xff\x96\x5b\xf8\ \x8b\xaf\x9e\xa3\xb3\x67\x5f\xbd\x0a\xc0\x63\xe6\x47\xcf\xd4\xdf\ \xdf\x7f\xba\x3e\xa7\xaf\xbf\x79\x7e\xab\xa3\xf9\x54\x84\xc6\x27\ \xf7\xc1\xd0\x58\x5d\x16\xb8\x3b\xe7\xe1\xd7\x5f\x32\xcb\x4b\xf3\ \x7c\x79\x6c\x6c\x6c\x94\x99\xdd\x23\x6f\x3c\x50\x6f\x6f\x6f\x75\ \x2a\x95\x3a\x47\x44\xdd\x89\x84\xe9\x21\x32\x32\x8a\xdc\x24\x11\ \x4d\xef\xee\xee\x8e\x4c\x4d\x4d\x85\x7c\x08\xfa\x0f\x4b\x85\xd4\ \xf4\xa8\x04\xed\xfc\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x03\xb2\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ \x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\x2f\x49\x44\ \x41\x54\x38\x8d\x55\x93\x4d\x4c\x5c\x55\x00\x46\xcf\xbd\xef\x0e\ \xcc\x00\xaf\x6f\x18\x0b\x45\x40\x52\x69\x8a\x18\x8d\x69\x48\xb1\ \x5d\x58\x17\x9a\xb2\x64\xa3\x86\xb8\x68\x8a\x61\xe1\x4e\xdd\x98\ \xb8\x32\x21\x46\xdd\x8e\x98\x8e\x89\xa9\x36\xb1\x0b\x35\x75\xe1\ \xc2\x18\x7f\x62\x62\x0d\x69\x43\x61\x24\xf5\x8f\xda\x96\x9f\x50\ \xa0\x98\x02\xed\xbc\x99\xe9\xbc\x77\xdf\x7d\xf7\xba\x29\x09\x3d\ \xeb\xef\x7c\xbb\x23\x9c\x73\xec\x65\x72\x72\x52\xf9\xbe\x7f\x54\ \x6b\x3d\xa4\xa4\x3b\x1e\xc7\xb1\x6b\xc4\xa6\xac\xb5\x9e\x8f\xa2\ \xe8\xca\xd4\xd4\x54\xbc\x77\x2f\x76\x0f\x84\x10\xa2\x54\x2a\x0d\ \xb4\x65\xd3\xaf\x9e\xea\xcd\x1f\x69\xcd\xe5\x69\xce\x16\xe8\x0b\ \xd6\x09\x77\x6e\xb1\xba\xb9\xe1\xbe\xfb\x3d\xfa\x7b\x7d\xcb\x9d\ \x2a\x95\x4a\x57\xdd\x03\x51\xed\xca\xc5\x62\xf1\xd4\x60\x6f\xe6\ \xec\x01\x59\xc8\xf8\xda\x92\xf1\x2c\xf5\xda\x06\xf5\xc4\xe2\xcb\ \x3c\x9d\xa4\xe2\xed\xe7\x97\x9f\xfe\xf6\x9f\xfa\x95\x78\x62\xe2\ \x2d\x21\xc4\x27\xce\x39\xa7\x00\x4a\xa5\xd2\xc0\xe0\x63\xcd\x9f\ \x75\x6a\xa5\x92\xfa\x16\x77\x8c\x61\x7f\x47\x07\x37\xff\xbd\x0e\ \x3d\x1e\x07\x3b\x15\xff\xdd\xa9\xd3\xe1\x59\x5e\x39\x94\x64\x4c\ \xdc\xf8\xa8\x36\x36\x36\x0b\xcc\x7a\x42\x08\x75\xa0\xd0\xfc\x43\ \x5f\x4b\xd0\xe3\xe9\x18\xa5\x3c\x94\xe7\x61\xad\x65\x65\x79\x89\ \xf6\x6c\x48\x57\xa0\xe9\x6a\x0d\x11\xae\xc1\xcf\x65\xc3\x89\x81\ \xaa\x9c\xbf\x9d\x39\x51\xfa\xf4\xfc\x39\x19\x04\xc1\xf0\x13\xbd\ \xc1\x50\x12\x86\xdc\x5a\x5f\x27\x31\x06\x0b\x24\xc6\x10\x56\x42\ \xe2\xda\x3d\x30\x55\xb0\x75\xd2\xa4\x41\x3e\x77\x9f\x76\x11\x33\ \xfa\xcc\xce\xa0\xe7\x79\x23\xca\x18\x33\x2c\x6d\x86\x54\x6a\xfc\ \x7c\x3b\xc6\x81\xb0\x29\x58\x4b\xbd\xd1\x40\xeb\x18\x52\x01\x2e\ \x41\xc9\x88\x67\x0f\x47\x54\xa3\x98\xc3\x85\x94\x34\x6d\x19\x92\ \x4a\x9a\xe3\x51\xa2\x88\x8c\x45\x64\x9a\xd0\xa9\x45\x1b\x8b\x4e\ \x2d\x5b\x3b\x77\x29\x5d\x58\x60\xe2\xbd\x39\x3e\xfc\x62\x01\x5c\ \xc4\xdd\x5a\xc4\x3b\x9f\x37\x68\xf3\xea\x34\x2b\x33\xac\xac\x73\ \x4d\xda\x4a\x56\xd7\x36\x08\x5a\xb2\xec\xcf\x07\x60\x1d\x58\xc7\ \x0b\x27\x47\x78\xae\xeb\x22\x49\xa2\x49\x8d\x06\x11\xd1\xde\x16\ \xf3\xc1\x6b\x06\xbf\xd5\x60\x8c\xf1\x54\xb5\xa6\x2f\xa9\x4c\xe3\ \xa5\x9e\xc7\xfb\x11\x46\xa3\x8d\x01\x27\xc0\x81\x95\x1e\x2a\x93\ \xd2\x94\x31\x60\x53\x10\x9a\x9b\xb7\x23\x10\x9a\x7b\x4e\x52\xbd\ \x6f\xe7\x14\x30\x97\xe8\x0a\xc6\x2b\xb0\xb2\xb8\x44\x61\x5f\x1b\ \x7e\x2e\x0b\x4e\xe0\x90\x58\x0c\x52\xc4\x20\x13\x40\x33\xbb\x18\ \x61\x5d\x44\xa1\x6b\x1f\xc6\x98\x79\xb5\xbd\xbd\x3d\xf3\xd7\x0d\ \x73\xbd\xbf\xbf\x30\x10\x0b\x89\xf1\x9a\xd0\x52\xe1\x9c\xc1\x3a\ \x8b\x95\x06\x84\x66\xa7\x96\x10\xd6\x23\x5e\x7d\xd1\x12\x59\x8f\ \xd7\xcf\xe5\x57\xa3\x28\xfa\x51\x4e\x4d\x4d\xc5\x2b\x1b\xb5\xb1\ \xa8\x72\x2d\xed\xee\x1f\x40\xf9\x01\x97\xe7\xff\x60\x61\x79\x95\ \x58\x2a\x2e\xdf\x68\x60\x65\x42\x79\x29\xe2\xfd\x0b\x35\xf0\x12\ \xce\x5e\x0c\xd2\xa5\x4d\x71\x7a\x66\x66\xa6\x2a\x01\x8a\xc5\xe2\ \xd5\x5f\xcb\x5b\x6f\x98\xf0\x4f\x8b\xe7\x28\xf4\xf4\xe1\x77\x3e\ \x4a\xdd\x0a\xce\x7c\x5f\x65\xad\xa2\x39\x79\xcc\xf1\xf1\x9b\x59\ \xce\xfc\x52\x48\xbf\x99\xf1\xdf\x9d\x9e\x9e\xfe\xcd\x39\xe7\x1e\ \x8a\x69\x7c\x7c\xfc\x68\xf7\x23\xde\x97\x47\x9e\xec\x3e\x94\x4a\ \x9f\x6a\xe2\xf3\xf2\xc1\xf3\x54\x2a\x21\x0b\x6b\x92\xaf\x2f\x05\ \xab\x8b\x9b\xee\xf4\x03\xd9\x3e\x54\xe3\x2e\xa3\xa3\xa3\x2d\xb9\ \x5c\x6e\xc4\x18\x33\x94\xcd\xd8\x63\x5a\xc7\x32\xac\xa7\xb3\xc6\ \x98\xf9\x4a\xa5\xf2\x53\xb9\x5c\x0e\xdd\x1e\xe9\x7f\x4f\xfa\xc8\ \x4e\x6d\xe5\x60\x83\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\ \x82\ \x00\x00\x06\x9b\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ \x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x06\x18\x49\x44\ \x41\x54\x48\x89\x95\x93\x6b\x50\x94\xd7\x19\xc7\xff\xe7\xbd\xb0\ \xfb\xee\x05\x96\xcb\xc2\x2e\x2c\x2e\xa2\x55\x02\xad\xc1\x78\x69\ \xc1\x3a\x20\x66\x12\x31\xd1\x68\x30\x1d\x33\x6d\x3f\x74\x3a\x63\ \x32\x4e\xa7\x69\xad\x89\xa2\x8d\x88\x06\x04\x04\x4d\x26\x6d\xe2\ \xe4\x43\x62\x4c\x67\x52\x63\x12\xab\xc8\x02\x51\x47\xcd\x70\x89\ \x86\x28\xf1\x82\xc6\x5a\x59\x0b\xbb\xac\x5b\xd8\x5d\x97\x5d\xde\ \x77\x79\x2f\xa7\x1f\xba\x38\xa2\x90\xb6\xcf\xcc\xff\xcb\x79\x9e\ \xf3\xff\x9d\xe7\x3c\xe7\x80\x52\x8a\xa9\xb4\xfd\xf5\xad\xfc\x74\ \xb9\xff\x47\x84\x52\x8a\x87\x63\x47\xf5\x76\x1b\x21\xe4\x2b\x4a\ \x71\x35\x16\x93\x7e\x53\x5f\xdb\xe8\x7e\xa4\xe8\x7f\x8c\x47\x00\ \x3b\x77\xef\xb0\x31\x0c\x39\xbf\xfa\xd9\xd5\x0e\x8b\x25\x85\x1c\ \xfa\xe8\xa0\x24\x8a\x62\xfd\x9e\x9a\x86\xea\xe9\x4c\x1a\x1b\x6b\ \xe7\x81\x30\x07\x65\x42\xd7\x57\x6e\xaa\xbc\xf9\x60\x8e\x99\xa2\ \xde\x4a\x29\xb5\xf8\x87\xef\x12\x41\xd0\x93\x4d\xbf\xdf\x2c\x64\ \x64\x64\xbc\xf6\xea\xd6\x3f\xfc\x6e\x2a\xf3\xfa\xa6\xda\x72\x93\ \x39\xa9\x7b\xed\x9a\x8a\x42\x3d\xc3\x77\xd6\xd5\xd5\xe5\x4e\x09\ \xa8\xa9\xdb\x65\xdb\x5d\xbb\x33\x7b\xe7\xeb\xbb\xae\xa8\xaa\x5a\ \xd2\xd9\xd1\x25\xfd\xc3\x7d\x0b\x3e\xbf\x17\x15\x15\x2f\x18\x38\ \x8e\x7b\xf9\x61\xf3\x86\xa6\x9a\x5f\x26\x27\x25\x7f\xba\x7e\xfd\ \xcf\x0d\x26\xb3\x89\x94\x95\x95\xa5\xf0\x3a\xa6\xab\x66\x5f\x4d\ \xf6\x24\xc0\x9e\x86\x37\x6c\x1c\xc7\x9d\xe7\x38\xee\xab\x9d\xbb\ \x77\xd8\x01\x7c\x4b\x08\x89\x52\x4a\xa1\xaa\x0a\x0c\x82\x01\x00\ \x1e\x19\x16\x01\x33\xbb\xb8\x78\x89\x30\x1a\x09\x22\x32\x16\x46\ \x62\x92\x99\xc9\xc9\xc9\xb1\xea\xc0\x36\x4f\xd4\x70\xf5\x8d\xb5\ \x3c\xcb\xb2\xdd\x2b\x9e\x2e\xcf\x92\x24\x09\xed\x5f\xb4\xf7\xb1\ \x2c\x13\x30\x1a\x0c\x82\xd9\x64\x82\xd9\x94\x04\xf7\x1d\xb7\xa6\ \x28\xca\xb1\x07\xcd\xab\xdf\xae\x4e\x34\xb1\xc2\xf3\x3c\x9f\x40\ \x29\x40\x44\x49\x44\x30\x10\x42\xbf\xbb\x5f\x94\x35\xfa\xd2\x7d\ \xc0\x96\xcd\xdb\xe4\xc6\xfd\xf5\x37\x63\x31\xc9\x69\x34\x0b\x64\ \x59\x59\x89\x45\x96\x15\x4b\x72\xb2\x05\x0c\xcb\x20\xd1\x9c\x84\ \x53\xa7\x4e\x4a\xaa\xaa\xba\x27\x99\x2b\x42\x47\x69\x49\x69\x5e\ \x4a\x4a\x32\x73\xe6\xec\xe9\x71\x4d\x03\x19\xf4\x0c\xc8\x9a\xac\ \xae\xad\x7c\x6d\xdb\xf9\xfb\x5d\x52\x4a\xb1\xa7\xe1\x8d\x02\x96\ \x65\x2f\x3c\xbd\xe2\x29\x03\xcb\xb2\x93\xae\xc1\x91\xe9\x84\xaa\ \xa8\xd8\xf7\xe6\xbe\x68\x34\x1a\x59\x97\x99\xe1\xe8\x64\x79\x74\ \x94\x96\x94\xe6\x67\xcf\x98\xc1\xb5\xb8\x9a\xc5\x40\x20\xd0\xad\ \x28\x4a\x8b\x46\x99\x1b\x95\xaf\x56\xba\x26\x5d\xe3\xc4\x33\x6d\ \x68\xda\xf3\xd7\xf4\x74\xeb\xea\xc2\xf9\x85\x42\x24\x12\xc1\x90\ \xd7\x47\xfd\x7e\x7f\x6c\xd1\xe2\x85\xfa\x5c\xe7\x6c\xb0\x2c\x87\ \xa6\xfd\x8d\x63\x49\x89\x89\xbe\xb2\x65\x65\x33\x1c\xd9\xd9\x5c\ \x4b\x6b\xb3\x18\x0c\x84\x3a\xcc\x06\xcb\x33\x1b\x36\x6c\x90\x1f\ \x9e\xd1\x24\x40\x4d\xdd\x2e\x3d\xcb\xb2\xae\xf1\x71\xb9\x18\xa0\ \x21\x4d\xd3\x8e\xc9\xb2\x12\x4e\x48\xe0\x37\x96\x97\xaf\x30\x64\ \xa4\xdb\xd1\xde\xde\x86\x27\x9e\x58\x00\x87\xc3\x01\x57\xeb\x09\ \x31\x18\x0c\x7d\x69\x36\x58\x56\x4d\x67\x3e\x09\x30\x5d\x6c\xdf\ \xb1\x75\x33\xc7\x72\xd5\xf6\xcc\x4c\xc3\xe2\x45\x8b\x61\xb7\xdb\ \x71\xc2\xd5\x8c\xc0\x48\xb0\x47\x8a\x8e\x17\x55\x55\x55\x29\xdf\ \xb7\x7f\xaa\x8f\x36\x29\xbc\xca\xdc\x0f\x8d\x26\x53\x70\xe1\x82\ \x45\xb0\xd9\x6c\x68\x6b\x6b\x45\x6a\x8a\x15\x23\x23\xc3\x05\x5e\ \xdf\xe0\x93\xff\x6d\xff\xb4\x1d\x90\xea\x6a\x66\xd1\xf0\xd2\x3f\ \x6a\x94\x56\xbd\xb2\x5c\x53\xcb\x7e\x92\xc7\xbb\x5c\x2d\x90\x15\ \x05\x73\xf3\x1e\xc3\xbc\x82\x1f\x61\x6f\x63\x83\x18\x0c\x06\x7e\ \x0b\x42\x9c\x2c\xc3\xae\x53\x55\xc5\x28\xcb\xca\x47\x07\xdf\x3f\ \xb4\xfd\x7b\x01\x3f\x7c\xe9\xd4\x0c\xa3\x8e\x3d\xea\x48\x4b\x28\ \x5c\x55\x64\x67\xfe\xfc\xe9\x25\x94\xcf\x19\x91\x8c\xea\xf0\xad\ \xe1\x91\x91\x59\xcf\xad\x5d\x25\xd8\x32\x6c\xb0\x24\xa6\xe2\x93\ \x23\x87\xc5\xe2\xa2\x62\x5d\x66\x56\x16\x43\x35\x0d\xef\x1c\x78\ \x27\xda\xdf\xdf\xdf\x74\xe8\x83\xbf\x54\x4d\x09\x28\xdc\x78\xf6\ \x17\x1c\x8b\x77\x2b\x96\xa6\x1b\x8b\x0b\xd2\xc8\x98\xa4\xe0\xce\ \xd0\x3d\xec\xff\xe0\xa4\x9a\x40\xa5\x9c\x27\x67\x0e\xbe\xc8\xf3\ \x7c\xf5\xda\x8a\x35\x42\x5a\x9a\x15\x69\xc9\x56\x84\xc2\x41\x88\ \xd2\x18\x34\x4d\x03\xc7\x26\x60\x6f\xc3\x5e\x31\x12\x89\x14\x1c\ \xfe\xf8\x48\xff\xfd\x19\xcc\xdb\xd8\x91\xfc\xe3\x57\xce\x1d\xb7\ \x5a\x12\xde\xdd\xf6\xe2\x6c\x53\x51\x7e\x1a\x09\x8f\xc9\xf8\x6e\ \x28\x82\x8b\x97\x6f\xab\x44\x19\x3b\x7a\xf5\xe8\x16\xff\x9b\xfb\ \xde\x7e\x4b\x14\xc5\x03\x67\xcf\x9c\x13\x63\x31\x09\x1e\xdf\x00\ \x46\x23\x61\x04\x83\x21\xdc\x0b\xdd\x83\xa2\x8e\xa3\x78\x49\x11\ \xaf\xd3\xe9\xfe\x04\x00\x1c\x00\xe4\xfd\xba\xd3\x6c\x34\x28\xdf\ \x95\x3e\x9e\x96\x58\xf2\x78\xaa\xce\xa8\x67\x11\x8a\xca\xb8\xe9\ \x1d\x85\x41\x13\x71\xae\xbb\xf7\x5f\x03\x17\xff\xb6\x09\x80\x39\ \x7e\x9e\x4c\x47\xb6\x43\x07\x00\x06\xc1\x88\x56\x57\xab\x74\xa9\ \xb7\x57\xd2\x54\x55\xb7\xf2\x99\x95\x7a\x59\x96\xa9\xa6\x69\x05\ \x3f\x5b\xbf\x8e\x67\x08\x21\x60\xb9\xb1\x7c\xa3\x0e\xfa\xe5\x0b\ \xac\x3a\xb3\xc0\x61\x64\x74\x1c\x7d\x03\x61\xcc\xc9\x10\xf0\xd6\ \xfb\xcd\x92\xff\x76\xd7\xcb\xa2\xb7\x47\x00\x60\xd5\xeb\x75\x36\ \x86\x61\x9e\x9d\x35\x2b\x97\x21\x84\x20\xc5\x92\x86\xcb\x97\xaf\ \x04\x3e\xf9\xf8\x48\x9e\xcf\x77\x77\xf9\x89\xe6\x96\xd1\xae\xce\ \x6e\x5f\x38\x1c\x5e\x72\xe4\xf0\x67\x0a\x03\x80\xf4\x7d\x53\x79\ \xf1\x5e\x30\x28\x47\xa3\x12\xfc\xa1\x18\xae\x0f\x86\x31\x3f\x37\ \x19\x4d\x07\x3e\x17\xa3\xfe\xdb\xef\x85\xfa\x5c\x43\x00\xac\x00\ \xd2\x19\x86\xb1\x6b\x9a\xa6\x37\x1a\x8d\x60\x18\x06\x84\x10\x50\ \xaa\x99\x9d\x39\x4e\x67\x6b\x4b\x7b\xbf\xd7\xe3\x5d\x39\xf0\xcf\ \x81\x92\xe6\x63\x2d\x7e\x00\x84\x05\x40\x30\x34\x44\x8c\xce\xa2\ \xaf\xbf\xfc\xc6\xbd\x6e\xe1\x63\x36\x7e\xfe\x0f\xd2\xd1\xd2\xde\ \x25\x5f\xe8\xb9\x74\x7d\xa0\xeb\xbd\x7a\x00\x42\x5c\x7a\x59\x56\ \xb8\xc2\xf9\x85\x05\x81\x40\x20\x75\xe6\xcc\x1c\xd6\x60\x30\x62\ \xee\x9c\x3c\xde\x3b\xe4\x59\x03\xa0\xb5\xb3\xa3\xfb\x96\xdb\x7d\ \x27\x0c\x40\x05\xa0\xfd\x07\x00\x90\xe0\x8d\xb6\x41\x5d\x6a\x7e\ \x4f\x57\xef\xdf\x57\x1e\x6f\xed\x60\xae\x5e\xbb\x21\xde\xbd\xd6\ \xf6\x2b\x65\x2c\x20\xc6\x6b\x68\x5c\x6a\xdf\xb5\xeb\xa7\x33\xb3\ \x32\x9d\x57\xaf\x5c\xb3\x8f\xcb\x12\x4b\xa9\x46\xfb\xfa\xfa\x46\ \x3d\x1e\xcf\xa1\xbb\x3e\x7f\x08\x80\x1c\x07\x50\x12\x1f\x1a\x13\ \x17\x0b\x20\xc1\x32\x67\x59\x6e\x6c\xa0\x37\x20\x8a\x41\x02\x80\ \x8f\x8b\x8d\x0b\x13\xa0\x9f\x2e\x5d\x92\x9b\x5f\x90\xb7\x45\xd3\ \x68\xce\xb7\xbd\x97\x57\x7c\x7d\xa1\xc7\x03\x60\x1c\x80\x32\xd1\ \x01\xa1\x94\x82\x10\x82\xf8\x29\x27\x20\xcc\x03\x86\x13\x9a\xc8\ \x4f\x00\x28\x00\x0d\x80\x9a\xe5\xc8\x62\x3c\x83\x1e\x29\x6e\xaa\ \xc6\xd7\x29\x00\xfa\x6f\x93\x53\x01\xfa\x57\x90\x79\xbb\x00\x00\ \x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ \x00\x00\x03\xb8\ \x89\ \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ \x00\x00\x14\x00\x00\x00\x14\x08\x06\x00\x00\x00\x8d\x89\x1d\x0d\ \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\ \x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x03\x35\x49\x44\ \x41\x54\x38\x8d\xad\x94\xcf\x6b\x1b\x47\x14\xc7\x3f\x33\xbb\xb3\ \xb3\xb2\xa8\x6d\xc9\x32\x0e\x34\x31\xb6\x83\xdb\x9e\x52\x72\x30\ \x14\x4a\x82\xc1\x85\x1e\x4c\x2f\xbd\xf6\xee\x53\xff\x81\x40\x28\ \xa5\x04\x7a\xe8\x7f\xe0\x53\xef\x39\x95\xe2\x5b\x0d\xc6\xa5\x14\ \x5c\x1a\x35\xb4\x87\x52\xb0\x2c\xb7\xb8\x8e\xe3\xac\xa4\x95\x25\ \x4b\xde\x5f\xaf\x07\xed\x0a\x47\x49\x6e\x1d\xf8\xee\x8f\x79\x6f\ \x3f\xbc\x99\xf7\x9d\x55\x22\xc2\xff\x39\xdc\x37\x05\x1e\x2a\x75\ \x5f\xc3\x86\x03\xeb\x29\xdc\x05\x70\xa0\x9e\xc2\x5e\x06\xbb\x8f\ \x44\xf6\x5f\xf7\x9d\x9a\xac\xf0\x81\x52\x15\x0b\xdb\x5e\xa9\xb4\ \xb9\xb4\xbc\x6c\x66\xab\x55\xf7\xad\xb9\x39\x00\x2e\x82\x80\x4e\ \xbb\x9d\x34\x1b\x8d\x38\x1a\x0c\x76\xae\x60\xeb\x6b\x91\xf6\x1b\ \x81\x5f\x28\xf5\x21\xf0\xfd\xca\xca\xca\xd4\x7b\x77\xee\x58\x0d\ \x78\x73\x73\x68\x63\x10\x11\xb2\x38\x26\x6e\xb5\xc8\x94\xe2\xcf\ \xa7\x4f\xaf\x1a\x8d\xc6\x25\xf0\xc9\x57\x22\x3f\xbd\x02\x7c\xa0\ \x54\xc5\xc0\xe1\xda\xda\x5a\xa5\x56\xa9\xa0\x4b\x25\xcc\xf4\xf4\ \x28\x4b\x04\x11\x81\x5c\x71\x18\x22\x69\x4a\xd0\x6e\x73\x70\x70\ \xd0\x8e\xe1\x76\x51\xa9\x2e\xc8\x16\xb6\x97\x6e\xdd\x9a\xaa\x96\ \xcb\x0c\x4e\x4e\x90\x24\x21\x6a\xb5\x88\x82\xe0\x15\x65\x71\xcc\ \xe5\xd1\x11\x95\x72\x99\xa5\xc5\xc5\x29\x0b\xdb\x05\x47\x17\x0d\ \x30\xd6\x6e\xae\xae\xae\xda\xb0\x5e\xc7\xb1\x96\xb4\xd5\x22\x0d\ \x02\x24\x08\xc8\x8a\x7b\xab\x45\xda\x6a\x91\x04\x01\xca\x75\x09\ \x9f\x3c\xe1\x9d\xd5\x55\x6b\xac\xdd\x7c\xa8\xd4\xfd\x71\x97\x35\ \x6c\xbc\xbd\xb0\x60\x92\xd3\x53\x08\x43\x74\x18\xa2\x1c\x07\x9d\ \x2f\x51\x15\xfb\x2c\x42\x26\x82\x64\x19\x3a\x49\x90\x30\x24\x3a\ \x3d\xe5\xe6\x8d\x1b\xe6\xf0\xf8\x78\x03\xd8\x77\x73\x3b\xac\xcf\ \x96\x4a\xae\xea\x74\xb0\x80\x3a\x3b\x43\xfb\x3e\x3a\xcb\x50\xd7\ \x80\x99\x08\x64\xd9\x88\x1d\x45\xa3\xdc\x4e\x87\x99\xe9\x69\xd7\ \x81\xf5\x71\x85\x19\xdc\x9d\xf5\x7d\x9c\x93\x13\x5c\xc0\xed\xf5\ \x70\xfa\x7d\x1c\x11\x14\xa0\xf2\xfd\x91\x51\x2e\x69\x3e\xa7\x80\ \xac\xdb\x65\x66\x61\x81\xc2\xab\x63\x63\xeb\x24\xc1\x88\xa0\xf3\ \x49\x57\x04\x27\xdf\xe4\xeb\xc0\x34\x57\x92\xc7\x32\x11\xa2\x38\ \x1e\xe7\xe8\xfc\x52\xef\x5d\x5c\xe0\xf9\x3e\xde\xa8\xe3\x58\xc0\ \xcf\x55\xba\xf6\xec\xe7\x31\x0f\x30\x80\xe7\xfb\xf4\xba\x5d\x34\ \xd4\xc7\xc0\x14\xf6\xda\xbd\x5e\x6c\x3c\x0f\xb7\x48\x7c\x0d\xb4\ \x00\x15\x30\x03\x18\x6b\xe9\xf4\xfb\x71\x0a\x7b\x63\x60\x06\xbb\ \xcd\x6e\x37\xc1\x5a\x5c\x6b\x71\xf2\x65\x9b\x09\x68\x01\x74\x0b\ \xf9\x3e\xe2\xfb\x34\xc3\x30\xc9\x60\x77\x0c\x7c\x24\xb2\x1f\x27\ \xc9\xce\xaf\xe7\xe7\x43\x53\xad\xa2\x95\xc2\x19\x75\x1f\x77\x02\ \xa4\x0b\x29\x85\x5b\xad\xf2\xdb\xf3\xe7\xc3\x38\x49\x76\x8a\x9f\ \xc5\xf8\xa4\x5c\xc1\xd6\x51\xbf\x3f\x68\x0e\x06\xe8\x5a\x0d\x8c\ \x41\x26\x1a\x91\xe5\xef\x18\x83\x9e\x9f\xe7\x78\x30\xa0\xd1\xeb\ \x0d\xaf\x60\xab\xe0\x8c\xcf\xb2\x52\x6a\xea\x33\xf8\x78\x05\xbe\ \xbd\x6d\xad\x7f\xaf\x5c\xf6\x4a\x51\x84\x9b\x24\x23\x13\x03\xe2\ \xba\xc4\xc6\x30\xf0\x3c\x7e\xec\xf7\xe3\xc3\xe1\x70\xf8\x3b\x7c\ \xfe\x1d\xfc\x00\xbc\x10\x91\xe8\x3a\x70\x06\xa8\x2d\xc2\xf2\xa7\ \xf0\x65\x55\xa9\xb5\x77\x3d\xcf\x59\xd0\xda\xa9\xb9\x23\x77\x05\ \x69\xca\x69\x9a\x66\x7f\x45\x51\x7a\x2e\x52\x7f\x0c\xdf\x3c\x83\ \x26\xf0\x02\xf8\xf7\x25\x60\x0e\x9d\x06\x6a\x40\xe5\x23\xb8\x77\ \x13\x3e\x98\x87\xf7\x7d\x58\x02\x18\xc2\xdf\xcf\xe0\x8f\x7f\xe0\ \x97\x3d\xf8\x19\x08\x81\x73\xe0\x4c\x44\x92\x97\x96\x7c\x7d\x28\ \xa5\x9c\xdc\x29\x85\x2c\x23\x7f\x27\x23\x2e\x43\xe0\x12\xb8\x92\ \x09\xc0\x7f\x02\xdb\x94\xe6\x90\x75\x0b\x12\x00\x00\x00\x00\x49\ \x45\x4e\x44\xae\x42\x60\x82\ " qt_resource_name = "\ \x00\x05\ \x00\x6f\xa6\x53\ \x00\x69\ \x00\x63\x00\x6f\x00\x6e\x00\x73\ \x00\x0a\ \x09\xed\x11\xe7\ \x00\x63\ \x00\x6c\x00\x6f\x00\x63\x00\x6b\x00\x35\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x07\x7e\xf7\xc7\ \x00\x63\ \x00\x6f\x00\x6e\x00\x66\x00\x69\x00\x72\x00\x6d\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x14\ \x04\x52\xd8\x27\ \x00\x73\ \x00\x74\x00\x61\x00\x74\x00\x75\x00\x73\x00\x5f\x00\x63\x00\x6f\x00\x6e\x00\x6e\x00\x65\x00\x63\x00\x74\x00\x65\x00\x64\x00\x2e\ \x00\x70\x00\x6e\x00\x67\ \x00\x0c\ \x04\x3d\x22\x27\ \x00\x65\ \x00\x6c\x00\x65\x00\x63\x00\x74\x00\x72\x00\x75\x00\x6d\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x05\x9e\x59\x27\ \x00\x6c\ \x00\x6f\x00\x63\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x12\ \x04\x3b\x79\x07\ \x00\x73\ \x00\x74\x00\x61\x00\x74\x00\x75\x00\x73\x00\x5f\x00\x77\x00\x61\x00\x69\x00\x74\x00\x69\x00\x6e\x00\x67\x00\x2e\x00\x70\x00\x6e\ \x00\x67\ \x00\x0a\ \x09\xf1\x11\xe7\ \x00\x63\ \x00\x6c\x00\x6f\x00\x63\x00\x6b\x00\x31\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0d\ \x0b\x7d\x05\x67\ \x00\x73\ \x00\x77\x00\x69\x00\x74\x00\x63\x00\x68\x00\x67\x00\x75\x00\x69\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x07\x7f\x07\x47\ \x00\x75\ \x00\x6e\x00\x63\x00\x6f\x00\x6e\x00\x66\x00\x69\x00\x72\x00\x6d\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x08\ \x0b\xb7\x58\x67\ \x00\x73\ \x00\x65\x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0b\ \x06\x67\xc0\x87\ \x00\x6e\ \x00\x65\x00\x74\x00\x77\x00\x6f\x00\x72\x00\x6b\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x09\xe8\x11\xe7\ \x00\x63\ \x00\x6c\x00\x6f\x00\x63\x00\x6b\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x09\xea\x11\xe7\ \x00\x63\ \x00\x6c\x00\x6f\x00\x63\x00\x6b\x00\x34\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0a\ \x09\xeb\x11\xe7\ \x00\x63\ \x00\x6c\x00\x6f\x00\x63\x00\x6b\x00\x33\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x0f\ \x0e\x5e\x99\xe7\ \x00\x70\ \x00\x72\x00\x65\x00\x66\x00\x65\x00\x72\x00\x65\x00\x6e\x00\x63\x00\x65\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\ \x00\x17\ \x0f\xfe\x47\x87\ \x00\x73\ \x00\x74\x00\x61\x00\x74\x00\x75\x00\x73\x00\x5f\x00\x64\x00\x69\x00\x73\x00\x63\x00\x6f\x00\x6e\x00\x6e\x00\x65\x00\x63\x00\x74\ \x00\x65\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ " qt_resource_struct = "\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x10\x00\x00\x00\x02\ \x00\x00\x00\xac\x00\x00\x00\x00\x00\x01\x00\x00\x37\x6a\ \x00\x00\x00\x78\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xcf\ \x00\x00\x00\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x08\xb7\ \x00\x00\x00\x96\x00\x00\x00\x00\x00\x01\x00\x00\x2f\x9c\ \x00\x00\x01\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x75\xf6\ \x00\x00\x00\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x03\xc0\ \x00\x00\x01\x10\x00\x00\x00\x00\x00\x01\x00\x00\x47\x76\ \x00\x00\x01\x66\x00\x00\x00\x00\x00\x01\x00\x00\x81\xd1\ \x00\x00\x01\x80\x00\x00\x00\x00\x00\x01\x00\x00\x85\x85\ \x00\x00\x01\x9a\x00\x00\x00\x00\x00\x01\x00\x00\x89\x4b\ \x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\xd6\x00\x00\x00\x00\x00\x01\x00\x00\x3d\x4b\ \x00\x00\x00\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x41\x01\ \x00\x00\x01\x34\x00\x00\x00\x00\x00\x01\x00\x00\x4d\xa0\ \x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x00\x8d\x01\ \x00\x00\x01\xd8\x00\x00\x00\x00\x00\x01\x00\x00\x93\xa0\ " def qInitResources(): QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) def qCleanupResources(): QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) qInitResources() Electrum-1.9.7/lib/verifier.py0000664000175000017500000001332312247641560017756 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python # # Electrum - lightweight Bitcoin client # Copyright (C) 2012 thomasv@ecdsa.org # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import threading, time, Queue, os, sys, shutil from util import user_dir, appdata_dir, print_error from bitcoin import * class TxVerifier(threading.Thread): """ Simple Payment Verification """ def __init__(self, network, storage): threading.Thread.__init__(self) self.daemon = True self.storage = storage self.network = network self.blockchain = network.blockchain self.transactions = {} # requested verifications (with height sent by the requestor) self.verified_tx = storage.get('verified_tx3',{}) # height, timestamp of verified transactions self.merkle_roots = storage.get('merkle_roots',{}) # hashed by me self.lock = threading.Lock() self.running = False self.queue = Queue.Queue() def get_confirmations(self, tx): """ return the number of confirmations of a monitored transaction. """ with self.lock: if tx in self.verified_tx: height, timestamp, pos = self.verified_tx[tx] conf = (self.blockchain.local_height - height + 1) if conf <= 0: timestamp = None elif tx in self.transactions: conf = -1 timestamp = None else: conf = 0 timestamp = None return conf, timestamp def get_txpos(self, tx_hash): "return position, even if the tx is unverified" with self.lock: x = self.verified_tx.get(tx_hash) y = self.transactions.get(tx_hash) if x: height, timestamp, pos = x return height, pos elif y: return y, 0 else: return 1e12, 0 def get_height(self, tx_hash): with self.lock: v = self.verified_tx.get(tx_hash) height = v[0] if v else None return height def add(self, tx_hash, tx_height): """ add a transaction to the list of monitored transactions. """ assert tx_height > 0 with self.lock: if tx_hash not in self.transactions.keys(): self.transactions[tx_hash] = tx_height def stop(self): with self.lock: self.running = False def is_running(self): with self.lock: return self.running def run(self): with self.lock: self.running = True requested_merkle = [] while self.is_running(): # request missing tx for tx_hash, tx_height in self.transactions.items(): if tx_hash not in self.verified_tx: if self.merkle_roots.get(tx_hash) is None and tx_hash not in requested_merkle: if self.network.send([ ('blockchain.transaction.get_merkle',[tx_hash, tx_height]) ], lambda i,r: self.queue.put(r)): print_error('requesting merkle', tx_hash) requested_merkle.append(tx_hash) try: r = self.queue.get(timeout=1) except Queue.Empty: continue if not r: continue if r.get('error'): print_error('Verifier received an error:', r) continue # 3. handle response method = r['method'] params = r['params'] result = r['result'] if method == 'blockchain.transaction.get_merkle': tx_hash = params[0] self.verify_merkle(tx_hash, result) requested_merkle.remove(tx_hash) def verify_merkle(self, tx_hash, result): tx_height = result.get('block_height') pos = result.get('pos') self.merkle_roots[tx_hash] = self.hash_merkle_root(result['merkle'], tx_hash, pos) header = self.blockchain.read_header(tx_height) if not header: return assert header.get('merkle_root') == self.merkle_roots[tx_hash] # we passed all the tests timestamp = header.get('timestamp') with self.lock: self.verified_tx[tx_hash] = (tx_height, timestamp, pos) print_error("verified %s"%tx_hash) self.storage.put('verified_tx3', self.verified_tx, True) self.network.trigger_callback('updated') def hash_merkle_root(self, merkle_s, target_hash, pos): h = hash_decode(target_hash) for i in range(len(merkle_s)): item = merkle_s[i] h = Hash( hash_decode(item) + h ) if ((pos >> i) & 1) else Hash( h + hash_decode(item) ) return hash_encode(h) def undo_verifications(self, height): with self.lock: items = self.verified_tx.items()[:] for tx_hash, item in items: tx_height, timestamp, pos = item if tx_height >= height: print_error("redoing", tx_hash) with self.lock: self.verified_tx.pop(tx_hash) if tx_hash in self.merkle_roots: self.merkle_roots.pop(tx_hash) Electrum-1.9.7/lib/wallet_bitkey.py0000644000175000017500000000165012072600727020774 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python # # Electrum - lightweight Bitcoin client # Copyright (C) 2011 thomasv@gitorious # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import os from wallet import Wallet #import bitkeylib.bitkey_pb2 as proto from version import ELECTRUM_VERSION SEED_VERSION = 4 # Version of bitkey algorithm class WalletBitkey(Wallet): pass Electrum-1.9.7/lib/bmp.py0000664000175000017500000001576112236532564016732 0ustar voegtlinvoegtlin00000000000000# -*- coding: utf-8 -*- """ bmp.py - module for constructing simple BMP graphics files Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ __version__ = "0.3" __about = "bmp module, version %s, written by Paul McGuire, October, 2003, updated by Margus Laak, September, 2009" % __version__ from math import ceil, hypot def shortToString(i): hi = (i & 0xff00) >> 8 lo = i & 0x00ff return chr(lo) + chr(hi) def longToString(i): hi = (long(i) & 0x7fff0000) >> 16 lo = long(i) & 0x0000ffff return shortToString(lo) + shortToString(hi) def long24ToString(i): return chr(i & 0xff) + chr(i >> 8 & 0xff) + chr(i >> 16 & 0xff) def stringToLong(input_string, offset): return ord(input_string[offset+3]) << 24 | ord(input_string[offset+2]) << 16 | ord(input_string[offset+1]) << 8 | ord(input_string[offset]) def stringToLong24(input_string, offset): return ord(input_string[offset+2]) << 16 | ord(input_string[offset+1]) << 8 | ord(input_string[offset]) class Color(object): """class for specifying colors while drawing BitMap elements""" __slots__ = [ 'red', 'grn', 'blu' ] __shade = 32 def __init__( self, r=0, g=0, b=0 ): self.red = r self.grn = g self.blu = b def __setattr__(self, name, value): if hasattr(self, name): raise AttributeError, "Color is immutable" else: object.__setattr__(self, name, value) def __str__( self ): return "R:%d G:%d B:%d" % (self.red, self.grn, self.blu ) def __hash__( self ): return ( ( long(self.blu) ) + ( long(self.grn) << 8 ) + ( long(self.red) << 16 ) ) def __eq__( self, other ): return (self is other) or (self.toLong == other.toLong) def lighten( self ): return Color( min( self.red + Color.__shade, 255), min( self.grn + Color.__shade, 255), min( self.blu + Color.__shade, 255) ) def darken( self ): return Color( max( self.red - Color.__shade, 0), max( self.grn - Color.__shade, 0), max( self.blu - Color.__shade, 0) ) def toLong( self ): return self.__hash__() def fromLong( l ): b = l & 0xff l = l >> 8 g = l & 0xff l = l >> 8 r = l & 0xff return Color( r, g, b ) fromLong = staticmethod(fromLong) # define class constants for common colors Color.BLACK = Color( 0, 0, 0 ) Color.RED = Color( 255, 0, 0 ) Color.GREEN = Color( 0, 255, 0 ) Color.BLUE = Color( 0, 0, 255 ) Color.CYAN = Color( 0, 255, 255 ) Color.MAGENTA = Color( 255, 0, 255 ) Color.YELLOW = Color( 255, 255, 0 ) Color.WHITE = Color( 255, 255, 255 ) Color.DKRED = Color( 128, 0, 0 ) Color.DKGREEN = Color( 0, 128, 0 ) Color.DKBLUE = Color( 0, 0, 128 ) Color.TEAL = Color( 0, 128, 128 ) Color.PURPLE = Color( 128, 0, 128 ) Color.BROWN = Color( 128, 128, 0 ) Color.GRAY = Color( 128, 128, 128 ) class BitMap(object): """class for drawing and saving simple Windows bitmap files""" LINE_SOLID = 0 LINE_DASHED = 1 LINE_DOTTED = 2 LINE_DOT_DASH=3 _DASH_LEN = 12.0 _DOT_LEN = 6.0 _DOT_DASH_LEN = _DOT_LEN + _DASH_LEN def __init__( self, width, height, bkgd = Color.WHITE, frgd = Color.BLACK ): self.wd = int( ceil(width) ) self.ht = int( ceil(height) ) self.bgcolor = 0 self.fgcolor = 1 self.palette = [] self.palette.append( bkgd.toLong() ) self.palette.append( frgd.toLong() ) self.currentPen = self.fgcolor tmparray = [ self.bgcolor ] * self.wd self.bitarray = [ tmparray[:] for i in range( self.ht ) ] self.currentPen = 1 def plotPoint( self, x, y ): if ( 0 <= x < self.wd and 0 <= y < self.ht ): x = int(x) y = int(y) self.bitarray[y][x] = self.currentPen def _saveBitMapNoCompression( self ): line_padding = (4 - (self.wd % 4)) % 4 # write bitmap header _bitmap = "BM" _bitmap += longToString( 54 + self.ht*(self.wd*3 + line_padding) ) # DWORD size in bytes of the file _bitmap += longToString( 0 ) # DWORD 0 _bitmap += longToString( 54 ) _bitmap += longToString( 40 ) # DWORD header size = 40 _bitmap += longToString( self.wd ) # DWORD image width _bitmap += longToString( self.ht ) # DWORD image height _bitmap += shortToString( 1 ) # WORD planes = 1 _bitmap += shortToString( 24 ) # WORD bits per pixel = 8 _bitmap += longToString( 0 ) # DWORD compression = 0 _bitmap += longToString( self.ht * (self.wd * 3 + line_padding) ) # DWORD sizeimage = size in bytes of the bitmap = width * height _bitmap += longToString( 0 ) # DWORD horiz pixels per meter (?) _bitmap += longToString( 0 ) # DWORD ver pixels per meter (?) _bitmap += longToString( 0 ) # DWORD number of colors used = 256 _bitmap += longToString( 0 ) # DWORD number of "import colors = len( self.palette ) # write pixels self.bitarray.reverse() for row in self.bitarray: for pixel in row: c = self.palette[pixel] _bitmap += long24ToString(c) for i in range(line_padding): _bitmap += chr( 0 ) return _bitmap def saveFile( self, filename): _b = self._saveBitMapNoCompression( ) f = file(filename, 'wb') f.write(_b) f.close() def save_qrcode(qr, filename): k = qr.moduleCount bitmap = BitMap( (k+2)*8, (k+2)*8 ) bitmap.bitarray = [] for r in range(k+2): tmparray = [ 0 ] * (k+2)*8 if 0 < r < k+1: for c in range(k): if qr.isDark(r-1, c): tmparray[ (1+c)*8:(2+c)*8] = [1]*8 for i in range(8): bitmap.bitarray.append( tmparray[:] ) bitmap.saveFile( filename ) if __name__ == "__main__": bmp = BitMap( 10, 10 ) bmp.plotPoint( 5, 5 ) bmp.plotPoint( 0, 0 ) bmp.saveFile( "test.bmp" ) Electrum-1.9.7/lib/transaction.py0000664000175000017500000006246612247641560020504 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python # # Electrum - lightweight Bitcoin client # Copyright (C) 2011 thomasv@gitorious # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Note: The deserialization code originally comes from ABE. from bitcoin import * from util import print_error import time import struct # # Workalike python implementation of Bitcoin's CDataStream class. # import struct import StringIO import mmap class SerializationError(Exception): """ Thrown when there's a problem deserializing or serializing """ class BCDataStream(object): def __init__(self): self.input = None self.read_cursor = 0 def clear(self): self.input = None self.read_cursor = 0 def write(self, bytes): # Initialize with string of bytes if self.input is None: self.input = bytes else: self.input += bytes def map_file(self, file, start): # Initialize with bytes from file self.input = mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) self.read_cursor = start def seek_file(self, position): self.read_cursor = position def close_file(self): self.input.close() def read_string(self): # Strings are encoded depending on length: # 0 to 252 : 1-byte-length followed by bytes (if any) # 253 to 65,535 : byte'253' 2-byte-length followed by bytes # 65,536 to 4,294,967,295 : byte '254' 4-byte-length followed by bytes # ... and the Bitcoin client is coded to understand: # greater than 4,294,967,295 : byte '255' 8-byte-length followed by bytes of string # ... but I don't think it actually handles any strings that big. if self.input is None: raise SerializationError("call write(bytes) before trying to deserialize") try: length = self.read_compact_size() except IndexError: raise SerializationError("attempt to read past end of buffer") return self.read_bytes(length) def write_string(self, string): # Length-encoded as with read-string self.write_compact_size(len(string)) self.write(string) def read_bytes(self, length): try: result = self.input[self.read_cursor:self.read_cursor+length] self.read_cursor += length return result except IndexError: raise SerializationError("attempt to read past end of buffer") return '' def read_boolean(self): return self.read_bytes(1)[0] != chr(0) def read_int16(self): return self._read_num('= opcodes.OP_SINGLEBYTE_END: opcode <<= 8 opcode |= ord(bytes[i]) i += 1 if opcode <= opcodes.OP_PUSHDATA4: nSize = opcode if opcode == opcodes.OP_PUSHDATA1: nSize = ord(bytes[i]) i += 1 elif opcode == opcodes.OP_PUSHDATA2: (nSize,) = struct.unpack_from(' 0: result += " " if opcode <= opcodes.OP_PUSHDATA4: result += "%d:"%(opcode,) result += short_hex(vch) else: result += script_GetOpName(opcode) return result def match_decoded(decoded, to_match): if len(decoded) != len(to_match): return False; for i in range(len(decoded)): if to_match[i] == opcodes.OP_PUSHDATA4 and decoded[i][0] <= opcodes.OP_PUSHDATA4 and decoded[i][0]>0: continue # Opcodes below OP_PUSHDATA4 all just push data onto stack, and are equivalent. if to_match[i] != decoded[i][0]: return False return True def get_address_from_input_script(bytes): try: decoded = [ x for x in script_GetOp(bytes) ] except Exception: # coinbase transactions raise an exception print_error("cannot find address in input script", bytes.encode('hex')) return [], [], "(None)" # payto_pubkey match = [ opcodes.OP_PUSHDATA4 ] if match_decoded(decoded, match): return None, None, "(pubkey)" # non-generated TxIn transactions push a signature # (seventy-something bytes) and then their public key # (65 bytes) onto the stack: match = [ opcodes.OP_PUSHDATA4, opcodes.OP_PUSHDATA4 ] if match_decoded(decoded, match): return None, None, public_key_to_bc_address(decoded[1][1]) # p2sh transaction, 2 of n match = [ opcodes.OP_0 ] while len(match) < len(decoded): match.append(opcodes.OP_PUSHDATA4) if match_decoded(decoded, match): redeemScript = decoded[-1][1] num = len(match) - 2 signatures = map(lambda x:x[1][:-1].encode('hex'), decoded[1:-1]) dec2 = [ x for x in script_GetOp(redeemScript) ] # 2 of 2 match2 = [ opcodes.OP_2, opcodes.OP_PUSHDATA4, opcodes.OP_PUSHDATA4, opcodes.OP_2, opcodes.OP_CHECKMULTISIG ] if match_decoded(dec2, match2): pubkeys = [ dec2[1][1].encode('hex'), dec2[2][1].encode('hex') ] return pubkeys, signatures, hash_160_to_bc_address(hash_160(redeemScript), 5) # 2 of 3 match2 = [ opcodes.OP_2, opcodes.OP_PUSHDATA4, opcodes.OP_PUSHDATA4, opcodes.OP_PUSHDATA4, opcodes.OP_3, opcodes.OP_CHECKMULTISIG ] if match_decoded(dec2, match2): pubkeys = [ dec2[1][1].encode('hex'), dec2[2][1].encode('hex'), dec2[3][1].encode('hex') ] return pubkeys, signatures, hash_160_to_bc_address(hash_160(redeemScript), 5) print_error("cannot find address in input script", bytes.encode('hex')) return [], [], "(None)" def get_address_from_output_script(bytes): decoded = [ x for x in script_GetOp(bytes) ] # The Genesis Block, self-payments, and pay-by-IP-address payments look like: # 65 BYTES:... CHECKSIG match = [ opcodes.OP_PUSHDATA4, opcodes.OP_CHECKSIG ] if match_decoded(decoded, match): return True, public_key_to_bc_address(decoded[0][1]) # Pay-by-Bitcoin-address TxOuts look like: # DUP HASH160 20 BYTES:... EQUALVERIFY CHECKSIG match = [ opcodes.OP_DUP, opcodes.OP_HASH160, opcodes.OP_PUSHDATA4, opcodes.OP_EQUALVERIFY, opcodes.OP_CHECKSIG ] if match_decoded(decoded, match): return False, hash_160_to_bc_address(decoded[2][1]) # p2sh match = [ opcodes.OP_HASH160, opcodes.OP_PUSHDATA4, opcodes.OP_EQUAL ] if match_decoded(decoded, match): return False, hash_160_to_bc_address(decoded[1][1],5) return False, "(None)" class Transaction: def __init__(self, raw, is_complete = True): self.raw = raw self.deserialize() self.inputs = self.d['inputs'] self.outputs = self.d['outputs'] self.outputs = map(lambda x: (x['address'],x['value']), self.outputs) self.is_complete = is_complete def __str__(self): return self.raw @classmethod def from_io(klass, inputs, outputs): raw = klass.serialize(inputs, outputs, for_sig = -1) # for_sig=-1 means do not sign self = klass(raw) self.is_complete = False self.inputs = inputs self.outputs = outputs return self @classmethod def multisig_script(klass, public_keys, num=None): n = len(public_keys) if num is None: num = n # supports only "2 of 2", and "2 of 3" transactions assert num <= n and n in [2,3] if num==2: s = '52' elif num == 3: s = '53' else: raise for k in public_keys: s += var_int(len(k)/2) s += k if n==2: s += '52' elif n==3: s += '53' else: raise s += 'ae' return s @classmethod def serialize( klass, inputs, outputs, for_sig = None ): s = int_to_hex(1,4) # version s += var_int( len(inputs) ) # number of inputs for i in range(len(inputs)): txin = inputs[i] s += txin['prevout_hash'].decode('hex')[::-1].encode('hex') # prev hash s += int_to_hex(txin['prevout_n'],4) # prev index if for_sig is None: signatures = txin['signatures'] pubkeys = txin['pubkeys'] if not txin.get('redeemScript'): pubkey = pubkeys[0] script = '' if signatures: sig = signatures[0] sig = sig + '01' # hashtype script += op_push(len(sig)/2) script += sig script += op_push(len(pubkey)/2) script += pubkey else: script = '00' # op_0 for sig in signatures: sig = sig + '01' script += op_push(len(sig)/2) script += sig redeem_script = klass.multisig_script(pubkeys,2) script += op_push(len(redeem_script)/2) script += redeem_script elif for_sig==i: if txin.get('redeemScript'): script = txin['redeemScript'] # p2sh uses the inner script else: script = txin['scriptPubKey'] # scriptsig else: script='' s += var_int( len(script)/2 ) # script length s += script s += "ffffffff" # sequence s += var_int( len(outputs) ) # number of outputs for output in outputs: addr, amount = output s += int_to_hex( amount, 8) # amount addrtype, hash_160 = bc_address_to_hash_160(addr) if addrtype == 0: script = '76a9' # op_dup, op_hash_160 script += '14' # push 0x14 bytes script += hash_160.encode('hex') script += '88ac' # op_equalverify, op_checksig elif addrtype == 5: script = 'a9' # op_hash_160 script += '14' # push 0x14 bytes script += hash_160.encode('hex') script += '87' # op_equal else: raise s += var_int( len(script)/2 ) # script length s += script # script s += int_to_hex(0,4) # lock time if for_sig is not None and for_sig != -1: s += int_to_hex(1, 4) # hash type return s def for_sig(self,i): return self.serialize(self.inputs, self.outputs, for_sig = i) def hash(self): return Hash(self.raw.decode('hex') )[::-1].encode('hex') def sign(self, keypairs): is_complete = True print_error("tx.sign(), keypairs:", keypairs) for i, txin in enumerate(self.inputs): # if the input is multisig, parse redeem script redeem_script = txin.get('redeemScript') num, redeem_pubkeys = parse_redeemScript(redeem_script) if redeem_script else (1, [txin.get('redeemPubkey')]) # add pubkeys txin["pubkeys"] = redeem_pubkeys # get list of already existing signatures signatures = txin.get("signatures",[]) # continue if this txin is complete if len(signatures) == num: continue tx_for_sig = self.serialize( self.inputs, self.outputs, for_sig = i ) for pubkey in redeem_pubkeys: # check if we have the corresponding private key if pubkey in keypairs.keys(): # add signature sec = keypairs[pubkey] compressed = is_compressed(sec) pkey = regenerate_key(sec) secexp = pkey.secret private_key = ecdsa.SigningKey.from_secret_exponent( secexp, curve = SECP256k1 ) public_key = private_key.get_verifying_key() sig = private_key.sign_digest_deterministic( Hash( tx_for_sig.decode('hex') ), hashfunc=hashlib.sha256, sigencode = ecdsa.util.sigencode_der ) assert public_key.verify_digest( sig, Hash( tx_for_sig.decode('hex') ), sigdecode = ecdsa.util.sigdecode_der) signatures.append( sig.encode('hex') ) print_error("adding signature for", pubkey) txin["signatures"] = signatures is_complete = is_complete and len(signatures) == num self.is_complete = is_complete self.raw = self.serialize( self.inputs, self.outputs ) def deserialize(self): vds = BCDataStream() vds.write(self.raw.decode('hex')) d = {} start = vds.read_cursor d['version'] = vds.read_int32() n_vin = vds.read_compact_size() d['inputs'] = [] for i in xrange(n_vin): d['inputs'].append(self.parse_input(vds)) n_vout = vds.read_compact_size() d['outputs'] = [] for i in xrange(n_vout): d['outputs'].append(self.parse_output(vds, i)) d['lockTime'] = vds.read_uint32() self.d = d return self.d def parse_input(self, vds): d = {} d['prevout_hash'] = hash_encode(vds.read_bytes(32)) d['prevout_n'] = vds.read_uint32() scriptSig = vds.read_bytes(vds.read_compact_size()) d['sequence'] = vds.read_uint32() if scriptSig: pubkeys, signatures, address = get_address_from_input_script(scriptSig) else: pubkeys = [] signatures = [] address = None d['address'] = address d['signatures'] = signatures return d def parse_output(self, vds, i): d = {} d['value'] = vds.read_int64() scriptPubKey = vds.read_bytes(vds.read_compact_size()) is_pubkey, address = get_address_from_output_script(scriptPubKey) d['is_pubkey'] = is_pubkey d['address'] = address d['scriptPubKey'] = scriptPubKey.encode('hex') d['prevout_n'] = i return d def add_extra_addresses(self, txlist): for i in self.inputs: if i.get("address") == "(pubkey)": prev_tx = txlist.get(i.get('prevout_hash')) if prev_tx: address, value = prev_tx.outputs[i.get('prevout_n')] print_error("found pay-to-pubkey address:", address) i["address"] = address def has_address(self, addr): found = False for txin in self.inputs: if addr == txin.get('address'): found = True break for txout in self.outputs: if addr == txout[0]: found = True break return found def get_value(self, addresses, prevout_values): # return the balance for that tx is_relevant = False is_send = False is_pruned = False is_partial = False v_in = v_out = v_out_mine = 0 for item in self.inputs: addr = item.get('address') if addr in addresses: is_send = True is_relevant = True key = item['prevout_hash'] + ':%d'%item['prevout_n'] value = prevout_values.get( key ) if value is None: is_pruned = True else: v_in += value else: is_partial = True if not is_send: is_partial = False for item in self.outputs: addr, value = item v_out += value if addr in addresses: v_out_mine += value is_relevant = True if is_pruned: # some inputs are mine: fee = None if is_send: v = v_out_mine - v_out else: # no input is mine v = v_out_mine else: v = v_out_mine - v_in if is_partial: # some inputs are mine, but not all fee = None is_send = v < 0 else: # all inputs are mine fee = v_out - v_in return is_relevant, is_send, v, fee def get_input_info(self): info = [] for i in self.inputs: item = { 'prevout_hash':i['prevout_hash'], 'prevout_n':i['prevout_n'], 'address':i['address'], 'KeyID':i.get('KeyID'), 'scriptPubKey':i.get('scriptPubKey'), 'redeemScript':i.get('redeemScript'), 'redeemPubkey':i.get('redeemPubkey'), 'pubkeys':i.get('pubkeys'), 'signatures':i.get('signatures',[]), } info.append(item) return info def as_dict(self): import json out = { "hex":self.raw, "complete":self.is_complete } if not self.is_complete: input_info = self.get_input_info() out['input_info'] = json.dumps(input_info).replace(' ','') return out def requires_fee(self, verifier): # see https://en.bitcoin.it/wiki/Transaction_fees threshold = 57600000 size = len(self.raw)/2 if size >= 10000: return True for o in self.outputs: value = o[1] if value < 1000000: return True sum = 0 for i in self.inputs: age = verifier.get_confirmations(i["prevout_hash"])[0] sum += i["value"] * age priority = sum / size print_error(priority, threshold) return priority < threshold def add_input_info(self, input_info): for i, txin in enumerate(self.inputs): item = input_info[i] txin['address'] = item['address'] txin['signatures'] = item['signatures'] txin['scriptPubKey'] = item['scriptPubKey'] txin['redeemScript'] = item.get('redeemScript') txin['redeemPubkey'] = item.get('redeemPubkey') txin['KeyID'] = item.get('KeyID') Electrum-1.9.7/lib/commands.py0000664000175000017500000003777012256523243017755 0ustar voegtlinvoegtlin00000000000000#!/usr/bin/env python # # Electrum - lightweight Bitcoin client # Copyright (C) 2011 thomasv@gitorious # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from util import * from bitcoin import * from decimal import Decimal import bitcoin from transaction import Transaction class Command: def __init__(self, name, min_args, max_args, requires_network, requires_wallet, requires_password, description, syntax = '', options_syntax = ''): self.name = name self.min_args=min_args self.max_args = max_args self.requires_network = requires_network self.requires_wallet = requires_wallet self.requires_password = requires_password self.description = description self.syntax = syntax self.options = options_syntax known_commands = {} def register_command(*args): global known_commands name = args[0] known_commands[name] = Command(*args) payto_options = ' --fee, -f: set transaction fee\n --fromaddr, -F: send from address -\n --changeaddr, -c: send change to address' listaddr_options = " -a: show all addresses, including change addresses\n -l: include labels in results" restore_options = " accepts a seed or master public key." mksendmany_syntax = 'mksendmanytx [ ...]' payto_syntax = "payto [label]\n can be a bitcoin address or a label" paytomany_syntax = "paytomany [ ...]\n can be a bitcoin address or a label" signmessage_syntax = 'signmessage
\nIf you want to lead or end a message with spaces, or want double spaces inside the message make sure you quote the string. I.e. " Hello This is a weird String "' verifymessage_syntax = 'verifymessage
\nIf you want to lead or end a message with spaces, or want double spaces inside the message make sure you quote the string. I.e. " Hello This is a weird String "' # command # requires_network # requires_wallet # requires_password register_command('contacts', 0, 0, False, True, False, 'Show your list of contacts') register_command('create', 0, 0, False, True, False, 'Create a new wallet') register_command('createmultisig', 2, 2, False, True, False, 'similar to bitcoind\'s command') register_command('createrawtransaction', 2, 2, False, True, False, 'similar to bitcoind\'s command') register_command('deseed', 0, 0, False, True, False, 'Remove seed from wallet, creating a seedless, watching-only wallet.') register_command('decoderawtransaction', 1, 1, False, False, False, 'similar to bitcoind\'s command') register_command('dumpprivkey', 1, 1, False, True, True, 'Dumps a specified private key for a given address', 'dumpprivkey ') register_command('dumpprivkeys', 0, 0, False, True, True, 'dump all private keys') register_command('freeze', 1, 1, False, True, True, 'Freeze the funds at one of your wallet\'s addresses', 'freeze
') register_command('getbalance', 0, 1, True, True, False, 'Return the balance of your wallet, or of one account in your wallet', 'getbalance []') register_command('getservers', 0, 0, True, False, False, 'Return the list of available servers') register_command('getversion', 0, 0, False, False, False, 'Return the version of your client', 'getversion') register_command('getaddressbalance', 1, 1, True, True, False, 'Return the balance of an address', 'getaddressbalance
') register_command('getaddresshistory', 1, 1, True, True, False, 'Return the transaction history of a wallet address', 'getaddresshistory
') register_command('getconfig', 1, 1, False, False, False, 'Return a configuration variable', 'getconfig ') register_command('getpubkeys', 1, 1, False, True, False, 'Return the public keys for a wallet address', 'getpubkeys ') register_command('getrawtransaction', 1, 2, True, False, False, 'Retrieve a transaction', 'getrawtransaction ') register_command('getseed', 0, 0, False, True, True, 'Print the generation seed of your wallet.') register_command('getmpk', 0, 0, False, True, False, 'Return your wallet\'s master public key', 'getmpk') register_command('help', 0, 1, False, False, False, 'Prints this help') register_command('history', 0, 0, True, True, False, 'Returns the transaction history of your wallet') register_command('importprivkey', 1, 1, False, True, True, 'Import a private key', 'importprivkey ') register_command('listaddresses', 2, 2, False, True, False, 'Returns your list of addresses.', '', listaddr_options) register_command('listunspent', 0, 0, True, True, False, 'Returns the list of unspent inputs in your wallet.') register_command('mktx', 5, 5, False, True, True, 'Create a signed transaction', 'mktx [label]', payto_options) register_command('mksendmanytx', 4, 4, False, True, True, 'Create a signed transaction', mksendmany_syntax, payto_options) register_command('payto', 5, 5, True, True, True, 'Create and broadcast a transaction.', payto_syntax, payto_options) register_command('paytomany', 4, 4, True, True, True, 'Create and broadcast a transaction.', paytomany_syntax, payto_options) register_command('password', 0, 0, False, True, True, 'Change your password') register_command('restore', 0, 0, True, True, False, 'Restore a wallet', '', restore_options) register_command('setconfig', 2, 2, False, False, False, 'Set a configuration variable', 'setconfig ') register_command('setlabel', 2,-1, False, True, False, 'Assign a label to an item', 'setlabel