1101011111111000110101110100001000011000000011100001000010010111011111011111100111011000010101110001010010101001111111011000011100000100101110001110110110101100101001011000111100111101000101100000011011111101111111111010100101101100000000011101011111100100111101000010111110001000100000001000110111100101110000111100001101110011001000010011000011101011111011110100001110001010110100011100110001100001 1101111100001101110110111100111001100111101001001110001010001101111000110110000111011101010101100100110111100000111000001110111101100110001100010101011000100101101110111101001001000111111110001001111110111010100100010011000000011110010001100011100101101111011100001011011110100110110100001111010111010110101100000001000011000010101011110100111010111101101010011110011110101100001111101100010000111110 0101110110101110001101001100100100101110000001000011100111100010100010001110000000011011011000010001010111001111000001100011010101100001011010110001000010110011011101101010111101011011011110111011111111100100010111100100101110111001111110010100010111001011111101010000000011100001011001101101010111001111001110001000110110100101000100010111011110000011000001101110110010110011011100101111101100100001 1010101101111010000101010001111101110011010111001001000110111011010110000110001110110111110001100011101101100001111110010010110011111011001000100001011101100001010001001010001000110111100101100101011100001101010010100100101000110100001111110010110011111110010101101110111100100101011111000001000001011001100010110111001010001101111000000011001001110010110101111011110010100111110010111101100100111010 0100111111111111111100001010011000111010010011001110111101011101111101111000110010000001001100101011101111010001001101100100011001101100110111011000000011001111010000111001001101000000111001011111100101011000110110100000101010000001001111001110111100100101011011100100000101001111110000001101101101100000111111010101010000110101001010100000111011000000000000010011111011011100111110101000111001100110 0001011000010101001101010110110011110101100110011000011001001101001110001011101001101011100111011000100110001110010100110010001100111101001000100100001110101111100000101101100100111011111101001110101010001000110011111100000111010100010001110000111010010111101001100111110100101110100001100011111010001101110101001100111100000101100011111001011001110010101111100101011101101100010101111110111010111011 0111111010101011111110101111111110001101110000111110011000101001001100000100100100111010000010100111010010011100011100100001101010010011001101111101111000001010001110110100101111100000100100000001100111111110111100010100111110011111001001010110000110101111000000101101100110000100111101100111110110000110001000111101000001000110110111001010000001001100100001111010000111011101110111010110111001110101 0000010100110011010011110010011011010111001011010110100011100011101100010010100000001101010100111110000001111100111010110001111101011101011111110011000011000101101011000111101110101110000011001001001100010101011001000000010011010010101101110111010000011010000010010111110110100000000101010100010001011001101100000101001001001111000000101011001011111110010101111110010001001000100000000011111100101010 1000100100011011111011000010100000111011110111010100011001101000010011011100011001000011001001001101010011001001100100001111011111111100110111011011101010111111110010110110110101110110011001011111111101111011001000100111101101010010111011010110101011110100101010011001101001101001100100111001110111010110110110100111000111011101111001010110011001111011100111111000100000010110010000001000101100001001 1110110011101100100000000111111011010110111100000101110101011000000011011010000110101011110100000100101100101110011101101011011010011011101111111010101000111110001011100000011111110000101100000000000010001100100101110101000100101011000111110000000111011011010111100000000001011101011100111111101001101101100111001110001101111111111001111010100001110111100100011010101001010001110001111010101001110111 0011010111110111100111111000011100010011011000001110011000010100010110111100100001011000010100010001111110100100111101010111011001011000000001000100001110111111110011101100001100010111100000111011110001010011011001010010000000100010010011111100000000000110010101011010101000111000000101110100000101111011001110000010110100000101011110001000010001011110100001010001101010000001100111000110110000111110 1011100100000001101100000101011001001110101001010111100011101101111111001110001011001111110000000010110100000110111001111100101000111001111110010001110010011111101111111110101010000000001101100110100111101111101010000010110110010100001111001101000110000010011000010001010000000011011110000000110110111111111110010100010101101111110010000110110000000100111010110110001000110001111011010011110101011000 0100110111001110010110010011111100010010100101111101101011100100100100001111110110111100100010001110100100010101010001101111100110001111101010010100000111001110111100100001001001101100111100011001001010110110100101111001011111011001001101011100000101111111010111000010110110110100111010111101100110100111010101101001101110001010101011110010110100000011011101000101011100100010011110011001010011000110 1010010010110111001100000001110010110111000101101001101110100000000100111111011111111111001110011101100100100100011100101010110111111100010010111111010100101010100101010100100011000110000001000110011010110010010100111111001001101110011001010011011000111111011001111101110100101001010010101111110101011001101100111101000011101100111010000111100100010000111010110011001010011001001101110001111011001101 1100100010111101011111100110111101111000111110111001101100110001001011111100011000010110001101100101000010100011100001011101011111001110101110010110101100010100011101000000011000110110111100111101100110111000100011110010010011100000010110010110100011100101110111011010001111011000111110000010000000000011011101000011000111010100010101001101100110010000011101000001011001100101010100011001010111100101 1111111001001001000110011001011110111101010100001111000110000111111010000110000101111101000101011001110101010111101101111011010001010010010000010111001011111010000010000110101000001011110010101000111010111010000010000111010110100110100011110111000100000110010001110101011001001110001011010111111101011011001011101110100111101001001101100111010000010000101010010000010000010110111100010000000111101010 1101001100101100000100000111111111100111000111110000000111111101100111011010011000011111000100010101101010111011110111001010101011010111111001101001000110001101000011000101101110101100100110110100001101010100001010001010011000100101110010011101011100001010100011001110110101010011001110011111100110111000101111111000001101000010110101000010010101110001011001011101000101111000101010101001110001011111 1010010101101100110110011000001001100000011000101000101100110110011000000100000101100101001110010011001101100011011100010000110100111101111000100100101110000101001100001001110000110111010101010011000000010001000111101101000100100110110001111001011101001101011010010000011010000010001110001010011101001100110000010110110100000010000001110110101110111011010011011101101111011100101000001110101000001000 1010001010001000100111110101100011101010111000101100101001111011111111000101010000010010000001110101000010010100111011001101110101111101011011110100011001101100101110000000100110110010111000101011101000000100010001111110100100001000111001111001111110100100001101011011111001010011110100010010101000011110011101110100101101101010000011101010100100000001101000010111101001110001011000010011000110011100 0110101110011011110001101111100101101100000001111001110101010111100111001000001000000101101011101101100010111011010111100000100000110011101001010100110111001011001010100101010011001001010000010010000010001100010000100011111011101000100010011110100100110101101101110110101101000000010001000011010100000100000001111000011001111001110000110001101000111100001010011110100010110101101101100000001100000011 1111110110101110011001111010100001011001101010010000010011011111011110101001010110001001110000000000000101111000100011110111001111100001110111001110000010011101000011111001010010011101101011001111110011100000000011010000011011001111000010011010101011010011010010010011011110110110101110111010111010010001110111111101101111011000010001100011010110010001001111110000010111010011000100010000010101010010 1011011001011100110000111011100111100000001100010101000011010111111100110100011100101111100101011011110001001100001000001111001011001001010101000010110110111010001111111101110001110011101111001011001000110110101010110010011100101000101010110110000010110110001011001000000101011001101100010010100101010000101110101111111000100010001001111010000011110011001010100011101010110111000000111101001100000100 0000110100001101100000011011010000011011100101001100101000100011101010110111010000011100010011001000100000110110010010100101000010000010111010111110001001101110101010000001111010000110001100010111111010011011010000011101001100001100111110111111001011111111000110100101111101111000010010001011100011110011100010101000010100000011001011111011100000011100111111010010011111010011111000011101110011100111 1101010011110101010001011010111111110111110110010111001010011010100110011011010110111011110110111110001101100001001010100000001010000010010111000101000111111001011110011111110100110110100010000110111111110010100000111011111110111011000110001010111100101000110101110001110011110111110111001100110000101100101111000011000101111111110111011111111100011111001110001010011000000110011001111001001100011010 0001101100110111000111111000000111000011001111101001101100100110110000001101010110110110011001110000100000101001000101100100100001110101001011010010110110110010000101101101100010100100010001011100010101000101010000111001101110100010001001101100111101111110111110010010111000110001001111010000101001010110010101100110101111011001010010000010111010110110001110100110111100001000111000100011010010100001 1110110001010011111001010011010011001101000011011111110011101110001010011100110111111001000000100111100100001100011000010011000100001101111001110011101000001011101010001101110101000101111100100010011111110000010110100010011100000010101100000111111001000110111001010100100010100100010010010100001001110100110110001110110000111111101001111011101011100010100001000010100100011010000011010101010000100100 1110111001111001001000111011101111000101011011000010000010101011101010010110100111011000101011011010010100100101110101100101111101000001101000100000011100101000101001001101010000001111111011001101100000111011010011011110011010101111100001001001101110111100000100100010111001101100100000010000000110001011101001000010010100011111000000101010100101101110010011100110001011000100001001110011011011011001 1100001101001100111010011110000101000001000111001001010011101101000101011001100101100110001010010101110111101001101010100001101101001111011000101101011100011110011111010110110110100001011011100000011011011011110001110110010011110111100010000010110001011000110100100110001001110010100100110001011001001110101000011011101011100110001111111110100001000100111101101110010110010110000000010010100001100001 0110000111011101000010011000101110001101100110100111100010110011010110111111011011110001101000010000100001011001001010100101011001100011111010011010010010001100100001111100000101100100110100111111111000010110011000110011010100000000110110011111101110011010010100000000111001000110110111110010001011011100001010100100010100111000100100011000111011010100111011110101011111110100000110101001001010001010 1100101001011110101011110010000011111011011010000101011111110011100100001100111110111000010100001011101110101100010010100101100010000010100000010111101001010001011100011100101110101001011000111101111011001010110011111000111001111110110111010001010001101000011101011101100101011011000101011011111110111010111100110110101101110010111101100001011001011111001011011011100011000001010010001100100010011000 0110000110100010000110101110010001110110111101111110110001111001000110010100100100110101111011010110001000001000000100111100011101011010101111011100000010100001110000010000100110100010101001100110001010001011011110110111111111011100010110101010110110010011101110010011100011000000011101101010010001011011100111011000101111000110000100011110001000101011101110111100101001001100001010110110011100001010 0010001110010000010101000110000111111011100000110111011011000011010011000000110010110101100110000011010000010110011000001100000011100100010111111110100110011111100111000011010001001100001110000110001110011110100010101000111010101111111101000011011010011011001000001100000101111110001000001011101101001110001111111001000111101101101001001101101111101001111111001101001011011110001111111010010110011100 1010111111110011011100101001011101011011100101111111110011010110111011001111111011000000001100011100001000000001011100000100001111111011111100010100001000111110011100011111111001100101001100111111001001100001000001100011111010011011110011000101101111110000110000100001100000010011111101010101100001111001001001010111010100011101100011111011011001100110001000110101101110000001111101100010000111100000 0011100011100010101010000011000111111110111111110000010011011111010101110100000100001101000100000010000000011100100100010110100110110111101111111011100110101110000011100001101001010001010011111011101101011000100010110110101010101110111011101011000000101110001111100010111000101001110100010100011000000111111011101000010101010000010000011100101111010101010011101001111111000000101001100111110111111000 0100001010111100010010001101001001000111100100100011101010101000101010010110100000100000001110111000000110101010011000100111010101111101010110011011000011101110110111011001101111110001100000000010011000000011010010110101101000001000110000111000010001101000011100100100000101101100000100011110000010100010010001110111111110000110110101000001111110000011000010000010001000110101110111000010001100001000 0011001110110100001011011001010010000101000011101001000011010101110011011101111001001101000110111011011100100100100011110110010001011100000110111100100101111100100011101000110011010100100101101101000010011000110001110010000000001101101111010111010011000010011000100110111110000010000010110110000001001101001111111011011001101011010110110100011111111110001111101111001011111111000010010010100011000101 1001110000101000001101111101010110001101100010001100001000010001101110111110100000011001101101110010100001010000111011101001011101101001001010100010100111100000101000001001101100111001100000100110001101001011111010000000111111101111110011001011111010000000000110101000011001000100000100010011011111111010011111110111010011110111011011001010111010111010100111110101100011010000001111011100001011100011 0110010011101011111100000111100101011111011110100011100010111010111110101110110111101000000111001001111011100100001101011010100000101010111001111010110101101010001001011111011111000011000010011001100010101010110001110010111110110111101111010001100110101011100110111101011111000101111100001111110001010110111110101010000101101001111000101100011011011111000100111000110010001010110110010000010010111010 1001000000011101010111010001001100101110010000101101001110101010000011000110100100001100010001100011101001100001101101010101110111011011110100101100011101000101100010010100011110101001001000000001101011011011010011100111001001110101101011010101111001101011111010111101101011010011100111111000100010011111110110001010100001111100011010111000101000101011011001111111100001101001000000111110001101011101 0010000011101010011001011101011110011011000100110111011110010011001110101100010100011011010000011100110011010110011010010101001010011111011001001000110111110011110111110000110110001000010111111101001100000001011010010000000111000111010101011011001000001110000011011110010111001101000010111101000001101001001001110001101011011100110101100100101000000100100101111010010110000111001011010101000011011100 1011010010000001011001100010000110010001110000111001001101111101000111111100000011011010111111011110111010000011111010000001101000001111001111011101001001000101110000000011110000001111001101000110100010001001100100111000010010101110001100101100000110111110100110111001100001100110101011011111101011001100100100111101001100011100000001100001101111110100111000101010110100011111100101011001000111010100 0011011010010011001110000010001101000100111010110001010011111110011111011111000000111001000000011100110000000011101011110000000100000011111010010010010100101010100110010110001001000010101011110100010001011011011000010100011000100010110001101010100011010011110101110001100001011111010100100101110101000100111111111010111111111111111011100110010111110000000111010101110100010011100010111011011100111010 0111000101101111000010110011000101110101011001001101100010000111110001110011000000000011001100001110011001111010101101011110000010100000001101010001000011111111001001001001010000000101111111001010000011111010000010000110001110001000001000011110101010001100100010111101101010001010001101000100001111110001010001110000100011101111100001001110000010110001000101001110110000101010001001101010110000011111 0111010000011000000100001010110101010010010000000110011001011110111101101001100110011111111111001110001111111110011011000101100101101111111111111111110001100101111101001000001000010000110101111011001000101000001011011110001011010111110011000010111001001011100000100000000001101001011000001001110111110011000111001000011110011100010000100110000100100101111001001100101001000100101001001001001110011011 0011010010110111001100111110011000110110101010011100011000011011111001000001100111110100110101011000110101110001011011011011011100000011001111111001011110010100100001110000010011011011111111111001011001010111010000000001010000000000000000100110101101100011011110000000100000100000111000111000001110101110111100000010000110100101110111110100111010100001000101011001001011011110001111011110011100000100 1110111010010110101000100111011010110011001100001000010000101001010101011000111101010011100111111011011001001001011101101110111110010010111001110111000000101000010011011111000111110010000111000010011100101010011101011111111100111101111111110010111010100111011111110111001010010101011011110000101101100111010111110100111100011101101001001100001111100010011011100010000011001110110010010000010011111001 0001101001100101100001101001010010001111101000011000111011101101001101101111101001010100000011010011011111001000011100001010110000001100101011000110000111111001100001000110111100101010000110111011100111110000011001000011100011001010100101111010010010010101010100000000101000001011000111101001100010010110101111000011010011110011101011111011111011101101010111111101111101101010111010100001101110101001 0000100110010000000000101100110010100101000010010111001101000110110000011010001010111100001110111000101010000100010010001111010101100100100000100111111000111010010100100110000010111011111101110101001110011111101101001001110011100100001010111100000101011010000101000111010010101010011011011011111011101001010100001100001000011000001110101001000111011110000111001010000010110101111001010111100000100101 0100010111111011000011010011000101101111101100100000000100111011011101011001101001001010100010000100100100101110111110011100001011101100110001011111100100101111111011100001101000000101111100101111010100111011110111110001001001011110110101011001101000101011000100000001100100000111110010100110001010100111100101010111101011011100111011000110101100100001001101010111011010100000100000000110010011111011 1101010100111111101010001110001110001011111100010000000110101010000011101000000001111011011001011100000100101101100011100110011010010000011101001111111111000111011110100111101000101110111010111000110111010101111001110000000010000101110001110001101000110000000010111011111100101011010100110100110110001101001001011011100010000011111100001011001111001110011101001110001110000100110100001100100010001011 1110011011100001111000101110110011110011110000101101101001001111001011110110111110100110100010001001000101011011011111000011110001111001010000110010101000001110010000000000001001011111110111001010101011111110101110111100010011010111110010001001111001000010100111101101001100101010010100000010000111011001110011101101111110110110111110011100111100111000010101100011111100010100001111011010011101011111 1011000111110011110101100110001011001010000000111011110101011101110100000111010110111001100010010011001001001100011101110000101010010000011010100110001011111101111100001001110000110100010100111011001001010010101011011100000101011101100000001011000010001000010101010011001000001100010001100010010101111011111101000010010010110010001110100111111001000010111110001010001111000011100101100111010110100010 1001101110101010100000110001011101110111101010011101101011110000111011111100111110010111111100110100000101101101111000001101001110101001011110111101111010010110100011000111011010010111101011001110100011111110101011111110100111001111100001011110101001000111101101000000010101011000110000100110111111101110100100010110010010101001110010110011100000010010001110111000101110010111110001110100001001110011 0110010000110110001101100111111011111001010110010000010001000111110100100001011010001000011110101101110101111000101010100011101001001111110101100110110110111010000110111111001000011101000101000000110001010110001000111100011101101010010111011100100001111110110111010111001101111111001110001111100010000010111111011001001101010111111010101101000111101100011000111110101111100001001110001010010100111011 0000100111011100110001000001011110100101010100001100110110000110010010010111111000010000000101011011101111011110001101110011011100111001111101011110000100001101110000100010100000011000000001110110010100110010101001001101100010010000101000001011010010011100111001010111101100110011000100110001011101111011001011110111011000111010000011100110001011100111000101000101010001100111111110000011011101010010 0001110101001011101110011111110011101010100011110110001001011000010101111100101110100010001100011111001101100101011011101001011011001010011000010101001110101101010000000001011010010000111000110111101110111000110111110100100110001000101001011000101011110001110111110001110010100110010011111001001001110110111100101000110010010100000101111101111000101110110110101100010101001110000000000001000100111000 1000100110100000000100010100011100111110011110101010010001011101110000011111011010000011111110111111110100110110110000101001111111011111111110000110100110100010111000111110111101100110001001110010001101101010001001010111010101010010101100111101111010111010011010101101010010111010010100000111110101011001110110111101010100010011110010011100101010001101000010111001000001111101100101001101110101010000 0111110111011100110000001000111011101001100111111010110001001101010111011101010010101001001111110010101010111001010100100100000101011110000011100011011010010110011001100110001101110000111110100010110110001100101011010010101100011101001101010000011001111010100100011001111110011111111111111100101000010101111111011111001110010111111101011011110110001100100111010111000010100001000010111001100010101001 1000010010100101101100110111100101000100101011011010100100000000000110011010000101001011110001100010011000111101001101100001111001011001011011111111010011101000001101110110100001010011101010110000010001000010011001100000110001110110101010101010110101000000000011110001100111110110110001000001111101001111010100111000101111011000100010010101110000000110100110010000111100100011100011101000111010000111 0111110011110101010011000000111111110101101101110000011011100001011111110111001100000111100010110110110101100000110101001101110011110001101010001100111011111001011111110101000011000110000011111001100011000010101111011000100100011011001010011000000101011100001100100000001100110100010110011101100000000111010100100011100101101111000110101101111010001001011100100001111001111110000000101000000001111000 1100010001011000101111100101111000101110111100000000001011110111111101100110000111001111010111001100101000101110111101111100001010100010110000110011101000110100010001100001110101011110001011101000111000111111011110101110110100001000000100110001101100100001001101010000000001100000110101111001101010001001100111110110101001001011010111010000001000000101010001111011111010010101101110000001001100110101 1000001110110111011001100110100000001110101001000000001000011110011110011101010110100110011101110000001001011011110111101101000110010000000110011101111101111111010001011011101000000011010111110011100000100110010100101011111100001001011000111011010010101001101111010000001101101101110011000001000010010101011100001010101000010101111010011011101100110100001010101000111100010000110000010001101001001001 0101010100010101111100001001110000001000101100100101110111101110100010011110111110111001001000001001111001111110111110010100001111111000011110110010101100100000111001100101110101110100100110011100101111100011100011000100100001001101001111110110010110110110010100010010011000110100101011010000100101100000011001111001011010011111110110000011011111110100101011101011111100110011110111111110101101010011 0011011011100110111111110101111110000010010011011100111010000000100111011111000001010010110111011011001100110000100001011011100110000001001101110000001001011010110011001011111010011101001101110111110011011101101001000001001000111000000010101100011110011111000011010001111001001100100100010000010100100011111000010000101000010010010111010001100000110010110001101100100000110011101011100011001011010100 0010000000000100000001010101111110110100000100010001111011110010011101100010100010011000111110010101000011011011101010101100000111011010101101010100001101010100001001001011101010011110010001001011110100111011010100000111100111011111011000100101111000110000101100100000000111101101010101001011011100000001011101011010111011011100001001100001000110011010100111010111000010011101110101010110111100111000 0010001001111010100100010101000100101010010000001010111100010010011110101011101001011111101110110110010000011010111100001000010101110111101011100110101100101101011100010110001001001010001110101010101111000000100011111100001010100100010111100011100100000100100100110001110010110001000001111000100101010110000000100010001111111111111110110000010000000011111100010010000000010110000000110101100110100111 0010010111011100000001000000000111010000111101110011111000010011001101100100010100111011010101111010001101001101001001011001111011011011111011000100100010001010101111011000000000011001101101011100011100001100000101100101001011010000111000100001100011011010110101100110001000010110111111100111001001000010111100000100110000011101011011010001101111101111011100000001111011011110111111001101111101110000 1101110001000001100100100010110110110011001100101110100111101000111110100110001011000111110001101010011111100001101110010101100100010001001010110110010011011111111110100001101110011101001001001010110000001000111100110001110101001101100010100000100011011000111101000111011110010100011110000011101011100000101011010011110010010000110100100100110010100010000111010100010001101110000100110011100010100100 1111001100111000100010011010111111000010101010100101010101111110011000100101000000101100101010101111010100001001000010100000001111111110010100011100110010111110100000010111010010101011000110010010110011110100000110100100001010110010110100010000010100000111001101100100000001010111100001010110000001101111001100001011000010011011010101101010100000111110101011000101101100110110010010100100111010000100 1100101111010111100100100100110001001011110110101101100110110100100111110110010000001001001010111001100111010110100010000110001000010011101010010001101110001001110111001101011011010011111100111011010011110101111111000101011100000000111111011011011111011100010100010010111010001010011011100011011010101101001010110010001000011100011011011101100011111111010001111101110110111011110000000011000011011101 0011011111000101111010001101011001000110000011001110011011010111101110010011101001100111101100000001011000010010011100011010001110011101000111011111110111000100010000001100010000110010000111111010101111000111111011111000010011101001101001001110101100110101111001100101011101000000101000000111111011110011011001011010111110101011111110000110010000001011101000001101100110011101100100001110011100001011 0001011111111110101101100010111100001010100111000110001001111000110101110000011110111010110110111010101000101001101000101010011010001101000010001010010011010000011000010000011101000100110001001110110011111111110011001110110000000011101000011111111100010101001001011100001011000111100100010111001110011000000110010011010000101101000010001101101101110100001100110110010010101000001011110010111011100110 0100101000001111001000111100000110100001101000111011100000100011111001001010001111001111111100100101101100010111001100000010100110001111000000100111001010011110110100001010101000010010111111100001000110110000011010101111111001110111101011010101101101101010011101010111010010111001110101101101110010101001110000001101010100100001001101011000000110011000110011001100110101011000010111100111011100000000 0001010101000111001100010101100101100101010101000100000001101100111000101001010010100010100100011011010101101000010100000110000001101000111100011100110000001101101001000101101101011000100010101110101111010001010101110101110000111010101000111000101011111000110000100011010000100001100100010000011111111010101111111000111111000011101001110000110100101110110000111010000010111100111101010100010000111110 0010100001111101010011111010010011010000010001000000101011110100111100100001111110110000001010110000010110000001110000111011100000100101001110111100111101010010100111101100111111110101110010100111001101000010001010100011001100000110100101000010001101000010000100000101001111111101110011010111101101100111111000010110110100011110100001110011010110101101101010100100110001001111110000111100101001101101 1001010101001101011100101111000101011010000101100111001111011010011001100111011110101001000010110010101111111000000000001101011101010100101011000011011011001000011110100001111001100111111110001000000011001010001010010100111101100101110011001101111001101011100001100001101011001111111100010000100010001101101010101110111100111011100010000100011110110110001010110101100101110000010111011111110111101111 0111111100011010000000110111111010111011011001011110100111100001111100111100110111111011101000001000110000011011110010110110011010110111100111100111100001101110011111010110110011010110001001000100111001000100101010011001100011011000000100100011110110101101110110101110011010000010101100000111001000100111011011001100001101101110111000111011101011000110111010111101001010000001100010011100111001011101 1011000101111110110101010100001111011001011110110111011111110110001001011100111111111011010010000100010110100101111110010001111110010101011110100100010000001010100111100111101011100011001000101000111101100100010101001011111011011100110000101000111111101101001111011101000110111001010011000110100101001010001001000101011001000110000100011011000001100101010110110001110111011100010010011001111001111110 1101100000000010110110111100101111011110101001101111001100011111101100100110111011101101001000001110001001001011100111101000100110111001000000000010001101100000001100101111101100010010001100011011110000001110000110011100010111110010110011111111010000100110001011011000100111111101110100010011000010001010000000110010011111110010011001011101100110001011100100101000001110100100000110010000111001001111 1000110100000000011101010001101101101010111100011111111001101011000000111111111111010000000111110100000101011000110111101101010111110110101111101010101011000010101011111000000100000110100001110101011000011010010010101110011010011000001111101101101011000101000000001100010110011011110111000011100000000101000111001011110000110110010100010010011100010001011001010010000101001010010100000100010111100101 1110011111011110011011100101101011000100111111010101110101000101001011010101000101101010101100010111111001100111000001110101010111100110011011010010000100111111001001000011011011100111110110101101000111001101100000001001010001001110001101111100110101000011101000101101111001001110000111010010101100101101010010000010011010111011011101101101100000101101111011101001111010111011000100000111000111011011 1101001100110101010011001111101101101011110010110101111111101100101001101001110110110111100010100011110110011000001111000000110010010111101111101101000111101100101011101110001001110011000111100001110110110100100010101000111101101110010101011111010011011100100100010110101010011010111001001001000110100111111011000000111101000111111000100100010111011001111100001100000100110000101010011101011011100101 1101010110101010010110011010000110001011110111001010000010100001110011111100010100011100000111100100111000010100001100101101000101000111101101110000011011001110110010010100011010001110000110111010010010011110101111100101101110001011001011111111001011000101111111111100110001101010110000110000110011010101111001101011101100011001010110011100010010101110101111111001101011000110101000000101000110011001 1101110101010011001011010001110100100111011001010100011100000001001110111000011100110100001011010110101011111111111111010001111101001101011001010101110111011000000001010010110100110010111010010011101000100000010011101101001101000010110110110010101011000110110001100101100110000001110100111110000000111100111100101001010000001001010000000111111101100100011111011111000111101100000100101001010111101111 0101111111111100111100101011000000110010010100001110110111011011100001011000110001101011001110100111000001000000001000110110101010011101100010101101111000111111101010010101011111101000010101111110000101001010110101000111000110101000100111000011100101000000111111010110001111100111111101000000101000001101100000100010101000101110011011000010110110000011100000111000000111111001011111000100100011100101 0010001001011101110000000011101100111000101000101110011101101110101011010010010000010010000011111000110010000000100101001000111011100010010100111110000101100000011110001010000001110000110000111000100101111010011000111111001001100100100101001011010010111110101110111101000011100111010111111010110110111010111000110010001101100100111001010111101010011010011101011111111101001010101010000000100100000111 1011101010101011110011110101001100101111111101110101011111111010000100101001001010100001001010110010010101111111111010001100110111010111011110110100101101010000010011010100000101111111010101001010000001011011111110111100110001111100110010111011101011110111100100100001010001101000011010100111000111111101111010001010001110111100001001110001001111011001011010111100100110011011011111110100111111001001 0110111111100111010101110010001111100100010110100110101011111100000110001101110101110101101110111011000010100101101000111000010010000111101000011101001101001001110110010101111100011011001011111001011011011100001000110010101000110010001111101001100110110101000100010011101111011100000000110001110111000110010100111001001101000010100010011001100010010111101110010011011111110001111010111111010011110001 1011011111111011111110111100010101110110111011110101110110000010111110110110010101101100000110001111001100100001001101111100111001100111000010111100011100000101000010101001000100011001110001101000100100111011001011011111100010010100100001110001100011001111110011100000000111111101110110011100101000100011101001100101101011101011100111111000101100110100011111010001100100011111011100101011111101101010 0101011001110000010011110000101011000000100101011110110101010000011011100100010000100110110101100011101111100001100000010010001100110111110100111000010010011010011100010100110110010100010111000111001010010011111010101100000100111101100111101101001010101101100110100010100110100100000011110001010010110000100101110110100011000010111101011000111111010110000010000011111001101001011001110010001100011101 0111111000101010001000101110010100100010110001100011001000000001110000000100101100001110101010110011011011111110010111011000001110011010101111001110101001111101000011101000011111100111111000001101000001111101100010000111101000100110011111000000001011000000110111100011100001001101001111010110010001101110001101000100101011001011010010110011000110010110111001101001011110111110100011001101111100010001 1101111100010011101100101011001100010010110011110111101100001111010011110001000101110101111000001111111101110111001100000101110101010100101000011000010101000011011001001011111111111010010010000010011010000110000101100100100011011110000011000111011110010110101011000110111000111000011111101111100010110100011100000001000100000011001101000011000001111000000001001100011101110011000111100110000110011000 1100111001100100000011001011011110100111111001111010100100000100110001111010111100111000000001111000101001000111110100100110101000001001010000111110101010010010110011101010000000010101001010111000111011110000100011001001110011111110111100011010001111101010111101110001101101011000001111011011100111010010110100011110001110101100001001010110010100100000000010001001101000001111011000001111110011110000 1111000101100100000001011010111100000010011000101010101101011111001001001011001101001000011101011001100011111010011010100111111000101000000011111111011100101000110010010010010000011011101111111100011001101011100011010101101100010000000111010110010001011100101100110010000001111101111010001100011001101101100111000010000100100011111001101001001001111101011101001001000001000110101100101100101000001100 1111000011000100011001011011110111000010001110110000001100000110001001011101100001001100010011101000110101011110001111111000000001011110001110001101010101110000101000000101100011111011110110000111011000110010101101111101011010011101110001101111100110111011101110110110101100111001000100000010101010100110110110000011110100100011011010100101110111010001101110000001111000001101011111001000011011101000 0010101100101111011011101100111001000110100100101001111011011000100000000100010110101100110111011001010000001100001000000110111100001000001011001111000011111100100010101010100010111100101000100001111101000111100001111000110111001011001100000000100100111001110111010111101111111001000000000011000111011111010111100101110101110100101111000000100111100111110101010001101001101100110100110000011010100001 0001111111111000000010000001001010101010011100110110111100100100010001101010000101011111111000010110100101111101100101111101010110001101011100000010011110011000001111000110001010110011101000101010111100001010111101000111000010000111000000001011111111001101100010111001011010011110110000001110110011011011100111100011011100100001000001110010111000001111110110010000110001001000000110010111001011111001 1101001010010011101110101101111111000101100111101100000000110000001100111111000001001000110000001010011000110100110011010111001100001111100011101101110101011110111110000010001011000001110100010000010111010100101010000100001011101110000110010111110110011110100011111110111110001001110011000010010011000001011001101001001010110000001111011000110001011110111001000111111101100101011111100101010011100100 0001000101010101110110110101101001000111001100100000010001001100100101000100111001001011000100110111011101111010010101000011100111101110000000000010010000000011101000101110100001001101101101111011011001101101000000010100001011100010000110011100110110110101100011110010000001010000010001010101001111010000010100010111011001010001110001011111010010110011000010110010101010101100011100111010100110100000 1000011100101011111010011000001011001111011110110101101101111110110010110110011010011000111101100000101010000110101101100110101010000111010111010010111001110100000000010100011011010111100001110100001000010011100101111100011100011011001101010000000110101000110100101110100100000100000011110011110001110010110011000010111010111011111001110100100000010011000100000101111000101010001001110100110000000100
cTrader Algo

Symbol【cAlgo API】

10/27/2020 1/28/2023

5年以上前の記事です。内容が古くなっている可能性があります。

通貨ペア情報取得用

Robotクラス(本体)が持つプロパティSymbolから様々な通貨ペアの情報が取得できます。SymbolのインターフェースはSymbolInfoインターフェースを継承しています。

 

SymbolInfoインターフェース

通貨ペアの基本情報を参照するためのインターフェースです。

public interface SymbolInfo

関連するインターフェース:Symbol

 

プロパティ
(string) Name

通貨ペアの名前を取得します。”EURUSD”とか。これをそのまま発注などに使用します。

(int) Digits

価格の小数点以下の桁数を取得します。

(double) PipSize

1pipあたりの価格を取得します。

(double) PipValue

1pipあたりの価格を口座通貨額に換算して取得します。

(double) TickSize

値動きの最小幅を取得します。

(double) TickValue

値動きの最小幅を口座通貨額に換算して取得します。

(double) VolumeInUnitsMax

最大発注通貨量を取得します。

(double) VolumeInUnitsMin

最小発注通貨量を取得します。

(double) VolumeInUnitsStep

発注通貨量の最小増減幅を取得します。

(IReadOnlyList<LeverageTier>) DynamicLeverage

通貨ペアの通貨量別のレバレッジを取得します。

(double) LotSize

1ロット当たりの通貨量を取得します。

(MarketHours) MarketHours

マーケットが開いてる時間を取得します。FXだけなら気にしなくていいです。

(string) Description

通貨の説明を取得します。EURUSDなら”Euro vs US Dollar”とかになります。

(long) Id

IDを取得します。使いません。

 

(以下はcTrader4.5で追加)

(double) Commission

トレード時の片道手数料を取得します。(単位はCommisionType次第)

(SymbolCommissionType)  CommissionType

手数料タイプを取得します。

(double) SwapLong

買いポジション保有時のスワップ金額を取得します。

(double) SwapShort

売りポジション保有時のスワップ金額を取得します。

(DayOfWeek?) Swap3DaysRollOver

スワップ3倍付の曜日を取得します。

(double) MinStopLossDistance

最小のストップロス距離を取得します。(MT4で「ストップレベル」と呼ばれてるやつです)

(double) MinTakeProfitDistance

最小のテイクプロフィット距離を取得します。

(SymbolMinDistanceType) MinDistanceType

上記Min~Disanceの単位を取得します。PipsもしくはPercentageを返します。

(Asset) BaseAsset

通貨ペアのベース通貨を取得します。(EURUSDならEURの部分)

(Asset) QuoteAsset

通貨ペアの決済通貨を取得します。(EURUSDならUSDの部分)

(double) MinCommission

最低手数料を取得します。単位はMinCommissionAssetによります。

(SymbolMinCommissionType) MinCommissionType

最低手数料の単位を取得します。AssetもしくはQuoteAssetを返します。Assetなら単位は口座通貨、QuoteAssetなら単位は決済通貨(EURGBPならポンド)になります。

(bool) IsTradingEnable

通貨ペアがトレード可能かどうかを取得します。

(SymbolTradingMode) TradingMode

通貨ペアのトレードモードを返します。FullAccess(トレード可能)か、CloseOnly(決済のみ可能)か、DisabledWithPendingOrderExecution(待機注文のみ執行可能)か、FullyDisabled(トレード不可)のいずれかを返します。

(int) GracePeriod

スワップフリー口座でポジションを取得してから手数料がかからない日数を取得します。

(double) AdministrativeCharge

スワップフリー口座でポジション維持にかかる手数料を取得します。

(DayOfWeek?) AdministrativeCharge3DaysRollOver

スワップフリー口座でポジション維持にかかる手数料が3倍になる曜日を取得します。

(double)PnLConversionFeeRate

Gets the symbol profit and loss conversion fee rate… だそうです。(意味わからん)

 

 

 

メソッド
(double) NormalizeVolumeInUnits(double volume[, RoundingMode roundingMode])

volumeを発注可能な量に調整して返します。例えばvolumeに12345を渡すと、(VolumeInUnitsStepが1000なら)12000が返ってきます。最低でもVolumeInUnitsMinが返りますので0やマイナスの値渡しても大丈夫です。

逆に言えばVolume計算値がマイナスだったときは発注しないような想定のプログラムだった場合でもこのメソッド通したら発注できてしまうので注意が必要です。defaultはToNearest。

(double) QuantityToVolumeInUnits(double quantity)

ロット数を通貨量に変換します。quantitiy*LotSizeが返ってきます。

(double) VolumeInUnitsToQuantity(double volume)

通貨量をロット数に変換します。volume/LotSizeが返ってきます。

(double) GetEstimatedMargin(TradeType tradeType, double volume)

(cTrader4.5以降) トレード方向と数量から必要証拠金料を取得します。 

(double) AmountRisked(double volume, double stopLossInPIps)

(cTrader4.6以降) 指定ボリュームで指定Pipsにストップを置く場合の損失額を返します。当然決済時の為替レートによっても変わるため、あくまで目安です。

 

LeverageTierインターフェース

SymbolInfoDynamicLeverageの要素です。発注量によって異なる最大レバレッジを参照します。

public interface LeverageTier

 

プロパティ
(double) Leverage

最大レバレッジを取得します。

(double)Volume

Leverageが有効な最大通貨量を取得します。(DynamicLeverageの最後の要素だけ扱いが違うかも?)

 

サンプルコード
Print("この口座の最大レバレッジは{0}倍", Account.PreciseLeverage);
Print("最大発注数は{0}通貨", Symbol.VolumeInUnitsMax);
Print("{0}の通貨量別レバレッジ", SymbolName);
foreach (var lt in Symbol.DynamicLeverage) {
    var lots = Symbol.VolumeInUnitsToQuantity(lt.Volume);
    if (lt != Symbol.DynamicLeverage.Last()) {
        Print("{0:#,0}通貨({1:#,0}Lots)までは最大レバレッジ{2}倍", lt.Volume, lots, lt.Leverage);
    } else {
        Print("{0:#,0}通貨({1:#,0}Lots)以上は最大レバレッジ{2}倍?", lt.Volume, lots, lt.Leverage);

    }
}

実行してみると最大レバレッジが表示されます。

 

 

Symbolインターフェース

通貨ペアの基本情報に加え、BidやAskなどリアルタイムの情報を参照するためのインターフェースです。

public interface Symbol : SymbolInfo

SymbolInfoから継承されており、リアルタイムの情報を参照するためのメンバが追加されています。

 

プロパティ
(double) Ask

Ask値 (買う場合の価格) を取得します。

(double) Bid

Bid値 (売る場合の価格) を取得します。

(double) Spread

スプレッド (AskとBidの差) を取得します。Pipsじゃなく純粋な価格差です。

(double) UnrealizedGrossProfit

保有中ポジションの総利益を取得します。

(double) UnrealizedNetProfit

保有中ポジションのスワップ、手数料を加味した総利益を取得します。

 

SymbolInfoのプロパティ

Name、Digits、PipSize、PipValue、VolumeInUnitsMax、VolumeInUnitsMinなど。上記参照。

 

メソッド
SymbolInfoのメソッド

NormalizeVolumeInUnits、QuantityToVolumeInUnits、VolumeInUnitsToQuantity。

 

サンプルコード

Pips関連の計算にSymbol.PipSizeはとにかくよく使います。利益額や損失額の計算となるとSymbol.PipValueも結構使います。

// 1本前のローソク足の高値をストップロスに指定して売り発注
// 最大損失が10,000円以内におさまるようエントリーボリュームを調整する

// 最大損失とストップロスPipsを設定
double maxLoss = 10000;
var stopLossPips = Math.Round((Bars.Last(1).High - Bid)/Symbol.PipSize, 1);
var spreadPips = Symbol.Spread / Symbol.PipSize;

// stopLossPipsがスプレッド以下だったらなにもせず止める
if (stopLossPips < spreadPips) Stop();

// volumeを計算する
var volume = maxLoss / (Symbol.PipValue * (stopLossPips + spreadPips));
Print("maxLoss={0}, pipvalue={1}, losspips={2}", maxLoss, Symbol.PipValue, stopLossPips);
Print(volume);
volume = Symbol.NormalizeVolumeInUnits(volume, RoundingMode.Down);

//発注
ExecuteMarketOrder(TradeType.Sell, SymbolName, volume, "SymbolSampleCode", stopLossPips, null);

デモ口座で試してみてください。手数料分はずれますが、ストップロス位置で最大損失くらいになるようエントリーされるのが確認できると思います。

 

 

RoundingMode列挙型

Symbol.NormalizeVolumeInUnitsでの計算方式を表す列挙型です。

 

ToNearest 近い値。奇数丸めっぽいです。2500も3500も3000になります。
Down 切り捨て。NormalizeVolumeInUnits(volume, RoundingMode.Down) の結果は指定したvolumeよりも小さい数値になります。
Up 切り上げ。NormalizeVolumeInUnits(volume, RoundingMode.Up) の結果はvolumeよりも大きい数値になります。

 

 

SymbolCommissionType列挙型

手数料の計算方式を表す列挙型です。

UsdPerMillionVolume 100万通貨(USD)あたりで計算され、単位はUSDです。
UsdPerOneLot 1ロットあたり計算され単位はUSDです。
PercentageOfTradingVolume トレード総量の比率(%)で計算されます。
QuoteCurrencyPerOneLot 1ロットあたりで計算され、単位は決済通貨です。

たとえばUSDCADでCommisionが10、CommisionTypeが”UsdPerMillionVolume”の場合、100万ドルの取引あたり10ドルの手数料ということなので、1lot(10万通貨)トレードしたときの手数料は片道1ドルということになります。

少しわかりにくいですが、GBPUSDで同じ値だった場合は手数料は1lot片道1ポンドになります。(10万通貨=10万ポンド=約12万ドル=手数料は(100万ドルあたり10ドルなので)約1.2ドル=手数料は1ポンド)


まだコメントはありません

新しいコメント

コメントは承認後に公開されます。承認まで次のコメントは投稿できません。

cTrader's Life

© 2026 ajinori