import { AbiItem, AbiParameters, type Address, Bytes, type Hex } from 'ox'
import { assertType, describe, expect, test } from 'vp/test'

import {
  multicall3Abi,
  seaportContractConfig,
} from '../../../test/constants/abis.js'
import { address } from '../../../test/constants/addresses.js'

describe('static', () => {
  test('blank', () => {
    const result = AbiParameters.decode([], '0x')
    assertType<readonly []>(result)
    expect(result).toEqual([])
  })

  test('uint', () => {
    const result = AbiParameters.decode(
      AbiParameters.from('uint'),
      '0x0000000000000000000000000000000000000000000000000000000000010f2c',
    )
    assertType<readonly [bigint]>(result)
    expect(result).toEqual([69420n])
  })

  test('uint8', () => {
    const result = AbiParameters.decode(
      AbiParameters.from('uint8'),
      '0x0000000000000000000000000000000000000000000000000000000000000020',
    )
    assertType<readonly [number]>(result)
    expect(result).toEqual([32])
  })

  test('uint32', () => {
    const result = AbiParameters.decode(
      AbiParameters.from('uint32'),
      '0x0000000000000000000000000000000000000000000000000000000000010f2c',
    )
    assertType<readonly [number]>(result)
    expect(result).toEqual([69420])
  })

  describe('int', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('int'),
        '0x0000000000000000000000000000000000000000000000000000000000010f2c',
      )
      assertType<readonly [bigint]>(result)
      expect(result).toEqual([69420n])
    })

    test('negative (twos compliment)', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('int'),
        '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef0d4',
      )
      assertType<readonly [bigint]>(result)
      expect(result).toEqual([-69420n])
    })
  })

  describe('int8', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('int8'),
        '0x000000000000000000000000000000000000000000000000000000000000007f',
      )
      assertType<readonly [number]>(result)
      expect(result).toEqual([127])
    })

    test('negative (twos compliment)', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('int8'),
        '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80',
      )
      assertType<readonly [number]>(result)
      expect(result).toEqual([-128])
    })
  })

  describe('int32', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('int32'),
        '0x000000000000000000000000000000000000000000000000000000007fffffff',
      )
      assertType<readonly [number]>(result)
      expect(result).toEqual([2147483647])
    })

    test('negative (twos compliment)', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('int32'),
        '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000',
      )
      assertType<readonly [number]>(result)
      expect(result).toEqual([-2147483648])
    })
  })

  describe('address', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('address'),
        '0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955',
      )
      assertType<readonly [Address.Address]>(result)
      expect(
        AbiParameters.decode(
          AbiParameters.from('address'),
          '0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955',
        ),
      ).toEqual(['0x14dC79964da2C08b23698B3D3cc7Ca32193d9955'])
    })

    test('options: checksumAddress = false', () => {
      expect(
        AbiParameters.decode(
          AbiParameters.from('address'),
          '0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955',
          { checksumAddress: false },
        ),
      ).toEqual(['0x14dc79964da2c08b23698b3d3cc7ca32193d9955'])
    })
  })

  describe('bytes8', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('bytes8'),
        '0x0123456789abcdef000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [Hex.Hex]>(result)
      expect(result).toEqual(['0x0123456789abcdef'])
    })
  })

  describe('bytes16', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('bytes16'),
        '0x0123456789abcdef0123456789abcdef00000000000000000000000000000000',
      )
      assertType<readonly [Hex.Hex]>(result)
      expect(result).toEqual(['0x0123456789abcdef0123456789abcdef'])
    })
  })

  describe('uint[3]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[3]'),
        '0x0000000000000000000000000000000000000000000000000000000000010f2c000000000000000000000000000000000000000000000000000000000000a45500000000000000000000000000000000000000000000000000000000190f1b44',
      )
      assertType<readonly [readonly [bigint, bigint, bigint]]>(result)
      expect(result).toEqual([[69420n, 42069n, 420420420n]])
    })
  })

  describe('int[3]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('int[3]'),
        '0x0000000000000000000000000000000000000000000000000000000000010f2cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5bab00000000000000000000000000000000000000000000000000000000190f1b44',
      )
      assertType<readonly [readonly [bigint, bigint, bigint]]>(result)
      expect(result).toEqual([[69420n, -42069n, 420420420n]])
    })
  })

  describe('address[2]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('address[2]'),
        '0x000000000000000000000000c961145a54c96e3ae9baa048c4f4d6b04c13916b000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',
      )
      assertType<readonly [readonly [Address.Address, Address.Address]]>(result)
      expect(result).toEqual([
        [
          '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b',
          '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
        ],
      ])
    })
  })

  describe('bool[2]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('bool[2]'),
        '0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [readonly [boolean, boolean]]>(result)
      expect(result).toEqual([[true, false]])
    })
  })

  describe('uint[3][2]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[3][2]'),
        '0x0000000000000000000000000000000000000000000000000000000000010f2c000000000000000000000000000000000000000000000000000000000000a45500000000000000000000000000000000000000000000000000000000190f1b4400000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000001a6',
      )
      assertType<
        readonly [
          readonly [
            readonly [bigint, bigint, bigint],
            readonly [bigint, bigint, bigint],
          ],
        ]
      >(result)
      expect(result).toEqual([
        [
          [69420n, 42069n, 420420420n],
          [420n, 44n, 422n],
        ],
      ])
    })
  })

  describe('uint[3][2][4]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint[3][2][4]'),
        '0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000015000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000018',
      )
      assertType<
        readonly [
          readonly [
            readonly [
              readonly [bigint, bigint, bigint],
              readonly [bigint, bigint, bigint],
            ],
            readonly [
              readonly [bigint, bigint, bigint],
              readonly [bigint, bigint, bigint],
            ],
            readonly [
              readonly [bigint, bigint, bigint],
              readonly [bigint, bigint, bigint],
            ],
            readonly [
              readonly [bigint, bigint, bigint],
              readonly [bigint, bigint, bigint],
            ],
          ],
        ]
      >(result)
      expect(result).toEqual([
        [
          [
            [1n, 2n, 3n],
            [4n, 5n, 6n],
          ],
          [
            [7n, 8n, 9n],
            [10n, 11n, 12n],
          ],
          [
            [13n, 14n, 15n],
            [16n, 17n, 18n],
          ],
          [
            [19n, 20n, 21n],
            [22n, 23n, 24n],
          ],
        ],
      ])
    })
  })

  describe('struct: (uint256,bool,address)', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('(uint256 x, bool y, address z)'),
        '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',
      )
      assertType<
        readonly [
          {
            x: bigint
            y: boolean
            z: Hex.Hex
          },
        ]
      >(result)
      expect(result).toEqual([
        { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' },
      ])
    })
  })

  describe('struct: (uint256,bool,address)', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('(uint256, bool, address)'),
        '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',
      )
      assertType<readonly [readonly [bigint, boolean, Hex.Hex]]>(result)
      expect(result).toEqual([
        [420n, true, '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC'],
      ])
    })
  })

  describe('struct: (uint256,bool,address)', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('(uint256 x, bool, address z)'),
        '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',
      )
      assertType<readonly [readonly [bigint, boolean, Hex.Hex]]>(result)
      expect(result).toEqual([
        [420n, true, '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC'],
      ])
    })
  })

  describe('struct: ()', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from([{ type: 'tuple', components: [] }]),
        '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',
      )
      assertType<readonly [readonly []]>(result)
      expect(result).toEqual([[]])
    })
  })

  describe('struct: ((uint256,bool,address),(uint256,bool,address),uint8[2])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from(
          '((uint256 x,bool y,address z) foo, (uint256 x,bool y,address z) baz, uint8[2] x)',
        ),
        '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac00000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c961145a54c96e3ae9baa048c4f4d6b04c13916b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002',
      )
      assertType<
        readonly [
          {
            foo: {
              x: bigint
              y: boolean
              z: Hex.Hex
            }
            baz: {
              x: bigint
              y: boolean
              z: Hex.Hex
            }
            x: readonly [number, number]
          },
        ]
      >(result)
      expect(result).toEqual([
        {
          foo: {
            x: 420n,
            y: true,
            z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
          },
          baz: {
            x: 69n,
            y: false,
            z: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b',
          },
          x: [1, 2],
        },
      ])
    })
  })

  describe('uint256[2],bool,string[3]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[2], bool, string[3]'),
        '0x00000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000057761676d6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047669656d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036c6f6c0000000000000000000000000000000000000000000000000000000000',
      )
      assertType<
        readonly [
          readonly [bigint, bigint],
          boolean,
          readonly [string, string, string],
        ]
      >(result)
      expect(result).toEqual([[420n, 69n], true, ['wagmi', 'viem', 'lol']])
    })
  })

  describe('uint256[2],bool,string[3]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[2], bool, string[3]'),
        '0x00000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000057761676d6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047669656d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036c6f6c0000000000000000000000000000000000000000000000000000000000',
      )
      assertType<
        readonly [
          readonly [bigint, bigint],
          boolean,
          readonly [string, string, string],
        ]
      >(result)
      expect(result).toEqual([[420n, 69n], true, ['wagmi', 'viem', 'lol']])
    })
  })

  describe('uint,bool,address', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint, bool, address'),
        '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c961145a54c96e3ae9baa048c4f4d6b04c13916b',
      )
      assertType<readonly [bigint, boolean, string]>(result)
      expect(result).toEqual([
        420n,
        true,
        '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b',
      ])
    })
  })
})

describe('dynamic', () => {
  describe('string', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('string'),
        '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [string]>(result)
      expect(result).toEqual(['wagmi'])
    })

    test('empty', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('string'),
        '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [string]>(result)
      expect(result).toEqual([''])
    })

    test('leading NUL byte', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('string'),
        '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030061620000000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [string]>(result)
      expect(result).toMatchInlineSnapshot(`
        [
          "\u0000ab",
        ]
      `)
    })

    test('default', () => {
      expect(
        AbiParameters.decode(
          AbiParameters.from('string'),
          '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002da4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742e204e756e63206661756369627573206c6f72656d2061206c696265726f20617563746f7220636f6e64696d656e74756d2e20446f6e6563206f726e617265206d617373612072686f6e637573206c616375732072757472756d2c20656765742070756c76696e6172206172637520656c656d656e74756d2e204e756e63206d6175726973206c6f72656d2c20736f64616c65732065676574207669766572726120696e2c20657569736d6f642071756973206d692e205072616573656e74206e656320636f6d6d6f646f206c656f2e2050686173656c6c757320636f6e64696d656e74756d206d61757269732073656420616363756d73616e20656c656966656e642e205072616573656e7420616320626c616e6469742073656d2c2065742072757472756d20697073756d2e20457469616d20696e2074656c6c757320616320656e696d20666163696c6973697320756c7472696365732e20467573636520616320766573746962756c756d207175616d2e204475697320736564207075727573207363656c657269737175652c20736f6c6c696369747564696e20657261742061632c2070756c76696e6172206e6973692e2050656c6c656e746573717565206575207075727573206e65632073617069656e207665686963756c6120636f6e76616c6c69732075742076656c20656c69742e2053757370656e6469737365206567657420657820766974616520656e696d20766f6c7574706174207363656c657269737175652e20536564207175697320656c6974207472697374697175652065726174206c756374757320656765737461732061206163206f64696f2e2044756973207665686963756c6120656e696d206163206d6574757320677261766964612c2076656c206d6178696d7573206e69736920696d706572646965742e000000000000',
        ),
      ).toMatchInlineSnapshot(
        `
        [
          "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc faucibus lorem a libero auctor condimentum. Donec ornare massa rhoncus lacus rutrum, eget pulvinar arcu elementum. Nunc mauris lorem, sodales eget viverra in, euismod quis mi. Praesent nec commodo leo. Phasellus condimentum mauris sed accumsan eleifend. Praesent ac blandit sem, et rutrum ipsum. Etiam in tellus ac enim facilisis ultrices. Fusce ac vestibulum quam. Duis sed purus scelerisque, sollicitudin erat ac, pulvinar nisi. Pellentesque eu purus nec sapien vehicula convallis ut vel elit. Suspendisse eget ex vitae enim volutpat scelerisque. Sed quis elit tristique erat luctus egestas a ac odio. Duis vehicula enim ac metus gravida, vel maximus nisi imperdiet.",
        ]
      `,
      )
    })

    test('emojis', () => {
      expect(
        AbiParameters.decode(
          AbiParameters.from('string'),
          '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000026f09f91a8e2808df09f91a8e2808df09f91a6e2808df09f91a6f09f8fb4e2808de298a0efb88f0000000000000000000000000000000000000000000000000000',
        ),
      ).toMatchInlineSnapshot(
        `
        [
          "👨‍👨‍👦‍👦🏴‍☠️",
        ]
      `,
      )
    })
  })

  describe('string,uint,bool', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('string, uint, bool'),
        '0x000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [string, bigint, boolean]>(result)
      expect(result).toEqual(['wagmi', 420n, true])
    })
  })

  describe('uint[2],bool,string', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint[2], bool, string'),
        '0x00000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000000450000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000057761676d69000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [readonly [bigint, bigint], boolean, string]>(result)
      expect(result).toEqual([[420n, 69n], true, 'wagmi'])
    })
  })

  describe('bytes', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('bytes'),
        '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030420690000000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [Hex.Hex]>(result)
      expect(result).toEqual(['0x042069'])
    })
  })

  describe('(uint256[][2])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[][2]'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001',
      )
      assertType<readonly [readonly [readonly bigint[], readonly bigint[]]]>(
        result,
      )
      expect(result).toEqual([
        [
          [1n, 2n, 3n, 4n],
          [3n, 2n, 1n],
        ],
      ])
    })
  })

  describe('uint256[2][][2]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[2][][2]'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000b',
      )
      assertType<
        readonly [
          readonly [
            readonly (readonly [bigint, bigint])[],
            readonly (readonly [bigint, bigint])[],
          ],
        ]
      >(result)
      expect(result).toEqual([
        [
          [
            [1n, 2n],
            [4n, 5n],
          ],
          [
            [8n, 9n],
            [10n, 11n],
          ],
        ],
      ])
    })
  })

  describe('uint256[][][2]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[][][2]'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a',
      )
      assertType<
        readonly [
          readonly [
            readonly (readonly bigint[])[],
            readonly (readonly bigint[])[],
          ],
        ]
      >(result)
      expect(result).toEqual([
        [
          [
            [1n, 2n, 3n],
            [4n, 5n, 6n, 7n],
          ],
          [[8n], [9n, 10n]],
        ],
      ])
    })
  })

  describe('uint256[][1][1]', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[][1][1]'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003',
      )
      assertType<readonly [readonly [readonly [readonly bigint[]]]]>(result)
      expect(result).toEqual([[[[1n, 2n, 3n]]]])
    })
  })

  describe('(uint256[][2][2])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[][2][2]'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a',
      )
      assertType<
        readonly [
          readonly [
            readonly [readonly bigint[], readonly bigint[]],
            readonly [readonly bigint[], readonly bigint[]],
          ],
        ]
      >(result)
      expect(result).toEqual([
        [
          [
            [1n, 2n, 3n],
            [4n, 5n, 6n, 7n],
          ],
          [[8n], [9n, 10n]],
        ],
      ])
    })
  })

  describe('(uint256[][3][2])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[][3][2]'),
        '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011',
      )
      assertType<
        readonly [
          readonly [
            readonly [readonly bigint[], readonly bigint[], readonly bigint[]],
            readonly [readonly bigint[], readonly bigint[], readonly bigint[]],
          ],
        ]
      >(result)
      expect(result).toEqual([
        [
          [
            [1n, 2n, 3n],
            [4n, 5n, 6n, 7n],
            [8n, 9n, 10n],
          ],
          [[11n], [12n, 13n], [14n, 15n, 16n, 17n]],
        ],
      ])
    })
  })

  describe('(uint256[][2][3])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[][2][3]'),
        '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011',
      )
      assertType<
        readonly [
          readonly [
            readonly [readonly bigint[], readonly bigint[]],
            readonly [readonly bigint[], readonly bigint[]],
            readonly [readonly bigint[], readonly bigint[]],
          ],
        ]
      >(result)
      expect(result).toEqual([
        [
          [
            [1n, 2n],
            [3n, 4n, 5n],
          ],
          [
            [6n, 7n, 8n],
            [9n, 10n],
          ],
          [
            [11n, 12n, 13n],
            [14n, 15n, 16n, 17n],
          ],
        ],
      ])
    })
  })

  describe('(uint256[][2][3][4])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[][2][3][4]'),
        '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000007c00000000000000000000000000000000000000000000000000000000000000b80000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000d0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000006',
      )
      assertType<
        readonly [
          readonly [
            readonly [
              readonly [readonly bigint[], readonly bigint[]],
              readonly [readonly bigint[], readonly bigint[]],
              readonly [readonly bigint[], readonly bigint[]],
            ],
            readonly [
              readonly [readonly bigint[], readonly bigint[]],
              readonly [readonly bigint[], readonly bigint[]],
              readonly [readonly bigint[], readonly bigint[]],
            ],
            readonly [
              readonly [readonly bigint[], readonly bigint[]],
              readonly [readonly bigint[], readonly bigint[]],
              readonly [readonly bigint[], readonly bigint[]],
            ],
            readonly [
              readonly [readonly bigint[], readonly bigint[]],
              readonly [readonly bigint[], readonly bigint[]],
              readonly [readonly bigint[], readonly bigint[]],
            ],
          ],
        ]
      >(result)
      expect(result).toMatchInlineSnapshot(`
        [
          [
            [
              [
                [
                  1n,
                  2n,
                  3n,
                ],
                [
                  4n,
                  5n,
                  6n,
                  7n,
                ],
              ],
              [
                [
                  8n,
                ],
                [
                  9n,
                  10n,
                ],
              ],
              [
                [
                  11n,
                  12n,
                ],
                [
                  13n,
                ],
              ],
            ],
            [
              [
                [
                  14n,
                  15n,
                ],
                [
                  16n,
                  17n,
                  18n,
                ],
              ],
              [
                [
                  0n,
                  1n,
                ],
                [
                  2n,
                  3n,
                  4n,
                ],
              ],
              [
                [
                  5n,
                  6n,
                ],
                [
                  1n,
                  2n,
                  1n,
                ],
              ],
            ],
            [
              [
                [
                  1n,
                  2n,
                  1n,
                  2n,
                ],
                [
                  1n,
                  5n,
                  6n,
                ],
              ],
              [
                [
                  1n,
                ],
                [
                  2n,
                ],
              ],
              [
                [
                  1n,
                  2n,
                  3n,
                ],
                [
                  5n,
                  6n,
                  7n,
                ],
              ],
            ],
            [
              [
                [
                  9n,
                  8n,
                  7n,
                ],
                [
                  5n,
                  5n,
                  5n,
                ],
              ],
              [
                [
                  1n,
                  2n,
                  3n,
                ],
                [
                  4n,
                  4n,
                  4n,
                ],
              ],
              [
                [
                  5n,
                  5n,
                  5n,
                ],
                [
                  6n,
                  6n,
                  6n,
                ],
              ],
            ],
          ],
        ]
      `)
    })
  })

  describe('(uint256[2][][2])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[2][][2]'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a',
      )
      assertType<
        readonly [
          readonly [
            readonly (readonly [bigint, bigint])[],
            readonly (readonly [bigint, bigint])[],
          ],
        ]
      >(result)
      expect(result).toEqual([
        [
          [
            [1n, 2n],
            [4n, 5n],
          ],
          [
            [8n, 9n],
            [10n, 11n],
            [9n, 10n],
          ],
        ],
      ])
    })
  })

  describe('(uint[])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[]'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000037',
      )
      assertType<readonly [readonly bigint[]]>(result)
      expect(result).toEqual([[420n, 69n, 22n, 55n]])
    })

    test('empty', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[]'),
        '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [readonly bigint[]]>(result)
      expect(result).toEqual([[]])
    })
  })

  describe('(uint[][])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[][]'),
        '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000045',
      )
      assertType<readonly [readonly (readonly bigint[])[]]>(result)
      expect(result).toEqual([[[420n, 69n]]])
    })

    test('empty', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[][]'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [readonly (readonly bigint[])[]]>(result)
      expect(result).toEqual([[[]]])
    })

    // cast abi-encode "a(uint[][])" "[[420,69],[22,55,22],[51,52,66,11]]"
    test('complex', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('uint256[][]'),
        '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000003700000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003300000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000000b',
      )
      assertType<readonly [readonly (readonly bigint[])[]]>(result)
      expect(result).toEqual([
        [
          [420n, 69n],
          [22n, 55n, 22n],
          [51n, 52n, 66n, 11n],
        ],
      ])
    })
  })

  describe('(string[2])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('string[2]'),
        '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000057761676d6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047669656d00000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [readonly [string, string]]>(result)
      expect(result).toEqual([['wagmi', 'viem']])
    })
  })

  describe('(string[2][3])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('string[2][3]'),
        '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000057761676d6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047669656d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000046a616b65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003746f6d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000036c6f6c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000046861686100000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [readonly (readonly [string, string])[]]>(result)
      expect(result).toEqual([
        [
          ['wagmi', 'viem'],
          ['jake', 'tom'],
          ['lol', 'haha'],
        ],
      ])
    })
  })

  describe('(bytes[2])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('bytes[2]'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000002123400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044141414100000000000000000000000000000000000000000000000000000000',
      )
      assertType<readonly [readonly [Hex.Hex, Hex.Hex]]>(result)
      expect(result).toEqual([['0x1234', '0x41414141']])
    })
  })

  describe('(uint256, string)', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('(uint256, string)'),
        '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000568656c6c6f000000000000000000000000000000000000000000000000000000',
      )
      expect(result).toEqual([[23n, 'hello']])
    })
  })

  describe('((uint256, string))', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('((uint256, string))'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000568656c6c6f000000000000000000000000000000000000000000000000000000',
      )
      expect(result).toEqual([[[23n, 'hello']]])
    })
  })

  describe('((uint256[], string))', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('((uint256[], string))'),
        '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000017000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000000568656c6c6f000000000000000000000000000000000000000000000000000000',
      )
      expect(result).toEqual([[[[23n, 46n], 'hello']]])
    })
  })

  // cast abi-encode "a((uint256[],bool,string[]))" "([1,2,3,4],true,[hello,world])"
  describe('(uint256[],bool,string[])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('(uint256[] x,bool y,string[] z)'),
        '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000568656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005776f726c64000000000000000000000000000000000000000000000000000000',
      )
      assertType<
        readonly [
          {
            x: readonly bigint[]
            y: boolean
            z: readonly string[]
          },
        ]
      >(result)
      expect(result).toEqual([
        {
          x: [1n, 2n, 3n, 4n],
          y: true,
          z: ['hello', 'world'],
        },
      ])
    })
  })

  describe('((uint256[] x,bool y,string[] z) foo,uint256 a,string[] b)', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from(
          '((uint256[] x,bool y,string[] z) foo,uint256 a,string[] b)',
        ),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000568656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005776f726c6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000057761676d6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047669656d00000000000000000000000000000000000000000000000000000000',
      )
      assertType<
        readonly [
          {
            foo: {
              x: readonly bigint[]
              y: boolean
              z: readonly string[]
            }
            a: bigint
            b: readonly string[]
          },
        ]
      >(result)
      expect(result).toEqual([
        {
          foo: {
            x: [1n, 2n, 3n, 4n],
            y: true,
            z: ['hello', 'world'],
          },
          a: 420n,
          b: ['wagmi', 'viem'],
        },
      ])
    })
  })

  describe('((uint256[],bool,string[]) foo,uint256,string[])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from('((uint256[],bool,string[]) foo,uint256,string[])'),
        '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000568656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005776f726c6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000057761676d6900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047669656d00000000000000000000000000000000000000000000000000000000',
      )
      assertType<
        readonly [
          readonly [
            readonly [readonly bigint[], boolean, readonly string[]],
            bigint,
            readonly string[],
          ],
        ]
      >(result)
      expect(result).toEqual([
        [[[1n, 2n, 3n, 4n], true, ['hello', 'world']], 420n, ['wagmi', 'viem']],
      ])
    })
  })

  describe('(uint256[],bool,string[]),(((uint256[],bool,string[]),uint256,string[]),((uint256[],bool,string[]), uint256, string[]),uint256,string[])', () => {
    test('default', () => {
      const result = AbiParameters.decode(
        AbiParameters.from(
          '(uint256[] x, bool y, string[] z) bazIn, (((uint256[] x, bool y, string[] z) foo, uint256 a, string[] b) foo, ((uint256[] x, bool y, string[] z) foo, uint256 a, string[] b) bar, uint256 c, string[] d) gmiIn',
        ),
        '0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000568656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005776f726c640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000004026aa0000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000046e696365000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004686168610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000057761676d690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006616c6c646179000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000010f2c00000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000004746869730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005706172616d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000568656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005746865726500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000036c6f6c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000046861686100000000000000000000000000000000000000000000000000000000',
      )
      assertType<
        readonly [
          {
            x: readonly bigint[]
            y: boolean
            z: readonly string[]
          },
          {
            foo: {
              foo: {
                x: readonly bigint[]
                y: boolean
                z: readonly string[]
              }
              a: bigint
              b: readonly string[]
            }
            bar: {
              foo: {
                x: readonly bigint[]
                y: boolean
                z: readonly string[]
              }
              a: bigint
              b: readonly string[]
            }
            c: bigint
            d: readonly string[]
          },
        ]
      >(result)
      expect(result).toEqual([
        {
          x: [1n, 2n, 3n, 4n],
          y: true,
          z: ['hello', 'world'],
        },
        {
          foo: {
            a: 420n,
            b: ['wagmi', 'allday'],
            foo: {
              x: [420n, 69n],
              y: true,
              z: ['nice', 'haha'],
            },
          },
          bar: {
            a: 69420n,
            b: ['hello', 'there'],
            foo: {
              x: [420n, 420n],
              y: true,
              z: ['this', 'is', 'a', 'param'],
            },
          },
          c: 4204202n,
          d: ['lol', 'haha'],
        },
      ])
    })
  })
})

test('options: as = Object', () => {
  {
    const result = AbiParameters.decode([], '0x', { as: 'Object' })
    expect(result).toEqual({})
  }

  {
    const parameters = AbiParameters.from('bool a, uint32 b')
    const data = AbiParameters.encode(parameters, [true, 123])
    const result = AbiParameters.decode(parameters, data, {
      as: 'Object',
    })
    expect(result).toEqual({
      a: true,
      b: 123,
    })
  }
})

test('options: checksumAddress = true', () => {
  const result = AbiParameters.decode(
    AbiParameters.from('(uint256 x, bool y, address z)'),
    '0x00000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a5cc3c03994db5b0d9a5eedd10cabab0813678ac',
    { checksumAddress: true },
  )
  expect(result).toEqual([
    { x: 420n, y: true, z: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC' },
  ])
})

describe('seaport', () => {
  test('cancel', () => {
    const cancel = AbiItem.fromAbi(seaportContractConfig.abi, 'cancel')
    const data = AbiParameters.decode(
      cancel.inputs,
      '0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa9604500000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000001caab5c3b30000000000000000000000000000000000000000000000000000001caab5c3b3511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a00000000000000000000000000000000000000000000000000000000498f3973511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a00000000000000000000000000000000000000000000000000000000498f39730000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000005414d89a8bf7e99d732bc52f3e6a3ef461c0c07800000000000000000000000000000000000000000000000000000000000002030000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa9604500000000000000000000000000000000000000000000000000000000034fb5b7000000000000000000000000000000000000000000000000000000000000006f000000000000000000000000000000000000000000000000000000000001e0f30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000008d000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa9604500000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000001caab5c3b30000000000000000000000000000000000000000000000000000001caab5c3b3511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a00000000000000000000000000000000000000000000000000000000498f3973511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a00000000000000000000000000000000000000000000000000000000498f39730000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000005414d89a8bf7e99d732bc52f3e6a3ef461c0c07800000000000000000000000000000000000000000000000000000000000002030000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa9604500000000000000000000000000000000000000000000000000000000034fb5b7000000000000000000000000000000000000000000000000000000000000006f000000000000000000000000000000000000000000000000000000000001e0f30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000008d000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045',
      { checksumAddress: false },
    )
    expect(data).toEqual([
      [
        {
          conduitKey:
            '0x511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a',
          consideration: [
            {
              endAmount: 420n,
              identifierOrCriteria: 69n,
              itemType: 10,
              recipient: address.vitalik,
              startAmount: 6n,
              token: address.burn,
            },
            {
              endAmount: 141n,
              identifierOrCriteria: 55n,
              itemType: 16,
              recipient: address.vitalik,
              startAmount: 15n,
              token: address.burn,
            },
          ],
          counter: 1234123123n,
          endTime: 123123123123n,
          offer: [
            {
              endAmount: 420n,
              identifierOrCriteria: 69n,
              itemType: 10,
              startAmount: 6n,
              token: address.burn,
            },
            {
              endAmount: 11n,
              identifierOrCriteria: 515n,
              itemType: 10,
              startAmount: 6n,
              token: address.usdcHolder,
            },
            {
              endAmount: 123123n,
              identifierOrCriteria: 55555511n,
              itemType: 10,
              startAmount: 111n,
              token: address.vitalik,
            },
          ],
          offerer: address.vitalik,
          orderType: 10,
          salt: 1234123123n,
          startTime: 123123123123n,
          zone: address.vitalik,
          zoneHash:
            '0x511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a',
        },
        {
          conduitKey:
            '0x511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a',
          consideration: [
            {
              endAmount: 420n,
              identifierOrCriteria: 69n,
              itemType: 10,
              recipient: address.vitalik,
              startAmount: 6n,
              token: address.burn,
            },
            {
              endAmount: 141n,
              identifierOrCriteria: 55n,
              itemType: 16,
              recipient: address.vitalik,
              startAmount: 15n,
              token: address.burn,
            },
          ],
          counter: 1234123123n,
          endTime: 123123123123n,
          offer: [
            {
              endAmount: 420n,
              identifierOrCriteria: 69n,
              itemType: 10,
              startAmount: 6n,
              token: address.burn,
            },
            {
              endAmount: 11n,
              identifierOrCriteria: 515n,
              itemType: 10,
              startAmount: 6n,
              token: address.usdcHolder,
            },
            {
              endAmount: 123123n,
              identifierOrCriteria: 55555511n,
              itemType: 10,
              startAmount: 111n,
              token: address.vitalik,
            },
          ],
          offerer: address.vitalik,
          orderType: 10,
          salt: 1234123123n,
          startTime: 123123123123n,
          zone: address.vitalik,
          zoneHash:
            '0x511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a',
        },
      ],
    ])
  })

  test('fulfillAdvancedOrder', () => {
    const fulfillAdvancedOrder = AbiItem.fromAbi(
      seaportContractConfig.abi,
      'fulfillAdvancedOrder',
    )
    const data = AbiParameters.decode(
      fulfillAdvancedOrder.inputs,
      '0x000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000006a0511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa9604500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000005e0000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa9604500000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000001caab5c3b30000000000000000000000000000000000000000000000000000001caab5c3b3511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a00000000000000000000000000000000000000000000000000000000498f3973511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a0000000000000000000000000000000000000000000000000000000000010f2c0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000005414d89a8bf7e99d732bc52f3e6a3ef461c0c07800000000000000000000000000000000000000000000000000000000000002030000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa9604500000000000000000000000000000000000000000000000000000000034fb5b7000000000000000000000000000000000000000000000000000000000000006f000000000000000000000000000000000000000000000000000000000001e0f30000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000008d000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045000000000000000000000000000000000000000000000000000000000000000312312300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003123123000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000004cf000000000000000000000000000000000000000000000000000000000000109200000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a',
      { checksumAddress: false },
    )
    expect(data).toEqual([
      {
        denominator: 69n,
        extraData: '0x123123',
        numerator: 420n,
        parameters: {
          conduitKey:
            '0x511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a',
          consideration: [
            {
              endAmount: 420n,
              identifierOrCriteria: 69n,
              itemType: 10,
              recipient: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',
              startAmount: 6n,
              token: '0x0000000000000000000000000000000000000000',
            },
            {
              endAmount: 141n,
              identifierOrCriteria: 55n,
              itemType: 16,
              recipient: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',
              startAmount: 15n,
              token: '0x0000000000000000000000000000000000000000',
            },
          ],
          endTime: 123123123123n,
          offer: [
            {
              endAmount: 420n,
              identifierOrCriteria: 69n,
              itemType: 10,
              startAmount: 6n,
              token: '0x0000000000000000000000000000000000000000',
            },
            {
              endAmount: 11n,
              identifierOrCriteria: 515n,
              itemType: 10,
              startAmount: 6n,
              token: '0x5414d89a8bf7e99d732bc52f3e6a3ef461c0c078',
            },
            {
              endAmount: 123123n,
              identifierOrCriteria: 55555511n,
              itemType: 10,
              startAmount: 111n,
              token: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',
            },
          ],
          offerer: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',
          orderType: 10,
          salt: 1234123123n,
          startTime: 123123123123n,
          totalOriginalConsiderationItems: 69420n,
          zone: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',
          zoneHash:
            '0x511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a',
        },
        signature: '0x123123',
      },
      [
        {
          criteriaProof: [
            '0x511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a',
          ],
          identifier: 4242n,
          index: 1231n,
          orderIndex: 11n,
          side: 1,
        },
      ],
      '0x511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511aaa511a',
      '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',
    ])
  })
})

describe('multicall3', () => {
  test('zero data', () => {
    expect(
      AbiParameters.decode(
        multicall3Abi[0].outputs,
        '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000',
      ),
    ).toMatchInlineSnapshot(`
      [
        [
          {
            "returnData": "0x",
            "success": true,
          },
        ],
      ]
    `)
  })

  test('zero data + non-zero data', () => {
    expect(
      AbiParameters.decode(
        multicall3Abi[0].outputs,
        '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000d752bd588f61926e40000000000000000000000000000000000000000000000002e0e220d3d6cf5630000000000000000000000000000000000000000000000000000000063fa0b5f',
      ),
    ).toMatchInlineSnapshot(`
      [
        [
          {
            "returnData": "0x",
            "success": true,
          },
          {
            "returnData": "0x00000000000000000000000000000000000000000000000d752bd588f61926e40000000000000000000000000000000000000000000000002e0e220d3d6cf5630000000000000000000000000000000000000000000000000000000063fa0b5f",
            "success": true,
          },
        ],
      ]
    `)
  })
})

test('bytes input', () => {
  const result = AbiParameters.decode(
    AbiParameters.from(
      '(uint256[] x, bool y, string[] z) bazIn, (((uint256[] x, bool y, string[] z) foo, uint256 a, string[] b) foo, ((uint256[] x, bool y, string[] z) foo, uint256 a, string[] b) bar, uint256 c, string[] d) gmiIn',
    ),
    Bytes.fromHex(
      '0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000568656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005776f726c640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000004026aa0000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001a4000000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000046e696365000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004686168610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000057761676d690000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006616c6c646179000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000010f2c00000000000000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a40000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000004746869730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005706172616d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000568656c6c6f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005746865726500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000036c6f6c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000046861686100000000000000000000000000000000000000000000000000000000',
    ),
  )
  expect(result).toEqual([
    {
      x: [1n, 2n, 3n, 4n],
      y: true,
      z: ['hello', 'world'],
    },
    {
      foo: {
        a: 420n,
        b: ['wagmi', 'allday'],
        foo: {
          x: [420n, 69n],
          y: true,
          z: ['nice', 'haha'],
        },
      },
      bar: {
        a: 69420n,
        b: ['hello', 'there'],
        foo: {
          x: [420n, 420n],
          y: true,
          z: ['this', 'is', 'a', 'param'],
        },
      },
      c: 4204202n,
      d: ['lol', 'haha'],
    },
  ])
})

test('data suffix', () => {
  expect(
    AbiParameters.decode(
      [
        {
          name: 'xIn',
          type: 'uint256',
        },
      ],
      '0x0000000000000000000000000000000000000000000000000000000000010f2cdeadbeef',
    ),
  ).toEqual([69420n])
})

test('data size too small', () => {
  expect(() =>
    AbiParameters.decode(
      [{ type: 'uint256' }],
      '0x0000000000000000000000000000000000000000000000000000000000010f',
    ),
  ).toThrowErrorMatchingInlineSnapshot(`
    [AbiParameters.DataSizeTooSmallError: Data size of 31 bytes is too small for given parameters.

    Params: (uint256)
    Data:   0x0000000000000000000000000000000000000000000000000000000000010f (31 bytes)]
  `)

  expect(() =>
    AbiParameters.decode(
      [{ type: 'uint256' }],
      Bytes.fromHex(
        '0x0000000000000000000000000000000000000000000000000000000000010f',
      ),
    ),
  ).toThrowErrorMatchingInlineSnapshot(`
    [AbiParameters.DataSizeTooSmallError: Data size of 31 bytes is too small for given parameters.

    Params: (uint256)
    Data:   0x0000000000000000000000000000000000000000000000000000000000010f (31 bytes)]
  `)

  expect(() =>
    AbiParameters.decode(
      [{ type: 'uint256' }, { type: 'uint256' }],
      '0x0000000000000000000000000000000000000000000000000000000000010f2c',
    ),
  ).toThrowErrorMatchingInlineSnapshot(`
    [AbiParameters.DataSizeTooSmallError: Data size of 32 bytes is too small for given parameters.

    Params: (uint256, uint256)
    Data:   0x0000000000000000000000000000000000000000000000000000000000010f2c (32 bytes)]
  `)
})

test('invalid type', () => {
  expect(() =>
    AbiParameters.decode(
      [{ name: 'x', type: 'lol' }],
      '0x0000000000000000000000000000000000000000000000000000000000000000',
    ),
  ).toThrowErrorMatchingInlineSnapshot(
    '[AbiParameters.InvalidTypeError: Type `lol` is not a valid ABI Type.]',
  )
})

test('error: zero data', () => {
  expect(() =>
    AbiParameters.decode(
      [
        {
          inputs: [],
          name: 'foo',
          outputs: [
            {
              name: 'x',
              type: 'uint256',
            },
          ],
          stateMutability: 'pure',
          type: 'function',
        },
      ],
      '0x',
    ),
  ).toThrowErrorMatchingInlineSnapshot(
    `[AbiParameters.ZeroDataError: Cannot decode zero data ("0x") with ABI parameters.]`,
  )
})

test('error: recursive decode array', () => {
  const payload = `0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a${'0000000000000000000000000000000000000000000000000000000000000020'.repeat(
    64,
  )}`
  expect(() =>
    AbiParameters.decode(
      [{ type: 'uint256[][][][][][][][][][]' }],
      `0x${payload}`,
    ),
  ).toThrowErrorMatchingInlineSnapshot(
    '[Cursor.RecursiveReadLimitExceededError: Recursive read limit of `8192` exceeded (recursive read count: `8193`).]',
  )
})

test('zst', () => {
  const payload =
    '0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000FFFFFFFF' as const

  expect(() =>
    AbiParameters.decode([{ type: 'uint256[0][4294967295]' }], payload),
  ).toThrowErrorMatchingInlineSnapshot(
    '[Cursor.RecursiveReadLimitExceededError: Recursive read limit of `8192` exceeded (recursive read count: `8193`).]',
  )
  expect(() =>
    AbiParameters.decode([{ type: 'uint32[0][4294967295]' }], payload),
  ).toThrowErrorMatchingInlineSnapshot(
    '[Cursor.RecursiveReadLimitExceededError: Recursive read limit of `8192` exceeded (recursive read count: `8193`).]',
  )
  expect(() =>
    AbiParameters.decode(
      [{ type: 'uint256[4294967295][4294967295]' }],
      payload,
    ),
  ).toThrowErrorMatchingInlineSnapshot(
    `
    [AbiParameters.DataSizeTooSmallError: Data size of 64 bytes is too small for given parameters.

    Params: (uint256[4294967295][4294967295])
    Data:   0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000FFFFFFFF (64 bytes)]
  `,
  )
  expect(() =>
    AbiParameters.decode([{ type: 'uint32[4294967295][4294967295]' }], payload),
  ).toThrowErrorMatchingInlineSnapshot(
    `
    [AbiParameters.DataSizeTooSmallError: Data size of 64 bytes is too small for given parameters.

    Params: (uint32[4294967295][4294967295])
    Data:   0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000FFFFFFFF (64 bytes)]
  `,
  )
  expect(() =>
    AbiParameters.decode([{ type: 'uint256[0][]' }], payload),
  ).toThrowErrorMatchingInlineSnapshot(
    `
    [AbiParameters.DataSizeTooSmallError: Data size of 64 bytes is too small for given parameters.

    Params: (uint256[0][])
    Data:   0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000FFFFFFFF (64 bytes)]
  `,
  )
  expect(() =>
    AbiParameters.decode([{ type: 'uint256[0][]' }], payload),
  ).toThrowErrorMatchingInlineSnapshot(
    `
    [AbiParameters.DataSizeTooSmallError: Data size of 64 bytes is too small for given parameters.

    Params: (uint256[0][])
    Data:   0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000FFFFFFFF (64 bytes)]
  `,
  )
  expect(() =>
    AbiParameters.decode([{ type: 'tuple[]', components: [] }], payload),
  ).toThrowErrorMatchingInlineSnapshot(
    `
    [AbiParameters.DataSizeTooSmallError: Data size of 64 bytes is too small for given parameters.

    Params: (()[])
    Data:   0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000FFFFFFFF (64 bytes)]
  `,
  )
  expect(() =>
    AbiParameters.decode(
      [{ type: 'tuple[]', components: [{ type: 'tuple', components: [] }] }],
      payload,
    ),
  ).toThrowErrorMatchingInlineSnapshot(
    `
    [AbiParameters.DataSizeTooSmallError: Data size of 64 bytes is too small for given parameters.

    Params: ((())[])
    Data:   0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000FFFFFFFF (64 bytes)]
  `,
  )
  expect(() =>
    AbiParameters.decode(
      [{ type: 'tuple[]', components: [{ type: 'uint32[0]' }] }],
      payload,
    ),
  ).toThrowErrorMatchingInlineSnapshot(
    `
    [AbiParameters.DataSizeTooSmallError: Data size of 64 bytes is too small for given parameters.

    Params: ((uint32[0])[])
    Data:   0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000FFFFFFFF (64 bytes)]
  `,
  )
  expect(() =>
    AbiParameters.decode(
      [
        {
          type: 'tuple[]',
          components: [{ type: 'tuple', components: [{ type: 'uint32[0]' }] }],
        },
      ],
      payload,
    ),
  ).toThrowErrorMatchingInlineSnapshot(
    `
    [AbiParameters.DataSizeTooSmallError: Data size of 64 bytes is too small for given parameters.

    Params: (((uint32[0]))[])
    Data:   0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000FFFFFFFF (64 bytes)]
  `,
  )
})

test('recursive', () => {
  const arr2 = AbiParameters.from('uint256[][]')
  const arr4 = AbiParameters.from('uint256[][][][]')
  const arr10 = AbiParameters.from('uint256[][][][][][][][][][]')
  const a = [[[], [], [], [], [], [], [], [], [], []]] as const
  const p = AbiParameters.encode(arr2, a)
  expect(p).toEqual(
    '0x0000000000000000000000000000000000000000000000000000000000000020' + // ptr
      '000000000000000000000000000000000000000000000000000000000000000a' + // len=10
      '0000000000000000000000000000000000000000000000000000000000000140' +
      '0000000000000000000000000000000000000000000000000000000000000160' +
      '0000000000000000000000000000000000000000000000000000000000000180' +
      '00000000000000000000000000000000000000000000000000000000000001a0' +
      '00000000000000000000000000000000000000000000000000000000000001c0' +
      '00000000000000000000000000000000000000000000000000000000000001e0' +
      '0000000000000000000000000000000000000000000000000000000000000200' +
      '0000000000000000000000000000000000000000000000000000000000000220' +
      '0000000000000000000000000000000000000000000000000000000000000240' +
      '0000000000000000000000000000000000000000000000000000000000000260' + // ptrs end (10)
      '0000000000000000000000000000000000000000000000000000000000000000' +
      '0000000000000000000000000000000000000000000000000000000000000000' +
      '0000000000000000000000000000000000000000000000000000000000000000' +
      '0000000000000000000000000000000000000000000000000000000000000000' +
      '0000000000000000000000000000000000000000000000000000000000000000' +
      '0000000000000000000000000000000000000000000000000000000000000000' +
      '0000000000000000000000000000000000000000000000000000000000000000' +
      '0000000000000000000000000000000000000000000000000000000000000000' +
      '0000000000000000000000000000000000000000000000000000000000000000' +
      '0000000000000000000000000000000000000000000000000000000000000000', // 10 values
  )

  const payload =
    `0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a${'0000000000000000000000000000000000000000000000000000000000000020'.repeat(
      64,
    )}` as const
  expect(() =>
    AbiParameters.decode(AbiParameters.from(arr10), payload),
  ).toThrowErrorMatchingInlineSnapshot(
    '[Cursor.RecursiveReadLimitExceededError: Recursive read limit of `8192` exceeded (recursive read count: `8193`).]',
  )

  const ptrArr = AbiParameters.from('uint256[]')
  // Try to break check
  const p2 = AbiParameters.encode(ptrArr, [
    Array.from({ length: 10 * 1024 }, (_, j) => BigInt(j + 1) * 32n),
  ])
  expect(() =>
    AbiParameters.decode(AbiParameters.from(arr10), p2),
  ).toThrowErrorMatchingInlineSnapshot(
    `
    [AbiParameters.DataSizeTooSmallError: Data size of 327744 bytes is too small for given parameters.

    Params: (uint256[][][][][][][][][][])
    Data:   0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004e00000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000052000000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000560000000000000000000000000000000000000000000000000000000000000058000000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000062000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000660000000000000000000000000000000000000000000000000000000000000068000000000000000000000000000000000000000000000000000000000000006a000000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006e00000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000072000000000000000000000000000000000000000000000000000000000000007400000000000000000000000000000000000000000000000000000000000000760000000000000000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000000000000000007a000000000000000000000000000000000000000000000000000000000000007c000000000000000000000000000000000000000000000000000000000000007e00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000082000000000000000000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000860000000000000000000000000000000000000000000000000000000000000088000000000000000000000000000000000000000000000000000000000000008a000000000000000000000000000000000000000000000000000000000000008c000000000000000000000000000000000000000000000000000000000000008e00000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000092000000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000960000000000000000000000000000000000000000000000000000000000000098000000000000000000000000000000000000000000000000000000000000009a000000000000000000000000000000000000000000000000000000000000009c000000000000000000000000000000000000000000000000000000000000009e00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a600000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000ae00000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b200000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000b600000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000ba00000000000000000000000000000000000000000000000000000000000000bc00000000000000000000000000000000000000000000000000000000000000be00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000c400000000000000000000000000000000000000000000000000000000000000c600000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000cc00000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000d200000000000000000000000000000000000000000000000000000000000000d400000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000d800000000000000000000000000000000000000000000000000000000000000da00000000000000000000000000000000000000000000000000000000000000dc00000000000000000000000000000000000000000000000000000000000000de00000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000e200000000000000000000000000000000000000000000000000000000000000e400000000000000000000000000000000000000000000000000000000000000e600000000000000000000000000000000000000000000000000000000000000e800000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000ee00000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f200000000000000000000000000000000000000000000000000000000000000f400000000000000000000000000000000000000000000000000000000000000f600000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000fa00000000000000000000000000000000000000000000000000000000000000fc00000000000000000000000000000000000000000000000000000000000000fe00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000102000000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000001060000000000000000000000000000000000000000000000000000000000000108000000000000000000000000000000000000000000000000000000000000010a000000000000000000000000000000000000000000000000000000000000010c000000000000000000000000000000000000000000000000000000000000010e00000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000112000000000000000000000000000000000000000000000000000000000000011400000000000000000000000000000000000000000000000000000000000001160000000000000000000000000000000000000000000000000000000000000118000000000000000000000000000000000000000000000000000000000000011a000000000000000000000000000000000000000000000000000000000000011c000000000000000000000000000000000000000000000000000000000000011e00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000122000000000000000000000000000000000000000000000000000000000000012400000000000000000000000000000000000000000000000000000000000001260000000000000000000000000000000000000000000000000000000000000128000000000000000000000000000000000000000000000000000000000000012a000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000012e00000000000000000000000000000000000000000000000000000000000001300000000000000000000000000000000000000000000000000000000000000132000000000000000000000000000000000000000000000000000000000000013400000000000000000000000000000000000000000000000000000000000001360000000000000000000000000000000000000000000000000000000000000138000000000000000000000000000000000000000000000000000000000000013a000000000000000000000000000000000000000000000000000000000000013c000000000000000000000000000000000000000000000000000000000000013e00000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000142000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001460000000000000000000000000000000000000000000000000000000000000148000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014e00000000000000000000000000000000000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000152000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001560000000000000000000000000000000000000000000000000000000000000158000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015e00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000162000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001660000000000000000000000000000000000000000000000000000000000000168000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016e00000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000172000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001760000000000000000000000000000000000000000000000000000000000000178000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017e00000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000182000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001860000000000000000000000000000000000000000000000000000000000000188000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018e00000000000000000000000000000000000000000000000000000000000001900000000000000000000000000000000000000000000000000000000000000192000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001960000000000000000000000000000000000000000000000000000000000000198000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019e00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000202000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002060000000000000000000000000000000000000000000000000000000000000208000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020e00000000000000000000000000000000000000000000000000000000000002100000000000000000000000000000000000000000000000000000000000000212000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002160000000000000000000000000000000000000000000000000000000000000218000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021e00000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000222000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002260000000000000000000000000000000000000000000000000000000000000228000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022e00000000000000000000000000000000000000000000000000000000000002300000000000000000000000000000000000000000000000000000000000000232000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002360000000000000000000000000000000000000000000000000000000000000238000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023e00000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000242000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002460000000000000000000000000000000000000000000000000000000000000248000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024e00000000000000000000000000000000000000000000000000000000000002500000000000000000000000000000000000000000000000000000000000000252000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002560000000000000000000000000000000000000000000000000000000000000258000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025e00000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000262000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002660000000000000000000000000000000000000000000000000000000000000268000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026e00000000000000000000000000000000000000000000000000000000000002700000000000000000000000000000000000000000000000000000000000000272000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002760000000000000000000000000000000000000000000000000000000000000278000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000282000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002860000000000000000000000000000000000000000000000000000000000000288000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028e00000000000000000000000000000000000000000000000000000000000002900000000000000000000000000000000000000000000000000000000000000292000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002960000000000000000000000000000000000000000000000000000000000000298000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029e00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000302000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003060000000000000000000000000000000000000000000000000000000000000308000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030e00000000000000000000000000000000000000000000000000000000000003100000000000000000000000000000000000000000000000000000000000000312000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003160000000000000000000000000000000000000000000000000000000000000318000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031e00000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000322000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003260000000000000000000000000000000000000000000000000000000000000328000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032e00000000000000000000000000000000000000000000000000000000000003300000000000000000000000000000000000000000000000000000000000000332000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003360000000000000000000000000000000000000000000000000000000000000338000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033e00000000000000000000000000000000000000000000000000000000000003400000000000000000000000000000000000000000000000000000000000000342000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003460000000000000000000000000000000000000000000000000000000000000348000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034e00000000000000000000000000000000000000000000000000000000000003500000000000000000000000000000000000000000000000000000000000000352000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003560000000000000000000000000000000000000000000000000000000000000358000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035e00000000000000000000000000000000000000000000000000000000000003600000000000000000000000000000000000000000000000000000000000000362000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003660000000000000000000000000000000000000000000000000000000000000368000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036e00000000000000000000000000000000000000000000000000000000000003700000000000000000000000000000000000000000000000000000000000000372000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003760000000000000000000000000000000000000000000000000000000000000378000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000000000000000000382000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003860000000000000000000000000000000000000000000000000000000000000388000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038e00000000000000000000000000000000000000000000000000000000000003900000000000000000000000000000000000000000000000000000000000000392000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003960000000000000000000000000000000000000000000000000000000000000398000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039e00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003be00000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000402000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004060000000000000000000000000000000000000000000000000000000000000408000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040e00000000000000000000000000000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000412000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004160000000000000000000000000000000000000000000000000000000000000418000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041e00000000000000000000000000000000000000000000000000000000000004200000000000000000000000000000000000000000000000000000000000000422000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004260000000000000000000000000000000000000000000000000000000000000428000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042e00000000000000000000000000000000000000000000000000000000000004300000000000000000000000000000000000000000000000000000000000000432000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004360000000000000000000000000000000000000000000000000000000000000438000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043e00000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000442000000000000000000000000000000000000000000000000000000000000044400000000000000000000000000000000000000000000000000000000000004460000000000000000000000000000000000000000000000000000000000000448000000000000000000000000000000000000000000000000000000000000044a000000000000000000000000000000000000000000000000000000000000044c000000000000000000000000000000000000000000000000000000000000044e00000000000000000000000000000000000000000000000000000000000004500000000000000000000000000000000000000000000000000000000000000452000000000000000000000000000000000000000000000000000000000000045400000000000000000000000000000000000000000000000000000000000004560000000000000000000000000000000000000000000000000000000000000458000000000000000000000000000000000000000000000000000000000000045a000000000000000000000000000000000000000000000000000000000000045c000000000000000000000000000000000000000000000000000000000000045e00000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000462000000000000000000000000000000000000000000000000000000000000046400000000000000000000000000000000000000000000000000000000000004660000000000000000000000000000000000000000000000000000000000000468000000000000000000000000000000000000000000000000000000000000046a000000000000000000000000000000000000000000000000000000000000046c000000000000000000000000000000000000000000000000000000000000046e00000000000000000000000000000000000000000000000000000000000004700000000000000000000000000000000000000000000000000000000000000472000000000000000000000000000000000000000000000000000000000000047400000000000000000000000000000000000000000000000000000000000004760000000000000000000000000000000000000000000000000000000000000478000000000000000000000000000000000000000000000000000000000000047a000000000000000000000000000000000000000000000000000000000000047c000000000000000000000000000000000000000000000000000000000000047e00000000000000000000000000000000000000000000000000000000000004800000000000000000000000000000000000000000000000000000000000000482000000000000000000000000000000000000000000000000000000000000048400000000000000000000000000000000000000000000000000000000000004860000000000000000000000000000000000000000000000000000000000000488000000000000000000000000000000000000000000000000000000000000048a000000000000000000000000000000000000000000000000000000000000048c000000000000000000000000000000000000000000000000000000000000048e00000000000000000000000000000000000000000000000000000000000004900000000000000000000000000000000000000000000000000000000000000492000000000000000000000000000000000000000000000000000000000000049400000000000000000000000000000000000000000000000000000000000004960000000000000000000000000000000000000000000000000000000000000498000000000000000000000000000000000000000000000000000000000000049a000000000000000000000000000000000000000000000000000000000000049c000000000000000000000000000000000000000000000000000000000000049e00000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004a200000000000000000000000000000000000000000000000000000000000004a400000000000000000000000000000000000000000000000000000000000004a600000000000000000000000000000000000000000000000000000000000004a800000000000000000000000000000000000000000000000000000000000004aa00000000000000000000000000000000000000000000000000000000000004ac00000000000000000000000000000000000000000000000000000000000004ae00000000000000000000000000000000000000000000000000000000000004b000000000000000000000000000000000000000000000000000000000000004b200000000000000000000000000000000000000000000000000000000000004b400000000000000000000000000000000000000000000000000000000000004b600000000000000000000000000000000000000000000000000000000000004b800000000000000000000000000000000000000000000000000000000000004ba00000000000000000000000000000000000000000000000000000000000004bc00000000000000000000000000000000000000000000000000000000000004be00000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c200000000000000000000000000000000000000000000000000000000000004c400000000000000000000000000000000000000000000000000000000000004c600000000000000000000000000000000000000000000000000000000000004c800000000000000000000000000000000000000000000000000000000000004ca00000000000000000000000000000000000000000000000000000000000004cc00000000000000000000000000000000000000000000000000000000000004ce00000000000000000000000000000000000000000000000000000000000004d000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000004d400000000000000000000000000000000000000000000000000000000000004d600000000000000000000000000000000000000000000000000000000000004d800000000000000000000000000000000000000000000000000000000000004da00000000000000000000000000000000000000000000000000000000000004dc00000000000000000000000000000000000000000000000000000000000004de00000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000004e200000000000000000000000000000000000000000000000000000000000004e400000000000000000000000000000000000000000000000000000000000004e600000000000000000000000000000000000000000000000000000000000004e800000000000000000000000000000000000000000000000000000000000004ea00000000000000000000000000000000000000000000000000000000000004ec00000000000000000000000000000000000000000000000000000000000004ee00000000000000000000000000000000000000000000000000000000000004f000000000000000000000000000000000000000000000000000000000000004f200000000000000000000000000000000000000000000000000000000000004f400000000000000000000000000000000000000000000000000000000000004f600000000000000000000000000000000000000000000000000000000000004f800000000000000000000000000000000000000000000000000000000000004fa00000000000000000000000000000000000000000000000000000000000004fc00000000000000000000000000000000000000000000000000000000000004fe00000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000502000000000000000000000000000000000000000000000000000000000000050400000000000000000000000000000000000000000000000000000000000005060000000000000000000000000000000000000000000000000000000000000508000000000000000000000000000000000000000000000000000000000000050a000000000000000000000000000000000000000000000000000000000000050c000000000000000000000000000000000000000000000000000000000000050e00000000000000000000000000000000000000000000000000000000000005100000000000000000000000000000000000000000000000000000000000000512000000000000000000000000000000000000000000000000000000000000051400000000000000000000000000000000000000000000000000000000000005160000000000000000000000000000000000000000000000000000000000000518000000000000000000000000000000000000000000000000000000000000051a000000000000000000000000000000000000000000000000000000000000051c000000000000000000000000000000000000000000000000000000000000051e00000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000522000000000000000000000000000000000000000000000000000000000000052400000000000000000000000000000000000000000000000000000000000005260000000000000000000000000000000000000000000000000000000000000528000000000000000000000000000000000000000000000000000000000000052a000000000000000000000000000000000000000000000000000000000000052c000000000000000000000000000000000000000000000000000000000000052e00000000000000000000000000000000000000000000000000000000000005300000000000000000000000000000000000000000000000000000000000000532000000000000000000000000000000000000000000000000000000000000053400000000000000000000000000000000000000000000000000000000000005360000000000000000000000000000000000000000000000000000000000000538000000000000000000000000000000000000000000000000000000000000053a000000000000000000000000000000000000000000000000000000000000053c000000000000000000000000000000000000000000000000000000000000053e00000000000000000000000000000000000000000000000000000000000005400000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054400000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000054a000000000000000000000000000000000000000000000000000000000000054c000000000000000000000000000000000000000000000000000000000000054e00000000000000000000000000000000000000000000000000000000000005500000000000000000000000000000000000000000000000000000000000000552000000000000000000000000000000000000000000000000000000000000055400000000000000000000000000000000000000000000000000000000000005560000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000055a000000000000000000000000000000000000000000000000000000000000055c000000000000000000000000000000000000000000000000000000000000055e00000000000000000000000000000000000000000000000000000000000005600000000000000000000000000000000000000000000000000000000000000562000000000000000000000000000000000000000000000000000000000000056400000000000000000000000000000000000000000000000000000000000005660000000000000000000000000000000000000000000000000000000000000568000000000000000000000000000000000000000000000000000000000000056a000000000000000000000000000000000000000000000000000000000000056c000000000000000000000000000000000000000000000000000000000000056e00000000000000000000000000000000000000000000000000000000000005700000000000000000000000000000000000000000000000000000000000000572000000000000000000000000000000000000000000000000000000000000057400000000000000000000000000000000000000000000000000000000000005760000000000000000000000000000000000000000000000000000000000000578000000000000000000000000000000000000000000000000000000000000057a000000000000000000000000000000000000000000000000000000000000057c000000000000000000000000000000000000000000000000000000000000057e00000000000000000000000000000000000000000000000000000000000005800000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058400000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000058a000000000000000000000000000000000000000000000000000000000000058c000000000000000000000000000000000000000000000000000000000000058e00000000000000000000000000000000000000000000000000000000000005900000000000000000000000000000000000000000000000000000000000000592000000000000000000000000000000000000000000000000000000000000059400000000000000000000000000000000000000000000000000000000000005960000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000059a000000000000000000000000000000000000000000000000000000000000059c000000000000000000000000000000000000000000000000000000000000059e00000000000000000000000000000000000000000000000000000000000005a000000000000000000000000000000000000000000000000000000000000005a200000000000000000000000000000000000000000000000000000000000005a400000000000000000000000000000000000000000000000000000000000005a600000000000000000000000000000000000000000000000000000000000005a800000000000000000000000000000000000000000000000000000000000005aa00000000000000000000000000000000000000000000000000000000000005ac00000000000000000000000000000000000000000000000000000000000005ae00000000000000000000000000000000000000000000000000000000000005b000000000000000000000000000000000000000000000000000000000000005b200000000000000000000000000000000000000000000000000000000000005b400000000000000000000000000000000000000000000000000000000000005b600000000000000000000000000000000000000000000000000000000000005b800000000000000000000000000000000000000000000000000000000000005ba00000000000000000000000000000000000000000000000000000000000005bc00000000000000000000000000000000000000000000000000000000000005be00000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005da00000000000000000000000000000000000000000000000000000000000005dc00000000000000000000000000000000000000000000000000000000000005de00000000000000000000000000000000000000000000000000000000000005e000000000000000000000000000000000000000000000000000000000000005e200000000000000000000000000000000000000000000000000000000000005e400000000000000000000000000000000000000000000000000000000000005e600000000000000000000000000000000000000000000000000000000000005e800000000000000000000000000000000000000000000000000000000000005ea00000000000000000000000000000000000000000000000000000000000005ec00000000000000000000000000000000000000000000000000000000000005ee00000000000000000000000000000000000000000000000000000000000005f000000000000000000000000000000000000000000000000000000000000005f200000000000000000000000000000000000000000000000000000000000005f400000000000000000000000000000000000000000000000000000000000005f600000000000000000000000000000000000000000000000000000000000005f800000000000000000000000000000000000000000000000000000000000005fa00000000000000000000000000000000000000000000000000000000000005fc00000000000000000000000000000000000000000000000000000000000005fe00000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060400000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000060a000000000000000000000000000000000000000000000000000000000000060c000000000000000000000000000000000000000000000000000000000000060e00000000000000000000000000000000000000000000000000000000000006100000000000000000000000000000000000000000000000000000000000000612000000000000000000000000000000000000000000000000000000000000061400000000000000000000000000000000000000000000000000000000000006160000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000061a000000000000000000000000000000000000000000000000000000000000061c000000000000000000000000000000000000000000000000000000000000061e00000000000000000000000000000000000000000000000000000000000006200000000000000000000000000000000000000000000000000000000000000622000000000000000000000000000000000000000000000000000000000000062400000000000000000000000000000000000000000000000000000000000006260000000000000000000000000000000000000000000000000000000000000628000000000000000000000000000000000000000000000000000000000000062a000000000000000000000000000000000000000000000000000000000000062c000000000000000000000000000000000000000000000000000000000000062e00000000000000000000000000000000000000000000000000000000000006300000000000000000000000000000000000000000000000000000000000000632000000000000000000000000000000000000000000000000000000000000063400000000000000000000000000000000000000000000000000000000000006360000000000000000000000000000000000000000000000000000000000000638000000000000000000000000000000000000000000000000000000000000063a000000000000000000000000000000000000000000000000000000000000063c000000000000000000000000000000000000000000000000000000000000063e00000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064400000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000064a000000000000000000000000000000000000000000000000000000000000064c000000000000000000000000000000000000000000000000000000000000064e00000000000000000000000000000000000000000000000000000000000006500000000000000000000000000000000000000000000000000000000000000652000000000000000000000000000000000000000000000000000000000000065400000000000000000000000000000000000000000000000000000000000006560000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000065a000000000000000000000000000000000000000000000000000000000000065c000000000000000000000000000000000000000000000000000000000000065e00000000000000000000000000000000000000000000000000000000000006600000000000000000000000000000000000000000000000000000000000000662000000000000000000000000000000000000000000000000000000000000066400000000000000000000000000000000000000000000000000000000000006660000000000000000000000000000000000000000000000000000000000000668000000000000000000000000000000000000000000000000000000000000066a000000000000000000000000000000000000000000000000000000000000066c000000000000000000000000000000000000000000000000000000000000066e00000000000000000000000000000000000000000000000000000000000006700000000000000000000000000000000000000000000000000000000000000672000000000000000000000000000000000000000000000000000000000000067400000000000000000000000000000000000000000000000000000000000006760000000000000000000000000000000000000000000000000000000000000678000000000000000000000000000000000000000000000000000000000000067a000000000000000000000000000000000000000000000000000000000000067c000000000000000000000000000000000000000000000000000000000000067e00000000000000000000000000000000000000000000000000000000000006800000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068400000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000068a000000000000000000000000000000000000000000000000000000000000068c000000000000000000000000000000000000000000000000000000000000068e00000000000000000000000000000000000000000000000000000000000006900000000000000000000000000000000000000000000000000000000000000692000000000000000000000000000000000000000000000000000000000000069400000000000000000000000000000000000000000000000000000000000006960000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000069a000000000000000000000000000000000000000000000000000000000000069c000000000000000000000000000000000000000000000000000000000000069e00000000000000000000000000000000000000000000000000000000000006a000000000000000000000000000000000000000000000000000000000000006a200000000000000000000000000000000000000000000000000000000000006a400000000000000000000000000000000000000000000000000000000000006a600000000000000000000000000000000000000000000000000000000000006a800000000000000000000000000000000000000000000000000000000000006aa00000000000000000000000000000000000000000000000000000000000006ac00000000000000000000000000000000000000000000000000000000000006ae00000000000000000000000000000000000000000000000000000000000006b000000000000000000000000000000000000000000000000000000000000006b200000000000000000000000000000000000000000000000000000000000006b400000000000000000000000000000000000000000000000000000000000006b600000000000000000000000000000000000000000000000000000000000006b800000000000000000000000000000000000000000000000000000000000006ba00000000000000000000000000000000000000000000000000000000000006bc00000000000000000000000000000000000000000000000000000000000006be00000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006da00000000000000000000000000000000000000000000000000000000000006dc00000000000000000000000000000000000000000000000000000000000006de00000000000000000000000000000000000000000000000000000000000006e000000000000000000000000000000000000000000000000000000000000006e200000000000000000000000000000000000000000000000000000000000006e400000000000000000000000000000000000000000000000000000000000006e600000000000000000000000000000000000000000000000000000000000006e800000000000000000000000000000000000000000000000000000000000006ea00000000000000000000000000000000000000000000000000000000000006ec00000000000000000000000000000000000000000000000000000000000006ee00000000000000000000000000000000000000000000000000000000000006f000000000000000000000000000000000000000000000000000000000000006f200000000000000000000000000000000000000000000000000000000000006f400000000000000000000000000000000000000000000000000000000000006f600000000000000000000000000000000000000000000000000000000000006f800000000000000000000000000000000000000000000000000000000000006fa00000000000000000000000000000000000000000000000000000000000006fc00000000000000000000000000000000000000000000000000000000000006fe00000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070400000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000070a000000000000000000000000000000000000000000000000000000000000070c000000000000000000000000000000000000000000000000000000000000070e00000000000000000000000000000000000000000000000000000000000007100000000000000000000000000000000000000000000000000000000000000712000000000000000000000000000000000000000000000000000000000000071400000000000000000000000000000000000000000000000000000000000007160000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000071a000000000000000000000000000000000000000000000000000000000000071c000000000000000000000000000000000000000000000000000000000000071e00000000000000000000000000000000000000000000000000000000000007200000000000000000000000000000000000000000000000000000000000000722000000000000000000000000000000000000000000000000000000000000072400000000000000000000000000000000000000000000000000000000000007260000000000000000000000000000000000000000000000000000000000000728000000000000000000000000000000000000000000000000000000000000072a000000000000000000000000000000000000000000000000000000000000072c000000000000000000000000000000000000000000000000000000000000072e00000000000000000000000000000000000000000000000000000000000007300000000000000000000000000000000000000000000000000000000000000732000000000000000000000000000000000000000000000000000000000000073400000000000000000000000000000000000000000000000000000000000007360000000000000000000000000000000000000000000000000000000000000738000000000000000000000000000000000000000000000000000000000000073a000000000000000000000000000000000000000000000000000000000000073c000000000000000000000000000000000000000000000000000000000000073e00000000000000000000000000000000000000000000000000000000000007400000000000000000000000000000000000000000000000000000000000000742000000000000000000000000000000000000000000000000000000000000074400000000000000000000000000000000000000000000000000000000000007460000000000000000000000000000000000000000000000000000000000000748000000000000000000000000000000000000000000000000000000000000074a000000000000000000000000000000000000000000000000000000000000074c000000000000000000000000000000000000000000000000000000000000074e00000000000000000000000000000000000000000000000000000000000007500000000000000000000000000000000000000000000000000000000000000752000000000000000000000000000000000000000000000000000000000000075400000000000000000000000000000000000000000000000000000000000007560000000000000000000000000000000000000000000000000000000000000758000000000000000000000000000000000000000000000000000000000000075a000000000000000000000000000000000000000000000000000000000000075c000000000000000000000000000000000000000000000000000000000000075e00000000000000000000000000000000000000000000000000000000000007600000000000000000000000000000000000000000000000000000000000000762000000000000000000000000000000000000000000000000000000000000076400000000000000000000000000000000000000000000000000000000000007660000000000000000000000000000000000000000000000000000000000000768000000000000000000000000000000000000000000000000000000000000076a000000000000000000000000000000000000000000000000000000000000076c000000000000000000000000000000000000000000000000000000000000076e00000000000000000000000000000000000000000000000000000000000007700000000000000000000000000000000000000000000000000000000000000772000000000000000000000000000000000000000000000000000000000000077400000000000000000000000000000000000000000000000000000000000007760000000000000000000000000000000000000000000000000000000000000778000000000000000000000000000000000000000000000000000000000000077a000000000000000000000000000000000000000000000000000000000000077c000000000000000000000000000000000000000000000000000000000000077e00000000000000000000000000000000000000000000000000000000000007800000000000000000000000000000000000000000000000000000000000000782000000000000000000000000000000000000000000000000000000000000078400000000000000000000000000000000000000000000000000000000000007860000000000000000000000000000000000000000000000000000000000000788000000000000000000000000000000000000000000000000000000000000078a000000000000000000000000000000000000000000000000000000000000078c000000000000000000000000000000000000000000000000000000000000078e00000000000000000000000000000000000000000000000000000000000007900000000000000000000000000000000000000000000000000000000000000792000000000000000000000000000000000000000000000000000000000000079400000000000000000000000000000000000000000000000000000000000007960000000000000000000000000000000000000000000000000000000000000798000000000000000000000000000000000000000000000000000000000000079a000000000000000000000000000000000000000000000000000000000000079c000000000000000000000000000000000000000000000000000000000000079e00000000000000000000000000000000000000000000000000000000000007a000000000000000000000000000000000000000000000000000000000000007a200000000000000000000000000000000000000000000000000000000000007a400000000000000000000000000000000000000000000000000000000000007a600000000000000000000000000000000000000000000000000000000000007a800000000000000000000000000000000000000000000000000000000000007aa00000000000000000000000000000000000000000000000000000000000007ac00000000000000000000000000000000000000000000000000000000000007ae00000000000000000000000000000000000000000000000000000000000007b000000000000000000000000000000000000000000000000000000000000007b200000000000000000000000000000000000000000000000000000000000007b400000000000000000000000000000000000000000000000000000000000007b600000000000000000000000000000000000000000000000000000000000007b800000000000000000000000000000000000000000000000000000000000007ba00000000000000000000000000000000000000000000000000000000000007bc00000000000000000000000000000000000000000000000000000000000007be00000000000000000000000000000000000000000000000000000000000007c000000000000000000000000000000000000000000000000000000000000007c200000000000000000000000000000000000000000000000000000000000007c400000000000000000000000000000000000000000000000000000000000007c600000000000000000000000000000000000000000000000000000000000007c800000000000000000000000000000000000000000000000000000000000007ca00000000000000000000000000000000000000000000000000000000000007cc00000000000000000000000000000000000000000000000000000000000007ce00000000000000000000000000000000000000000000000000000000000007d000000000000000000000000000000000000000000000000000000000000007d200000000000000000000000000000000000000000000000000000000000007d400000000000000000000000000000000000000000000000000000000000007d600000000000000000000000000000000000000000000000000000000000007d800000000000000000000000000000000000000000000000000000000000007da00000000000000000000000000000000000000000000000000000000000007dc00000000000000000000000000000000000000000000000000000000000007de00000000000000000000000000000000000000000000000000000000000007e000000000000000000000000000000000000000000000000000000000000007e200000000000000000000000000000000000000000000000000000000000007e400000000000000000000000000000000000000000000000000000000000007e600000000000000000000000000000000000000000000000000000000000007e800000000000000000000000000000000000000000000000000000000000007ea00000000000000000000000000000000000000000000000000000000000007ec00000000000000000000000000000000000000000000000000000000000007ee00000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000007f200000000000000000000000000000000000000000000000000000000000007f400000000000000000000000000000000000000000000000000000000000007f600000000000000000000000000000000000000000000000000000000000007f800000000000000000000000000000000000000000000000000000000000007fa00000000000000000000000000000000000000000000000000000000000007fc00000000000000000000000000000000000000000000000000000000000007fe00000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000802000000000000000000000000000000000000000000000000000000000000080400000000000000000000000000000000000000000000000000000000000008060000000000000000000000000000000000000000000000000000000000000808000000000000000000000000000000000000000000000000000000000000080a000000000000000000000000000000000000000000000000000000000000080c000000000000000000000000000000000000000000000000000000000000080e00000000000000000000000000000000000000000000000000000000000008100000000000000000000000000000000000000000000000000000000000000812000000000000000000000000000000000000000000000000000000000000081400000000000000000000000000000000000000000000000000000000000008160000000000000000000000000000000000000000000000000000000000000818000000000000000000000000000000000000000000000000000000000000081a000000000000000000000000000000000000000000000000000000000000081c000000000000000000000000000000000000000000000000000000000000081e00000000000000000000000000000000000000000000000000000000000008200000000000000000000000000000000000000000000000000000000000000822000000000000000000000000000000000000000000000000000000000000082400000000000000000000000000000000000000000000000000000000000008260000000000000000000000000000000000000000000000000000000000000828000000000000000000000000000000000000000000000000000000000000082a000000000000000000000000000000000000000000000000000000000000082c000000000000000000000000000000000000000000000000000000000000082e00000000000000000000000000000000000000000000000000000000000008300000000000000000000000000000000000000000000000000000000000000832000000000000000000000000000000000000000000000000000000000000083400000000000000000000000000000000000000000000000000000000000008360000000000000000000000000000000000000000000000000000000000000838000000000000000000000000000000000000000000000000000000000000083a000000000000000000000000000000000000000000000000000000000000083c000000000000000000000000000000000000000000000000000000000000083e00000000000000000000000000000000000000000000000000000000000008400000000000000000000000000000000000000000000000000000000000000842000000000000000000000000000000000000000000000000000000000000084400000000000000000000000000000000000000000000000000000000000008460000000000000000000000000000000000000000000000000000000000000848000000000000000000000000000000000000000000000000000000000000084a000000000000000000000000000000000000000000000000000000000000084c000000000000000000000000000000000000000000000000000000000000084e00000000000000000000000000000000000000000000000000000000000008500000000000000000000000000000000000000000000000000000000000000852000000000000000000000000000000000000000000000000000000000000085400000000000000000000000000000000000000000000000000000000000008560000000000000000000000000000000000000000000000000000000000000858000000000000000000000000000000000000000000000000000000000000085a000000000000000000000000000000000000000000000000000000000000085c000000000000000000000000000000000000000000000000000000000000085e00000000000000000000000000000000000000000000000000000000000008600000000000000000000000000000000000000000000000000000000000000862000000000000000000000000000000000000000000000000000000000000086400000000000000000000000000000000000000000000000000000000000008660000000000000000000000000000000000000000000000000000000000000868000000000000000000000000000000000000000000000000000000000000086a000000000000000000000000000000000000000000000000000000000000086c000000000000000000000000000000000000000000000000000000000000086e00000000000000000000000000000000000000000000000000000000000008700000000000000000000000000000000000000000000000000000000000000872000000000000000000000000000000000000000000000000000000000000087400000000000000000000000000000000000000000000000000000000000008760000000000000000000000000000000000000000000000000000000000000878000000000000000000000000000000000000000000000000000000000000087a000000000000000000000000000000000000000000000000000000000000087c000000000000000000000000000000000000000000000000000000000000087e00000000000000000000000000000000000000000000000000000000000008800000000000000000000000000000000000000000000000000000000000000882000000000000000000000000000000000000000000000000000000000000088400000000000000000000000000000000000000000000000000000000000008860000000000000000000000000000000000000000000000000000000000000888000000000000000000000000000000000000000000000000000000000000088a000000000000000000000000000000000000000000000000000000000000088c000000000000000000000000000000000000000000000000000000000000088e00000000000000000000000000000000000000000000000000000000000008900000000000000000000000000000000000000000000000000000000000000892000000000000000000000000000000000000000000000000000000000000089400000000000000000000000000000000000000000000000000000000000008960000000000000000000000000000000000000000000000000000000000000898000000000000000000000000000000000000000000000000000000000000089a000000000000000000000000000000000000000000000000000000000000089c000000000000000000000000000000000000000000000000000000000000089e00000000000000000000000000000000000000000000000000000000000008a000000000000000000000000000000000000000000000000000000000000008a200000000000000000000000000000000000000000000000000000000000008a400000000000000000000000000000000000000000000000000000000000008a600000000000000000000000000000000000000000000000000000000000008a800000000000000000000000000000000000000000000000000000000000008aa00000000000000000000000000000000000000000000000000000000000008ac00000000000000000000000000000000000000000000000000000000000008ae00000000000000000000000000000000000000000000000000000000000008b000000000000000000000000000000000000000000000000000000000000008b200000000000000000000000000000000000000000000000000000000000008b400000000000000000000000000000000000000000000000000000000000008b600000000000000000000000000000000000000000000000000000000000008b800000000000000000000000000000000000000000000000000000000000008ba00000000000000000000000000000000000000000000000000000000000008bc00000000000000000000000000000000000000000000000000000000000008be00000000000000000000000000000000000000000000000000000000000008c000000000000000000000000000000000000000000000000000000000000008c200000000000000000000000000000000000000000000000000000000000008c400000000000000000000000000000000000000000000000000000000000008c600000000000000000000000000000000000000000000000000000000000008c800000000000000000000000000000000000000000000000000000000000008ca00000000000000000000000000000000000000000000000000000000000008cc00000000000000000000000000000000000000000000000000000000000008ce00000000000000000000000000000000000000000000000000000000000008d000000000000000000000000000000000000000000000000000000000000008d200000000000000000000000000000000000000000000000000000000000008d400000000000000000000000000000000000000000000000000000000000008d600000000000000000000000000000000000000000000000000000000000008d800000000000000000000000000000000000000000000000000000000000008da00000000000000000000000000000000000000000000000000000000000008dc00000000000000000000000000000000000000000000000000000000000008de00000000000000000000000000000000000000000000000000000000000008e000000000000000000000000000000000000000000000000000000000000008e200000000000000000000000000000000000000000000000000000000000008e400000000000000000000000000000000000000000000000000000000000008e600000000000000000000000000000000000000000000000000000000000008e800000000000000000000000000000000000000000000000000000000000008ea00000000000000000000000000000000000000000000000000000000000008ec00000000000000000000000000000000000000000000000000000000000008ee00000000000000000000000000000000000000000000000000000000000008f000000000000000000000000000000000000000000000000000000000000008f200000000000000000000000000000000000000000000000000000000000008f400000000000000000000000000000000000000000000000000000000000008f600000000000000000000000000000000000000000000000000000000000008f800000000000000000000000000000000000000000000000000000000000008fa00000000000000000000000000000000000000000000000000000000000008fc00000000000000000000000000000000000000000000000000000000000008fe00000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000902000000000000000000000000000000000000000000000000000000000000090400000000000000000000000000000000000000000000000000000000000009060000000000000000000000000000000000000000000000000000000000000908000000000000000000000000000000000000000000000000000000000000090a000000000000000000000000000000000000000000000000000000000000090c000000000000000000000000000000000000000000000000000000000000090e00000000000000000000000000000000000000000000000000000000000009100000000000000000000000000000000000000000000000000000000000000912000000000000000000000000000000000000000000000000000000000000091400000000000000000000000000000000000000000000000000000000000009160000000000000000000000000000000000000000000000000000000000000918000000000000000000000000000000000000000000000000000000000000091a000000000000000000000000000000000000000000000000000000000000091c000000000000000000000000000000000000000000000000000000000000091e00000000000000000000000000000000000000000000000000000000000009200000000000000000000000000000000000000000000000000000000000000922000000000000000000000000000000000000000000000000000000000000092400000000000000000000000000000000000000000000000000000000000009260000000000000000000000000000000000000000000000000000000000000928000000000000000000000000000000000000000000000000000000000000092a000000000000000000000000000000000000000000000000000000000000092c000000000000000000000000000000000000000000000000000000000000092e00000000000000000000000000000000000000000000000000000000000009300000000000000000000000000000000000000000000000000000000000000932000000000000000000000000000000000000000000000000000000000000093400000000000000000000000000000000000000000000000000000000000009360000000000000000000000000000000000000000000000000000000000000938000000000000000000000000000000000000000000000000000000000000093a000000000000000000000000000000000000000000000000000000000000093c000000000000000000000000000000000000000000000000000000000000093e00000000000000000000000000000000000000000000000000000000000009400000000000000000000000000000000000000000000000000000000000000942000000000000000000000000000000000000000000000000000000000000094400000000000000000000000000000000000000000000000000000000000009460000000000000000000000000000000000000000000000000000000000000948000000000000000000000000000000000000000000000000000000000000094a000000000000000000000000000000000000000000000000000000000000094c000000000000000000000000000000000000000000000000000000000000094e00000000000000000000000000000000000000000000000000000000000009500000000000000000000000000000000000000000000000000000000000000952000000000000000000000000000000000000000000000000000000000000095400000000000000000000000000000000000000000000000000000000000009560000000000000000000000000000000000000000000000000000000000000958000000000000000000000000000000000000000000000000000000000000095a000000000000000000000000000000000000000000000000000000000000095c000000000000000000000000000000000000000000000000000000000000095e00000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000962000000000000000000000000000000000000000000000000000000000000096400000000000000000000000000000000000000000000000000000000000009660000000000000000000000000000000000000000000000000000000000000968000000000000000000000000000000000000000000000000000000000000096a000000000000000000000000000000000000000000000000000000000000096c000000000000000000000000000000000000000000000000000000000000096e00000000000000000000000000000000000000000000000000000000000009700000000000000000000000000000000000000000000000000000000000000972000000000000000000000000000000000000000000000000000000000000097400000000000000000000000000000000000000000000000000000000000009760000000000000000000000000000000000000000000000000000000000000978000000000000000000000000000000000000000000000000000000000000097a000000000000000000000000000000000000000000000000000000000000097c000000000000000000000000000000000000000000000000000000000000097e00000000000000000000000000000000000000000000000000000000000009800000000000000000000000000000000000000000000000000000000000000982000000000000000000000000000000000000000000000000000000000000098400000000000000000000000000000000000000000000000000000000000009860000000000000000000000000000000000000000000000000000000000000988000000000000000000000000000000000000000000000000000000000000098a000000000000000000000000000000000000000000000000000000000000098c000000000000000000000000000000000000000000000000000000000000098e00000000000000000000000000000000000000000000000000000000000009900000000000000000000000000000000000000000000000000000000000000992000000000000000000000000000000000000000000000000000000000000099400000000000000000000000000000000000000000000000000000000000009960000000000000000000000000000000000000000000000000000000000000998000000000000000000000000000000000000000000000000000000000000099a000000000000000000000000000000000000000000000000000000000000099c000000000000000000000000000000000000000000000000000000000000099e00000000000000000000000000000000000000000000000000000000000009a000000000000000000000000000000000000000000000000000000000000009a200000000000000000000000000000000000000000000000000000000000009a400000000000000000000000000000000000000000000000000000000000009a600000000000000000000000000000000000000000000000000000000000009a800000000000000000000000000000000000000000000000000000000000009aa00000000000000000000000000000000000000000000000000000000000009ac00000000000000000000000000000000000000000000000000000000000009ae00000000000000000000000000000000000000000000000000000000000009b000000000000000000000000000000000000000000000000000000000000009b200000000000000000000000000000000000000000000000000000000000009b400000000000000000000000000000000000000000000000000000000000009b600000000000000000000000000000000000000000000000000000000000009b800000000000000000000000000000000000000000000000000000000000009ba00000000000000000000000000000000000000000000000000000000000009bc00000000000000000000000000000000000000000000000000000000000009be00000000000000000000000000000000000000000000000000000000000009c000000000000000000000000000000000000000000000000000000000000009c200000000000000000000000000000000000000000000000000000000000009c400000000000000000000000000000000000000000000000000000000000009c600000000000000000000000000000000000000000000000000000000000009c800000000000000000000000000000000000000000000000000000000000009ca00000000000000000000000000000000000000000000000000000000000009cc00000000000000000000000000000000000000000000000000000000000009ce00000000000000000000000000000000000000000000000000000000000009d000000000000000000000000000000000000000000000000000000000000009d200000000000000000000000000000000000000000000000000000000000009d400000000000000000000000000000000000000000000000000000000000009d600000000000000000000000000000000000000000000000000000000000009d800000000000000000000000000000000000000000000000000000000000009da00000000000000000000000000000000000000000000000000000000000009dc00000000000000000000000000000000000000000000000000000000000009de00000000000000000000000000000000000000000000000000000000000009e000000000000000000000000000000000000000000000000000000000000009e200000000000000000000000000000000000000000000000000000000000009e400000000000000000000000000000000000000000000000000000000000009e600000000000000000000000000000000000000000000000000000000000009e800000000000000000000000000000000000000000000000000000000000009ea00000000000000000000000000000000000000000000000000000000000009ec00000000000000000000000000000000000000000000000000000000000009ee00000000000000000000000000000000000000000000000000000000000009f000000000000000000000000000000000000000000000000000000000000009f200000000000000000000000000000000000000000000000000000000000009f400000000000000000000000000000000000000000000000000000000000009f600000000000000000000000000000000000000000000000000000000000009f800000000000000000000000000000000000000000000000000000000000009fa00000000000000000000000000000000000000000000000000000000000009fc00000000000000000000000000000000000000000000000000000000000009fe0000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000a020000000000000000000000000000000000000000000000000000000000000a040000000000000000000000000000000000000000000000000000000000000a060000000000000000000000000000000000000000000000000000000000000a080000000000000000000000000000000000000000000000000000000000000a0a0000000000000000000000000000000000000000000000000000000000000a0c0000000000000000000000000000000000000000000000000000000000000a0e0000000000000000000000000000000000000000000000000000000000000a100000000000000000000000000000000000000000000000000000000000000a120000000000000000000000000000000000000000000000000000000000000a140000000000000000000000000000000000000000000000000000000000000a160000000000000000000000000000000000000000000000000000000000000a180000000000000000000000000000000000000000000000000000000000000a1a0000000000000000000000000000000000000000000000000000000000000a1c0000000000000000000000000000000000000000000000000000000000000a1e0000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000a220000000000000000000000000000000000000000000000000000000000000a240000000000000000000000000000000000000000000000000000000000000a260000000000000000000000000000000000000000000000000000000000000a280000000000000000000000000000000000000000000000000000000000000a2a0000000000000000000000000000000000000000000000000000000000000a2c0000000000000000000000000000000000000000000000000000000000000a2e0000000000000000000000000000000000000000000000000000000000000a300000000000000000000000000000000000000000000000000000000000000a320000000000000000000000000000000000000000000000000000000000000a340000000000000000000000000000000000000000000000000000000000000a360000000000000000000000000000000000000000000000000000000000000a380000000000000000000000000000000000000000000000000000000000000a3a0000000000000000000000000000000000000000000000000000000000000a3c0000000000000000000000000000000000000000000000000000000000000a3e0000000000000000000000000000000000000000000000000000000000000a400000000000000000000000000000000000000000000000000000000000000a420000000000000000000000000000000000000000000000000000000000000a440000000000000000000000000000000000000000000000000000000000000a460000000000000000000000000000000000000000000000000000000000000a480000000000000000000000000000000000000000000000000000000000000a4a0000000000000000000000000000000000000000000000000000000000000a4c0000000000000000000000000000000000000000000000000000000000000a4e0000000000000000000000000000000000000000000000000000000000000a500000000000000000000000000000000000000000000000000000000000000a520000000000000000000000000000000000000000000000000000000000000a540000000000000000000000000000000000000000000000000000000000000a560000000000000000000000000000000000000000000000000000000000000a580000000000000000000000000000000000000000000000000000000000000a5a0000000000000000000000000000000000000000000000000000000000000a5c0000000000000000000000000000000000000000000000000000000000000a5e0000000000000000000000000000000000000000000000000000000000000a600000000000000000000000000000000000000000000000000000000000000a620000000000000000000000000000000000000000000000000000000000000a640000000000000000000000000000000000000000000000000000000000000a660000000000000000000000000000000000000000000000000000000000000a680000000000000000000000000000000000000000000000000000000000000a6a0000000000000000000000000000000000000000000000000000000000000a6c0000000000000000000000000000000000000000000000000000000000000a6e0000000000000000000000000000000000000000000000000000000000000a700000000000000000000000000000000000000000000000000000000000000a720000000000000000000000000000000000000000000000000000000000000a740000000000000000000000000000000000000000000000000000000000000a760000000000000000000000000000000000000000000000000000000000000a780000000000000000000000000000000000000000000000000000000000000a7a0000000000000000000000000000000000000000000000000000000000000a7c0000000000000000000000000000000000000000000000000000000000000a7e0000000000000000000000000000000000000000000000000000000000000a800000000000000000000000000000000000000000000000000000000000000a820000000000000000000000000000000000000000000000000000000000000a840000000000000000000000000000000000000000000000000000000000000a860000000000000000000000000000000000000000000000000000000000000a880000000000000000000000000000000000000000000000000000000000000a8a0000000000000000000000000000000000000000000000000000000000000a8c0000000000000000000000000000000000000000000000000000000000000a8e0000000000000000000000000000000000000000000000000000000000000a900000000000000000000000000000000000000000000000000000000000000a920000000000000000000000000000000000000000000000000000000000000a940000000000000000000000000000000000000000000000000000000000000a960000000000000000000000000000000000000000000000000000000000000a980000000000000000000000000000000000000000000000000000000000000a9a0000000000000000000000000000000000000000000000000000000000000a9c0000000000000000000000000000000000000000000000000000000000000a9e0000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000aa20000000000000000000000000000000000000000000000000000000000000aa40000000000000000000000000000000000000000000000000000000000000aa60000000000000000000000000000000000000000000000000000000000000aa80000000000000000000000000000000000000000000000000000000000000aaa0000000000000000000000000000000000000000000000000000000000000aac0000000000000000000000000000000000000000000000000000000000000aae0000000000000000000000000000000000000000000000000000000000000ab00000000000000000000000000000000000000000000000000000000000000ab20000000000000000000000000000000000000000000000000000000000000ab40000000000000000000000000000000000000000000000000000000000000ab60000000000000000000000000000000000000000000000000000000000000ab80000000000000000000000000000000000000000000000000000000000000aba0000000000000000000000000000000000000000000000000000000000000abc0000000000000000000000000000000000000000000000000000000000000abe0000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000ac20000000000000000000000000000000000000000000000000000000000000ac40000000000000000000000000000000000000000000000000000000000000ac60000000000000000000000000000000000000000000000000000000000000ac80000000000000000000000000000000000000000000000000000000000000aca0000000000000000000000000000000000000000000000000000000000000acc0000000000000000000000000000000000000000000000000000000000000ace0000000000000000000000000000000000000000000000000000000000000ad00000000000000000000000000000000000000000000000000000000000000ad20000000000000000000000000000000000000000000000000000000000000ad40000000000000000000000000000000000000000000000000000000000000ad60000000000000000000000000000000000000000000000000000000000000ad80000000000000000000000000000000000000000000000000000000000000ada0000000000000000000000000000000000000000000000000000000000000adc0000000000000000000000000000000000000000000000000000000000000ade0000000000000000000000000000000000000000000000000000000000000ae00000000000000000000000000000000000000000000000000000000000000ae20000000000000000000000000000000000000000000000000000000000000ae40000000000000000000000000000000000000000000000000000000000000ae60000000000000000000000000000000000000000000000000000000000000ae80000000000000000000000000000000000000000000000000000000000000aea0000000000000000000000000000000000000000000000000000000000000aec0000000000000000000000000000000000000000000000000000000000000aee0000000000000000000000000000000000000000000000000000000000000af00000000000000000000000000000000000000000000000000000000000000af20000000000000000000000000000000000000000000000000000000000000af40000000000000000000000000000000000000000000000000000000000000af60000000000000000000000000000000000000000000000000000000000000af80000000000000000000000000000000000000000000000000000000000000afa0000000000000000000000000000000000000000000000000000000000000afc0000000000000000000000000000000000000000000000000000000000000afe0000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000000000000b020000000000000000000000000000000000000000000000000000000000000b040000000000000000000000000000000000000000000000000000000000000b060000000000000000000000000000000000000000000000000000000000000b080000000000000000000000000000000000000000000000000000000000000b0a0000000000000000000000000000000000000000000000000000000000000b0c0000000000000000000000000000000000000000000000000000000000000b0e0000000000000000000000000000000000000000000000000000000000000b100000000000000000000000000000000000000000000000000000000000000b120000000000000000000000000000000000000000000000000000000000000b140000000000000000000000000000000000000000000000000000000000000b160000000000000000000000000000000000000000000000000000000000000b180000000000000000000000000000000000000000000000000000000000000b1a0000000000000000000000000000000000000000000000000000000000000b1c0000000000000000000000000000000000000000000000000000000000000b1e0000000000000000000000000000000000000000000000000000000000000b200000000000000000000000000000000000000000000000000000000000000b220000000000000000000000000000000000000000000000000000000000000b240000000000000000000000000000000000000000000000000000000000000b260000000000000000000000000000000000000000000000000000000000000b280000000000000000000000000000000000000000000000000000000000000b2a0000000000000000000000000000000000000000000000000000000000000b2c0000000000000000000000000000000000000000000000000000000000000b2e0000000000000000000000000000000000000000000000000000000000000b300000000000000000000000000000000000000000000000000000000000000b320000000000000000000000000000000000000000000000000000000000000b340000000000000000000000000000000000000000000000000000000000000b360000000000000000000000000000000000000000000000000000000000000b380000000000000000000000000000000000000000000000000000000000000b3a0000000000000000000000000000000000000000000000000000000000000b3c0000000000000000000000000000000000000000000000000000000000000b3e0000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000b420000000000000000000000000000000000000000000000000000000000000b440000000000000000000000000000000000000000000000000000000000000b460000000000000000000000000000000000000000000000000000000000000b480000000000000000000000000000000000000000000000000000000000000b4a0000000000000000000000000000000000000000000000000000000000000b4c0000000000000000000000000000000000000000000000000000000000000b4e0000000000000000000000000000000000000000000000000000000000000b500000000000000000000000000000000000000000000000000000000000000b520000000000000000000000000000000000000000000000000000000000000b540000000000000000000000000000000000000000000000000000000000000b560000000000000000000000000000000000000000000000000000000000000b580000000000000000000000000000000000000000000000000000000000000b5a0000000000000000000000000000000000000000000000000000000000000b5c0000000000000000000000000000000000000000000000000000000000000b5e0000000000000000000000000000000000000000000000000000000000000b600000000000000000000000000000000000000000000000000000000000000b620000000000000000000000000000000000000000000000000000000000000b640000000000000000000000000000000000000000000000000000000000000b660000000000000000000000000000000000000000000000000000000000000b680000000000000000000000000000000000000000000000000000000000000b6a0000000000000000000000000000000000000000000000000000000000000b6c0000000000000000000000000000000000000000000000000000000000000b6e0000000000000000000000000000000000000000000000000000000000000b700000000000000000000000000000000000000000000000000000000000000b720000000000000000000000000000000000000000000000000000000000000b740000000000000000000000000000000000000000000000000000000000000b760000000000000000000000000000000000000000000000000000000000000b780000000000000000000000000000000000000000000000000000000000000b7a0000000000000000000000000000000000000000000000000000000000000b7c0000000000000000000000000000000000000000000000000000000000000b7e0000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000b820000000000000000000000000000000000000000000000000000000000000b840000000000000000000000000000000000000000000000000000000000000b860000000000000000000000000000000000000000000000000000000000000b880000000000000000000000000000000000000000000000000000000000000b8a0000000000000000000000000000000000000000000000000000000000000b8c0000000000000000000000000000000000000000000000000000000000000b8e0000000000000000000000000000000000000000000000000000000000000b900000000000000000000000000000000000000000000000000000000000000b920000000000000000000000000000000000000000000000000000000000000b940000000000000000000000000000000000000000000000000000000000000b960000000000000000000000000000000000000000000000000000000000000b980000000000000000000000000000000000000000000000000000000000000b9a0000000000000000000000000000000000000000000000000000000000000b9c0000000000000000000000000000000000000000000000000000000000000b9e0000000000000000000000000000000000000000000000000000000000000ba00000000000000000000000000000000000000000000000000000000000000ba20000000000000000000000000000000000000000000000000000000000000ba40000000000000000000000000000000000000000000000000000000000000ba60000000000000000000000000000000000000000000000000000000000000ba80000000000000000000000000000000000000000000000000000000000000baa0000000000000000000000000000000000000000000000000000000000000bac0000000000000000000000000000000000000000000000000000000000000bae0000000000000000000000000000000000000000000000000000000000000bb00000000000000000000000000000000000000000000000000000000000000bb20000000000000000000000000000000000000000000000000000000000000bb40000000000000000000000000000000000000000000000000000000000000bb60000000000000000000000000000000000000000000000000000000000000bb80000000000000000000000000000000000000000000000000000000000000bba0000000000000000000000000000000000000000000000000000000000000bbc0000000000000000000000000000000000000000000000000000000000000bbe0000000000000000000000000000000000000000000000000000000000000bc00000000000000000000000000000000000000000000000000000000000000bc20000000000000000000000000000000000000000000000000000000000000bc40000000000000000000000000000000000000000000000000000000000000bc60000000000000000000000000000000000000000000000000000000000000bc80000000000000000000000000000000000000000000000000000000000000bca0000000000000000000000000000000000000000000000000000000000000bcc0000000000000000000000000000000000000000000000000000000000000bce0000000000000000000000000000000000000000000000000000000000000bd00000000000000000000000000000000000000000000000000000000000000bd20000000000000000000000000000000000000000000000000000000000000bd40000000000000000000000000000000000000000000000000000000000000bd60000000000000000000000000000000000000000000000000000000000000bd80000000000000000000000000000000000000000000000000000000000000bda0000000000000000000000000000000000000000000000000000000000000bdc0000000000000000000000000000000000000000000000000000000000000bde0000000000000000000000000000000000000000000000000000000000000be00000000000000000000000000000000000000000000000000000000000000be20000000000000000000000000000000000000000000000000000000000000be40000000000000000000000000000000000000000000000000000000000000be60000000000000000000000000000000000000000000000000000000000000be80000000000000000000000000000000000000000000000000000000000000bea0000000000000000000000000000000000000000000000000000000000000bec0000000000000000000000000000000000000000000000000000000000000bee0000000000000000000000000000000000000000000000000000000000000bf00000000000000000000000000000000000000000000000000000000000000bf20000000000000000000000000000000000000000000000000000000000000bf40000000000000000000000000000000000000000000000000000000000000bf60000000000000000000000000000000000000000000000000000000000000bf80000000000000000000000000000000000000000000000000000000000000bfa0000000000000000000000000000000000000000000000000000000000000bfc0000000000000000000000000000000000000000000000000000000000000bfe0000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c020000000000000000000000000000000000000000000000000000000000000c040000000000000000000000000000000000000000000000000000000000000c060000000000000000000000000000000000000000000000000000000000000c080000000000000000000000000000000000000000000000000000000000000c0a0000000000000000000000000000000000000000000000000000000000000c0c0000000000000000000000000000000000000000000000000000000000000c0e0000000000000000000000000000000000000000000000000000000000000c100000000000000000000000000000000000000000000000000000000000000c120000000000000000000000000000000000000000000000000000000000000c140000000000000000000000000000000000000000000000000000000000000c160000000000000000000000000000000000000000000000000000000000000c180000000000000000000000000000000000000000000000000000000000000c1a0000000000000000000000000000000000000000000000000000000000000c1c0000000000000000000000000000000000000000000000000000000000000c1e0000000000000000000000000000000000000000000000000000000000000c200000000000000000000000000000000000000000000000000000000000000c220000000000000000000000000000000000000000000000000000000000000c240000000000000000000000000000000000000000000000000000000000000c260000000000000000000000000000000000000000000000000000000000000c280000000000000000000000000000000000000000000000000000000000000c2a0000000000000000000000000000000000000000000000000000000000000c2c0000000000000000000000000000000000000000000000000000000000000c2e0000000000000000000000000000000000000000000000000000000000000c300000000000000000000000000000000000000000000000000000000000000c320000000000000000000000000000000000000000000000000000000000000c340000000000000000000000000000000000000000000000000000000000000c360000000000000000000000000000000000000000000000000000000000000c380000000000000000000000000000000000000000000000000000000000000c3a0000000000000000000000000000000000000000000000000000000000000c3c0000000000000000000000000000000000000000000000000000000000000c3e0000000000000000000000000000000000000000000000000000000000000c400000000000000000000000000000000000000000000000000000000000000c420000000000000000000000000000000000000000000000000000000000000c440000000000000000000000000000000000000000000000000000000000000c460000000000000000000000000000000000000000000000000000000000000c480000000000000000000000000000000000000000000000000000000000000c4a0000000000000000000000000000000000000000000000000000000000000c4c0000000000000000000000000000000000000000000000000000000000000c4e0000000000000000000000000000000000000000000000000000000000000c500000000000000000000000000000000000000000000000000000000000000c520000000000000000000000000000000000000000000000000000000000000c540000000000000000000000000000000000000000000000000000000000000c560000000000000000000000000000000000000000000000000000000000000c580000000000000000000000000000000000000000000000000000000000000c5a0000000000000000000000000000000000000000000000000000000000000c5c0000000000000000000000000000000000000000000000000000000000000c5e0000000000000000000000000000000000000000000000000000000000000c600000000000000000000000000000000000000000000000000000000000000c620000000000000000000000000000000000000000000000000000000000000c640000000000000000000000000000000000000000000000000000000000000c660000000000000000000000000000000000000000000000000000000000000c680000000000000000000000000000000000000000000000000000000000000c6a0000000000000000000000000000000000000000000000000000000000000c6c0000000000000000000000000000000000000000000000000000000000000c6e0000000000000000000000000000000000000000000000000000000000000c700000000000000000000000000000000000000000000000000000000000000c720000000000000000000000000000000000000000000000000000000000000c740000000000000000000000000000000000000000000000000000000000000c760000000000000000000000000000000000000000000000000000000000000c780000000000000000000000000000000000000000000000000000000000000c7a0000000000000000000000000000000000000000000000000000000000000c7c0000000000000000000000000000000000000000000000000000000000000c7e0000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000c820000000000000000000000000000000000000000000000000000000000000c840000000000000000000000000000000000000000000000000000000000000c860000000000000000000000000000000000000000000000000000000000000c880000000000000000000000000000000000000000000000000000000000000c8a0000000000000000000000000000000000000000000000000000000000000c8c0000000000000000000000000000000000000000000000000000000000000c8e0000000000000000000000000000000000000000000000000000000000000c900000000000000000000000000000000000000000000000000000000000000c920000000000000000000000000000000000000000000000000000000000000c940000000000000000000000000000000000000000000000000000000000000c960000000000000000000000000000000000000000000000000000000000000c980000000000000000000000000000000000000000000000000000000000000c9a0000000000000000000000000000000000000000000000000000000000000c9c0000000000000000000000000000000000000000000000000000000000000c9e0000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000ca20000000000000000000000000000000000000000000000000000000000000ca40000000000000000000000000000000000000000000000000000000000000ca60000000000000000000000000000000000000000000000000000000000000ca80000000000000000000000000000000000000000000000000000000000000caa0000000000000000000000000000000000000000000000000000000000000cac0000000000000000000000000000000000000000000000000000000000000cae0000000000000000000000000000000000000000000000000000000000000cb00000000000000000000000000000000000000000000000000000000000000cb20000000000000000000000000000000000000000000000000000000000000cb40000000000000000000000000000000000000000000000000000000000000cb60000000000000000000000000000000000000000000000000000000000000cb80000000000000000000000000000000000000000000000000000000000000cba0000000000000000000000000000000000000000000000000000000000000cbc0000000000000000000000000000000000000000000000000000000000000cbe0000000000000000000000000000000000000000000000000000000000000cc00000000000000000000000000000000000000000000000000000000000000cc20000000000000000000000000000000000000000000000000000000000000cc40000000000000000000000000000000000000000000000000000000000000cc60000000000000000000000000000000000000000000000000000000000000cc80000000000000000000000000000000000000000000000000000000000000cca0000000000000000000000000000000000000000000000000000000000000ccc0000000000000000000000000000000000000000000000000000000000000cce0000000000000000000000000000000000000000000000000000000000000cd00000000000000000000000000000000000000000000000000000000000000cd20000000000000000000000000000000000000000000000000000000000000cd40000000000000000000000000000000000000000000000000000000000000cd60000000000000000000000000000000000000000000000000000000000000cd80000000000000000000000000000000000000000000000000000000000000cda0000000000000000000000000000000000000000000000000000000000000cdc0000000000000000000000000000000000000000000000000000000000000cde0000000000000000000000000000000000000000000000000000000000000ce00000000000000000000000000000000000000000000000000000000000000ce20000000000000000000000000000000000000000000000000000000000000ce40000000000000000000000000000000000000000000000000000000000000ce60000000000000000000000000000000000000000000000000000000000000ce80000000000000000000000000000000000000000000000000000000000000cea0000000000000000000000000000000000000000000000000000000000000cec0000000000000000000000000000000000000000000000000000000000000cee0000000000000000000000000000000000000000000000000000000000000cf00000000000000000000000000000000000000000000000000000000000000cf20000000000000000000000000000000000000000000000000000000000000cf40000000000000000000000000000000000000000000000000000000000000cf60000000000000000000000000000000000000000000000000000000000000cf80000000000000000000000000000000000000000000000000000000000000cfa0000000000000000000000000000000000000000000000000000000000000cfc0000000000000000000000000000000000000000000000000000000000000cfe0000000000000000000000000000000000000000000000000000000000000d000000000000000000000000000000000000000000000000000000000000000d020000000000000000000000000000000000000000000000000000000000000d040000000000000000000000000000000000000000000000000000000000000d060000000000000000000000000000000000000000000000000000000000000d080000000000000000000000000000000000000000000000000000000000000d0a0000000000000000000000000000000000000000000000000000000000000d0c0000000000000000000000000000000000000000000000000000000000000d0e0000000000000000000000000000000000000000000000000000000000000d100000000000000000000000000000000000000000000000000000000000000d120000000000000000000000000000000000000000000000000000000000000d140000000000000000000000000000000000000000000000000000000000000d160000000000000000000000000000000000000000000000000000000000000d180000000000000000000000000000000000000000000000000000000000000d1a0000000000000000000000000000000000000000000000000000000000000d1c0000000000000000000000000000000000000000000000000000000000000d1e0000000000000000000000000000000000000000000000000000000000000d200000000000000000000000000000000000000000000000000000000000000d220000000000000000000000000000000000000000000000000000000000000d240000000000000000000000000000000000000000000000000000000000000d260000000000000000000000000000000000000000000000000000000000000d280000000000000000000000000000000000000000000000000000000000000d2a0000000000000000000000000000000000000000000000000000000000000d2c0000000000000000000000000000000000000000000000000000000000000d2e0000000000000000000000000000000000000000000000000000000000000d300000000000000000000000000000000000000000000000000000000000000d320000000000000000000000000000000000000000000000000000000000000d340000000000000000000000000000000000000000000000000000000000000d360000000000000000000000000000000000000000000000000000000000000d380000000000000000000000000000000000000000000000000000000000000d3a0000000000000000000000000000000000000000000000000000000000000d3c0000000000000000000000000000000000000000000000000000000000000d3e0000000000000000000000000000000000000000000000000000000000000d400000000000000000000000000000000000000000000000000000000000000d420000000000000000000000000000000000000000000000000000000000000d440000000000000000000000000000000000000000000000000000000000000d460000000000000000000000000000000000000000000000000000000000000d480000000000000000000000000000000000000000000000000000000000000d4a0000000000000000000000000000000000000000000000000000000000000d4c0000000000000000000000000000000000000000000000000000000000000d4e0000000000000000000000000000000000000000000000000000000000000d500000000000000000000000000000000000000000000000000000000000000d520000000000000000000000000000000000000000000000000000000000000d540000000000000000000000000000000000000000000000000000000000000d560000000000000000000000000000000000000000000000000000000000000d580000000000000000000000000000000000000000000000000000000000000d5a0000000000000000000000000000000000000000000000000000000000000d5c0000000000000000000000000000000000000000000000000000000000000d5e0000000000000000000000000000000000000000000000000000000000000d600000000000000000000000000000000000000000000000000000000000000d620000000000000000000000000000000000000000000000000000000000000d640000000000000000000000000000000000000000000000000000000000000d660000000000000000000000000000000000000000000000000000000000000d680000000000000000000000000000000000000000000000000000000000000d6a0000000000000000000000000000000000000000000000000000000000000d6c0000000000000000000000000000000000000000000000000000000000000d6e0000000000000000000000000000000000000000000000000000000000000d700000000000000000000000000000000000000000000000000000000000000d720000000000000000000000000000000000000000000000000000000000000d740000000000000000000000000000000000000000000000000000000000000d760000000000000000000000000000000000000000000000000000000000000d780000000000000000000000000000000000000000000000000000000000000d7a0000000000000000000000000000000000000000000000000000000000000d7c0000000000000000000000000000000000000000000000000000000000000d7e0000000000000000000000000000000000000000000000000000000000000d800000000000000000000000000000000000000000000000000000000000000d820000000000000000000000000000000000000000000000000000000000000d840000000000000000000000000000000000000000000000000000000000000d860000000000000000000000000000000000000000000000000000000000000d880000000000000000000000000000000000000000000000000000000000000d8a0000000000000000000000000000000000000000000000000000000000000d8c0000000000000000000000000000000000000000000000000000000000000d8e0000000000000000000000000000000000000000000000000000000000000d900000000000000000000000000000000000000000000000000000000000000d920000000000000000000000000000000000000000000000000000000000000d940000000000000000000000000000000000000000000000000000000000000d960000000000000000000000000000000000000000000000000000000000000d980000000000000000000000000000000000000000000000000000000000000d9a0000000000000000000000000000000000000000000000000000000000000d9c0000000000000000000000000000000000000000000000000000000000000d9e0000000000000000000000000000000000000000000000000000000000000da00000000000000000000000000000000000000000000000000000000000000da20000000000000000000000000000000000000000000000000000000000000da40000000000000000000000000000000000000000000000000000000000000da60000000000000000000000000000000000000000000000000000000000000da80000000000000000000000000000000000000000000000000000000000000daa0000000000000000000000000000000000000000000000000000000000000dac0000000000000000000000000000000000000000000000000000000000000dae0000000000000000000000000000000000000000000000000000000000000db00000000000000000000000000000000000000000000000000000000000000db20000000000000000000000000000000000000000000000000000000000000db40000000000000000000000000000000000000000000000000000000000000db60000000000000000000000000000000000000000000000000000000000000db80000000000000000000000000000000000000000000000000000000000000dba0000000000000000000000000000000000000000000000000000000000000dbc0000000000000000000000000000000000000000000000000000000000000dbe0000000000000000000000000000000000000000000000000000000000000dc00000000000000000000000000000000000000000000000000000000000000dc20000000000000000000000000000000000000000000000000000000000000dc40000000000000000000000000000000000000000000000000000000000000dc60000000000000000000000000000000000000000000000000000000000000dc80000000000000000000000000000000000000000000000000000000000000dca0000000000000000000000000000000000000000000000000000000000000dcc0000000000000000000000000000000000000000000000000000000000000dce0000000000000000000000000000000000000000000000000000000000000dd00000000000000000000000000000000000000000000000000000000000000dd20000000000000000000000000000000000000000000000000000000000000dd40000000000000000000000000000000000000000000000000000000000000dd60000000000000000000000000000000000000000000000000000000000000dd80000000000000000000000000000000000000000000000000000000000000dda0000000000000000000000000000000000000000000000000000000000000ddc0000000000000000000000000000000000000000000000000000000000000dde0000000000000000000000000000000000000000000000000000000000000de00000000000000000000000000000000000000000000000000000000000000de20000000000000000000000000000000000000000000000000000000000000de40000000000000000000000000000000000000000000000000000000000000de60000000000000000000000000000000000000000000000000000000000000de80000000000000000000000000000000000000000000000000000000000000dea0000000000000000000000000000000000000000000000000000000000000dec0000000000000000000000000000000000000000000000000000000000000dee0000000000000000000000000000000000000000000000000000000000000df00000000000000000000000000000000000000000000000000000000000000df20000000000000000000000000000000000000000000000000000000000000df40000000000000000000000000000000000000000000000000000000000000df60000000000000000000000000000000000000000000000000000000000000df80000000000000000000000000000000000000000000000000000000000000dfa0000000000000000000000000000000000000000000000000000000000000dfc0000000000000000000000000000000000000000000000000000000000000dfe0000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000e020000000000000000000000000000000000000000000000000000000000000e040000000000000000000000000000000000000000000000000000000000000e060000000000000000000000000000000000000000000000000000000000000e080000000000000000000000000000000000000000000000000000000000000e0a0000000000000000000000000000000000000000000000000000000000000e0c0000000000000000000000000000000000000000000000000000000000000e0e0000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000000e120000000000000000000000000000000000000000000000000000000000000e140000000000000000000000000000000000000000000000000000000000000e160000000000000000000000000000000000000000000000000000000000000e180000000000000000000000000000000000000000000000000000000000000e1a0000000000000000000000000000000000000000000000000000000000000e1c0000000000000000000000000000000000000000000000000000000000000e1e0000000000000000000000000000000000000000000000000000000000000e200000000000000000000000000000000000000000000000000000000000000e220000000000000000000000000000000000000000000000000000000000000e240000000000000000000000000000000000000000000000000000000000000e260000000000000000000000000000000000000000000000000000000000000e280000000000000000000000000000000000000000000000000000000000000e2a0000000000000000000000000000000000000000000000000000000000000e2c0000000000000000000000000000000000000000000000000000000000000e2e0000000000000000000000000000000000000000000000000000000000000e300000000000000000000000000000000000000000000000000000000000000e320000000000000000000000000000000000000000000000000000000000000e340000000000000000000000000000000000000000000000000000000000000e360000000000000000000000000000000000000000000000000000000000000e380000000000000000000000000000000000000000000000000000000000000e3a0000000000000000000000000000000000000000000000000000000000000e3c0000000000000000000000000000000000000000000000000000000000000e3e0000000000000000000000000000000000000000000000000000000000000e400000000000000000000000000000000000000000000000000000000000000e420000000000000000000000000000000000000000000000000000000000000e440000000000000000000000000000000000000000000000000000000000000e460000000000000000000000000000000000000000000000000000000000000e480000000000000000000000000000000000000000000000000000000000000e4a0000000000000000000000000000000000000000000000000000000000000e4c0000000000000000000000000000000000000000000000000000000000000e4e0000000000000000000000000000000000000000000000000000000000000e500000000000000000000000000000000000000000000000000000000000000e520000000000000000000000000000000000000000000000000000000000000e540000000000000000000000000000000000000000000000000000000000000e560000000000000000000000000000000000000000000000000000000000000e580000000000000000000000000000000000000000000000000000000000000e5a0000000000000000000000000000000000000000000000000000000000000e5c0000000000000000000000000000000000000000000000000000000000000e5e0000000000000000000000000000000000000000000000000000000000000e600000000000000000000000000000000000000000000000000000000000000e620000000000000000000000000000000000000000000000000000000000000e640000000000000000000000000000000000000000000000000000000000000e660000000000000000000000000000000000000000000000000000000000000e680000000000000000000000000000000000000000000000000000000000000e6a0000000000000000000000000000000000000000000000000000000000000e6c0000000000000000000000000000000000000000000000000000000000000e6e0000000000000000000000000000000000000000000000000000000000000e700000000000000000000000000000000000000000000000000000000000000e720000000000000000000000000000000000000000000000000000000000000e740000000000000000000000000000000000000000000000000000000000000e760000000000000000000000000000000000000000000000000000000000000e780000000000000000000000000000000000000000000000000000000000000e7a0000000000000000000000000000000000000000000000000000000000000e7c0000000000000000000000000000000000000000000000000000000000000e7e0000000000000000000000000000000000000000000000000000000000000e800000000000000000000000000000000000000000000000000000000000000e820000000000000000000000000000000000000000000000000000000000000e840000000000000000000000000000000000000000000000000000000000000e860000000000000000000000000000000000000000000000000000000000000e880000000000000000000000000000000000000000000000000000000000000e8a0000000000000000000000000000000000000000000000000000000000000e8c0000000000000000000000000000000000000000000000000000000000000e8e0000000000000000000000000000000000000000000000000000000000000e900000000000000000000000000000000000000000000000000000000000000e920000000000000000000000000000000000000000000000000000000000000e940000000000000000000000000000000000000000000000000000000000000e960000000000000000000000000000000000000000000000000000000000000e980000000000000000000000000000000000000000000000000000000000000e9a0000000000000000000000000000000000000000000000000000000000000e9c0000000000000000000000000000000000000000000000000000000000000e9e0000000000000000000000000000000000000000000000000000000000000ea00000000000000000000000000000000000000000000000000000000000000ea20000000000000000000000000000000000000000000000000000000000000ea40000000000000000000000000000000000000000000000000000000000000ea60000000000000000000000000000000000000000000000000000000000000ea80000000000000000000000000000000000000000000000000000000000000eaa0000000000000000000000000000000000000000000000000000000000000eac0000000000000000000000000000000000000000000000000000000000000eae0000000000000000000000000000000000000000000000000000000000000eb00000000000000000000000000000000000000000000000000000000000000eb20000000000000000000000000000000000000000000000000000000000000eb40000000000000000000000000000000000000000000000000000000000000eb60000000000000000000000000000000000000000000000000000000000000eb80000000000000000000000000000000000000000000000000000000000000eba0000000000000000000000000000000000000000000000000000000000000ebc0000000000000000000000000000000000000000000000000000000000000ebe0000000000000000000000000000000000000000000000000000000000000ec00000000000000000000000000000000000000000000000000000000000000ec20000000000000000000000000000000000000000000000000000000000000ec40000000000000000000000000000000000000000000000000000000000000ec60000000000000000000000000000000000000000000000000000000000000ec80000000000000000000000000000000000000000000000000000000000000eca0000000000000000000000000000000000000000000000000000000000000ecc0000000000000000000000000000000000000000000000000000000000000ece0000000000000000000000000000000000000000000000000000000000000ed00000000000000000000000000000000000000000000000000000000000000ed20000000000000000000000000000000000000000000000000000000000000ed40000000000000000000000000000000000000000000000000000000000000ed60000000000000000000000000000000000000000000000000000000000000ed80000000000000000000000000000000000000000000000000000000000000eda0000000000000000000000000000000000000000000000000000000000000edc0000000000000000000000000000000000000000000000000000000000000ede0000000000000000000000000000000000000000000000000000000000000ee00000000000000000000000000000000000000000000000000000000000000ee20000000000000000000000000000000000000000000000000000000000000ee40000000000000000000000000000000000000000000000000000000000000ee60000000000000000000000000000000000000000000000000000000000000ee80000000000000000000000000000000000000000000000000000000000000eea0000000000000000000000000000000000000000000000000000000000000eec0000000000000000000000000000000000000000000000000000000000000eee0000000000000000000000000000000000000000000000000000000000000ef00000000000000000000000000000000000000000000000000000000000000ef20000000000000000000000000000000000000000000000000000000000000ef40000000000000000000000000000000000000000000000000000000000000ef60000000000000000000000000000000000000000000000000000000000000ef80000000000000000000000000000000000000000000000000000000000000efa0000000000000000000000000000000000000000000000000000000000000efc0000000000000000000000000000000000000000000000000000000000000efe0000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000f020000000000000000000000000000000000000000000000000000000000000f040000000000000000000000000000000000000000000000000000000000000f060000000000000000000000000000000000000000000000000000000000000f080000000000000000000000000000000000000000000000000000000000000f0a0000000000000000000000000000000000000000000000000000000000000f0c0000000000000000000000000000000000000000000000000000000000000f0e0000000000000000000000000000000000000000000000000000000000000f100000000000000000000000000000000000000000000000000000000000000f120000000000000000000000000000000000000000000000000000000000000f140000000000000000000000000000000000000000000000000000000000000f160000000000000000000000000000000000000000000000000000000000000f180000000000000000000000000000000000000000000000000000000000000f1a0000000000000000000000000000000000000000000000000000000000000f1c0000000000000000000000000000000000000000000000000000000000000f1e0000000000000000000000000000000000000000000000000000000000000f200000000000000000000000000000000000000000000000000000000000000f220000000000000000000000000000000000000000000000000000000000000f240000000000000000000000000000000000000000000000000000000000000f260000000000000000000000000000000000000000000000000000000000000f280000000000000000000000000000000000000000000000000000000000000f2a0000000000000000000000000000000000000000000000000000000000000f2c0000000000000000000000000000000000000000000000000000000000000f2e0000000000000000000000000000000000000000000000000000000000000f300000000000000000000000000000000000000000000000000000000000000f320000000000000000000000000000000000000000000000000000000000000f340000000000000000000000000000000000000000000000000000000000000f360000000000000000000000000000000000000000000000000000000000000f380000000000000000000000000000000000000000000000000000000000000f3a0000000000000000000000000000000000000000000000000000000000000f3c0000000000000000000000000000000000000000000000000000000000000f3e0000000000000000000000000000000000000000000000000000000000000f400000000000000000000000000000000000000000000000000000000000000f420000000000000000000000000000000000000000000000000000000000000f440000000000000000000000000000000000000000000000000000000000000f460000000000000000000000000000000000000000000000000000000000000f480000000000000000000000000000000000000000000000000000000000000f4a0000000000000000000000000000000000000000000000000000000000000f4c0000000000000000000000000000000000000000000000000000000000000f4e0000000000000000000000000000000000000000000000000000000000000f500000000000000000000000000000000000000000000000000000000000000f520000000000000000000000000000000000000000000000000000000000000f540000000000000000000000000000000000000000000000000000000000000f560000000000000000000000000000000000000000000000000000000000000f580000000000000000000000000000000000000000000000000000000000000f5a0000000000000000000000000000000000000000000000000000000000000f5c0000000000000000000000000000000000000000000000000000000000000f5e0000000000000000000000000000000000000000000000000000000000000f600000000000000000000000000000000000000000000000000000000000000f620000000000000000000000000000000000000000000000000000000000000f640000000000000000000000000000000000000000000000000000000000000f660000000000000000000000000000000000000000000000000000000000000f680000000000000000000000000000000000000000000000000000000000000f6a0000000000000000000000000000000000000000000000000000000000000f6c0000000000000000000000000000000000000000000000000000000000000f6e0000000000000000000000000000000000000000000000000000000000000f700000000000000000000000000000000000000000000000000000000000000f720000000000000000000000000000000000000000000000000000000000000f740000000000000000000000000000000000000000000000000000000000000f760000000000000000000000000000000000000000000000000000000000000f780000000000000000000000000000000000000000000000000000000000000f7a0000000000000000000000000000000000000000000000000000000000000f7c0000000000000000000000000000000000000000000000000000000000000f7e0000000000000000000000000000000000000000000000000000000000000f800000000000000000000000000000000000000000000000000000000000000f820000000000000000000000000000000000000000000000000000000000000f840000000000000000000000000000000000000000000000000000000000000f860000000000000000000000000000000000000000000000000000000000000f880000000000000000000000000000000000000000000000000000000000000f8a0000000000000000000000000000000000000000000000000000000000000f8c0000000000000000000000000000000000000000000000000000000000000f8e0000000000000000000000000000000000000000000000000000000000000f900000000000000000000000000000000000000000000000000000000000000f920000000000000000000000000000000000000000000000000000000000000f940000000000000000000000000000000000000000000000000000000000000f960000000000000000000000000000000000000000000000000000000000000f980000000000000000000000000000000000000000000000000000000000000f9a0000000000000000000000000000000000000000000000000000000000000f9c0000000000000000000000000000000000000000000000000000000000000f9e0000000000000000000000000000000000000000000000000000000000000fa00000000000000000000000000000000000000000000000000000000000000fa20000000000000000000000000000000000000000000000000000000000000fa40000000000000000000000000000000000000000000000000000000000000fa60000000000000000000000000000000000000000000000000000000000000fa80000000000000000000000000000000000000000000000000000000000000faa0000000000000000000000000000000000000000000000000000000000000fac0000000000000000000000000000000000000000000000000000000000000fae0000000000000000000000000000000000000000000000000000000000000fb00000000000000000000000000000000000000000000000000000000000000fb20000000000000000000000000000000000000000000000000000000000000fb40000000000000000000000000000000000000000000000000000000000000fb60000000000000000000000000000000000000000000000000000000000000fb80000000000000000000000000000000000000000000000000000000000000fba0000000000000000000000000000000000000000000000000000000000000fbc0000000000000000000000000000000000000000000000000000000000000fbe0000000000000000000000000000000000000000000000000000000000000fc00000000000000000000000000000000000000000000000000000000000000fc20000000000000000000000000000000000000000000000000000000000000fc40000000000000000000000000000000000000000000000000000000000000fc60000000000000000000000000000000000000000000000000000000000000fc80000000000000000000000000000000000000000000000000000000000000fca0000000000000000000000000000000000000000000000000000000000000fcc0000000000000000000000000000000000000000000000000000000000000fce0000000000000000000000000000000000000000000000000000000000000fd00000000000000000000000000000000000000000000000000000000000000fd20000000000000000000000000000000000000000000000000000000000000fd40000000000000000000000000000000000000000000000000000000000000fd60000000000000000000000000000000000000000000000000000000000000fd80000000000000000000000000000000000000000000000000000000000000fda0000000000000000000000000000000000000000000000000000000000000fdc0000000000000000000000000000000000000000000000000000000000000fde0000000000000000000000000000000000000000000000000000000000000fe00000000000000000000000000000000000000000000000000000000000000fe20000000000000000000000000000000000000000000000000000000000000fe40000000000000000000000000000000000000000000000000000000000000fe60000000000000000000000000000000000000000000000000000000000000fe80000000000000000000000000000000000000000000000000000000000000fea0000000000000000000000000000000000000000000000000000000000000fec0000000000000000000000000000000000000000000000000000000000000fee0000000000000000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000ff20000000000000000000000000000000000000000000000000000000000000ff40000000000000000000000000000000000000000000000000000000000000ff60000000000000000000000000000000000000000000000000000000000000ff80000000000000000000000000000000000000000000000000000000000000ffa0000000000000000000000000000000000000000000000000000000000000ffc0000000000000000000000000000000000000000000000000000000000000ffe00000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001002000000000000000000000000000000000000000000000000000000000000100400000000000000000000000000000000000000000000000000000000000010060000000000000000000000000000000000000000000000000000000000001008000000000000000000000000000000000000000000000000000000000000100a000000000000000000000000000000000000000000000000000000000000100c000000000000000000000000000000000000000000000000000000000000100e00000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000001012000000000000000000000000000000000000000000000000000000000000101400000000000000000000000000000000000000000000000000000000000010160000000000000000000000000000000000000000000000000000000000001018000000000000000000000000000000000000000000000000000000000000101a000000000000000000000000000000000000000000000000000000000000101c000000000000000000000000000000000000000000000000000000000000101e00000000000000000000000000000000000000000000000000000000000010200000000000000000000000000000000000000000000000000000000000001022000000000000000000000000000000000000000000000000000000000000102400000000000000000000000000000000000000000000000000000000000010260000000000000000000000000000000000000000000000000000000000001028000000000000000000000000000000000000000000000000000000000000102a000000000000000000000000000000000000000000000000000000000000102c000000000000000000000000000000000000000000000000000000000000102e00000000000000000000000000000000000000000000000000000000000010300000000000000000000000000000000000000000000000000000000000001032000000000000000000000000000000000000000000000000000000000000103400000000000000000000000000000000000000000000000000000000000010360000000000000000000000000000000000000000000000000000000000001038000000000000000000000000000000000000000000000000000000000000103a000000000000000000000000000000000000000000000000000000000000103c000000000000000000000000000000000000000000000000000000000000103e00000000000000000000000000000000000000000000000000000000000010400000000000000000000000000000000000000000000000000000000000001042000000000000000000000000000000000000000000000000000000000000104400000000000000000000000000000000000000000000000000000000000010460000000000000000000000000000000000000000000000000000000000001048000000000000000000000000000000000000000000000000000000000000104a000000000000000000000000000000000000000000000000000000000000104c000000000000000000000000000000000000000000000000000000000000104e00000000000000000000000000000000000000000000000000000000000010500000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000105400000000000000000000000000000000000000000000000000000000000010560000000000000000000000000000000000000000000000000000000000001058000000000000000000000000000000000000000000000000000000000000105a000000000000000000000000000000000000000000000000000000000000105c000000000000000000000000000000000000000000000000000000000000105e00000000000000000000000000000000000000000000000000000000000010600000000000000000000000000000000000000000000000000000000000001062000000000000000000000000000000000000000000000000000000000000106400000000000000000000000000000000000000000000000000000000000010660000000000000000000000000000000000000000000000000000000000001068000000000000000000000000000000000000000000000000000000000000106a000000000000000000000000000000000000000000000000000000000000106c000000000000000000000000000000000000000000000000000000000000106e00000000000000000000000000000000000000000000000000000000000010700000000000000000000000000000000000000000000000000000000000001072000000000000000000000000000000000000000000000000000000000000107400000000000000000000000000000000000000000000000000000000000010760000000000000000000000000000000000000000000000000000000000001078000000000000000000000000000000000000000000000000000000000000107a000000000000000000000000000000000000000000000000000000000000107c000000000000000000000000000000000000000000000000000000000000107e00000000000000000000000000000000000000000000000000000000000010800000000000000000000000000000000000000000000000000000000000001082000000000000000000000000000000000000000000000000000000000000108400000000000000000000000000000000000000000000000000000000000010860000000000000000000000000000000000000000000000000000000000001088000000000000000000000000000000000000000000000000000000000000108a000000000000000000000000000000000000000000000000000000000000108c000000000000000000000000000000000000000000000000000000000000108e00000000000000000000000000000000000000000000000000000000000010900000000000000000000000000000000000000000000000000000000000001092000000000000000000000000000000000000000000000000000000000000109400000000000000000000000000000000000000000000000000000000000010960000000000000000000000000000000000000000000000000000000000001098000000000000000000000000000000000000000000000000000000000000109a000000000000000000000000000000000000000000000000000000000000109c000000000000000000000000000000000000000000000000000000000000109e00000000000000000000000000000000000000000000000000000000000010a000000000000000000000000000000000000000000000000000000000000010a200000000000000000000000000000000000000000000000000000000000010a400000000000000000000000000000000000000000000000000000000000010a600000000000000000000000000000000000000000000000000000000000010a800000000000000000000000000000000000000000000000000000000000010aa00000000000000000000000000000000000000000000000000000000000010ac00000000000000000000000000000000000000000000000000000000000010ae00000000000000000000000000000000000000000000000000000000000010b000000000000000000000000000000000000000000000000000000000000010b200000000000000000000000000000000000000000000000000000000000010b400000000000000000000000000000000000000000000000000000000000010b600000000000000000000000000000000000000000000000000000000000010b800000000000000000000000000000000000000000000000000000000000010ba00000000000000000000000000000000000000000000000000000000000010bc00000000000000000000000000000000000000000000000000000000000010be00000000000000000000000000000000000000000000000000000000000010c000000000000000000000000000000000000000000000000000000000000010c200000000000000000000000000000000000000000000000000000000000010c400000000000000000000000000000000000000000000000000000000000010c600000000000000000000000000000000000000000000000000000000000010c800000000000000000000000000000000000000000000000000000000000010ca00000000000000000000000000000000000000000000000000000000000010cc00000000000000000000000000000000000000000000000000000000000010ce00000000000000000000000000000000000000000000000000000000000010d000000000000000000000000000000000000000000000000000000000000010d200000000000000000000000000000000000000000000000000000000000010d400000000000000000000000000000000000000000000000000000000000010d600000000000000000000000000000000000000000000000000000000000010d800000000000000000000000000000000000000000000000000000000000010da00000000000000000000000000000000000000000000000000000000000010dc00000000000000000000000000000000000000000000000000000000000010de00000000000000000000000000000000000000000000000000000000000010e000000000000000000000000000000000000000000000000000000000000010e200000000000000000000000000000000000000000000000000000000000010e400000000000000000000000000000000000000000000000000000000000010e600000000000000000000000000000000000000000000000000000000000010e800000000000000000000000000000000000000000000000000000000000010ea00000000000000000000000000000000000000000000000000000000000010ec00000000000000000000000000000000000000000000000000000000000010ee00000000000000000000000000000000000000000000000000000000000010f000000000000000000000000000000000000000000000000000000000000010f200000000000000000000000000000000000000000000000000000000000010f400000000000000000000000000000000000000000000000000000000000010f600000000000000000000000000000000000000000000000000000000000010f800000000000000000000000000000000000000000000000000000000000010fa00000000000000000000000000000000000000000000000000000000000010fc00000000000000000000000000000000000000000000000000000000000010fe00000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000001102000000000000000000000000000000000000000000000000000000000000110400000000000000000000000000000000000000000000000000000000000011060000000000000000000000000000000000000000000000000000000000001108000000000000000000000000000000000000000000000000000000000000110a000000000000000000000000000000000000000000000000000000000000110c000000000000000000000000000000000000000000000000000000000000110e00000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000001112000000000000000000000000000000000000000000000000000000000000111400000000000000000000000000000000000000000000000000000000000011160000000000000000000000000000000000000000000000000000000000001118000000000000000000000000000000000000000000000000000000000000111a000000000000000000000000000000000000000000000000000000000000111c000000000000000000000000000000000000000000000000000000000000111e00000000000000000000000000000000000000000000000000000000000011200000000000000000000000000000000000000000000000000000000000001122000000000000000000000000000000000000000000000000000000000000112400000000000000000000000000000000000000000000000000000000000011260000000000000000000000000000000000000000000000000000000000001128000000000000000000000000000000000000000000000000000000000000112a000000000000000000000000000000000000000000000000000000000000112c000000000000000000000000000000000000000000000000000000000000112e00000000000000000000000000000000000000000000000000000000000011300000000000000000000000000000000000000000000000000000000000001132000000000000000000000000000000000000000000000000000000000000113400000000000000000000000000000000000000000000000000000000000011360000000000000000000000000000000000000000000000000000000000001138000000000000000000000000000000000000000000000000000000000000113a000000000000000000000000000000000000000000000000000000000000113c000000000000000000000000000000000000000000000000000000000000113e00000000000000000000000000000000000000000000000000000000000011400000000000000000000000000000000000000000000000000000000000001142000000000000000000000000000000000000000000000000000000000000114400000000000000000000000000000000000000000000000000000000000011460000000000000000000000000000000000000000000000000000000000001148000000000000000000000000000000000000000000000000000000000000114a000000000000000000000000000000000000000000000000000000000000114c000000000000000000000000000000000000000000000000000000000000114e00000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000001152000000000000000000000000000000000000000000000000000000000000115400000000000000000000000000000000000000000000000000000000000011560000000000000000000000000000000000000000000000000000000000001158000000000000000000000000000000000000000000000000000000000000115a000000000000000000000000000000000000000000000000000000000000115c000000000000000000000000000000000000000000000000000000000000115e00000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000001162000000000000000000000000000000000000000000000000000000000000116400000000000000000000000000000000000000000000000000000000000011660000000000000000000000000000000000000000000000000000000000001168000000000000000000000000000000000000000000000000000000000000116a000000000000000000000000000000000000000000000000000000000000116c000000000000000000000000000000000000000000000000000000000000116e00000000000000000000000000000000000000000000000000000000000011700000000000000000000000000000000000000000000000000000000000001172000000000000000000000000000000000000000000000000000000000000117400000000000000000000000000000000000000000000000000000000000011760000000000000000000000000000000000000000000000000000000000001178000000000000000000000000000000000000000000000000000000000000117a000000000000000000000000000000000000000000000000000000000000117c000000000000000000000000000000000000000000000000000000000000117e00000000000000000000000000000000000000000000000000000000000011800000000000000000000000000000000000000000000000000000000000001182000000000000000000000000000000000000000000000000000000000000118400000000000000000000000000000000000000000000000000000000000011860000000000000000000000000000000000000000000000000000000000001188000000000000000000000000000000000000000000000000000000000000118a000000000000000000000000000000000000000000000000000000000000118c000000000000000000000000000000000000000000000000000000000000118e00000000000000000000000000000000000000000000000000000000000011900000000000000000000000000000000000000000000000000000000000001192000000000000000000000000000000000000000000000000000000000000119400000000000000000000000000000000000000000000000000000000000011960000000000000000000000000000000000000000000000000000000000001198000000000000000000000000000000000000000000000000000000000000119a000000000000000000000000000000000000000000000000000000000000119c000000000000000000000000000000000000000000000000000000000000119e00000000000000000000000000000000000000000000000000000000000011a000000000000000000000000000000000000000000000000000000000000011a200000000000000000000000000000000000000000000000000000000000011a400000000000000000000000000000000000000000000000000000000000011a600000000000000000000000000000000000000000000000000000000000011a800000000000000000000000000000000000000000000000000000000000011aa00000000000000000000000000000000000000000000000000000000000011ac00000000000000000000000000000000000000000000000000000000000011ae00000000000000000000000000000000000000000000000000000000000011b000000000000000000000000000000000000000000000000000000000000011b200000000000000000000000000000000000000000000000000000000000011b400000000000000000000000000000000000000000000000000000000000011b600000000000000000000000000000000000000000000000000000000000011b800000000000000000000000000000000000000000000000000000000000011ba00000000000000000000000000000000000000000000000000000000000011bc00000000000000000000000000000000000000000000000000000000000011be00000000000000000000000000000000000000000000000000000000000011c000000000000000000000000000000000000000000000000000000000000011c200000000000000000000000000000000000000000000000000000000000011c400000000000000000000000000000000000000000000000000000000000011c600000000000000000000000000000000000000000000000000000000000011c800000000000000000000000000000000000000000000000000000000000011ca00000000000000000000000000000000000000000000000000000000000011cc00000000000000000000000000000000000000000000000000000000000011ce00000000000000000000000000000000000000000000000000000000000011d000000000000000000000000000000000000000000000000000000000000011d200000000000000000000000000000000000000000000000000000000000011d400000000000000000000000000000000000000000000000000000000000011d600000000000000000000000000000000000000000000000000000000000011d800000000000000000000000000000000000000000000000000000000000011da00000000000000000000000000000000000000000000000000000000000011dc00000000000000000000000000000000000000000000000000000000000011de00000000000000000000000000000000000000000000000000000000000011e000000000000000000000000000000000000000000000000000000000000011e200000000000000000000000000000000000000000000000000000000000011e400000000000000000000000000000000000000000000000000000000000011e600000000000000000000000000000000000000000000000000000000000011e800000000000000000000000000000000000000000000000000000000000011ea00000000000000000000000000000000000000000000000000000000000011ec00000000000000000000000000000000000000000000000000000000000011ee00000000000000000000000000000000000000000000000000000000000011f000000000000000000000000000000000000000000000000000000000000011f200000000000000000000000000000000000000000000000000000000000011f400000000000000000000000000000000000000000000000000000000000011f600000000000000000000000000000000000000000000000000000000000011f800000000000000000000000000000000000000000000000000000000000011fa00000000000000000000000000000000000000000000000000000000000011fc00000000000000000000000000000000000000000000000000000000000011fe00000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001202000000000000000000000000000000000000000000000000000000000000120400000000000000000000000000000000000000000000000000000000000012060000000000000000000000000000000000000000000000000000000000001208000000000000000000000000000000000000000000000000000000000000120a000000000000000000000000000000000000000000000000000000000000120c000000000000000000000000000000000000000000000000000000000000120e00000000000000000000000000000000000000000000000000000000000012100000000000000000000000000000000000000000000000000000000000001212000000000000000000000000000000000000000000000000000000000000121400000000000000000000000000000000000000000000000000000000000012160000000000000000000000000000000000000000000000000000000000001218000000000000000000000000000000000000000000000000000000000000121a000000000000000000000000000000000000000000000000000000000000121c000000000000000000000000000000000000000000000000000000000000121e00000000000000000000000000000000000000000000000000000000000012200000000000000000000000000000000000000000000000000000000000001222000000000000000000000000000000000000000000000000000000000000122400000000000000000000000000000000000000000000000000000000000012260000000000000000000000000000000000000000000000000000000000001228000000000000000000000000000000000000000000000000000000000000122a000000000000000000000000000000000000000000000000000000000000122c000000000000000000000000000000000000000000000000000000000000122e00000000000000000000000000000000000000000000000000000000000012300000000000000000000000000000000000000000000000000000000000001232000000000000000000000000000000000000000000000000000000000000123400000000000000000000000000000000000000000000000000000000000012360000000000000000000000000000000000000000000000000000000000001238000000000000000000000000000000000000000000000000000000000000123a000000000000000000000000000000000000000000000000000000000000123c000000000000000000000000000000000000000000000000000000000000123e00000000000000000000000000000000000000000000000000000000000012400000000000000000000000000000000000000000000000000000000000001242000000000000000000000000000000000000000000000000000000000000124400000000000000000000000000000000000000000000000000000000000012460000000000000000000000000000000000000000000000000000000000001248000000000000000000000000000000000000000000000000000000000000124a000000000000000000000000000000000000000000000000000000000000124c000000000000000000000000000000000000000000000000000000000000124e00000000000000000000000000000000000000000000000000000000000012500000000000000000000000000000000000000000000000000000000000001252000000000000000000000000000000000000000000000000000000000000125400000000000000000000000000000000000000000000000000000000000012560000000000000000000000000000000000000000000000000000000000001258000000000000000000000000000000000000000000000000000000000000125a000000000000000000000000000000000000000000000000000000000000125c000000000000000000000000000000000000000000000000000000000000125e00000000000000000000000000000000000000000000000000000000000012600000000000000000000000000000000000000000000000000000000000001262000000000000000000000000000000000000000000000000000000000000126400000000000000000000000000000000000000000000000000000000000012660000000000000000000000000000000000000000000000000000000000001268000000000000000000000000000000000000000000000000000000000000126a000000000000000000000000000000000000000000000000000000000000126c000000000000000000000000000000000000000000000000000000000000126e00000000000000000000000000000000000000000000000000000000000012700000000000000000000000000000000000000000000000000000000000001272000000000000000000000000000000000000000000000000000000000000127400000000000000000000000000000000000000000000000000000000000012760000000000000000000000000000000000000000000000000000000000001278000000000000000000000000000000000000000000000000000000000000127a000000000000000000000000000000000000000000000000000000000000127c000000000000000000000000000000000000000000000000000000000000127e00000000000000000000000000000000000000000000000000000000000012800000000000000000000000000000000000000000000000000000000000001282000000000000000000000000000000000000000000000000000000000000128400000000000000000000000000000000000000000000000000000000000012860000000000000000000000000000000000000000000000000000000000001288000000000000000000000000000000000000000000000000000000000000128a000000000000000000000000000000000000000000000000000000000000128c000000000000000000000000000000000000000000000000000000000000128e00000000000000000000000000000000000000000000000000000000000012900000000000000000000000000000000000000000000000000000000000001292000000000000000000000000000000000000000000000000000000000000129400000000000000000000000000000000000000000000000000000000000012960000000000000000000000000000000000000000000000000000000000001298000000000000000000000000000000000000000000000000000000000000129a000000000000000000000000000000000000000000000000000000000000129c000000000000000000000000000000000000000000000000000000000000129e00000000000000000000000000000000000000000000000000000000000012a000000000000000000000000000000000000000000000000000000000000012a200000000000000000000000000000000000000000000000000000000000012a400000000000000000000000000000000000000000000000000000000000012a600000000000000000000000000000000000000000000000000000000000012a800000000000000000000000000000000000000000000000000000000000012aa00000000000000000000000000000000000000000000000000000000000012ac00000000000000000000000000000000000000000000000000000000000012ae00000000000000000000000000000000000000000000000000000000000012b000000000000000000000000000000000000000000000000000000000000012b200000000000000000000000000000000000000000000000000000000000012b400000000000000000000000000000000000000000000000000000000000012b600000000000000000000000000000000000000000000000000000000000012b800000000000000000000000000000000000000000000000000000000000012ba00000000000000000000000000000000000000000000000000000000000012bc00000000000000000000000000000000000000000000000000000000000012be00000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000012c200000000000000000000000000000000000000000000000000000000000012c400000000000000000000000000000000000000000000000000000000000012c600000000000000000000000000000000000000000000000000000000000012c800000000000000000000000000000000000000000000000000000000000012ca00000000000000000000000000000000000000000000000000000000000012cc00000000000000000000000000000000000000000000000000000000000012ce00000000000000000000000000000000000000000000000000000000000012d000000000000000000000000000000000000000000000000000000000000012d200000000000000000000000000000000000000000000000000000000000012d400000000000000000000000000000000000000000000000000000000000012d600000000000000000000000000000000000000000000000000000000000012d800000000000000000000000000000000000000000000000000000000000012da00000000000000000000000000000000000000000000000000000000000012dc00000000000000000000000000000000000000000000000000000000000012de00000000000000000000000000000000000000000000000000000000000012e000000000000000000000000000000000000000000000000000000000000012e200000000000000000000000000000000000000000000000000000000000012e400000000000000000000000000000000000000000000000000000000000012e600000000000000000000000000000000000000000000000000000000000012e800000000000000000000000000000000000000000000000000000000000012ea00000000000000000000000000000000000000000000000000000000000012ec00000000000000000000000000000000000000000000000000000000000012ee00000000000000000000000000000000000000000000000000000000000012f000000000000000000000000000000000000000000000000000000000000012f200000000000000000000000000000000000000000000000000000000000012f400000000000000000000000000000000000000000000000000000000000012f600000000000000000000000000000000000000000000000000000000000012f800000000000000000000000000000000000000000000000000000000000012fa00000000000000000000000000000000000000000000000000000000000012fc00000000000000000000000000000000000000000000000000000000000012fe00000000000000000000000000000000000000000000000000000000000013000000000000000000000000000000000000000000000000000000000000001302000000000000000000000000000000000000000000000000000000000000130400000000000000000000000000000000000000000000000000000000000013060000000000000000000000000000000000000000000000000000000000001308000000000000000000000000000000000000000000000000000000000000130a000000000000000000000000000000000000000000000000000000000000130c000000000000000000000000000000000000000000000000000000000000130e00000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000001312000000000000000000000000000000000000000000000000000000000000131400000000000000000000000000000000000000000000000000000000000013160000000000000000000000000000000000000000000000000000000000001318000000000000000000000000000000000000000000000000000000000000131a000000000000000000000000000000000000000000000000000000000000131c000000000000000000000000000000000000000000000000000000000000131e00000000000000000000000000000000000000000000000000000000000013200000000000000000000000000000000000000000000000000000000000001322000000000000000000000000000000000000000000000000000000000000132400000000000000000000000000000000000000000000000000000000000013260000000000000000000000000000000000000000000000000000000000001328000000000000000000000000000000000000000000000000000000000000132a000000000000000000000000000000000000000000000000000000000000132c000000000000000000000000000000000000000000000000000000000000132e00000000000000000000000000000000000000000000000000000000000013300000000000000000000000000000000000000000000000000000000000001332000000000000000000000000000000000000000000000000000000000000133400000000000000000000000000000000000000000000000000000000000013360000000000000000000000000000000000000000000000000000000000001338000000000000000000000000000000000000000000000000000000000000133a000000000000000000000000000000000000000000000000000000000000133c000000000000000000000000000000000000000000000000000000000000133e00000000000000000000000000000000000000000000000000000000000013400000000000000000000000000000000000000000000000000000000000001342000000000000000000000000000000000000000000000000000000000000134400000000000000000000000000000000000000000000000000000000000013460000000000000000000000000000000000000000000000000000000000001348000000000000000000000000000000000000000000000000000000000000134a000000000000000000000000000000000000000000000000000000000000134c000000000000000000000000000000000000000000000000000000000000134e00000000000000000000000000000000000000000000000000000000000013500000000000000000000000000000000000000000000000000000000000001352000000000000000000000000000000000000000000000000000000000000135400000000000000000000000000000000000000000000000000000000000013560000000000000000000000000000000000000000000000000000000000001358000000000000000000000000000000000000000000000000000000000000135a000000000000000000000000000000000000000000000000000000000000135c000000000000000000000000000000000000000000000000000000000000135e00000000000000000000000000000000000000000000000000000000000013600000000000000000000000000000000000000000000000000000000000001362000000000000000000000000000000000000000000000000000000000000136400000000000000000000000000000000000000000000000000000000000013660000000000000000000000000000000000000000000000000000000000001368000000000000000000000000000000000000000000000000000000000000136a000000000000000000000000000000000000000000000000000000000000136c000000000000000000000000000000000000000000000000000000000000136e00000000000000000000000000000000000000000000000000000000000013700000000000000000000000000000000000000000000000000000000000001372000000000000000000000000000000000000000000000000000000000000137400000000000000000000000000000000000000000000000000000000000013760000000000000000000000000000000000000000000000000000000000001378000000000000000000000000000000000000000000000000000000000000137a000000000000000000000000000000000000000000000000000000000000137c000000000000000000000000000000000000000000000000000000000000137e00000000000000000000000000000000000000000000000000000000000013800000000000000000000000000000000000000000000000000000000000001382000000000000000000000000000000000000000000000000000000000000138400000000000000000000000000000000000000000000000000000000000013860000000000000000000000000000000000000000000000000000000000001388000000000000000000000000000000000000000000000000000000000000138a000000000000000000000000000000000000000000000000000000000000138c000000000000000000000000000000000000000000000000000000000000138e00000000000000000000000000000000000000000000000000000000000013900000000000000000000000000000000000000000000000000000000000001392000000000000000000000000000000000000000000000000000000000000139400000000000000000000000000000000000000000000000000000000000013960000000000000000000000000000000000000000000000000000000000001398000000000000000000000000000000000000000000000000000000000000139a000000000000000000000000000000000000000000000000000000000000139c000000000000000000000000000000000000000000000000000000000000139e00000000000000000000000000000000000000000000000000000000000013a000000000000000000000000000000000000000000000000000000000000013a200000000000000000000000000000000000000000000000000000000000013a400000000000000000000000000000000000000000000000000000000000013a600000000000000000000000000000000000000000000000000000000000013a800000000000000000000000000000000000000000000000000000000000013aa00000000000000000000000000000000000000000000000000000000000013ac00000000000000000000000000000000000000000000000000000000000013ae00000000000000000000000000000000000000000000000000000000000013b000000000000000000000000000000000000000000000000000000000000013b200000000000000000000000000000000000000000000000000000000000013b400000000000000000000000000000000000000000000000000000000000013b600000000000000000000000000000000000000000000000000000000000013b800000000000000000000000000000000000000000000000000000000000013ba00000000000000000000000000000000000000000000000000000000000013bc00000000000000000000000000000000000000000000000000000000000013be00000000000000000000000000000000000000000000000000000000000013c000000000000000000000000000000000000000000000000000000000000013c200000000000000000000000000000000000000000000000000000000000013c400000000000000000000000000000000000000000000000000000000000013c600000000000000000000000000000000000000000000000000000000000013c800000000000000000000000000000000000000000000000000000000000013ca00000000000000000000000000000000000000000000000000000000000013cc00000000000000000000000000000000000000000000000000000000000013ce00000000000000000000000000000000000000000000000000000000000013d000000000000000000000000000000000000000000000000000000000000013d200000000000000000000000000000000000000000000000000000000000013d400000000000000000000000000000000000000000000000000000000000013d600000000000000000000000000000000000000000000000000000000000013d800000000000000000000000000000000000000000000000000000000000013da00000000000000000000000000000000000000000000000000000000000013dc00000000000000000000000000000000000000000000000000000000000013de00000000000000000000000000000000000000000000000000000000000013e000000000000000000000000000000000000000000000000000000000000013e200000000000000000000000000000000000000000000000000000000000013e400000000000000000000000000000000000000000000000000000000000013e600000000000000000000000000000000000000000000000000000000000013e800000000000000000000000000000000000000000000000000000000000013ea00000000000000000000000000000000000000000000000000000000000013ec00000000000000000000000000000000000000000000000000000000000013ee00000000000000000000000000000000000000000000000000000000000013f000000000000000000000000000000000000000000000000000000000000013f200000000000000000000000000000000000000000000000000000000000013f400000000000000000000000000000000000000000000000000000000000013f600000000000000000000000000000000000000000000000000000000000013f800000000000000000000000000000000000000000000000000000000000013fa00000000000000000000000000000000000000000000000000000000000013fc00000000000000000000000000000000000000000000000000000000000013fe00000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001402000000000000000000000000000000000000000000000000000000000000140400000000000000000000000000000000000000000000000000000000000014060000000000000000000000000000000000000000000000000000000000001408000000000000000000000000000000000000000000000000000000000000140a000000000000000000000000000000000000000000000000000000000000140c000000000000000000000000000000000000000000000000000000000000140e00000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001412000000000000000000000000000000000000000000000000000000000000141400000000000000000000000000000000000000000000000000000000000014160000000000000000000000000000000000000000000000000000000000001418000000000000000000000000000000000000000000000000000000000000141a000000000000000000000000000000000000000000000000000000000000141c000000000000000000000000000000000000000000000000000000000000141e00000000000000000000000000000000000000000000000000000000000014200000000000000000000000000000000000000000000000000000000000001422000000000000000000000000000000000000000000000000000000000000142400000000000000000000000000000000000000000000000000000000000014260000000000000000000000000000000000000000000000000000000000001428000000000000000000000000000000000000000000000000000000000000142a000000000000000000000000000000000000000000000000000000000000142c000000000000000000000000000000000000000000000000000000000000142e00000000000000000000000000000000000000000000000000000000000014300000000000000000000000000000000000000000000000000000000000001432000000000000000000000000000000000000000000000000000000000000143400000000000000000000000000000000000000000000000000000000000014360000000000000000000000000000000000000000000000000000000000001438000000000000000000000000000000000000000000000000000000000000143a000000000000000000000000000000000000000000000000000000000000143c000000000000000000000000000000000000000000000000000000000000143e00000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001442000000000000000000000000000000000000000000000000000000000000144400000000000000000000000000000000000000000000000000000000000014460000000000000000000000000000000000000000000000000000000000001448000000000000000000000000000000000000000000000000000000000000144a000000000000000000000000000000000000000000000000000000000000144c000000000000000000000000000000000000000000000000000000000000144e00000000000000000000000000000000000000000000000000000000000014500000000000000000000000000000000000000000000000000000000000001452000000000000000000000000000000000000000000000000000000000000145400000000000000000000000000000000000000000000000000000000000014560000000000000000000000000000000000000000000000000000000000001458000000000000000000000000000000000000000000000000000000000000145a000000000000000000000000000000000000000000000000000000000000145c000000000000000000000000000000000000000000000000000000000000145e00000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000001462000000000000000000000000000000000000000000000000000000000000146400000000000000000000000000000000000000000000000000000000000014660000000000000000000000000000000000000000000000000000000000001468000000000000000000000000000000000000000000000000000000000000146a000000000000000000000000000000000000000000000000000000000000146c000000000000000000000000000000000000000000000000000000000000146e00000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001472000000000000000000000000000000000000000000000000000000000000147400000000000000000000000000000000000000000000000000000000000014760000000000000000000000000000000000000000000000000000000000001478000000000000000000000000000000000000000000000000000000000000147a000000000000000000000000000000000000000000000000000000000000147c000000000000000000000000000000000000000000000000000000000000147e00000000000000000000000000000000000000000000000000000000000014800000000000000000000000000000000000000000000000000000000000001482000000000000000000000000000000000000000000000000000000000000148400000000000000000000000000000000000000000000000000000000000014860000000000000000000000000000000000000000000000000000000000001488000000000000000000000000000000000000000000000000000000000000148a000000000000000000000000000000000000000000000000000000000000148c000000000000000000000000000000000000000000000000000000000000148e00000000000000000000000000000000000000000000000000000000000014900000000000000000000000000000000000000000000000000000000000001492000000000000000000000000000000000000000000000000000000000000149400000000000000000000000000000000000000000000000000000000000014960000000000000000000000000000000000000000000000000000000000001498000000000000000000000000000000000000000000000000000000000000149a000000000000000000000000000000000000000000000000000000000000149c000000000000000000000000000000000000000000000000000000000000149e00000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014a200000000000000000000000000000000000000000000000000000000000014a400000000000000000000000000000000000000000000000000000000000014a600000000000000000000000000000000000000000000000000000000000014a800000000000000000000000000000000000000000000000000000000000014aa00000000000000000000000000000000000000000000000000000000000014ac00000000000000000000000000000000000000000000000000000000000014ae00000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014b200000000000000000000000000000000000000000000000000000000000014b400000000000000000000000000000000000000000000000000000000000014b600000000000000000000000000000000000000000000000000000000000014b800000000000000000000000000000000000000000000000000000000000014ba00000000000000000000000000000000000000000000000000000000000014bc00000000000000000000000000000000000000000000000000000000000014be00000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014c200000000000000000000000000000000000000000000000000000000000014c400000000000000000000000000000000000000000000000000000000000014c600000000000000000000000000000000000000000000000000000000000014c800000000000000000000000000000000000000000000000000000000000014ca00000000000000000000000000000000000000000000000000000000000014cc00000000000000000000000000000000000000000000000000000000000014ce00000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014d200000000000000000000000000000000000000000000000000000000000014d400000000000000000000000000000000000000000000000000000000000014d600000000000000000000000000000000000000000000000000000000000014d800000000000000000000000000000000000000000000000000000000000014da00000000000000000000000000000000000000000000000000000000000014dc00000000000000000000000000000000000000000000000000000000000014de00000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014e200000000000000000000000000000000000000000000000000000000000014e400000000000000000000000000000000000000000000000000000000000014e600000000000000000000000000000000000000000000000000000000000014e800000000000000000000000000000000000000000000000000000000000014ea00000000000000000000000000000000000000000000000000000000000014ec00000000000000000000000000000000000000000000000000000000000014ee00000000000000000000000000000000000000000000000000000000000014f000000000000000000000000000000000000000000000000000000000000014f200000000000000000000000000000000000000000000000000000000000014f400000000000000000000000000000000000000000000000000000000000014f600000000000000000000000000000000000000000000000000000000000014f800000000000000000000000000000000000000000000000000000000000014fa00000000000000000000000000000000000000000000000000000000000014fc00000000000000000000000000000000000000000000000000000000000014fe00000000000000000000000000000000000000000000000000000000000015000000000000000000000000000000000000000000000000000000000000001502000000000000000000000000000000000000000000000000000000000000150400000000000000000000000000000000000000000000000000000000000015060000000000000000000000000000000000000000000000000000000000001508000000000000000000000000000000000000000000000000000000000000150a000000000000000000000000000000000000000000000000000000000000150c000000000000000000000000000000000000000000000000000000000000150e00000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001512000000000000000000000000000000000000000000000000000000000000151400000000000000000000000000000000000000000000000000000000000015160000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000151a000000000000000000000000000000000000000000000000000000000000151c000000000000000000000000000000000000000000000000000000000000151e00000000000000000000000000000000000000000000000000000000000015200000000000000000000000000000000000000000000000000000000000001522000000000000000000000000000000000000000000000000000000000000152400000000000000000000000000000000000000000000000000000000000015260000000000000000000000000000000000000000000000000000000000001528000000000000000000000000000000000000000000000000000000000000152a000000000000000000000000000000000000000000000000000000000000152c000000000000000000000000000000000000000000000000000000000000152e00000000000000000000000000000000000000000000000000000000000015300000000000000000000000000000000000000000000000000000000000001532000000000000000000000000000000000000000000000000000000000000153400000000000000000000000000000000000000000000000000000000000015360000000000000000000000000000000000000000000000000000000000001538000000000000000000000000000000000000000000000000000000000000153a000000000000000000000000000000000000000000000000000000000000153c000000000000000000000000000000000000000000000000000000000000153e00000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001542000000000000000000000000000000000000000000000000000000000000154400000000000000000000000000000000000000000000000000000000000015460000000000000000000000000000000000000000000000000000000000001548000000000000000000000000000000000000000000000000000000000000154a000000000000000000000000000000000000000000000000000000000000154c000000000000000000000000000000000000000000000000000000000000154e00000000000000000000000000000000000000000000000000000000000015500000000000000000000000000000000000000000000000000000000000001552000000000000000000000000000000000000000000000000000000000000155400000000000000000000000000000000000000000000000000000000000015560000000000000000000000000000000000000000000000000000000000001558000000000000000000000000000000000000000000000000000000000000155a000000000000000000000000000000000000000000000000000000000000155c000000000000000000000000000000000000000000000000000000000000155e00000000000000000000000000000000000000000000000000000000000015600000000000000000000000000000000000000000000000000000000000001562000000000000000000000000000000000000000000000000000000000000156400000000000000000000000000000000000000000000000000000000000015660000000000000000000000000000000000000000000000000000000000001568000000000000000000000000000000000000000000000000000000000000156a000000000000000000000000000000000000000000000000000000000000156c000000000000000000000000000000000000000000000000000000000000156e00000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001572000000000000000000000000000000000000000000000000000000000000157400000000000000000000000000000000000000000000000000000000000015760000000000000000000000000000000000000000000000000000000000001578000000000000000000000000000000000000000000000000000000000000157a000000000000000000000000000000000000000000000000000000000000157c000000000000000000000000000000000000000000000000000000000000157e00000000000000000000000000000000000000000000000000000000000015800000000000000000000000000000000000000000000000000000000000001582000000000000000000000000000000000000000000000000000000000000158400000000000000000000000000000000000000000000000000000000000015860000000000000000000000000000000000000000000000000000000000001588000000000000000000000000000000000000000000000000000000000000158a000000000000000000000000000000000000000000000000000000000000158c000000000000000000000000000000000000000000000000000000000000158e00000000000000000000000000000000000000000000000000000000000015900000000000000000000000000000000000000000000000000000000000001592000000000000000000000000000000000000000000000000000000000000159400000000000000000000000000000000000000000000000000000000000015960000000000000000000000000000000000000000000000000000000000001598000000000000000000000000000000000000000000000000000000000000159a000000000000000000000000000000000000000000000000000000000000159c000000000000000000000000000000000000000000000000000000000000159e00000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015a200000000000000000000000000000000000000000000000000000000000015a400000000000000000000000000000000000000000000000000000000000015a600000000000000000000000000000000000000000000000000000000000015a800000000000000000000000000000000000000000000000000000000000015aa00000000000000000000000000000000000000000000000000000000000015ac00000000000000000000000000000000000000000000000000000000000015ae00000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015b200000000000000000000000000000000000000000000000000000000000015b400000000000000000000000000000000000000000000000000000000000015b600000000000000000000000000000000000000000000000000000000000015b800000000000000000000000000000000000000000000000000000000000015ba00000000000000000000000000000000000000000000000000000000000015bc00000000000000000000000000000000000000000000000000000000000015be00000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015c200000000000000000000000000000000000000000000000000000000000015c400000000000000000000000000000000000000000000000000000000000015c600000000000000000000000000000000000000000000000000000000000015c800000000000000000000000000000000000000000000000000000000000015ca00000000000000000000000000000000000000000000000000000000000015cc00000000000000000000000000000000000000000000000000000000000015ce00000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015d200000000000000000000000000000000000000000000000000000000000015d400000000000000000000000000000000000000000000000000000000000015d600000000000000000000000000000000000000000000000000000000000015d800000000000000000000000000000000000000000000000000000000000015da00000000000000000000000000000000000000000000000000000000000015dc00000000000000000000000000000000000000000000000000000000000015de00000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015e200000000000000000000000000000000000000000000000000000000000015e400000000000000000000000000000000000000000000000000000000000015e600000000000000000000000000000000000000000000000000000000000015e800000000000000000000000000000000000000000000000000000000000015ea00000000000000000000000000000000000000000000000000000000000015ec00000000000000000000000000000000000000000000000000000000000015ee00000000000000000000000000000000000000000000000000000000000015f000000000000000000000000000000000000000000000000000000000000015f200000000000000000000000000000000000000000000000000000000000015f400000000000000000000000000000000000000000000000000000000000015f600000000000000000000000000000000000000000000000000000000000015f800000000000000000000000000000000000000000000000000000000000015fa00000000000000000000000000000000000000000000000000000000000015fc00000000000000000000000000000000000000000000000000000000000015fe00000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001602000000000000000000000000000000000000000000000000000000000000160400000000000000000000000000000000000000000000000000000000000016060000000000000000000000000000000000000000000000000000000000001608000000000000000000000000000000000000000000000000000000000000160a000000000000000000000000000000000000000000000000000000000000160c000000000000000000000000000000000000000000000000000000000000160e00000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001612000000000000000000000000000000000000000000000000000000000000161400000000000000000000000000000000000000000000000000000000000016160000000000000000000000000000000000000000000000000000000000001618000000000000000000000000000000000000000000000000000000000000161a000000000000000000000000000000000000000000000000000000000000161c000000000000000000000000000000000000000000000000000000000000161e00000000000000000000000000000000000000000000000000000000000016200000000000000000000000000000000000000000000000000000000000001622000000000000000000000000000000000000000000000000000000000000162400000000000000000000000000000000000000000000000000000000000016260000000000000000000000000000000000000000000000000000000000001628000000000000000000000000000000000000000000000000000000000000162a000000000000000000000000000000000000000000000000000000000000162c000000000000000000000000000000000000000000000000000000000000162e00000000000000000000000000000000000000000000000000000000000016300000000000000000000000000000000000000000000000000000000000001632000000000000000000000000000000000000000000000000000000000000163400000000000000000000000000000000000000000000000000000000000016360000000000000000000000000000000000000000000000000000000000001638000000000000000000000000000000000000000000000000000000000000163a000000000000000000000000000000000000000000000000000000000000163c000000000000000000000000000000000000000000000000000000000000163e00000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001642000000000000000000000000000000000000000000000000000000000000164400000000000000000000000000000000000000000000000000000000000016460000000000000000000000000000000000000000000000000000000000001648000000000000000000000000000000000000000000000000000000000000164a000000000000000000000000000000000000000000000000000000000000164c000000000000000000000000000000000000000000000000000000000000164e00000000000000000000000000000000000000000000000000000000000016500000000000000000000000000000000000000000000000000000000000001652000000000000000000000000000000000000000000000000000000000000165400000000000000000000000000000000000000000000000000000000000016560000000000000000000000000000000000000000000000000000000000001658000000000000000000000000000000000000000000000000000000000000165a000000000000000000000000000000000000000000000000000000000000165c000000000000000000000000000000000000000000000000000000000000165e00000000000000000000000000000000000000000000000000000000000016600000000000000000000000000000000000000000000000000000000000001662000000000000000000000000000000000000000000000000000000000000166400000000000000000000000000000000000000000000000000000000000016660000000000000000000000000000000000000000000000000000000000001668000000000000000000000000000000000000000000000000000000000000166a000000000000000000000000000000000000000000000000000000000000166c000000000000000000000000000000000000000000000000000000000000166e00000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001672000000000000000000000000000000000000000000000000000000000000167400000000000000000000000000000000000000000000000000000000000016760000000000000000000000000000000000000000000000000000000000001678000000000000000000000000000000000000000000000000000000000000167a000000000000000000000000000000000000000000000000000000000000167c000000000000000000000000000000000000000000000000000000000000167e00000000000000000000000000000000000000000000000000000000000016800000000000000000000000000000000000000000000000000000000000001682000000000000000000000000000000000000000000000000000000000000168400000000000000000000000000000000000000000000000000000000000016860000000000000000000000000000000000000000000000000000000000001688000000000000000000000000000000000000000000000000000000000000168a000000000000000000000000000000000000000000000000000000000000168c000000000000000000000000000000000000000000000000000000000000168e00000000000000000000000000000000000000000000000000000000000016900000000000000000000000000000000000000000000000000000000000001692000000000000000000000000000000000000000000000000000000000000169400000000000000000000000000000000000000000000000000000000000016960000000000000000000000000000000000000000000000000000000000001698000000000000000000000000000000000000000000000000000000000000169a000000000000000000000000000000000000000000000000000000000000169c000000000000000000000000000000000000000000000000000000000000169e00000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016a200000000000000000000000000000000000000000000000000000000000016a400000000000000000000000000000000000000000000000000000000000016a600000000000000000000000000000000000000000000000000000000000016a800000000000000000000000000000000000000000000000000000000000016aa00000000000000000000000000000000000000000000000000000000000016ac00000000000000000000000000000000000000000000000000000000000016ae00000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016b200000000000000000000000000000000000000000000000000000000000016b400000000000000000000000000000000000000000000000000000000000016b600000000000000000000000000000000000000000000000000000000000016b800000000000000000000000000000000000000000000000000000000000016ba00000000000000000000000000000000000000000000000000000000000016bc00000000000000000000000000000000000000000000000000000000000016be00000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016c200000000000000000000000000000000000000000000000000000000000016c400000000000000000000000000000000000000000000000000000000000016c600000000000000000000000000000000000000000000000000000000000016c800000000000000000000000000000000000000000000000000000000000016ca00000000000000000000000000000000000000000000000000000000000016cc00000000000000000000000000000000000000000000000000000000000016ce00000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016d200000000000000000000000000000000000000000000000000000000000016d400000000000000000000000000000000000000000000000000000000000016d600000000000000000000000000000000000000000000000000000000000016d800000000000000000000000000000000000000000000000000000000000016da00000000000000000000000000000000000000000000000000000000000016dc00000000000000000000000000000000000000000000000000000000000016de00000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016e200000000000000000000000000000000000000000000000000000000000016e400000000000000000000000000000000000000000000000000000000000016e600000000000000000000000000000000000000000000000000000000000016e800000000000000000000000000000000000000000000000000000000000016ea00000000000000000000000000000000000000000000000000000000000016ec00000000000000000000000000000000000000000000000000000000000016ee00000000000000000000000000000000000000000000000000000000000016f000000000000000000000000000000000000000000000000000000000000016f200000000000000000000000000000000000000000000000000000000000016f400000000000000000000000000000000000000000000000000000000000016f600000000000000000000000000000000000000000000000000000000000016f800000000000000000000000000000000000000000000000000000000000016fa00000000000000000000000000000000000000000000000000000000000016fc00000000000000000000000000000000000000000000000000000000000016fe00000000000000000000000000000000000000000000000000000000000017000000000000000000000000000000000000000000000000000000000000001702000000000000000000000000000000000000000000000000000000000000170400000000000000000000000000000000000000000000000000000000000017060000000000000000000000000000000000000000000000000000000000001708000000000000000000000000000000000000000000000000000000000000170a000000000000000000000000000000000000000000000000000000000000170c000000000000000000000000000000000000000000000000000000000000170e00000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001712000000000000000000000000000000000000000000000000000000000000171400000000000000000000000000000000000000000000000000000000000017160000000000000000000000000000000000000000000000000000000000001718000000000000000000000000000000000000000000000000000000000000171a000000000000000000000000000000000000000000000000000000000000171c000000000000000000000000000000000000000000000000000000000000171e00000000000000000000000000000000000000000000000000000000000017200000000000000000000000000000000000000000000000000000000000001722000000000000000000000000000000000000000000000000000000000000172400000000000000000000000000000000000000000000000000000000000017260000000000000000000000000000000000000000000000000000000000001728000000000000000000000000000000000000000000000000000000000000172a000000000000000000000000000000000000000000000000000000000000172c000000000000000000000000000000000000000000000000000000000000172e00000000000000000000000000000000000000000000000000000000000017300000000000000000000000000000000000000000000000000000000000001732000000000000000000000000000000000000000000000000000000000000173400000000000000000000000000000000000000000000000000000000000017360000000000000000000000000000000000000000000000000000000000001738000000000000000000000000000000000000000000000000000000000000173a000000000000000000000000000000000000000000000000000000000000173c000000000000000000000000000000000000000000000000000000000000173e00000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001742000000000000000000000000000000000000000000000000000000000000174400000000000000000000000000000000000000000000000000000000000017460000000000000000000000000000000000000000000000000000000000001748000000000000000000000000000000000000000000000000000000000000174a000000000000000000000000000000000000000000000000000000000000174c000000000000000000000000000000000000000000000000000000000000174e00000000000000000000000000000000000000000000000000000000000017500000000000000000000000000000000000000000000000000000000000001752000000000000000000000000000000000000000000000000000000000000175400000000000000000000000000000000000000000000000000000000000017560000000000000000000000000000000000000000000000000000000000001758000000000000000000000000000000000000000000000000000000000000175a000000000000000000000000000000000000000000000000000000000000175c000000000000000000000000000000000000000000000000000000000000175e00000000000000000000000000000000000000000000000000000000000017600000000000000000000000000000000000000000000000000000000000001762000000000000000000000000000000000000000000000000000000000000176400000000000000000000000000000000000000000000000000000000000017660000000000000000000000000000000000000000000000000000000000001768000000000000000000000000000000000000000000000000000000000000176a000000000000000000000000000000000000000000000000000000000000176c000000000000000000000000000000000000000000000000000000000000176e00000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001772000000000000000000000000000000000000000000000000000000000000177400000000000000000000000000000000000000000000000000000000000017760000000000000000000000000000000000000000000000000000000000001778000000000000000000000000000000000000000000000000000000000000177a000000000000000000000000000000000000000000000000000000000000177c000000000000000000000000000000000000000000000000000000000000177e00000000000000000000000000000000000000000000000000000000000017800000000000000000000000000000000000000000000000000000000000001782000000000000000000000000000000000000000000000000000000000000178400000000000000000000000000000000000000000000000000000000000017860000000000000000000000000000000000000000000000000000000000001788000000000000000000000000000000000000000000000000000000000000178a000000000000000000000000000000000000000000000000000000000000178c000000000000000000000000000000000000000000000000000000000000178e00000000000000000000000000000000000000000000000000000000000017900000000000000000000000000000000000000000000000000000000000001792000000000000000000000000000000000000000000000000000000000000179400000000000000000000000000000000000000000000000000000000000017960000000000000000000000000000000000000000000000000000000000001798000000000000000000000000000000000000000000000000000000000000179a000000000000000000000000000000000000000000000000000000000000179c000000000000000000000000000000000000000000000000000000000000179e00000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017a200000000000000000000000000000000000000000000000000000000000017a400000000000000000000000000000000000000000000000000000000000017a600000000000000000000000000000000000000000000000000000000000017a800000000000000000000000000000000000000000000000000000000000017aa00000000000000000000000000000000000000000000000000000000000017ac00000000000000000000000000000000000000000000000000000000000017ae00000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017b200000000000000000000000000000000000000000000000000000000000017b400000000000000000000000000000000000000000000000000000000000017b600000000000000000000000000000000000000000000000000000000000017b800000000000000000000000000000000000000000000000000000000000017ba00000000000000000000000000000000000000000000000000000000000017bc00000000000000000000000000000000000000000000000000000000000017be00000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017c200000000000000000000000000000000000000000000000000000000000017c400000000000000000000000000000000000000000000000000000000000017c600000000000000000000000000000000000000000000000000000000000017c800000000000000000000000000000000000000000000000000000000000017ca00000000000000000000000000000000000000000000000000000000000017cc00000000000000000000000000000000000000000000000000000000000017ce00000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017d200000000000000000000000000000000000000000000000000000000000017d400000000000000000000000000000000000000000000000000000000000017d600000000000000000000000000000000000000000000000000000000000017d800000000000000000000000000000000000000000000000000000000000017da00000000000000000000000000000000000000000000000000000000000017dc00000000000000000000000000000000000000000000000000000000000017de00000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017e200000000000000000000000000000000000000000000000000000000000017e400000000000000000000000000000000000000000000000000000000000017e600000000000000000000000000000000000000000000000000000000000017e800000000000000000000000000000000000000000000000000000000000017ea00000000000000000000000000000000000000000000000000000000000017ec00000000000000000000000000000000000000000000000000000000000017ee00000000000000000000000000000000000000000000000000000000000017f000000000000000000000000000000000000000000000000000000000000017f200000000000000000000000000000000000000000000000000000000000017f400000000000000000000000000000000000000000000000000000000000017f600000000000000000000000000000000000000000000000000000000000017f800000000000000000000000000000000000000000000000000000000000017fa00000000000000000000000000000000000000000000000000000000000017fc00000000000000000000000000000000000000000000000000000000000017fe00000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001802000000000000000000000000000000000000000000000000000000000000180400000000000000000000000000000000000000000000000000000000000018060000000000000000000000000000000000000000000000000000000000001808000000000000000000000000000000000000000000000000000000000000180a000000000000000000000000000000000000000000000000000000000000180c000000000000000000000000000000000000000000000000000000000000180e00000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001812000000000000000000000000000000000000000000000000000000000000181400000000000000000000000000000000000000000000000000000000000018160000000000000000000000000000000000000000000000000000000000001818000000000000000000000000000000000000000000000000000000000000181a000000000000000000000000000000000000000000000000000000000000181c000000000000000000000000000000000000000000000000000000000000181e00000000000000000000000000000000000000000000000000000000000018200000000000000000000000000000000000000000000000000000000000001822000000000000000000000000000000000000000000000000000000000000182400000000000000000000000000000000000000000000000000000000000018260000000000000000000000000000000000000000000000000000000000001828000000000000000000000000000000000000000000000000000000000000182a000000000000000000000000000000000000000000000000000000000000182c000000000000000000000000000000000000000000000000000000000000182e00000000000000000000000000000000000000000000000000000000000018300000000000000000000000000000000000000000000000000000000000001832000000000000000000000000000000000000000000000000000000000000183400000000000000000000000000000000000000000000000000000000000018360000000000000000000000000000000000000000000000000000000000001838000000000000000000000000000000000000000000000000000000000000183a000000000000000000000000000000000000000000000000000000000000183c000000000000000000000000000000000000000000000000000000000000183e00000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001842000000000000000000000000000000000000000000000000000000000000184400000000000000000000000000000000000000000000000000000000000018460000000000000000000000000000000000000000000000000000000000001848000000000000000000000000000000000000000000000000000000000000184a000000000000000000000000000000000000000000000000000000000000184c000000000000000000000000000000000000000000000000000000000000184e00000000000000000000000000000000000000000000000000000000000018500000000000000000000000000000000000000000000000000000000000001852000000000000000000000000000000000000000000000000000000000000185400000000000000000000000000000000000000000000000000000000000018560000000000000000000000000000000000000000000000000000000000001858000000000000000000000000000000000000000000000000000000000000185a000000000000000000000000000000000000000000000000000000000000185c000000000000000000000000000000000000000000000000000000000000185e00000000000000000000000000000000000000000000000000000000000018600000000000000000000000000000000000000000000000000000000000001862000000000000000000000000000000000000000000000000000000000000186400000000000000000000000000000000000000000000000000000000000018660000000000000000000000000000000000000000000000000000000000001868000000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000186c000000000000000000000000000000000000000000000000000000000000186e00000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001872000000000000000000000000000000000000000000000000000000000000187400000000000000000000000000000000000000000000000000000000000018760000000000000000000000000000000000000000000000000000000000001878000000000000000000000000000000000000000000000000000000000000187a000000000000000000000000000000000000000000000000000000000000187c000000000000000000000000000000000000000000000000000000000000187e00000000000000000000000000000000000000000000000000000000000018800000000000000000000000000000000000000000000000000000000000001882000000000000000000000000000000000000000000000000000000000000188400000000000000000000000000000000000000000000000000000000000018860000000000000000000000000000000000000000000000000000000000001888000000000000000000000000000000000000000000000000000000000000188a000000000000000000000000000000000000000000000000000000000000188c000000000000000000000000000000000000000000000000000000000000188e00000000000000000000000000000000000000000000000000000000000018900000000000000000000000000000000000000000000000000000000000001892000000000000000000000000000000000000000000000000000000000000189400000000000000000000000000000000000000000000000000000000000018960000000000000000000000000000000000000000000000000000000000001898000000000000000000000000000000000000000000000000000000000000189a000000000000000000000000000000000000000000000000000000000000189c000000000000000000000000000000000000000000000000000000000000189e00000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018a200000000000000000000000000000000000000000000000000000000000018a400000000000000000000000000000000000000000000000000000000000018a600000000000000000000000000000000000000000000000000000000000018a800000000000000000000000000000000000000000000000000000000000018aa00000000000000000000000000000000000000000000000000000000000018ac00000000000000000000000000000000000000000000000000000000000018ae00000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018b200000000000000000000000000000000000000000000000000000000000018b400000000000000000000000000000000000000000000000000000000000018b600000000000000000000000000000000000000000000000000000000000018b800000000000000000000000000000000000000000000000000000000000018ba00000000000000000000000000000000000000000000000000000000000018bc00000000000000000000000000000000000000000000000000000000000018be00000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018c200000000000000000000000000000000000000000000000000000000000018c400000000000000000000000000000000000000000000000000000000000018c600000000000000000000000000000000000000000000000000000000000018c800000000000000000000000000000000000000000000000000000000000018ca00000000000000000000000000000000000000000000000000000000000018cc00000000000000000000000000000000000000000000000000000000000018ce00000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018d200000000000000000000000000000000000000000000000000000000000018d400000000000000000000000000000000000000000000000000000000000018d600000000000000000000000000000000000000000000000000000000000018d800000000000000000000000000000000000000000000000000000000000018da00000000000000000000000000000000000000000000000000000000000018dc00000000000000000000000000000000000000000000000000000000000018de00000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018e200000000000000000000000000000000000000000000000000000000000018e400000000000000000000000000000000000000000000000000000000000018e600000000000000000000000000000000000000000000000000000000000018e800000000000000000000000000000000000000000000000000000000000018ea00000000000000000000000000000000000000000000000000000000000018ec00000000000000000000000000000000000000000000000000000000000018ee00000000000000000000000000000000000000000000000000000000000018f000000000000000000000000000000000000000000000000000000000000018f200000000000000000000000000000000000000000000000000000000000018f400000000000000000000000000000000000000000000000000000000000018f600000000000000000000000000000000000000000000000000000000000018f800000000000000000000000000000000000000000000000000000000000018fa00000000000000000000000000000000000000000000000000000000000018fc00000000000000000000000000000000000000000000000000000000000018fe00000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000001902000000000000000000000000000000000000000000000000000000000000190400000000000000000000000000000000000000000000000000000000000019060000000000000000000000000000000000000000000000000000000000001908000000000000000000000000000000000000000000000000000000000000190a000000000000000000000000000000000000000000000000000000000000190c000000000000000000000000000000000000000000000000000000000000190e00000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001912000000000000000000000000000000000000000000000000000000000000191400000000000000000000000000000000000000000000000000000000000019160000000000000000000000000000000000000000000000000000000000001918000000000000000000000000000000000000000000000000000000000000191a000000000000000000000000000000000000000000000000000000000000191c000000000000000000000000000000000000000000000000000000000000191e00000000000000000000000000000000000000000000000000000000000019200000000000000000000000000000000000000000000000000000000000001922000000000000000000000000000000000000000000000000000000000000192400000000000000000000000000000000000000000000000000000000000019260000000000000000000000000000000000000000000000000000000000001928000000000000000000000000000000000000000000000000000000000000192a000000000000000000000000000000000000000000000000000000000000192c000000000000000000000000000000000000000000000000000000000000192e00000000000000000000000000000000000000000000000000000000000019300000000000000000000000000000000000000000000000000000000000001932000000000000000000000000000000000000000000000000000000000000193400000000000000000000000000000000000000000000000000000000000019360000000000000000000000000000000000000000000000000000000000001938000000000000000000000000000000000000000000000000000000000000193a000000000000000000000000000000000000000000000000000000000000193c000000000000000000000000000000000000000000000000000000000000193e00000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001942000000000000000000000000000000000000000000000000000000000000194400000000000000000000000000000000000000000000000000000000000019460000000000000000000000000000000000000000000000000000000000001948000000000000000000000000000000000000000000000000000000000000194a000000000000000000000000000000000000000000000000000000000000194c000000000000000000000000000000000000000000000000000000000000194e00000000000000000000000000000000000000000000000000000000000019500000000000000000000000000000000000000000000000000000000000001952000000000000000000000000000000000000000000000000000000000000195400000000000000000000000000000000000000000000000000000000000019560000000000000000000000000000000000000000000000000000000000001958000000000000000000000000000000000000000000000000000000000000195a000000000000000000000000000000000000000000000000000000000000195c000000000000000000000000000000000000000000000000000000000000195e00000000000000000000000000000000000000000000000000000000000019600000000000000000000000000000000000000000000000000000000000001962000000000000000000000000000000000000000000000000000000000000196400000000000000000000000000000000000000000000000000000000000019660000000000000000000000000000000000000000000000000000000000001968000000000000000000000000000000000000000000000000000000000000196a000000000000000000000000000000000000000000000000000000000000196c000000000000000000000000000000000000000000000000000000000000196e00000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001972000000000000000000000000000000000000000000000000000000000000197400000000000000000000000000000000000000000000000000000000000019760000000000000000000000000000000000000000000000000000000000001978000000000000000000000000000000000000000000000000000000000000197a000000000000000000000000000000000000000000000000000000000000197c000000000000000000000000000000000000000000000000000000000000197e00000000000000000000000000000000000000000000000000000000000019800000000000000000000000000000000000000000000000000000000000001982000000000000000000000000000000000000000000000000000000000000198400000000000000000000000000000000000000000000000000000000000019860000000000000000000000000000000000000000000000000000000000001988000000000000000000000000000000000000000000000000000000000000198a000000000000000000000000000000000000000000000000000000000000198c000000000000000000000000000000000000000000000000000000000000198e00000000000000000000000000000000000000000000000000000000000019900000000000000000000000000000000000000000000000000000000000001992000000000000000000000000000000000000000000000000000000000000199400000000000000000000000000000000000000000000000000000000000019960000000000000000000000000000000000000000000000000000000000001998000000000000000000000000000000000000000000000000000000000000199a000000000000000000000000000000000000000000000000000000000000199c000000000000000000000000000000000000000000000000000000000000199e00000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019a200000000000000000000000000000000000000000000000000000000000019a400000000000000000000000000000000000000000000000000000000000019a600000000000000000000000000000000000000000000000000000000000019a800000000000000000000000000000000000000000000000000000000000019aa00000000000000000000000000000000000000000000000000000000000019ac00000000000000000000000000000000000000000000000000000000000019ae00000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019b200000000000000000000000000000000000000000000000000000000000019b400000000000000000000000000000000000000000000000000000000000019b600000000000000000000000000000000000000000000000000000000000019b800000000000000000000000000000000000000000000000000000000000019ba00000000000000000000000000000000000000000000000000000000000019bc00000000000000000000000000000000000000000000000000000000000019be00000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019c200000000000000000000000000000000000000000000000000000000000019c400000000000000000000000000000000000000000000000000000000000019c600000000000000000000000000000000000000000000000000000000000019c800000000000000000000000000000000000000000000000000000000000019ca00000000000000000000000000000000000000000000000000000000000019cc00000000000000000000000000000000000000000000000000000000000019ce00000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019d200000000000000000000000000000000000000000000000000000000000019d400000000000000000000000000000000000000000000000000000000000019d600000000000000000000000000000000000000000000000000000000000019d800000000000000000000000000000000000000000000000000000000000019da00000000000000000000000000000000000000000000000000000000000019dc00000000000000000000000000000000000000000000000000000000000019de00000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019e200000000000000000000000000000000000000000000000000000000000019e400000000000000000000000000000000000000000000000000000000000019e600000000000000000000000000000000000000000000000000000000000019e800000000000000000000000000000000000000000000000000000000000019ea00000000000000000000000000000000000000000000000000000000000019ec00000000000000000000000000000000000000000000000000000000000019ee00000000000000000000000000000000000000000000000000000000000019f000000000000000000000000000000000000000000000000000000000000019f200000000000000000000000000000000000000000000000000000000000019f400000000000000000000000000000000000000000000000000000000000019f600000000000000000000000000000000000000000000000000000000000019f800000000000000000000000000000000000000000000000000000000000019fa00000000000000000000000000000000000000000000000000000000000019fc00000000000000000000000000000000000000000000000000000000000019fe0000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a020000000000000000000000000000000000000000000000000000000000001a040000000000000000000000000000000000000000000000000000000000001a060000000000000000000000000000000000000000000000000000000000001a080000000000000000000000000000000000000000000000000000000000001a0a0000000000000000000000000000000000000000000000000000000000001a0c0000000000000000000000000000000000000000000000000000000000001a0e0000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a120000000000000000000000000000000000000000000000000000000000001a140000000000000000000000000000000000000000000000000000000000001a160000000000000000000000000000000000000000000000000000000000001a180000000000000000000000000000000000000000000000000000000000001a1a0000000000000000000000000000000000000000000000000000000000001a1c0000000000000000000000000000000000000000000000000000000000001a1e0000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a220000000000000000000000000000000000000000000000000000000000001a240000000000000000000000000000000000000000000000000000000000001a260000000000000000000000000000000000000000000000000000000000001a280000000000000000000000000000000000000000000000000000000000001a2a0000000000000000000000000000000000000000000000000000000000001a2c0000000000000000000000000000000000000000000000000000000000001a2e0000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a320000000000000000000000000000000000000000000000000000000000001a340000000000000000000000000000000000000000000000000000000000001a360000000000000000000000000000000000000000000000000000000000001a380000000000000000000000000000000000000000000000000000000000001a3a0000000000000000000000000000000000000000000000000000000000001a3c0000000000000000000000000000000000000000000000000000000000001a3e0000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a420000000000000000000000000000000000000000000000000000000000001a440000000000000000000000000000000000000000000000000000000000001a460000000000000000000000000000000000000000000000000000000000001a480000000000000000000000000000000000000000000000000000000000001a4a0000000000000000000000000000000000000000000000000000000000001a4c0000000000000000000000000000000000000000000000000000000000001a4e0000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a520000000000000000000000000000000000000000000000000000000000001a540000000000000000000000000000000000000000000000000000000000001a560000000000000000000000000000000000000000000000000000000000001a580000000000000000000000000000000000000000000000000000000000001a5a0000000000000000000000000000000000000000000000000000000000001a5c0000000000000000000000000000000000000000000000000000000000001a5e0000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a620000000000000000000000000000000000000000000000000000000000001a640000000000000000000000000000000000000000000000000000000000001a660000000000000000000000000000000000000000000000000000000000001a680000000000000000000000000000000000000000000000000000000000001a6a0000000000000000000000000000000000000000000000000000000000001a6c0000000000000000000000000000000000000000000000000000000000001a6e0000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a720000000000000000000000000000000000000000000000000000000000001a740000000000000000000000000000000000000000000000000000000000001a760000000000000000000000000000000000000000000000000000000000001a780000000000000000000000000000000000000000000000000000000000001a7a0000000000000000000000000000000000000000000000000000000000001a7c0000000000000000000000000000000000000000000000000000000000001a7e0000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a820000000000000000000000000000000000000000000000000000000000001a840000000000000000000000000000000000000000000000000000000000001a860000000000000000000000000000000000000000000000000000000000001a880000000000000000000000000000000000000000000000000000000000001a8a0000000000000000000000000000000000000000000000000000000000001a8c0000000000000000000000000000000000000000000000000000000000001a8e0000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001a920000000000000000000000000000000000000000000000000000000000001a940000000000000000000000000000000000000000000000000000000000001a960000000000000000000000000000000000000000000000000000000000001a980000000000000000000000000000000000000000000000000000000000001a9a0000000000000000000000000000000000000000000000000000000000001a9c0000000000000000000000000000000000000000000000000000000000001a9e0000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001aa20000000000000000000000000000000000000000000000000000000000001aa40000000000000000000000000000000000000000000000000000000000001aa60000000000000000000000000000000000000000000000000000000000001aa80000000000000000000000000000000000000000000000000000000000001aaa0000000000000000000000000000000000000000000000000000000000001aac0000000000000000000000000000000000000000000000000000000000001aae0000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ab20000000000000000000000000000000000000000000000000000000000001ab40000000000000000000000000000000000000000000000000000000000001ab60000000000000000000000000000000000000000000000000000000000001ab80000000000000000000000000000000000000000000000000000000000001aba0000000000000000000000000000000000000000000000000000000000001abc0000000000000000000000000000000000000000000000000000000000001abe0000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ac20000000000000000000000000000000000000000000000000000000000001ac40000000000000000000000000000000000000000000000000000000000001ac60000000000000000000000000000000000000000000000000000000000001ac80000000000000000000000000000000000000000000000000000000000001aca0000000000000000000000000000000000000000000000000000000000001acc0000000000000000000000000000000000000000000000000000000000001ace0000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ad20000000000000000000000000000000000000000000000000000000000001ad40000000000000000000000000000000000000000000000000000000000001ad60000000000000000000000000000000000000000000000000000000000001ad80000000000000000000000000000000000000000000000000000000000001ada0000000000000000000000000000000000000000000000000000000000001adc0000000000000000000000000000000000000000000000000000000000001ade0000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001ae20000000000000000000000000000000000000000000000000000000000001ae40000000000000000000000000000000000000000000000000000000000001ae60000000000000000000000000000000000000000000000000000000000001ae80000000000000000000000000000000000000000000000000000000000001aea0000000000000000000000000000000000000000000000000000000000001aec0000000000000000000000000000000000000000000000000000000000001aee0000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001af20000000000000000000000000000000000000000000000000000000000001af40000000000000000000000000000000000000000000000000000000000001af60000000000000000000000000000000000000000000000000000000000001af80000000000000000000000000000000000000000000000000000000000001afa0000000000000000000000000000000000000000000000000000000000001afc0000000000000000000000000000000000000000000000000000000000001afe0000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b020000000000000000000000000000000000000000000000000000000000001b040000000000000000000000000000000000000000000000000000000000001b060000000000000000000000000000000000000000000000000000000000001b080000000000000000000000000000000000000000000000000000000000001b0a0000000000000000000000000000000000000000000000000000000000001b0c0000000000000000000000000000000000000000000000000000000000001b0e0000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b120000000000000000000000000000000000000000000000000000000000001b140000000000000000000000000000000000000000000000000000000000001b160000000000000000000000000000000000000000000000000000000000001b180000000000000000000000000000000000000000000000000000000000001b1a0000000000000000000000000000000000000000000000000000000000001b1c0000000000000000000000000000000000000000000000000000000000001b1e0000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b220000000000000000000000000000000000000000000000000000000000001b240000000000000000000000000000000000000000000000000000000000001b260000000000000000000000000000000000000000000000000000000000001b280000000000000000000000000000000000000000000000000000000000001b2a0000000000000000000000000000000000000000000000000000000000001b2c0000000000000000000000000000000000000000000000000000000000001b2e0000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b320000000000000000000000000000000000000000000000000000000000001b340000000000000000000000000000000000000000000000000000000000001b360000000000000000000000000000000000000000000000000000000000001b380000000000000000000000000000000000000000000000000000000000001b3a0000000000000000000000000000000000000000000000000000000000001b3c0000000000000000000000000000000000000000000000000000000000001b3e0000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b420000000000000000000000000000000000000000000000000000000000001b440000000000000000000000000000000000000000000000000000000000001b460000000000000000000000000000000000000000000000000000000000001b480000000000000000000000000000000000000000000000000000000000001b4a0000000000000000000000000000000000000000000000000000000000001b4c0000000000000000000000000000000000000000000000000000000000001b4e0000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b520000000000000000000000000000000000000000000000000000000000001b540000000000000000000000000000000000000000000000000000000000001b560000000000000000000000000000000000000000000000000000000000001b580000000000000000000000000000000000000000000000000000000000001b5a0000000000000000000000000000000000000000000000000000000000001b5c0000000000000000000000000000000000000000000000000000000000001b5e0000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b620000000000000000000000000000000000000000000000000000000000001b640000000000000000000000000000000000000000000000000000000000001b660000000000000000000000000000000000000000000000000000000000001b680000000000000000000000000000000000000000000000000000000000001b6a0000000000000000000000000000000000000000000000000000000000001b6c0000000000000000000000000000000000000000000000000000000000001b6e0000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b720000000000000000000000000000000000000000000000000000000000001b740000000000000000000000000000000000000000000000000000000000001b760000000000000000000000000000000000000000000000000000000000001b780000000000000000000000000000000000000000000000000000000000001b7a0000000000000000000000000000000000000000000000000000000000001b7c0000000000000000000000000000000000000000000000000000000000001b7e0000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b820000000000000000000000000000000000000000000000000000000000001b840000000000000000000000000000000000000000000000000000000000001b860000000000000000000000000000000000000000000000000000000000001b880000000000000000000000000000000000000000000000000000000000001b8a0000000000000000000000000000000000000000000000000000000000001b8c0000000000000000000000000000000000000000000000000000000000001b8e0000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001b920000000000000000000000000000000000000000000000000000000000001b940000000000000000000000000000000000000000000000000000000000001b960000000000000000000000000000000000000000000000000000000000001b980000000000000000000000000000000000000000000000000000000000001b9a0000000000000000000000000000000000000000000000000000000000001b9c0000000000000000000000000000000000000000000000000000000000001b9e0000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001ba20000000000000000000000000000000000000000000000000000000000001ba40000000000000000000000000000000000000000000000000000000000001ba60000000000000000000000000000000000000000000000000000000000001ba80000000000000000000000000000000000000000000000000000000000001baa0000000000000000000000000000000000000000000000000000000000001bac0000000000000000000000000000000000000000000000000000000000001bae0000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bb20000000000000000000000000000000000000000000000000000000000001bb40000000000000000000000000000000000000000000000000000000000001bb60000000000000000000000000000000000000000000000000000000000001bb80000000000000000000000000000000000000000000000000000000000001bba0000000000000000000000000000000000000000000000000000000000001bbc0000000000000000000000000000000000000000000000000000000000001bbe0000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bc20000000000000000000000000000000000000000000000000000000000001bc40000000000000000000000000000000000000000000000000000000000001bc60000000000000000000000000000000000000000000000000000000000001bc80000000000000000000000000000000000000000000000000000000000001bca0000000000000000000000000000000000000000000000000000000000001bcc0000000000000000000000000000000000000000000000000000000000001bce0000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001bd20000000000000000000000000000000000000000000000000000000000001bd40000000000000000000000000000000000000000000000000000000000001bd60000000000000000000000000000000000000000000000000000000000001bd80000000000000000000000000000000000000000000000000000000000001bda0000000000000000000000000000000000000000000000000000000000001bdc0000000000000000000000000000000000000000000000000000000000001bde0000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001be20000000000000000000000000000000000000000000000000000000000001be40000000000000000000000000000000000000000000000000000000000001be60000000000000000000000000000000000000000000000000000000000001be80000000000000000000000000000000000000000000000000000000000001bea0000000000000000000000000000000000000000000000000000000000001bec0000000000000000000000000000000000000000000000000000000000001bee0000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001bf20000000000000000000000000000000000000000000000000000000000001bf40000000000000000000000000000000000000000000000000000000000001bf60000000000000000000000000000000000000000000000000000000000001bf80000000000000000000000000000000000000000000000000000000000001bfa0000000000000000000000000000000000000000000000000000000000001bfc0000000000000000000000000000000000000000000000000000000000001bfe0000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c020000000000000000000000000000000000000000000000000000000000001c040000000000000000000000000000000000000000000000000000000000001c060000000000000000000000000000000000000000000000000000000000001c080000000000000000000000000000000000000000000000000000000000001c0a0000000000000000000000000000000000000000000000000000000000001c0c0000000000000000000000000000000000000000000000000000000000001c0e0000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c120000000000000000000000000000000000000000000000000000000000001c140000000000000000000000000000000000000000000000000000000000001c160000000000000000000000000000000000000000000000000000000000001c180000000000000000000000000000000000000000000000000000000000001c1a0000000000000000000000000000000000000000000000000000000000001c1c0000000000000000000000000000000000000000000000000000000000001c1e0000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c220000000000000000000000000000000000000000000000000000000000001c240000000000000000000000000000000000000000000000000000000000001c260000000000000000000000000000000000000000000000000000000000001c280000000000000000000000000000000000000000000000000000000000001c2a0000000000000000000000000000000000000000000000000000000000001c2c0000000000000000000000000000000000000000000000000000000000001c2e0000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c320000000000000000000000000000000000000000000000000000000000001c340000000000000000000000000000000000000000000000000000000000001c360000000000000000000000000000000000000000000000000000000000001c380000000000000000000000000000000000000000000000000000000000001c3a0000000000000000000000000000000000000000000000000000000000001c3c0000000000000000000000000000000000000000000000000000000000001c3e0000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c420000000000000000000000000000000000000000000000000000000000001c440000000000000000000000000000000000000000000000000000000000001c460000000000000000000000000000000000000000000000000000000000001c480000000000000000000000000000000000000000000000000000000000001c4a0000000000000000000000000000000000000000000000000000000000001c4c0000000000000000000000000000000000000000000000000000000000001c4e0000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c520000000000000000000000000000000000000000000000000000000000001c540000000000000000000000000000000000000000000000000000000000001c560000000000000000000000000000000000000000000000000000000000001c580000000000000000000000000000000000000000000000000000000000001c5a0000000000000000000000000000000000000000000000000000000000001c5c0000000000000000000000000000000000000000000000000000000000001c5e0000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c620000000000000000000000000000000000000000000000000000000000001c640000000000000000000000000000000000000000000000000000000000001c660000000000000000000000000000000000000000000000000000000000001c680000000000000000000000000000000000000000000000000000000000001c6a0000000000000000000000000000000000000000000000000000000000001c6c0000000000000000000000000000000000000000000000000000000000001c6e0000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c720000000000000000000000000000000000000000000000000000000000001c740000000000000000000000000000000000000000000000000000000000001c760000000000000000000000000000000000000000000000000000000000001c780000000000000000000000000000000000000000000000000000000000001c7a0000000000000000000000000000000000000000000000000000000000001c7c0000000000000000000000000000000000000000000000000000000000001c7e0000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c820000000000000000000000000000000000000000000000000000000000001c840000000000000000000000000000000000000000000000000000000000001c860000000000000000000000000000000000000000000000000000000000001c880000000000000000000000000000000000000000000000000000000000001c8a0000000000000000000000000000000000000000000000000000000000001c8c0000000000000000000000000000000000000000000000000000000000001c8e0000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001c920000000000000000000000000000000000000000000000000000000000001c940000000000000000000000000000000000000000000000000000000000001c960000000000000000000000000000000000000000000000000000000000001c980000000000000000000000000000000000000000000000000000000000001c9a0000000000000000000000000000000000000000000000000000000000001c9c0000000000000000000000000000000000000000000000000000000000001c9e0000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001ca20000000000000000000000000000000000000000000000000000000000001ca40000000000000000000000000000000000000000000000000000000000001ca60000000000000000000000000000000000000000000000000000000000001ca80000000000000000000000000000000000000000000000000000000000001caa0000000000000000000000000000000000000000000000000000000000001cac0000000000000000000000000000000000000000000000000000000000001cae0000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cb20000000000000000000000000000000000000000000000000000000000001cb40000000000000000000000000000000000000000000000000000000000001cb60000000000000000000000000000000000000000000000000000000000001cb80000000000000000000000000000000000000000000000000000000000001cba0000000000000000000000000000000000000000000000000000000000001cbc0000000000000000000000000000000000000000000000000000000000001cbe0000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cc20000000000000000000000000000000000000000000000000000000000001cc40000000000000000000000000000000000000000000000000000000000001cc60000000000000000000000000000000000000000000000000000000000001cc80000000000000000000000000000000000000000000000000000000000001cca0000000000000000000000000000000000000000000000000000000000001ccc0000000000000000000000000000000000000000000000000000000000001cce0000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001cd20000000000000000000000000000000000000000000000000000000000001cd40000000000000000000000000000000000000000000000000000000000001cd60000000000000000000000000000000000000000000000000000000000001cd80000000000000000000000000000000000000000000000000000000000001cda0000000000000000000000000000000000000000000000000000000000001cdc0000000000000000000000000000000000000000000000000000000000001cde0000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001ce20000000000000000000000000000000000000000000000000000000000001ce40000000000000000000000000000000000000000000000000000000000001ce60000000000000000000000000000000000000000000000000000000000001ce80000000000000000000000000000000000000000000000000000000000001cea0000000000000000000000000000000000000000000000000000000000001cec0000000000000000000000000000000000000000000000000000000000001cee0000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001cf20000000000000000000000000000000000000000000000000000000000001cf40000000000000000000000000000000000000000000000000000000000001cf60000000000000000000000000000000000000000000000000000000000001cf80000000000000000000000000000000000000000000000000000000000001cfa0000000000000000000000000000000000000000000000000000000000001cfc0000000000000000000000000000000000000000000000000000000000001cfe0000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d020000000000000000000000000000000000000000000000000000000000001d040000000000000000000000000000000000000000000000000000000000001d060000000000000000000000000000000000000000000000000000000000001d080000000000000000000000000000000000000000000000000000000000001d0a0000000000000000000000000000000000000000000000000000000000001d0c0000000000000000000000000000000000000000000000000000000000001d0e0000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d120000000000000000000000000000000000000000000000000000000000001d140000000000000000000000000000000000000000000000000000000000001d160000000000000000000000000000000000000000000000000000000000001d180000000000000000000000000000000000000000000000000000000000001d1a0000000000000000000000000000000000000000000000000000000000001d1c0000000000000000000000000000000000000000000000000000000000001d1e0000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d220000000000000000000000000000000000000000000000000000000000001d240000000000000000000000000000000000000000000000000000000000001d260000000000000000000000000000000000000000000000000000000000001d280000000000000000000000000000000000000000000000000000000000001d2a0000000000000000000000000000000000000000000000000000000000001d2c0000000000000000000000000000000000000000000000000000000000001d2e0000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d320000000000000000000000000000000000000000000000000000000000001d340000000000000000000000000000000000000000000000000000000000001d360000000000000000000000000000000000000000000000000000000000001d380000000000000000000000000000000000000000000000000000000000001d3a0000000000000000000000000000000000000000000000000000000000001d3c0000000000000000000000000000000000000000000000000000000000001d3e0000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d420000000000000000000000000000000000000000000000000000000000001d440000000000000000000000000000000000000000000000000000000000001d460000000000000000000000000000000000000000000000000000000000001d480000000000000000000000000000000000000000000000000000000000001d4a0000000000000000000000000000000000000000000000000000000000001d4c0000000000000000000000000000000000000000000000000000000000001d4e0000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d520000000000000000000000000000000000000000000000000000000000001d540000000000000000000000000000000000000000000000000000000000001d560000000000000000000000000000000000000000000000000000000000001d580000000000000000000000000000000000000000000000000000000000001d5a0000000000000000000000000000000000000000000000000000000000001d5c0000000000000000000000000000000000000000000000000000000000001d5e0000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d620000000000000000000000000000000000000000000000000000000000001d640000000000000000000000000000000000000000000000000000000000001d660000000000000000000000000000000000000000000000000000000000001d680000000000000000000000000000000000000000000000000000000000001d6a0000000000000000000000000000000000000000000000000000000000001d6c0000000000000000000000000000000000000000000000000000000000001d6e0000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d720000000000000000000000000000000000000000000000000000000000001d740000000000000000000000000000000000000000000000000000000000001d760000000000000000000000000000000000000000000000000000000000001d780000000000000000000000000000000000000000000000000000000000001d7a0000000000000000000000000000000000000000000000000000000000001d7c0000000000000000000000000000000000000000000000000000000000001d7e0000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d820000000000000000000000000000000000000000000000000000000000001d840000000000000000000000000000000000000000000000000000000000001d860000000000000000000000000000000000000000000000000000000000001d880000000000000000000000000000000000000000000000000000000000001d8a0000000000000000000000000000000000000000000000000000000000001d8c0000000000000000000000000000000000000000000000000000000000001d8e0000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001d920000000000000000000000000000000000000000000000000000000000001d940000000000000000000000000000000000000000000000000000000000001d960000000000000000000000000000000000000000000000000000000000001d980000000000000000000000000000000000000000000000000000000000001d9a0000000000000000000000000000000000000000000000000000000000001d9c0000000000000000000000000000000000000000000000000000000000001d9e0000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001da20000000000000000000000000000000000000000000000000000000000001da40000000000000000000000000000000000000000000000000000000000001da60000000000000000000000000000000000000000000000000000000000001da80000000000000000000000000000000000000000000000000000000000001daa0000000000000000000000000000000000000000000000000000000000001dac0000000000000000000000000000000000000000000000000000000000001dae0000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001db20000000000000000000000000000000000000000000000000000000000001db40000000000000000000000000000000000000000000000000000000000001db60000000000000000000000000000000000000000000000000000000000001db80000000000000000000000000000000000000000000000000000000000001dba0000000000000000000000000000000000000000000000000000000000001dbc0000000000000000000000000000000000000000000000000000000000001dbe0000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dc20000000000000000000000000000000000000000000000000000000000001dc40000000000000000000000000000000000000000000000000000000000001dc60000000000000000000000000000000000000000000000000000000000001dc80000000000000000000000000000000000000000000000000000000000001dca0000000000000000000000000000000000000000000000000000000000001dcc0000000000000000000000000000000000000000000000000000000000001dce0000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001dd20000000000000000000000000000000000000000000000000000000000001dd40000000000000000000000000000000000000000000000000000000000001dd60000000000000000000000000000000000000000000000000000000000001dd80000000000000000000000000000000000000000000000000000000000001dda0000000000000000000000000000000000000000000000000000000000001ddc0000000000000000000000000000000000000000000000000000000000001dde0000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001de20000000000000000000000000000000000000000000000000000000000001de40000000000000000000000000000000000000000000000000000000000001de60000000000000000000000000000000000000000000000000000000000001de80000000000000000000000000000000000000000000000000000000000001dea0000000000000000000000000000000000000000000000000000000000001dec0000000000000000000000000000000000000000000000000000000000001dee0000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001df20000000000000000000000000000000000000000000000000000000000001df40000000000000000000000000000000000000000000000000000000000001df60000000000000000000000000000000000000000000000000000000000001df80000000000000000000000000000000000000000000000000000000000001dfa0000000000000000000000000000000000000000000000000000000000001dfc0000000000000000000000000000000000000000000000000000000000001dfe0000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e020000000000000000000000000000000000000000000000000000000000001e040000000000000000000000000000000000000000000000000000000000001e060000000000000000000000000000000000000000000000000000000000001e080000000000000000000000000000000000000000000000000000000000001e0a0000000000000000000000000000000000000000000000000000000000001e0c0000000000000000000000000000000000000000000000000000000000001e0e0000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e120000000000000000000000000000000000000000000000000000000000001e140000000000000000000000000000000000000000000000000000000000001e160000000000000000000000000000000000000000000000000000000000001e180000000000000000000000000000000000000000000000000000000000001e1a0000000000000000000000000000000000000000000000000000000000001e1c0000000000000000000000000000000000000000000000000000000000001e1e0000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e220000000000000000000000000000000000000000000000000000000000001e240000000000000000000000000000000000000000000000000000000000001e260000000000000000000000000000000000000000000000000000000000001e280000000000000000000000000000000000000000000000000000000000001e2a0000000000000000000000000000000000000000000000000000000000001e2c0000000000000000000000000000000000000000000000000000000000001e2e0000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e320000000000000000000000000000000000000000000000000000000000001e340000000000000000000000000000000000000000000000000000000000001e360000000000000000000000000000000000000000000000000000000000001e380000000000000000000000000000000000000000000000000000000000001e3a0000000000000000000000000000000000000000000000000000000000001e3c0000000000000000000000000000000000000000000000000000000000001e3e0000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e420000000000000000000000000000000000000000000000000000000000001e440000000000000000000000000000000000000000000000000000000000001e460000000000000000000000000000000000000000000000000000000000001e480000000000000000000000000000000000000000000000000000000000001e4a0000000000000000000000000000000000000000000000000000000000001e4c0000000000000000000000000000000000000000000000000000000000001e4e0000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e520000000000000000000000000000000000000000000000000000000000001e540000000000000000000000000000000000000000000000000000000000001e560000000000000000000000000000000000000000000000000000000000001e580000000000000000000000000000000000000000000000000000000000001e5a0000000000000000000000000000000000000000000000000000000000001e5c0000000000000000000000000000000000000000000000000000000000001e5e0000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e620000000000000000000000000000000000000000000000000000000000001e640000000000000000000000000000000000000000000000000000000000001e660000000000000000000000000000000000000000000000000000000000001e680000000000000000000000000000000000000000000000000000000000001e6a0000000000000000000000000000000000000000000000000000000000001e6c0000000000000000000000000000000000000000000000000000000000001e6e0000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e720000000000000000000000000000000000000000000000000000000000001e740000000000000000000000000000000000000000000000000000000000001e760000000000000000000000000000000000000000000000000000000000001e780000000000000000000000000000000000000000000000000000000000001e7a0000000000000000000000000000000000000000000000000000000000001e7c0000000000000000000000000000000000000000000000000000000000001e7e0000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e820000000000000000000000000000000000000000000000000000000000001e840000000000000000000000000000000000000000000000000000000000001e860000000000000000000000000000000000000000000000000000000000001e880000000000000000000000000000000000000000000000000000000000001e8a0000000000000000000000000000000000000000000000000000000000001e8c0000000000000000000000000000000000000000000000000000000000001e8e0000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001e920000000000000000000000000000000000000000000000000000000000001e940000000000000000000000000000000000000000000000000000000000001e960000000000000000000000000000000000000000000000000000000000001e980000000000000000000000000000000000000000000000000000000000001e9a0000000000000000000000000000000000000000000000000000000000001e9c0000000000000000000000000000000000000000000000000000000000001e9e0000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001ea20000000000000000000000000000000000000000000000000000000000001ea40000000000000000000000000000000000000000000000000000000000001ea60000000000000000000000000000000000000000000000000000000000001ea80000000000000000000000000000000000000000000000000000000000001eaa0000000000000000000000000000000000000000000000000000000000001eac0000000000000000000000000000000000000000000000000000000000001eae0000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001eb20000000000000000000000000000000000000000000000000000000000001eb40000000000000000000000000000000000000000000000000000000000001eb60000000000000000000000000000000000000000000000000000000000001eb80000000000000000000000000000000000000000000000000000000000001eba0000000000000000000000000000000000000000000000000000000000001ebc0000000000000000000000000000000000000000000000000000000000001ebe0000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ec20000000000000000000000000000000000000000000000000000000000001ec40000000000000000000000000000000000000000000000000000000000001ec60000000000000000000000000000000000000000000000000000000000001ec80000000000000000000000000000000000000000000000000000000000001eca0000000000000000000000000000000000000000000000000000000000001ecc0000000000000000000000000000000000000000000000000000000000001ece0000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ed20000000000000000000000000000000000000000000000000000000000001ed40000000000000000000000000000000000000000000000000000000000001ed60000000000000000000000000000000000000000000000000000000000001ed80000000000000000000000000000000000000000000000000000000000001eda0000000000000000000000000000000000000000000000000000000000001edc0000000000000000000000000000000000000000000000000000000000001ede0000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ee20000000000000000000000000000000000000000000000000000000000001ee40000000000000000000000000000000000000000000000000000000000001ee60000000000000000000000000000000000000000000000000000000000001ee80000000000000000000000000000000000000000000000000000000000001eea0000000000000000000000000000000000000000000000000000000000001eec0000000000000000000000000000000000000000000000000000000000001eee0000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001ef20000000000000000000000000000000000000000000000000000000000001ef40000000000000000000000000000000000000000000000000000000000001ef60000000000000000000000000000000000000000000000000000000000001ef80000000000000000000000000000000000000000000000000000000000001efa0000000000000000000000000000000000000000000000000000000000001efc0000000000000000000000000000000000000000000000000000000000001efe0000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f020000000000000000000000000000000000000000000000000000000000001f040000000000000000000000000000000000000000000000000000000000001f060000000000000000000000000000000000000000000000000000000000001f080000000000000000000000000000000000000000000000000000000000001f0a0000000000000000000000000000000000000000000000000000000000001f0c0000000000000000000000000000000000000000000000000000000000001f0e0000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f120000000000000000000000000000000000000000000000000000000000001f140000000000000000000000000000000000000000000000000000000000001f160000000000000000000000000000000000000000000000000000000000001f180000000000000000000000000000000000000000000000000000000000001f1a0000000000000000000000000000000000000000000000000000000000001f1c0000000000000000000000000000000000000000000000000000000000001f1e0000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f220000000000000000000000000000000000000000000000000000000000001f240000000000000000000000000000000000000000000000000000000000001f260000000000000000000000000000000000000000000000000000000000001f280000000000000000000000000000000000000000000000000000000000001f2a0000000000000000000000000000000000000000000000000000000000001f2c0000000000000000000000000000000000000000000000000000000000001f2e0000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f320000000000000000000000000000000000000000000000000000000000001f340000000000000000000000000000000000000000000000000000000000001f360000000000000000000000000000000000000000000000000000000000001f380000000000000000000000000000000000000000000000000000000000001f3a0000000000000000000000000000000000000000000000000000000000001f3c0000000000000000000000000000000000000000000000000000000000001f3e0000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f420000000000000000000000000000000000000000000000000000000000001f440000000000000000000000000000000000000000000000000000000000001f460000000000000000000000000000000000000000000000000000000000001f480000000000000000000000000000000000000000000000000000000000001f4a0000000000000000000000000000000000000000000000000000000000001f4c0000000000000000000000000000000000000000000000000000000000001f4e0000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f520000000000000000000000000000000000000000000000000000000000001f540000000000000000000000000000000000000000000000000000000000001f560000000000000000000000000000000000000000000000000000000000001f580000000000000000000000000000000000000000000000000000000000001f5a0000000000000000000000000000000000000000000000000000000000001f5c0000000000000000000000000000000000000000000000000000000000001f5e0000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f620000000000000000000000000000000000000000000000000000000000001f640000000000000000000000000000000000000000000000000000000000001f660000000000000000000000000000000000000000000000000000000000001f680000000000000000000000000000000000000000000000000000000000001f6a0000000000000000000000000000000000000000000000000000000000001f6c0000000000000000000000000000000000000000000000000000000000001f6e0000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f720000000000000000000000000000000000000000000000000000000000001f740000000000000000000000000000000000000000000000000000000000001f760000000000000000000000000000000000000000000000000000000000001f780000000000000000000000000000000000000000000000000000000000001f7a0000000000000000000000000000000000000000000000000000000000001f7c0000000000000000000000000000000000000000000000000000000000001f7e0000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f820000000000000000000000000000000000000000000000000000000000001f840000000000000000000000000000000000000000000000000000000000001f860000000000000000000000000000000000000000000000000000000000001f880000000000000000000000000000000000000000000000000000000000001f8a0000000000000000000000000000000000000000000000000000000000001f8c0000000000000000000000000000000000000000000000000000000000001f8e0000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001f920000000000000000000000000000000000000000000000000000000000001f940000000000000000000000000000000000000000000000000000000000001f960000000000000000000000000000000000000000000000000000000000001f980000000000000000000000000000000000000000000000000000000000001f9a0000000000000000000000000000000000000000000000000000000000001f9c0000000000000000000000000000000000000000000000000000000000001f9e0000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fa20000000000000000000000000000000000000000000000000000000000001fa40000000000000000000000000000000000000000000000000000000000001fa60000000000000000000000000000000000000000000000000000000000001fa80000000000000000000000000000000000000000000000000000000000001faa0000000000000000000000000000000000000000000000000000000000001fac0000000000000000000000000000000000000000000000000000000000001fae0000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fb20000000000000000000000000000000000000000000000000000000000001fb40000000000000000000000000000000000000000000000000000000000001fb60000000000000000000000000000000000000000000000000000000000001fb80000000000000000000000000000000000000000000000000000000000001fba0000000000000000000000000000000000000000000000000000000000001fbc0000000000000000000000000000000000000000000000000000000000001fbe0000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fc20000000000000000000000000000000000000000000000000000000000001fc40000000000000000000000000000000000000000000000000000000000001fc60000000000000000000000000000000000000000000000000000000000001fc80000000000000000000000000000000000000000000000000000000000001fca0000000000000000000000000000000000000000000000000000000000001fcc0000000000000000000000000000000000000000000000000000000000001fce0000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fd20000000000000000000000000000000000000000000000000000000000001fd40000000000000000000000000000000000000000000000000000000000001fd60000000000000000000000000000000000000000000000000000000000001fd80000000000000000000000000000000000000000000000000000000000001fda0000000000000000000000000000000000000000000000000000000000001fdc0000000000000000000000000000000000000000000000000000000000001fde0000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001fe20000000000000000000000000000000000000000000000000000000000001fe40000000000000000000000000000000000000000000000000000000000001fe60000000000000000000000000000000000000000000000000000000000001fe80000000000000000000000000000000000000000000000000000000000001fea0000000000000000000000000000000000000000000000000000000000001fec0000000000000000000000000000000000000000000000000000000000001fee0000000000000000000000000000000000000000000000000000000000001ff00000000000000000000000000000000000000000000000000000000000001ff20000000000000000000000000000000000000000000000000000000000001ff40000000000000000000000000000000000000000000000000000000000001ff60000000000000000000000000000000000000000000000000000000000001ff80000000000000000000000000000000000000000000000000000000000001ffa0000000000000000000000000000000000000000000000000000000000001ffc0000000000000000000000000000000000000000000000000000000000001ffe00000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002002000000000000000000000000000000000000000000000000000000000000200400000000000000000000000000000000000000000000000000000000000020060000000000000000000000000000000000000000000000000000000000002008000000000000000000000000000000000000000000000000000000000000200a000000000000000000000000000000000000000000000000000000000000200c000000000000000000000000000000000000000000000000000000000000200e00000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002012000000000000000000000000000000000000000000000000000000000000201400000000000000000000000000000000000000000000000000000000000020160000000000000000000000000000000000000000000000000000000000002018000000000000000000000000000000000000000000000000000000000000201a000000000000000000000000000000000000000000000000000000000000201c000000000000000000000000000000000000000000000000000000000000201e00000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000002022000000000000000000000000000000000000000000000000000000000000202400000000000000000000000000000000000000000000000000000000000020260000000000000000000000000000000000000000000000000000000000002028000000000000000000000000000000000000000000000000000000000000202a000000000000000000000000000000000000000000000000000000000000202c000000000000000000000000000000000000000000000000000000000000202e00000000000000000000000000000000000000000000000000000000000020300000000000000000000000000000000000000000000000000000000000002032000000000000000000000000000000000000000000000000000000000000203400000000000000000000000000000000000000000000000000000000000020360000000000000000000000000000000000000000000000000000000000002038000000000000000000000000000000000000000000000000000000000000203a000000000000000000000000000000000000000000000000000000000000203c000000000000000000000000000000000000000000000000000000000000203e00000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002042000000000000000000000000000000000000000000000000000000000000204400000000000000000000000000000000000000000000000000000000000020460000000000000000000000000000000000000000000000000000000000002048000000000000000000000000000000000000000000000000000000000000204a000000000000000000000000000000000000000000000000000000000000204c000000000000000000000000000000000000000000000000000000000000204e00000000000000000000000000000000000000000000000000000000000020500000000000000000000000000000000000000000000000000000000000002052000000000000000000000000000000000000000000000000000000000000205400000000000000000000000000000000000000000000000000000000000020560000000000000000000000000000000000000000000000000000000000002058000000000000000000000000000000000000000000000000000000000000205a000000000000000000000000000000000000000000000000000000000000205c000000000000000000000000000000000000000000000000000000000000205e00000000000000000000000000000000000000000000000000000000000020600000000000000000000000000000000000000000000000000000000000002062000000000000000000000000000000000000000000000000000000000000206400000000000000000000000000000000000000000000000000000000000020660000000000000000000000000000000000000000000000000000000000002068000000000000000000000000000000000000000000000000000000000000206a000000000000000000000000000000000000000000000000000000000000206c000000000000000000000000000000000000000000000000000000000000206e00000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002072000000000000000000000000000000000000000000000000000000000000207400000000000000000000000000000000000000000000000000000000000020760000000000000000000000000000000000000000000000000000000000002078000000000000000000000000000000000000000000000000000000000000207a000000000000000000000000000000000000000000000000000000000000207c000000000000000000000000000000000000000000000000000000000000207e00000000000000000000000000000000000000000000000000000000000020800000000000000000000000000000000000000000000000000000000000002082000000000000000000000000000000000000000000000000000000000000208400000000000000000000000000000000000000000000000000000000000020860000000000000000000000000000000000000000000000000000000000002088000000000000000000000000000000000000000000000000000000000000208a000000000000000000000000000000000000000000000000000000000000208c000000000000000000000000000000000000000000000000000000000000208e00000000000000000000000000000000000000000000000000000000000020900000000000000000000000000000000000000000000000000000000000002092000000000000000000000000000000000000000000000000000000000000209400000000000000000000000000000000000000000000000000000000000020960000000000000000000000000000000000000000000000000000000000002098000000000000000000000000000000000000000000000000000000000000209a000000000000000000000000000000000000000000000000000000000000209c000000000000000000000000000000000000000000000000000000000000209e00000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020a200000000000000000000000000000000000000000000000000000000000020a400000000000000000000000000000000000000000000000000000000000020a600000000000000000000000000000000000000000000000000000000000020a800000000000000000000000000000000000000000000000000000000000020aa00000000000000000000000000000000000000000000000000000000000020ac00000000000000000000000000000000000000000000000000000000000020ae00000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020b200000000000000000000000000000000000000000000000000000000000020b400000000000000000000000000000000000000000000000000000000000020b600000000000000000000000000000000000000000000000000000000000020b800000000000000000000000000000000000000000000000000000000000020ba00000000000000000000000000000000000000000000000000000000000020bc00000000000000000000000000000000000000000000000000000000000020be00000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020c200000000000000000000000000000000000000000000000000000000000020c400000000000000000000000000000000000000000000000000000000000020c600000000000000000000000000000000000000000000000000000000000020c800000000000000000000000000000000000000000000000000000000000020ca00000000000000000000000000000000000000000000000000000000000020cc00000000000000000000000000000000000000000000000000000000000020ce00000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020d200000000000000000000000000000000000000000000000000000000000020d400000000000000000000000000000000000000000000000000000000000020d600000000000000000000000000000000000000000000000000000000000020d800000000000000000000000000000000000000000000000000000000000020da00000000000000000000000000000000000000000000000000000000000020dc00000000000000000000000000000000000000000000000000000000000020de00000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020e200000000000000000000000000000000000000000000000000000000000020e400000000000000000000000000000000000000000000000000000000000020e600000000000000000000000000000000000000000000000000000000000020e800000000000000000000000000000000000000000000000000000000000020ea00000000000000000000000000000000000000000000000000000000000020ec00000000000000000000000000000000000000000000000000000000000020ee00000000000000000000000000000000000000000000000000000000000020f000000000000000000000000000000000000000000000000000000000000020f200000000000000000000000000000000000000000000000000000000000020f400000000000000000000000000000000000000000000000000000000000020f600000000000000000000000000000000000000000000000000000000000020f800000000000000000000000000000000000000000000000000000000000020fa00000000000000000000000000000000000000000000000000000000000020fc00000000000000000000000000000000000000000000000000000000000020fe00000000000000000000000000000000000000000000000000000000000021000000000000000000000000000000000000000000000000000000000000002102000000000000000000000000000000000000000000000000000000000000210400000000000000000000000000000000000000000000000000000000000021060000000000000000000000000000000000000000000000000000000000002108000000000000000000000000000000000000000000000000000000000000210a000000000000000000000000000000000000000000000000000000000000210c000000000000000000000000000000000000000000000000000000000000210e00000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002112000000000000000000000000000000000000000000000000000000000000211400000000000000000000000000000000000000000000000000000000000021160000000000000000000000000000000000000000000000000000000000002118000000000000000000000000000000000000000000000000000000000000211a000000000000000000000000000000000000000000000000000000000000211c000000000000000000000000000000000000000000000000000000000000211e00000000000000000000000000000000000000000000000000000000000021200000000000000000000000000000000000000000000000000000000000002122000000000000000000000000000000000000000000000000000000000000212400000000000000000000000000000000000000000000000000000000000021260000000000000000000000000000000000000000000000000000000000002128000000000000000000000000000000000000000000000000000000000000212a000000000000000000000000000000000000000000000000000000000000212c000000000000000000000000000000000000000000000000000000000000212e00000000000000000000000000000000000000000000000000000000000021300000000000000000000000000000000000000000000000000000000000002132000000000000000000000000000000000000000000000000000000000000213400000000000000000000000000000000000000000000000000000000000021360000000000000000000000000000000000000000000000000000000000002138000000000000000000000000000000000000000000000000000000000000213a000000000000000000000000000000000000000000000000000000000000213c000000000000000000000000000000000000000000000000000000000000213e00000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002142000000000000000000000000000000000000000000000000000000000000214400000000000000000000000000000000000000000000000000000000000021460000000000000000000000000000000000000000000000000000000000002148000000000000000000000000000000000000000000000000000000000000214a000000000000000000000000000000000000000000000000000000000000214c000000000000000000000000000000000000000000000000000000000000214e00000000000000000000000000000000000000000000000000000000000021500000000000000000000000000000000000000000000000000000000000002152000000000000000000000000000000000000000000000000000000000000215400000000000000000000000000000000000000000000000000000000000021560000000000000000000000000000000000000000000000000000000000002158000000000000000000000000000000000000000000000000000000000000215a000000000000000000000000000000000000000000000000000000000000215c000000000000000000000000000000000000000000000000000000000000215e00000000000000000000000000000000000000000000000000000000000021600000000000000000000000000000000000000000000000000000000000002162000000000000000000000000000000000000000000000000000000000000216400000000000000000000000000000000000000000000000000000000000021660000000000000000000000000000000000000000000000000000000000002168000000000000000000000000000000000000000000000000000000000000216a000000000000000000000000000000000000000000000000000000000000216c000000000000000000000000000000000000000000000000000000000000216e00000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002172000000000000000000000000000000000000000000000000000000000000217400000000000000000000000000000000000000000000000000000000000021760000000000000000000000000000000000000000000000000000000000002178000000000000000000000000000000000000000000000000000000000000217a000000000000000000000000000000000000000000000000000000000000217c000000000000000000000000000000000000000000000000000000000000217e00000000000000000000000000000000000000000000000000000000000021800000000000000000000000000000000000000000000000000000000000002182000000000000000000000000000000000000000000000000000000000000218400000000000000000000000000000000000000000000000000000000000021860000000000000000000000000000000000000000000000000000000000002188000000000000000000000000000000000000000000000000000000000000218a000000000000000000000000000000000000000000000000000000000000218c000000000000000000000000000000000000000000000000000000000000218e00000000000000000000000000000000000000000000000000000000000021900000000000000000000000000000000000000000000000000000000000002192000000000000000000000000000000000000000000000000000000000000219400000000000000000000000000000000000000000000000000000000000021960000000000000000000000000000000000000000000000000000000000002198000000000000000000000000000000000000000000000000000000000000219a000000000000000000000000000000000000000000000000000000000000219c000000000000000000000000000000000000000000000000000000000000219e00000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021a200000000000000000000000000000000000000000000000000000000000021a400000000000000000000000000000000000000000000000000000000000021a600000000000000000000000000000000000000000000000000000000000021a800000000000000000000000000000000000000000000000000000000000021aa00000000000000000000000000000000000000000000000000000000000021ac00000000000000000000000000000000000000000000000000000000000021ae00000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021b200000000000000000000000000000000000000000000000000000000000021b400000000000000000000000000000000000000000000000000000000000021b600000000000000000000000000000000000000000000000000000000000021b800000000000000000000000000000000000000000000000000000000000021ba00000000000000000000000000000000000000000000000000000000000021bc00000000000000000000000000000000000000000000000000000000000021be00000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021c200000000000000000000000000000000000000000000000000000000000021c400000000000000000000000000000000000000000000000000000000000021c600000000000000000000000000000000000000000000000000000000000021c800000000000000000000000000000000000000000000000000000000000021ca00000000000000000000000000000000000000000000000000000000000021cc00000000000000000000000000000000000000000000000000000000000021ce00000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021d200000000000000000000000000000000000000000000000000000000000021d400000000000000000000000000000000000000000000000000000000000021d600000000000000000000000000000000000000000000000000000000000021d800000000000000000000000000000000000000000000000000000000000021da00000000000000000000000000000000000000000000000000000000000021dc00000000000000000000000000000000000000000000000000000000000021de00000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021e200000000000000000000000000000000000000000000000000000000000021e400000000000000000000000000000000000000000000000000000000000021e600000000000000000000000000000000000000000000000000000000000021e800000000000000000000000000000000000000000000000000000000000021ea00000000000000000000000000000000000000000000000000000000000021ec00000000000000000000000000000000000000000000000000000000000021ee00000000000000000000000000000000000000000000000000000000000021f000000000000000000000000000000000000000000000000000000000000021f200000000000000000000000000000000000000000000000000000000000021f400000000000000000000000000000000000000000000000000000000000021f600000000000000000000000000000000000000000000000000000000000021f800000000000000000000000000000000000000000000000000000000000021fa00000000000000000000000000000000000000000000000000000000000021fc00000000000000000000000000000000000000000000000000000000000021fe00000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002202000000000000000000000000000000000000000000000000000000000000220400000000000000000000000000000000000000000000000000000000000022060000000000000000000000000000000000000000000000000000000000002208000000000000000000000000000000000000000000000000000000000000220a000000000000000000000000000000000000000000000000000000000000220c000000000000000000000000000000000000000000000000000000000000220e00000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002212000000000000000000000000000000000000000000000000000000000000221400000000000000000000000000000000000000000000000000000000000022160000000000000000000000000000000000000000000000000000000000002218000000000000000000000000000000000000000000000000000000000000221a000000000000000000000000000000000000000000000000000000000000221c000000000000000000000000000000000000000000000000000000000000221e00000000000000000000000000000000000000000000000000000000000022200000000000000000000000000000000000000000000000000000000000002222000000000000000000000000000000000000000000000000000000000000222400000000000000000000000000000000000000000000000000000000000022260000000000000000000000000000000000000000000000000000000000002228000000000000000000000000000000000000000000000000000000000000222a000000000000000000000000000000000000000000000000000000000000222c000000000000000000000000000000000000000000000000000000000000222e00000000000000000000000000000000000000000000000000000000000022300000000000000000000000000000000000000000000000000000000000002232000000000000000000000000000000000000000000000000000000000000223400000000000000000000000000000000000000000000000000000000000022360000000000000000000000000000000000000000000000000000000000002238000000000000000000000000000000000000000000000000000000000000223a000000000000000000000000000000000000000000000000000000000000223c000000000000000000000000000000000000000000000000000000000000223e00000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002242000000000000000000000000000000000000000000000000000000000000224400000000000000000000000000000000000000000000000000000000000022460000000000000000000000000000000000000000000000000000000000002248000000000000000000000000000000000000000000000000000000000000224a000000000000000000000000000000000000000000000000000000000000224c000000000000000000000000000000000000000000000000000000000000224e00000000000000000000000000000000000000000000000000000000000022500000000000000000000000000000000000000000000000000000000000002252000000000000000000000000000000000000000000000000000000000000225400000000000000000000000000000000000000000000000000000000000022560000000000000000000000000000000000000000000000000000000000002258000000000000000000000000000000000000000000000000000000000000225a000000000000000000000000000000000000000000000000000000000000225c000000000000000000000000000000000000000000000000000000000000225e00000000000000000000000000000000000000000000000000000000000022600000000000000000000000000000000000000000000000000000000000002262000000000000000000000000000000000000000000000000000000000000226400000000000000000000000000000000000000000000000000000000000022660000000000000000000000000000000000000000000000000000000000002268000000000000000000000000000000000000000000000000000000000000226a000000000000000000000000000000000000000000000000000000000000226c000000000000000000000000000000000000000000000000000000000000226e00000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002272000000000000000000000000000000000000000000000000000000000000227400000000000000000000000000000000000000000000000000000000000022760000000000000000000000000000000000000000000000000000000000002278000000000000000000000000000000000000000000000000000000000000227a000000000000000000000000000000000000000000000000000000000000227c000000000000000000000000000000000000000000000000000000000000227e00000000000000000000000000000000000000000000000000000000000022800000000000000000000000000000000000000000000000000000000000002282000000000000000000000000000000000000000000000000000000000000228400000000000000000000000000000000000000000000000000000000000022860000000000000000000000000000000000000000000000000000000000002288000000000000000000000000000000000000000000000000000000000000228a000000000000000000000000000000000000000000000000000000000000228c000000000000000000000000000000000000000000000000000000000000228e00000000000000000000000000000000000000000000000000000000000022900000000000000000000000000000000000000000000000000000000000002292000000000000000000000000000000000000000000000000000000000000229400000000000000000000000000000000000000000000000000000000000022960000000000000000000000000000000000000000000000000000000000002298000000000000000000000000000000000000000000000000000000000000229a000000000000000000000000000000000000000000000000000000000000229c000000000000000000000000000000000000000000000000000000000000229e00000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022a200000000000000000000000000000000000000000000000000000000000022a400000000000000000000000000000000000000000000000000000000000022a600000000000000000000000000000000000000000000000000000000000022a800000000000000000000000000000000000000000000000000000000000022aa00000000000000000000000000000000000000000000000000000000000022ac00000000000000000000000000000000000000000000000000000000000022ae00000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022b200000000000000000000000000000000000000000000000000000000000022b400000000000000000000000000000000000000000000000000000000000022b600000000000000000000000000000000000000000000000000000000000022b800000000000000000000000000000000000000000000000000000000000022ba00000000000000000000000000000000000000000000000000000000000022bc00000000000000000000000000000000000000000000000000000000000022be00000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022c200000000000000000000000000000000000000000000000000000000000022c400000000000000000000000000000000000000000000000000000000000022c600000000000000000000000000000000000000000000000000000000000022c800000000000000000000000000000000000000000000000000000000000022ca00000000000000000000000000000000000000000000000000000000000022cc00000000000000000000000000000000000000000000000000000000000022ce00000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022d200000000000000000000000000000000000000000000000000000000000022d400000000000000000000000000000000000000000000000000000000000022d600000000000000000000000000000000000000000000000000000000000022d800000000000000000000000000000000000000000000000000000000000022da00000000000000000000000000000000000000000000000000000000000022dc00000000000000000000000000000000000000000000000000000000000022de00000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022e200000000000000000000000000000000000000000000000000000000000022e400000000000000000000000000000000000000000000000000000000000022e600000000000000000000000000000000000000000000000000000000000022e800000000000000000000000000000000000000000000000000000000000022ea00000000000000000000000000000000000000000000000000000000000022ec00000000000000000000000000000000000000000000000000000000000022ee00000000000000000000000000000000000000000000000000000000000022f000000000000000000000000000000000000000000000000000000000000022f200000000000000000000000000000000000000000000000000000000000022f400000000000000000000000000000000000000000000000000000000000022f600000000000000000000000000000000000000000000000000000000000022f800000000000000000000000000000000000000000000000000000000000022fa00000000000000000000000000000000000000000000000000000000000022fc00000000000000000000000000000000000000000000000000000000000022fe00000000000000000000000000000000000000000000000000000000000023000000000000000000000000000000000000000000000000000000000000002302000000000000000000000000000000000000000000000000000000000000230400000000000000000000000000000000000000000000000000000000000023060000000000000000000000000000000000000000000000000000000000002308000000000000000000000000000000000000000000000000000000000000230a000000000000000000000000000000000000000000000000000000000000230c000000000000000000000000000000000000000000000000000000000000230e00000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002312000000000000000000000000000000000000000000000000000000000000231400000000000000000000000000000000000000000000000000000000000023160000000000000000000000000000000000000000000000000000000000002318000000000000000000000000000000000000000000000000000000000000231a000000000000000000000000000000000000000000000000000000000000231c000000000000000000000000000000000000000000000000000000000000231e00000000000000000000000000000000000000000000000000000000000023200000000000000000000000000000000000000000000000000000000000002322000000000000000000000000000000000000000000000000000000000000232400000000000000000000000000000000000000000000000000000000000023260000000000000000000000000000000000000000000000000000000000002328000000000000000000000000000000000000000000000000000000000000232a000000000000000000000000000000000000000000000000000000000000232c000000000000000000000000000000000000000000000000000000000000232e00000000000000000000000000000000000000000000000000000000000023300000000000000000000000000000000000000000000000000000000000002332000000000000000000000000000000000000000000000000000000000000233400000000000000000000000000000000000000000000000000000000000023360000000000000000000000000000000000000000000000000000000000002338000000000000000000000000000000000000000000000000000000000000233a000000000000000000000000000000000000000000000000000000000000233c000000000000000000000000000000000000000000000000000000000000233e00000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002342000000000000000000000000000000000000000000000000000000000000234400000000000000000000000000000000000000000000000000000000000023460000000000000000000000000000000000000000000000000000000000002348000000000000000000000000000000000000000000000000000000000000234a000000000000000000000000000000000000000000000000000000000000234c000000000000000000000000000000000000000000000000000000000000234e00000000000000000000000000000000000000000000000000000000000023500000000000000000000000000000000000000000000000000000000000002352000000000000000000000000000000000000000000000000000000000000235400000000000000000000000000000000000000000000000000000000000023560000000000000000000000000000000000000000000000000000000000002358000000000000000000000000000000000000000000000000000000000000235a000000000000000000000000000000000000000000000000000000000000235c000000000000000000000000000000000000000000000000000000000000235e00000000000000000000000000000000000000000000000000000000000023600000000000000000000000000000000000000000000000000000000000002362000000000000000000000000000000000000000000000000000000000000236400000000000000000000000000000000000000000000000000000000000023660000000000000000000000000000000000000000000000000000000000002368000000000000000000000000000000000000000000000000000000000000236a000000000000000000000000000000000000000000000000000000000000236c000000000000000000000000000000000000000000000000000000000000236e00000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002372000000000000000000000000000000000000000000000000000000000000237400000000000000000000000000000000000000000000000000000000000023760000000000000000000000000000000000000000000000000000000000002378000000000000000000000000000000000000000000000000000000000000237a000000000000000000000000000000000000000000000000000000000000237c000000000000000000000000000000000000000000000000000000000000237e00000000000000000000000000000000000000000000000000000000000023800000000000000000000000000000000000000000000000000000000000002382000000000000000000000000000000000000000000000000000000000000238400000000000000000000000000000000000000000000000000000000000023860000000000000000000000000000000000000000000000000000000000002388000000000000000000000000000000000000000000000000000000000000238a000000000000000000000000000000000000000000000000000000000000238c000000000000000000000000000000000000000000000000000000000000238e00000000000000000000000000000000000000000000000000000000000023900000000000000000000000000000000000000000000000000000000000002392000000000000000000000000000000000000000000000000000000000000239400000000000000000000000000000000000000000000000000000000000023960000000000000000000000000000000000000000000000000000000000002398000000000000000000000000000000000000000000000000000000000000239a000000000000000000000000000000000000000000000000000000000000239c000000000000000000000000000000000000000000000000000000000000239e00000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023a200000000000000000000000000000000000000000000000000000000000023a400000000000000000000000000000000000000000000000000000000000023a600000000000000000000000000000000000000000000000000000000000023a800000000000000000000000000000000000000000000000000000000000023aa00000000000000000000000000000000000000000000000000000000000023ac00000000000000000000000000000000000000000000000000000000000023ae00000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023b200000000000000000000000000000000000000000000000000000000000023b400000000000000000000000000000000000000000000000000000000000023b600000000000000000000000000000000000000000000000000000000000023b800000000000000000000000000000000000000000000000000000000000023ba00000000000000000000000000000000000000000000000000000000000023bc00000000000000000000000000000000000000000000000000000000000023be00000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023c200000000000000000000000000000000000000000000000000000000000023c400000000000000000000000000000000000000000000000000000000000023c600000000000000000000000000000000000000000000000000000000000023c800000000000000000000000000000000000000000000000000000000000023ca00000000000000000000000000000000000000000000000000000000000023cc00000000000000000000000000000000000000000000000000000000000023ce00000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023d200000000000000000000000000000000000000000000000000000000000023d400000000000000000000000000000000000000000000000000000000000023d600000000000000000000000000000000000000000000000000000000000023d800000000000000000000000000000000000000000000000000000000000023da00000000000000000000000000000000000000000000000000000000000023dc00000000000000000000000000000000000000000000000000000000000023de00000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023e200000000000000000000000000000000000000000000000000000000000023e400000000000000000000000000000000000000000000000000000000000023e600000000000000000000000000000000000000000000000000000000000023e800000000000000000000000000000000000000000000000000000000000023ea00000000000000000000000000000000000000000000000000000000000023ec00000000000000000000000000000000000000000000000000000000000023ee00000000000000000000000000000000000000000000000000000000000023f000000000000000000000000000000000000000000000000000000000000023f200000000000000000000000000000000000000000000000000000000000023f400000000000000000000000000000000000000000000000000000000000023f600000000000000000000000000000000000000000000000000000000000023f800000000000000000000000000000000000000000000000000000000000023fa00000000000000000000000000000000000000000000000000000000000023fc00000000000000000000000000000000000000000000000000000000000023fe00000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002402000000000000000000000000000000000000000000000000000000000000240400000000000000000000000000000000000000000000000000000000000024060000000000000000000000000000000000000000000000000000000000002408000000000000000000000000000000000000000000000000000000000000240a000000000000000000000000000000000000000000000000000000000000240c000000000000000000000000000000000000000000000000000000000000240e00000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002412000000000000000000000000000000000000000000000000000000000000241400000000000000000000000000000000000000000000000000000000000024160000000000000000000000000000000000000000000000000000000000002418000000000000000000000000000000000000000000000000000000000000241a000000000000000000000000000000000000000000000000000000000000241c000000000000000000000000000000000000000000000000000000000000241e00000000000000000000000000000000000000000000000000000000000024200000000000000000000000000000000000000000000000000000000000002422000000000000000000000000000000000000000000000000000000000000242400000000000000000000000000000000000000000000000000000000000024260000000000000000000000000000000000000000000000000000000000002428000000000000000000000000000000000000000000000000000000000000242a000000000000000000000000000000000000000000000000000000000000242c000000000000000000000000000000000000000000000000000000000000242e00000000000000000000000000000000000000000000000000000000000024300000000000000000000000000000000000000000000000000000000000002432000000000000000000000000000000000000000000000000000000000000243400000000000000000000000000000000000000000000000000000000000024360000000000000000000000000000000000000000000000000000000000002438000000000000000000000000000000000000000000000000000000000000243a000000000000000000000000000000000000000000000000000000000000243c000000000000000000000000000000000000000000000000000000000000243e00000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002442000000000000000000000000000000000000000000000000000000000000244400000000000000000000000000000000000000000000000000000000000024460000000000000000000000000000000000000000000000000000000000002448000000000000000000000000000000000000000000000000000000000000244a000000000000000000000000000000000000000000000000000000000000244c000000000000000000000000000000000000000000000000000000000000244e00000000000000000000000000000000000000000000000000000000000024500000000000000000000000000000000000000000000000000000000000002452000000000000000000000000000000000000000000000000000000000000245400000000000000000000000000000000000000000000000000000000000024560000000000000000000000000000000000000000000000000000000000002458000000000000000000000000000000000000000000000000000000000000245a000000000000000000000000000000000000000000000000000000000000245c000000000000000000000000000000000000000000000000000000000000245e00000000000000000000000000000000000000000000000000000000000024600000000000000000000000000000000000000000000000000000000000002462000000000000000000000000000000000000000000000000000000000000246400000000000000000000000000000000000000000000000000000000000024660000000000000000000000000000000000000000000000000000000000002468000000000000000000000000000000000000000000000000000000000000246a000000000000000000000000000000000000000000000000000000000000246c000000000000000000000000000000000000000000000000000000000000246e00000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002472000000000000000000000000000000000000000000000000000000000000247400000000000000000000000000000000000000000000000000000000000024760000000000000000000000000000000000000000000000000000000000002478000000000000000000000000000000000000000000000000000000000000247a000000000000000000000000000000000000000000000000000000000000247c000000000000000000000000000000000000000000000000000000000000247e00000000000000000000000000000000000000000000000000000000000024800000000000000000000000000000000000000000000000000000000000002482000000000000000000000000000000000000000000000000000000000000248400000000000000000000000000000000000000000000000000000000000024860000000000000000000000000000000000000000000000000000000000002488000000000000000000000000000000000000000000000000000000000000248a000000000000000000000000000000000000000000000000000000000000248c000000000000000000000000000000000000000000000000000000000000248e00000000000000000000000000000000000000000000000000000000000024900000000000000000000000000000000000000000000000000000000000002492000000000000000000000000000000000000000000000000000000000000249400000000000000000000000000000000000000000000000000000000000024960000000000000000000000000000000000000000000000000000000000002498000000000000000000000000000000000000000000000000000000000000249a000000000000000000000000000000000000000000000000000000000000249c000000000000000000000000000000000000000000000000000000000000249e00000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024a200000000000000000000000000000000000000000000000000000000000024a400000000000000000000000000000000000000000000000000000000000024a600000000000000000000000000000000000000000000000000000000000024a800000000000000000000000000000000000000000000000000000000000024aa00000000000000000000000000000000000000000000000000000000000024ac00000000000000000000000000000000000000000000000000000000000024ae00000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024b200000000000000000000000000000000000000000000000000000000000024b400000000000000000000000000000000000000000000000000000000000024b600000000000000000000000000000000000000000000000000000000000024b800000000000000000000000000000000000000000000000000000000000024ba00000000000000000000000000000000000000000000000000000000000024bc00000000000000000000000000000000000000000000000000000000000024be00000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024c200000000000000000000000000000000000000000000000000000000000024c400000000000000000000000000000000000000000000000000000000000024c600000000000000000000000000000000000000000000000000000000000024c800000000000000000000000000000000000000000000000000000000000024ca00000000000000000000000000000000000000000000000000000000000024cc00000000000000000000000000000000000000000000000000000000000024ce00000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024d200000000000000000000000000000000000000000000000000000000000024d400000000000000000000000000000000000000000000000000000000000024d600000000000000000000000000000000000000000000000000000000000024d800000000000000000000000000000000000000000000000000000000000024da00000000000000000000000000000000000000000000000000000000000024dc00000000000000000000000000000000000000000000000000000000000024de00000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024e200000000000000000000000000000000000000000000000000000000000024e400000000000000000000000000000000000000000000000000000000000024e600000000000000000000000000000000000000000000000000000000000024e800000000000000000000000000000000000000000000000000000000000024ea00000000000000000000000000000000000000000000000000000000000024ec00000000000000000000000000000000000000000000000000000000000024ee00000000000000000000000000000000000000000000000000000000000024f000000000000000000000000000000000000000000000000000000000000024f200000000000000000000000000000000000000000000000000000000000024f400000000000000000000000000000000000000000000000000000000000024f600000000000000000000000000000000000000000000000000000000000024f800000000000000000000000000000000000000000000000000000000000024fa00000000000000000000000000000000000000000000000000000000000024fc00000000000000000000000000000000000000000000000000000000000024fe00000000000000000000000000000000000000000000000000000000000025000000000000000000000000000000000000000000000000000000000000002502000000000000000000000000000000000000000000000000000000000000250400000000000000000000000000000000000000000000000000000000000025060000000000000000000000000000000000000000000000000000000000002508000000000000000000000000000000000000000000000000000000000000250a000000000000000000000000000000000000000000000000000000000000250c000000000000000000000000000000000000000000000000000000000000250e00000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002512000000000000000000000000000000000000000000000000000000000000251400000000000000000000000000000000000000000000000000000000000025160000000000000000000000000000000000000000000000000000000000002518000000000000000000000000000000000000000000000000000000000000251a000000000000000000000000000000000000000000000000000000000000251c000000000000000000000000000000000000000000000000000000000000251e00000000000000000000000000000000000000000000000000000000000025200000000000000000000000000000000000000000000000000000000000002522000000000000000000000000000000000000000000000000000000000000252400000000000000000000000000000000000000000000000000000000000025260000000000000000000000000000000000000000000000000000000000002528000000000000000000000000000000000000000000000000000000000000252a000000000000000000000000000000000000000000000000000000000000252c000000000000000000000000000000000000000000000000000000000000252e00000000000000000000000000000000000000000000000000000000000025300000000000000000000000000000000000000000000000000000000000002532000000000000000000000000000000000000000000000000000000000000253400000000000000000000000000000000000000000000000000000000000025360000000000000000000000000000000000000000000000000000000000002538000000000000000000000000000000000000000000000000000000000000253a000000000000000000000000000000000000000000000000000000000000253c000000000000000000000000000000000000000000000000000000000000253e00000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002542000000000000000000000000000000000000000000000000000000000000254400000000000000000000000000000000000000000000000000000000000025460000000000000000000000000000000000000000000000000000000000002548000000000000000000000000000000000000000000000000000000000000254a000000000000000000000000000000000000000000000000000000000000254c000000000000000000000000000000000000000000000000000000000000254e00000000000000000000000000000000000000000000000000000000000025500000000000000000000000000000000000000000000000000000000000002552000000000000000000000000000000000000000000000000000000000000255400000000000000000000000000000000000000000000000000000000000025560000000000000000000000000000000000000000000000000000000000002558000000000000000000000000000000000000000000000000000000000000255a000000000000000000000000000000000000000000000000000000000000255c000000000000000000000000000000000000000000000000000000000000255e00000000000000000000000000000000000000000000000000000000000025600000000000000000000000000000000000000000000000000000000000002562000000000000000000000000000000000000000000000000000000000000256400000000000000000000000000000000000000000000000000000000000025660000000000000000000000000000000000000000000000000000000000002568000000000000000000000000000000000000000000000000000000000000256a000000000000000000000000000000000000000000000000000000000000256c000000000000000000000000000000000000000000000000000000000000256e00000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002572000000000000000000000000000000000000000000000000000000000000257400000000000000000000000000000000000000000000000000000000000025760000000000000000000000000000000000000000000000000000000000002578000000000000000000000000000000000000000000000000000000000000257a000000000000000000000000000000000000000000000000000000000000257c000000000000000000000000000000000000000000000000000000000000257e00000000000000000000000000000000000000000000000000000000000025800000000000000000000000000000000000000000000000000000000000002582000000000000000000000000000000000000000000000000000000000000258400000000000000000000000000000000000000000000000000000000000025860000000000000000000000000000000000000000000000000000000000002588000000000000000000000000000000000000000000000000000000000000258a000000000000000000000000000000000000000000000000000000000000258c000000000000000000000000000000000000000000000000000000000000258e00000000000000000000000000000000000000000000000000000000000025900000000000000000000000000000000000000000000000000000000000002592000000000000000000000000000000000000000000000000000000000000259400000000000000000000000000000000000000000000000000000000000025960000000000000000000000000000000000000000000000000000000000002598000000000000000000000000000000000000000000000000000000000000259a000000000000000000000000000000000000000000000000000000000000259c000000000000000000000000000000000000000000000000000000000000259e00000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025a200000000000000000000000000000000000000000000000000000000000025a400000000000000000000000000000000000000000000000000000000000025a600000000000000000000000000000000000000000000000000000000000025a800000000000000000000000000000000000000000000000000000000000025aa00000000000000000000000000000000000000000000000000000000000025ac00000000000000000000000000000000000000000000000000000000000025ae00000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025b200000000000000000000000000000000000000000000000000000000000025b400000000000000000000000000000000000000000000000000000000000025b600000000000000000000000000000000000000000000000000000000000025b800000000000000000000000000000000000000000000000000000000000025ba00000000000000000000000000000000000000000000000000000000000025bc00000000000000000000000000000000000000000000000000000000000025be00000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025c200000000000000000000000000000000000000000000000000000000000025c400000000000000000000000000000000000000000000000000000000000025c600000000000000000000000000000000000000000000000000000000000025c800000000000000000000000000000000000000000000000000000000000025ca00000000000000000000000000000000000000000000000000000000000025cc00000000000000000000000000000000000000000000000000000000000025ce00000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025d200000000000000000000000000000000000000000000000000000000000025d400000000000000000000000000000000000000000000000000000000000025d600000000000000000000000000000000000000000000000000000000000025d800000000000000000000000000000000000000000000000000000000000025da00000000000000000000000000000000000000000000000000000000000025dc00000000000000000000000000000000000000000000000000000000000025de00000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025e200000000000000000000000000000000000000000000000000000000000025e400000000000000000000000000000000000000000000000000000000000025e600000000000000000000000000000000000000000000000000000000000025e800000000000000000000000000000000000000000000000000000000000025ea00000000000000000000000000000000000000000000000000000000000025ec00000000000000000000000000000000000000000000000000000000000025ee00000000000000000000000000000000000000000000000000000000000025f000000000000000000000000000000000000000000000000000000000000025f200000000000000000000000000000000000000000000000000000000000025f400000000000000000000000000000000000000000000000000000000000025f600000000000000000000000000000000000000000000000000000000000025f800000000000000000000000000000000000000000000000000000000000025fa00000000000000000000000000000000000000000000000000000000000025fc00000000000000000000000000000000000000000000000000000000000025fe00000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002602000000000000000000000000000000000000000000000000000000000000260400000000000000000000000000000000000000000000000000000000000026060000000000000000000000000000000000000000000000000000000000002608000000000000000000000000000000000000000000000000000000000000260a000000000000000000000000000000000000000000000000000000000000260c000000000000000000000000000000000000000000000000000000000000260e00000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002612000000000000000000000000000000000000000000000000000000000000261400000000000000000000000000000000000000000000000000000000000026160000000000000000000000000000000000000000000000000000000000002618000000000000000000000000000000000000000000000000000000000000261a000000000000000000000000000000000000000000000000000000000000261c000000000000000000000000000000000000000000000000000000000000261e00000000000000000000000000000000000000000000000000000000000026200000000000000000000000000000000000000000000000000000000000002622000000000000000000000000000000000000000000000000000000000000262400000000000000000000000000000000000000000000000000000000000026260000000000000000000000000000000000000000000000000000000000002628000000000000000000000000000000000000000000000000000000000000262a000000000000000000000000000000000000000000000000000000000000262c000000000000000000000000000000000000000000000000000000000000262e00000000000000000000000000000000000000000000000000000000000026300000000000000000000000000000000000000000000000000000000000002632000000000000000000000000000000000000000000000000000000000000263400000000000000000000000000000000000000000000000000000000000026360000000000000000000000000000000000000000000000000000000000002638000000000000000000000000000000000000000000000000000000000000263a000000000000000000000000000000000000000000000000000000000000263c000000000000000000000000000000000000000000000000000000000000263e00000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002642000000000000000000000000000000000000000000000000000000000000264400000000000000000000000000000000000000000000000000000000000026460000000000000000000000000000000000000000000000000000000000002648000000000000000000000000000000000000000000000000000000000000264a000000000000000000000000000000000000000000000000000000000000264c000000000000000000000000000000000000000000000000000000000000264e00000000000000000000000000000000000000000000000000000000000026500000000000000000000000000000000000000000000000000000000000002652000000000000000000000000000000000000000000000000000000000000265400000000000000000000000000000000000000000000000000000000000026560000000000000000000000000000000000000000000000000000000000002658000000000000000000000000000000000000000000000000000000000000265a000000000000000000000000000000000000000000000000000000000000265c000000000000000000000000000000000000000000000000000000000000265e00000000000000000000000000000000000000000000000000000000000026600000000000000000000000000000000000000000000000000000000000002662000000000000000000000000000000000000000000000000000000000000266400000000000000000000000000000000000000000000000000000000000026660000000000000000000000000000000000000000000000000000000000002668000000000000000000000000000000000000000000000000000000000000266a000000000000000000000000000000000000000000000000000000000000266c000000000000000000000000000000000000000000000000000000000000266e00000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002672000000000000000000000000000000000000000000000000000000000000267400000000000000000000000000000000000000000000000000000000000026760000000000000000000000000000000000000000000000000000000000002678000000000000000000000000000000000000000000000000000000000000267a000000000000000000000000000000000000000000000000000000000000267c000000000000000000000000000000000000000000000000000000000000267e00000000000000000000000000000000000000000000000000000000000026800000000000000000000000000000000000000000000000000000000000002682000000000000000000000000000000000000000000000000000000000000268400000000000000000000000000000000000000000000000000000000000026860000000000000000000000000000000000000000000000000000000000002688000000000000000000000000000000000000000000000000000000000000268a000000000000000000000000000000000000000000000000000000000000268c000000000000000000000000000000000000000000000000000000000000268e00000000000000000000000000000000000000000000000000000000000026900000000000000000000000000000000000000000000000000000000000002692000000000000000000000000000000000000000000000000000000000000269400000000000000000000000000000000000000000000000000000000000026960000000000000000000000000000000000000000000000000000000000002698000000000000000000000000000000000000000000000000000000000000269a000000000000000000000000000000000000000000000000000000000000269c000000000000000000000000000000000000000000000000000000000000269e00000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026a200000000000000000000000000000000000000000000000000000000000026a400000000000000000000000000000000000000000000000000000000000026a600000000000000000000000000000000000000000000000000000000000026a800000000000000000000000000000000000000000000000000000000000026aa00000000000000000000000000000000000000000000000000000000000026ac00000000000000000000000000000000000000000000000000000000000026ae00000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026b200000000000000000000000000000000000000000000000000000000000026b400000000000000000000000000000000000000000000000000000000000026b600000000000000000000000000000000000000000000000000000000000026b800000000000000000000000000000000000000000000000000000000000026ba00000000000000000000000000000000000000000000000000000000000026bc00000000000000000000000000000000000000000000000000000000000026be00000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026c200000000000000000000000000000000000000000000000000000000000026c400000000000000000000000000000000000000000000000000000000000026c600000000000000000000000000000000000000000000000000000000000026c800000000000000000000000000000000000000000000000000000000000026ca00000000000000000000000000000000000000000000000000000000000026cc00000000000000000000000000000000000000000000000000000000000026ce00000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026d200000000000000000000000000000000000000000000000000000000000026d400000000000000000000000000000000000000000000000000000000000026d600000000000000000000000000000000000000000000000000000000000026d800000000000000000000000000000000000000000000000000000000000026da00000000000000000000000000000000000000000000000000000000000026dc00000000000000000000000000000000000000000000000000000000000026de00000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026e200000000000000000000000000000000000000000000000000000000000026e400000000000000000000000000000000000000000000000000000000000026e600000000000000000000000000000000000000000000000000000000000026e800000000000000000000000000000000000000000000000000000000000026ea00000000000000000000000000000000000000000000000000000000000026ec00000000000000000000000000000000000000000000000000000000000026ee00000000000000000000000000000000000000000000000000000000000026f000000000000000000000000000000000000000000000000000000000000026f200000000000000000000000000000000000000000000000000000000000026f400000000000000000000000000000000000000000000000000000000000026f600000000000000000000000000000000000000000000000000000000000026f800000000000000000000000000000000000000000000000000000000000026fa00000000000000000000000000000000000000000000000000000000000026fc00000000000000000000000000000000000000000000000000000000000026fe00000000000000000000000000000000000000000000000000000000000027000000000000000000000000000000000000000000000000000000000000002702000000000000000000000000000000000000000000000000000000000000270400000000000000000000000000000000000000000000000000000000000027060000000000000000000000000000000000000000000000000000000000002708000000000000000000000000000000000000000000000000000000000000270a000000000000000000000000000000000000000000000000000000000000270c000000000000000000000000000000000000000000000000000000000000270e00000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002712000000000000000000000000000000000000000000000000000000000000271400000000000000000000000000000000000000000000000000000000000027160000000000000000000000000000000000000000000000000000000000002718000000000000000000000000000000000000000000000000000000000000271a000000000000000000000000000000000000000000000000000000000000271c000000000000000000000000000000000000000000000000000000000000271e00000000000000000000000000000000000000000000000000000000000027200000000000000000000000000000000000000000000000000000000000002722000000000000000000000000000000000000000000000000000000000000272400000000000000000000000000000000000000000000000000000000000027260000000000000000000000000000000000000000000000000000000000002728000000000000000000000000000000000000000000000000000000000000272a000000000000000000000000000000000000000000000000000000000000272c000000000000000000000000000000000000000000000000000000000000272e00000000000000000000000000000000000000000000000000000000000027300000000000000000000000000000000000000000000000000000000000002732000000000000000000000000000000000000000000000000000000000000273400000000000000000000000000000000000000000000000000000000000027360000000000000000000000000000000000000000000000000000000000002738000000000000000000000000000000000000000000000000000000000000273a000000000000000000000000000000000000000000000000000000000000273c000000000000000000000000000000000000000000000000000000000000273e00000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002742000000000000000000000000000000000000000000000000000000000000274400000000000000000000000000000000000000000000000000000000000027460000000000000000000000000000000000000000000000000000000000002748000000000000000000000000000000000000000000000000000000000000274a000000000000000000000000000000000000000000000000000000000000274c000000000000000000000000000000000000000000000000000000000000274e00000000000000000000000000000000000000000000000000000000000027500000000000000000000000000000000000000000000000000000000000002752000000000000000000000000000000000000000000000000000000000000275400000000000000000000000000000000000000000000000000000000000027560000000000000000000000000000000000000000000000000000000000002758000000000000000000000000000000000000000000000000000000000000275a000000000000000000000000000000000000000000000000000000000000275c000000000000000000000000000000000000000000000000000000000000275e00000000000000000000000000000000000000000000000000000000000027600000000000000000000000000000000000000000000000000000000000002762000000000000000000000000000000000000000000000000000000000000276400000000000000000000000000000000000000000000000000000000000027660000000000000000000000000000000000000000000000000000000000002768000000000000000000000000000000000000000000000000000000000000276a000000000000000000000000000000000000000000000000000000000000276c000000000000000000000000000000000000000000000000000000000000276e00000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002772000000000000000000000000000000000000000000000000000000000000277400000000000000000000000000000000000000000000000000000000000027760000000000000000000000000000000000000000000000000000000000002778000000000000000000000000000000000000000000000000000000000000277a000000000000000000000000000000000000000000000000000000000000277c000000000000000000000000000000000000000000000000000000000000277e00000000000000000000000000000000000000000000000000000000000027800000000000000000000000000000000000000000000000000000000000002782000000000000000000000000000000000000000000000000000000000000278400000000000000000000000000000000000000000000000000000000000027860000000000000000000000000000000000000000000000000000000000002788000000000000000000000000000000000000000000000000000000000000278a000000000000000000000000000000000000000000000000000000000000278c000000000000000000000000000000000000000000000000000000000000278e00000000000000000000000000000000000000000000000000000000000027900000000000000000000000000000000000000000000000000000000000002792000000000000000000000000000000000000000000000000000000000000279400000000000000000000000000000000000000000000000000000000000027960000000000000000000000000000000000000000000000000000000000002798000000000000000000000000000000000000000000000000000000000000279a000000000000000000000000000000000000000000000000000000000000279c000000000000000000000000000000000000000000000000000000000000279e00000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027a200000000000000000000000000000000000000000000000000000000000027a400000000000000000000000000000000000000000000000000000000000027a600000000000000000000000000000000000000000000000000000000000027a800000000000000000000000000000000000000000000000000000000000027aa00000000000000000000000000000000000000000000000000000000000027ac00000000000000000000000000000000000000000000000000000000000027ae00000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027b200000000000000000000000000000000000000000000000000000000000027b400000000000000000000000000000000000000000000000000000000000027b600000000000000000000000000000000000000000000000000000000000027b800000000000000000000000000000000000000000000000000000000000027ba00000000000000000000000000000000000000000000000000000000000027bc00000000000000000000000000000000000000000000000000000000000027be00000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027c200000000000000000000000000000000000000000000000000000000000027c400000000000000000000000000000000000000000000000000000000000027c600000000000000000000000000000000000000000000000000000000000027c800000000000000000000000000000000000000000000000000000000000027ca00000000000000000000000000000000000000000000000000000000000027cc00000000000000000000000000000000000000000000000000000000000027ce00000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027d200000000000000000000000000000000000000000000000000000000000027d400000000000000000000000000000000000000000000000000000000000027d600000000000000000000000000000000000000000000000000000000000027d800000000000000000000000000000000000000000000000000000000000027da00000000000000000000000000000000000000000000000000000000000027dc00000000000000000000000000000000000000000000000000000000000027de00000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027e200000000000000000000000000000000000000000000000000000000000027e400000000000000000000000000000000000000000000000000000000000027e600000000000000000000000000000000000000000000000000000000000027e800000000000000000000000000000000000000000000000000000000000027ea00000000000000000000000000000000000000000000000000000000000027ec00000000000000000000000000000000000000000000000000000000000027ee00000000000000000000000000000000000000000000000000000000000027f000000000000000000000000000000000000000000000000000000000000027f200000000000000000000000000000000000000000000000000000000000027f400000000000000000000000000000000000000000000000000000000000027f600000000000000000000000000000000000000000000000000000000000027f800000000000000000000000000000000000000000000000000000000000027fa00000000000000000000000000000000000000000000000000000000000027fc00000000000000000000000000000000000000000000000000000000000027fe00000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002802000000000000000000000000000000000000000000000000000000000000280400000000000000000000000000000000000000000000000000000000000028060000000000000000000000000000000000000000000000000000000000002808000000000000000000000000000000000000000000000000000000000000280a000000000000000000000000000000000000000000000000000000000000280c000000000000000000000000000000000000000000000000000000000000280e00000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002812000000000000000000000000000000000000000000000000000000000000281400000000000000000000000000000000000000000000000000000000000028160000000000000000000000000000000000000000000000000000000000002818000000000000000000000000000000000000000000000000000000000000281a000000000000000000000000000000000000000000000000000000000000281c000000000000000000000000000000000000000000000000000000000000281e00000000000000000000000000000000000000000000000000000000000028200000000000000000000000000000000000000000000000000000000000002822000000000000000000000000000000000000000000000000000000000000282400000000000000000000000000000000000000000000000000000000000028260000000000000000000000000000000000000000000000000000000000002828000000000000000000000000000000000000000000000000000000000000282a000000000000000000000000000000000000000000000000000000000000282c000000000000000000000000000000000000000000000000000000000000282e00000000000000000000000000000000000000000000000000000000000028300000000000000000000000000000000000000000000000000000000000002832000000000000000000000000000000000000000000000000000000000000283400000000000000000000000000000000000000000000000000000000000028360000000000000000000000000000000000000000000000000000000000002838000000000000000000000000000000000000000000000000000000000000283a000000000000000000000000000000000000000000000000000000000000283c000000000000000000000000000000000000000000000000000000000000283e00000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002842000000000000000000000000000000000000000000000000000000000000284400000000000000000000000000000000000000000000000000000000000028460000000000000000000000000000000000000000000000000000000000002848000000000000000000000000000000000000000000000000000000000000284a000000000000000000000000000000000000000000000000000000000000284c000000000000000000000000000000000000000000000000000000000000284e00000000000000000000000000000000000000000000000000000000000028500000000000000000000000000000000000000000000000000000000000002852000000000000000000000000000000000000000000000000000000000000285400000000000000000000000000000000000000000000000000000000000028560000000000000000000000000000000000000000000000000000000000002858000000000000000000000000000000000000000000000000000000000000285a000000000000000000000000000000000000000000000000000000000000285c000000000000000000000000000000000000000000000000000000000000285e00000000000000000000000000000000000000000000000000000000000028600000000000000000000000000000000000000000000000000000000000002862000000000000000000000000000000000000000000000000000000000000286400000000000000000000000000000000000000000000000000000000000028660000000000000000000000000000000000000000000000000000000000002868000000000000000000000000000000000000000000000000000000000000286a000000000000000000000000000000000000000000000000000000000000286c000000000000000000000000000000000000000000000000000000000000286e00000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002872000000000000000000000000000000000000000000000000000000000000287400000000000000000000000000000000000000000000000000000000000028760000000000000000000000000000000000000000000000000000000000002878000000000000000000000000000000000000000000000000000000000000287a000000000000000000000000000000000000000000000000000000000000287c000000000000000000000000000000000000000000000000000000000000287e00000000000000000000000000000000000000000000000000000000000028800000000000000000000000000000000000000000000000000000000000002882000000000000000000000000000000000000000000000000000000000000288400000000000000000000000000000000000000000000000000000000000028860000000000000000000000000000000000000000000000000000000000002888000000000000000000000000000000000000000000000000000000000000288a000000000000000000000000000000000000000000000000000000000000288c000000000000000000000000000000000000000000000000000000000000288e00000000000000000000000000000000000000000000000000000000000028900000000000000000000000000000000000000000000000000000000000002892000000000000000000000000000000000000000000000000000000000000289400000000000000000000000000000000000000000000000000000000000028960000000000000000000000000000000000000000000000000000000000002898000000000000000000000000000000000000000000000000000000000000289a000000000000000000000000000000000000000000000000000000000000289c000000000000000000000000000000000000000000000000000000000000289e00000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028a200000000000000000000000000000000000000000000000000000000000028a400000000000000000000000000000000000000000000000000000000000028a600000000000000000000000000000000000000000000000000000000000028a800000000000000000000000000000000000000000000000000000000000028aa00000000000000000000000000000000000000000000000000000000000028ac00000000000000000000000000000000000000000000000000000000000028ae00000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028b200000000000000000000000000000000000000000000000000000000000028b400000000000000000000000000000000000000000000000000000000000028b600000000000000000000000000000000000000000000000000000000000028b800000000000000000000000000000000000000000000000000000000000028ba00000000000000000000000000000000000000000000000000000000000028bc00000000000000000000000000000000000000000000000000000000000028be00000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028c200000000000000000000000000000000000000000000000000000000000028c400000000000000000000000000000000000000000000000000000000000028c600000000000000000000000000000000000000000000000000000000000028c800000000000000000000000000000000000000000000000000000000000028ca00000000000000000000000000000000000000000000000000000000000028cc00000000000000000000000000000000000000000000000000000000000028ce00000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028d200000000000000000000000000000000000000000000000000000000000028d400000000000000000000000000000000000000000000000000000000000028d600000000000000000000000000000000000000000000000000000000000028d800000000000000000000000000000000000000000000000000000000000028da00000000000000000000000000000000000000000000000000000000000028dc00000000000000000000000000000000000000000000000000000000000028de00000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028e200000000000000000000000000000000000000000000000000000000000028e400000000000000000000000000000000000000000000000000000000000028e600000000000000000000000000000000000000000000000000000000000028e800000000000000000000000000000000000000000000000000000000000028ea00000000000000000000000000000000000000000000000000000000000028ec00000000000000000000000000000000000000000000000000000000000028ee00000000000000000000000000000000000000000000000000000000000028f000000000000000000000000000000000000000000000000000000000000028f200000000000000000000000000000000000000000000000000000000000028f400000000000000000000000000000000000000000000000000000000000028f600000000000000000000000000000000000000000000000000000000000028f800000000000000000000000000000000000000000000000000000000000028fa00000000000000000000000000000000000000000000000000000000000028fc00000000000000000000000000000000000000000000000000000000000028fe00000000000000000000000000000000000000000000000000000000000029000000000000000000000000000000000000000000000000000000000000002902000000000000000000000000000000000000000000000000000000000000290400000000000000000000000000000000000000000000000000000000000029060000000000000000000000000000000000000000000000000000000000002908000000000000000000000000000000000000000000000000000000000000290a000000000000000000000000000000000000000000000000000000000000290c000000000000000000000000000000000000000000000000000000000000290e00000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002912000000000000000000000000000000000000000000000000000000000000291400000000000000000000000000000000000000000000000000000000000029160000000000000000000000000000000000000000000000000000000000002918000000000000000000000000000000000000000000000000000000000000291a000000000000000000000000000000000000000000000000000000000000291c000000000000000000000000000000000000000000000000000000000000291e00000000000000000000000000000000000000000000000000000000000029200000000000000000000000000000000000000000000000000000000000002922000000000000000000000000000000000000000000000000000000000000292400000000000000000000000000000000000000000000000000000000000029260000000000000000000000000000000000000000000000000000000000002928000000000000000000000000000000000000000000000000000000000000292a000000000000000000000000000000000000000000000000000000000000292c000000000000000000000000000000000000000000000000000000000000292e00000000000000000000000000000000000000000000000000000000000029300000000000000000000000000000000000000000000000000000000000002932000000000000000000000000000000000000000000000000000000000000293400000000000000000000000000000000000000000000000000000000000029360000000000000000000000000000000000000000000000000000000000002938000000000000000000000000000000000000000000000000000000000000293a000000000000000000000000000000000000000000000000000000000000293c000000000000000000000000000000000000000000000000000000000000293e00000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002942000000000000000000000000000000000000000000000000000000000000294400000000000000000000000000000000000000000000000000000000000029460000000000000000000000000000000000000000000000000000000000002948000000000000000000000000000000000000000000000000000000000000294a000000000000000000000000000000000000000000000000000000000000294c000000000000000000000000000000000000000000000000000000000000294e00000000000000000000000000000000000000000000000000000000000029500000000000000000000000000000000000000000000000000000000000002952000000000000000000000000000000000000000000000000000000000000295400000000000000000000000000000000000000000000000000000000000029560000000000000000000000000000000000000000000000000000000000002958000000000000000000000000000000000000000000000000000000000000295a000000000000000000000000000000000000000000000000000000000000295c000000000000000000000000000000000000000000000000000000000000295e00000000000000000000000000000000000000000000000000000000000029600000000000000000000000000000000000000000000000000000000000002962000000000000000000000000000000000000000000000000000000000000296400000000000000000000000000000000000000000000000000000000000029660000000000000000000000000000000000000000000000000000000000002968000000000000000000000000000000000000000000000000000000000000296a000000000000000000000000000000000000000000000000000000000000296c000000000000000000000000000000000000000000000000000000000000296e00000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002972000000000000000000000000000000000000000000000000000000000000297400000000000000000000000000000000000000000000000000000000000029760000000000000000000000000000000000000000000000000000000000002978000000000000000000000000000000000000000000000000000000000000297a000000000000000000000000000000000000000000000000000000000000297c000000000000000000000000000000000000000000000000000000000000297e00000000000000000000000000000000000000000000000000000000000029800000000000000000000000000000000000000000000000000000000000002982000000000000000000000000000000000000000000000000000000000000298400000000000000000000000000000000000000000000000000000000000029860000000000000000000000000000000000000000000000000000000000002988000000000000000000000000000000000000000000000000000000000000298a000000000000000000000000000000000000000000000000000000000000298c000000000000000000000000000000000000000000000000000000000000298e00000000000000000000000000000000000000000000000000000000000029900000000000000000000000000000000000000000000000000000000000002992000000000000000000000000000000000000000000000000000000000000299400000000000000000000000000000000000000000000000000000000000029960000000000000000000000000000000000000000000000000000000000002998000000000000000000000000000000000000000000000000000000000000299a000000000000000000000000000000000000000000000000000000000000299c000000000000000000000000000000000000000000000000000000000000299e00000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029a200000000000000000000000000000000000000000000000000000000000029a400000000000000000000000000000000000000000000000000000000000029a600000000000000000000000000000000000000000000000000000000000029a800000000000000000000000000000000000000000000000000000000000029aa00000000000000000000000000000000000000000000000000000000000029ac00000000000000000000000000000000000000000000000000000000000029ae00000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029b200000000000000000000000000000000000000000000000000000000000029b400000000000000000000000000000000000000000000000000000000000029b600000000000000000000000000000000000000000000000000000000000029b800000000000000000000000000000000000000000000000000000000000029ba00000000000000000000000000000000000000000000000000000000000029bc00000000000000000000000000000000000000000000000000000000000029be00000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029c200000000000000000000000000000000000000000000000000000000000029c400000000000000000000000000000000000000000000000000000000000029c600000000000000000000000000000000000000000000000000000000000029c800000000000000000000000000000000000000000000000000000000000029ca00000000000000000000000000000000000000000000000000000000000029cc00000000000000000000000000000000000000000000000000000000000029ce00000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029d200000000000000000000000000000000000000000000000000000000000029d400000000000000000000000000000000000000000000000000000000000029d600000000000000000000000000000000000000000000000000000000000029d800000000000000000000000000000000000000000000000000000000000029da00000000000000000000000000000000000000000000000000000000000029dc00000000000000000000000000000000000000000000000000000000000029de00000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029e200000000000000000000000000000000000000000000000000000000000029e400000000000000000000000000000000000000000000000000000000000029e600000000000000000000000000000000000000000000000000000000000029e800000000000000000000000000000000000000000000000000000000000029ea00000000000000000000000000000000000000000000000000000000000029ec00000000000000000000000000000000000000000000000000000000000029ee00000000000000000000000000000000000000000000000000000000000029f000000000000000000000000000000000000000000000000000000000000029f200000000000000000000000000000000000000000000000000000000000029f400000000000000000000000000000000000000000000000000000000000029f600000000000000000000000000000000000000000000000000000000000029f800000000000000000000000000000000000000000000000000000000000029fa00000000000000000000000000000000000000000000000000000000000029fc00000000000000000000000000000000000000000000000000000000000029fe0000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a020000000000000000000000000000000000000000000000000000000000002a040000000000000000000000000000000000000000000000000000000000002a060000000000000000000000000000000000000000000000000000000000002a080000000000000000000000000000000000000000000000000000000000002a0a0000000000000000000000000000000000000000000000000000000000002a0c0000000000000000000000000000000000000000000000000000000000002a0e0000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a120000000000000000000000000000000000000000000000000000000000002a140000000000000000000000000000000000000000000000000000000000002a160000000000000000000000000000000000000000000000000000000000002a180000000000000000000000000000000000000000000000000000000000002a1a0000000000000000000000000000000000000000000000000000000000002a1c0000000000000000000000000000000000000000000000000000000000002a1e0000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a220000000000000000000000000000000000000000000000000000000000002a240000000000000000000000000000000000000000000000000000000000002a260000000000000000000000000000000000000000000000000000000000002a280000000000000000000000000000000000000000000000000000000000002a2a0000000000000000000000000000000000000000000000000000000000002a2c0000000000000000000000000000000000000000000000000000000000002a2e0000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a320000000000000000000000000000000000000000000000000000000000002a340000000000000000000000000000000000000000000000000000000000002a360000000000000000000000000000000000000000000000000000000000002a380000000000000000000000000000000000000000000000000000000000002a3a0000000000000000000000000000000000000000000000000000000000002a3c0000000000000000000000000000000000000000000000000000000000002a3e0000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a420000000000000000000000000000000000000000000000000000000000002a440000000000000000000000000000000000000000000000000000000000002a460000000000000000000000000000000000000000000000000000000000002a480000000000000000000000000000000000000000000000000000000000002a4a0000000000000000000000000000000000000000000000000000000000002a4c0000000000000000000000000000000000000000000000000000000000002a4e0000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a520000000000000000000000000000000000000000000000000000000000002a540000000000000000000000000000000000000000000000000000000000002a560000000000000000000000000000000000000000000000000000000000002a580000000000000000000000000000000000000000000000000000000000002a5a0000000000000000000000000000000000000000000000000000000000002a5c0000000000000000000000000000000000000000000000000000000000002a5e0000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a620000000000000000000000000000000000000000000000000000000000002a640000000000000000000000000000000000000000000000000000000000002a660000000000000000000000000000000000000000000000000000000000002a680000000000000000000000000000000000000000000000000000000000002a6a0000000000000000000000000000000000000000000000000000000000002a6c0000000000000000000000000000000000000000000000000000000000002a6e0000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a720000000000000000000000000000000000000000000000000000000000002a740000000000000000000000000000000000000000000000000000000000002a760000000000000000000000000000000000000000000000000000000000002a780000000000000000000000000000000000000000000000000000000000002a7a0000000000000000000000000000000000000000000000000000000000002a7c0000000000000000000000000000000000000000000000000000000000002a7e0000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a820000000000000000000000000000000000000000000000000000000000002a840000000000000000000000000000000000000000000000000000000000002a860000000000000000000000000000000000000000000000000000000000002a880000000000000000000000000000000000000000000000000000000000002a8a0000000000000000000000000000000000000000000000000000000000002a8c0000000000000000000000000000000000000000000000000000000000002a8e0000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002a920000000000000000000000000000000000000000000000000000000000002a940000000000000000000000000000000000000000000000000000000000002a960000000000000000000000000000000000000000000000000000000000002a980000000000000000000000000000000000000000000000000000000000002a9a0000000000000000000000000000000000000000000000000000000000002a9c0000000000000000000000000000000000000000000000000000000000002a9e0000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002aa20000000000000000000000000000000000000000000000000000000000002aa40000000000000000000000000000000000000000000000000000000000002aa60000000000000000000000000000000000000000000000000000000000002aa80000000000000000000000000000000000000000000000000000000000002aaa0000000000000000000000000000000000000000000000000000000000002aac0000000000000000000000000000000000000000000000000000000000002aae0000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ab20000000000000000000000000000000000000000000000000000000000002ab40000000000000000000000000000000000000000000000000000000000002ab60000000000000000000000000000000000000000000000000000000000002ab80000000000000000000000000000000000000000000000000000000000002aba0000000000000000000000000000000000000000000000000000000000002abc0000000000000000000000000000000000000000000000000000000000002abe0000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ac20000000000000000000000000000000000000000000000000000000000002ac40000000000000000000000000000000000000000000000000000000000002ac60000000000000000000000000000000000000000000000000000000000002ac80000000000000000000000000000000000000000000000000000000000002aca0000000000000000000000000000000000000000000000000000000000002acc0000000000000000000000000000000000000000000000000000000000002ace0000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ad20000000000000000000000000000000000000000000000000000000000002ad40000000000000000000000000000000000000000000000000000000000002ad60000000000000000000000000000000000000000000000000000000000002ad80000000000000000000000000000000000000000000000000000000000002ada0000000000000000000000000000000000000000000000000000000000002adc0000000000000000000000000000000000000000000000000000000000002ade0000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002ae20000000000000000000000000000000000000000000000000000000000002ae40000000000000000000000000000000000000000000000000000000000002ae60000000000000000000000000000000000000000000000000000000000002ae80000000000000000000000000000000000000000000000000000000000002aea0000000000000000000000000000000000000000000000000000000000002aec0000000000000000000000000000000000000000000000000000000000002aee0000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002af20000000000000000000000000000000000000000000000000000000000002af40000000000000000000000000000000000000000000000000000000000002af60000000000000000000000000000000000000000000000000000000000002af80000000000000000000000000000000000000000000000000000000000002afa0000000000000000000000000000000000000000000000000000000000002afc0000000000000000000000000000000000000000000000000000000000002afe0000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b020000000000000000000000000000000000000000000000000000000000002b040000000000000000000000000000000000000000000000000000000000002b060000000000000000000000000000000000000000000000000000000000002b080000000000000000000000000000000000000000000000000000000000002b0a0000000000000000000000000000000000000000000000000000000000002b0c0000000000000000000000000000000000000000000000000000000000002b0e0000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b120000000000000000000000000000000000000000000000000000000000002b140000000000000000000000000000000000000000000000000000000000002b160000000000000000000000000000000000000000000000000000000000002b180000000000000000000000000000000000000000000000000000000000002b1a0000000000000000000000000000000000000000000000000000000000002b1c0000000000000000000000000000000000000000000000000000000000002b1e0000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b220000000000000000000000000000000000000000000000000000000000002b240000000000000000000000000000000000000000000000000000000000002b260000000000000000000000000000000000000000000000000000000000002b280000000000000000000000000000000000000000000000000000000000002b2a0000000000000000000000000000000000000000000000000000000000002b2c0000000000000000000000000000000000000000000000000000000000002b2e0000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b320000000000000000000000000000000000000000000000000000000000002b340000000000000000000000000000000000000000000000000000000000002b360000000000000000000000000000000000000000000000000000000000002b380000000000000000000000000000000000000000000000000000000000002b3a0000000000000000000000000000000000000000000000000000000000002b3c0000000000000000000000000000000000000000000000000000000000002b3e0000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b420000000000000000000000000000000000000000000000000000000000002b440000000000000000000000000000000000000000000000000000000000002b460000000000000000000000000000000000000000000000000000000000002b480000000000000000000000000000000000000000000000000000000000002b4a0000000000000000000000000000000000000000000000000000000000002b4c0000000000000000000000000000000000000000000000000000000000002b4e0000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b520000000000000000000000000000000000000000000000000000000000002b540000000000000000000000000000000000000000000000000000000000002b560000000000000000000000000000000000000000000000000000000000002b580000000000000000000000000000000000000000000000000000000000002b5a0000000000000000000000000000000000000000000000000000000000002b5c0000000000000000000000000000000000000000000000000000000000002b5e0000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b620000000000000000000000000000000000000000000000000000000000002b640000000000000000000000000000000000000000000000000000000000002b660000000000000000000000000000000000000000000000000000000000002b680000000000000000000000000000000000000000000000000000000000002b6a0000000000000000000000000000000000000000000000000000000000002b6c0000000000000000000000000000000000000000000000000000000000002b6e0000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b720000000000000000000000000000000000000000000000000000000000002b740000000000000000000000000000000000000000000000000000000000002b760000000000000000000000000000000000000000000000000000000000002b780000000000000000000000000000000000000000000000000000000000002b7a0000000000000000000000000000000000000000000000000000000000002b7c0000000000000000000000000000000000000000000000000000000000002b7e0000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b820000000000000000000000000000000000000000000000000000000000002b840000000000000000000000000000000000000000000000000000000000002b860000000000000000000000000000000000000000000000000000000000002b880000000000000000000000000000000000000000000000000000000000002b8a0000000000000000000000000000000000000000000000000000000000002b8c0000000000000000000000000000000000000000000000000000000000002b8e0000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002b920000000000000000000000000000000000000000000000000000000000002b940000000000000000000000000000000000000000000000000000000000002b960000000000000000000000000000000000000000000000000000000000002b980000000000000000000000000000000000000000000000000000000000002b9a0000000000000000000000000000000000000000000000000000000000002b9c0000000000000000000000000000000000000000000000000000000000002b9e0000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002ba20000000000000000000000000000000000000000000000000000000000002ba40000000000000000000000000000000000000000000000000000000000002ba60000000000000000000000000000000000000000000000000000000000002ba80000000000000000000000000000000000000000000000000000000000002baa0000000000000000000000000000000000000000000000000000000000002bac0000000000000000000000000000000000000000000000000000000000002bae0000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bb20000000000000000000000000000000000000000000000000000000000002bb40000000000000000000000000000000000000000000000000000000000002bb60000000000000000000000000000000000000000000000000000000000002bb80000000000000000000000000000000000000000000000000000000000002bba0000000000000000000000000000000000000000000000000000000000002bbc0000000000000000000000000000000000000000000000000000000000002bbe0000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bc20000000000000000000000000000000000000000000000000000000000002bc40000000000000000000000000000000000000000000000000000000000002bc60000000000000000000000000000000000000000000000000000000000002bc80000000000000000000000000000000000000000000000000000000000002bca0000000000000000000000000000000000000000000000000000000000002bcc0000000000000000000000000000000000000000000000000000000000002bce0000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002bd20000000000000000000000000000000000000000000000000000000000002bd40000000000000000000000000000000000000000000000000000000000002bd60000000000000000000000000000000000000000000000000000000000002bd80000000000000000000000000000000000000000000000000000000000002bda0000000000000000000000000000000000000000000000000000000000002bdc0000000000000000000000000000000000000000000000000000000000002bde0000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002be20000000000000000000000000000000000000000000000000000000000002be40000000000000000000000000000000000000000000000000000000000002be60000000000000000000000000000000000000000000000000000000000002be80000000000000000000000000000000000000000000000000000000000002bea0000000000000000000000000000000000000000000000000000000000002bec0000000000000000000000000000000000000000000000000000000000002bee0000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002bf20000000000000000000000000000000000000000000000000000000000002bf40000000000000000000000000000000000000000000000000000000000002bf60000000000000000000000000000000000000000000000000000000000002bf80000000000000000000000000000000000000000000000000000000000002bfa0000000000000000000000000000000000000000000000000000000000002bfc0000000000000000000000000000000000000000000000000000000000002bfe0000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c020000000000000000000000000000000000000000000000000000000000002c040000000000000000000000000000000000000000000000000000000000002c060000000000000000000000000000000000000000000000000000000000002c080000000000000000000000000000000000000000000000000000000000002c0a0000000000000000000000000000000000000000000000000000000000002c0c0000000000000000000000000000000000000000000000000000000000002c0e0000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c120000000000000000000000000000000000000000000000000000000000002c140000000000000000000000000000000000000000000000000000000000002c160000000000000000000000000000000000000000000000000000000000002c180000000000000000000000000000000000000000000000000000000000002c1a0000000000000000000000000000000000000000000000000000000000002c1c0000000000000000000000000000000000000000000000000000000000002c1e0000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c220000000000000000000000000000000000000000000000000000000000002c240000000000000000000000000000000000000000000000000000000000002c260000000000000000000000000000000000000000000000000000000000002c280000000000000000000000000000000000000000000000000000000000002c2a0000000000000000000000000000000000000000000000000000000000002c2c0000000000000000000000000000000000000000000000000000000000002c2e0000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c320000000000000000000000000000000000000000000000000000000000002c340000000000000000000000000000000000000000000000000000000000002c360000000000000000000000000000000000000000000000000000000000002c380000000000000000000000000000000000000000000000000000000000002c3a0000000000000000000000000000000000000000000000000000000000002c3c0000000000000000000000000000000000000000000000000000000000002c3e0000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c420000000000000000000000000000000000000000000000000000000000002c440000000000000000000000000000000000000000000000000000000000002c460000000000000000000000000000000000000000000000000000000000002c480000000000000000000000000000000000000000000000000000000000002c4a0000000000000000000000000000000000000000000000000000000000002c4c0000000000000000000000000000000000000000000000000000000000002c4e0000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c520000000000000000000000000000000000000000000000000000000000002c540000000000000000000000000000000000000000000000000000000000002c560000000000000000000000000000000000000000000000000000000000002c580000000000000000000000000000000000000000000000000000000000002c5a0000000000000000000000000000000000000000000000000000000000002c5c0000000000000000000000000000000000000000000000000000000000002c5e0000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c620000000000000000000000000000000000000000000000000000000000002c640000000000000000000000000000000000000000000000000000000000002c660000000000000000000000000000000000000000000000000000000000002c680000000000000000000000000000000000000000000000000000000000002c6a0000000000000000000000000000000000000000000000000000000000002c6c0000000000000000000000000000000000000000000000000000000000002c6e0000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c720000000000000000000000000000000000000000000000000000000000002c740000000000000000000000000000000000000000000000000000000000002c760000000000000000000000000000000000000000000000000000000000002c780000000000000000000000000000000000000000000000000000000000002c7a0000000000000000000000000000000000000000000000000000000000002c7c0000000000000000000000000000000000000000000000000000000000002c7e0000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c820000000000000000000000000000000000000000000000000000000000002c840000000000000000000000000000000000000000000000000000000000002c860000000000000000000000000000000000000000000000000000000000002c880000000000000000000000000000000000000000000000000000000000002c8a0000000000000000000000000000000000000000000000000000000000002c8c0000000000000000000000000000000000000000000000000000000000002c8e0000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002c920000000000000000000000000000000000000000000000000000000000002c940000000000000000000000000000000000000000000000000000000000002c960000000000000000000000000000000000000000000000000000000000002c980000000000000000000000000000000000000000000000000000000000002c9a0000000000000000000000000000000000000000000000000000000000002c9c0000000000000000000000000000000000000000000000000000000000002c9e0000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002ca20000000000000000000000000000000000000000000000000000000000002ca40000000000000000000000000000000000000000000000000000000000002ca60000000000000000000000000000000000000000000000000000000000002ca80000000000000000000000000000000000000000000000000000000000002caa0000000000000000000000000000000000000000000000000000000000002cac0000000000000000000000000000000000000000000000000000000000002cae0000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cb20000000000000000000000000000000000000000000000000000000000002cb40000000000000000000000000000000000000000000000000000000000002cb60000000000000000000000000000000000000000000000000000000000002cb80000000000000000000000000000000000000000000000000000000000002cba0000000000000000000000000000000000000000000000000000000000002cbc0000000000000000000000000000000000000000000000000000000000002cbe0000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cc20000000000000000000000000000000000000000000000000000000000002cc40000000000000000000000000000000000000000000000000000000000002cc60000000000000000000000000000000000000000000000000000000000002cc80000000000000000000000000000000000000000000000000000000000002cca0000000000000000000000000000000000000000000000000000000000002ccc0000000000000000000000000000000000000000000000000000000000002cce0000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002cd20000000000000000000000000000000000000000000000000000000000002cd40000000000000000000000000000000000000000000000000000000000002cd60000000000000000000000000000000000000000000000000000000000002cd80000000000000000000000000000000000000000000000000000000000002cda0000000000000000000000000000000000000000000000000000000000002cdc0000000000000000000000000000000000000000000000000000000000002cde0000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002ce20000000000000000000000000000000000000000000000000000000000002ce40000000000000000000000000000000000000000000000000000000000002ce60000000000000000000000000000000000000000000000000000000000002ce80000000000000000000000000000000000000000000000000000000000002cea0000000000000000000000000000000000000000000000000000000000002cec0000000000000000000000000000000000000000000000000000000000002cee0000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002cf20000000000000000000000000000000000000000000000000000000000002cf40000000000000000000000000000000000000000000000000000000000002cf60000000000000000000000000000000000000000000000000000000000002cf80000000000000000000000000000000000000000000000000000000000002cfa0000000000000000000000000000000000000000000000000000000000002cfc0000000000000000000000000000000000000000000000000000000000002cfe0000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d020000000000000000000000000000000000000000000000000000000000002d040000000000000000000000000000000000000000000000000000000000002d060000000000000000000000000000000000000000000000000000000000002d080000000000000000000000000000000000000000000000000000000000002d0a0000000000000000000000000000000000000000000000000000000000002d0c0000000000000000000000000000000000000000000000000000000000002d0e0000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d120000000000000000000000000000000000000000000000000000000000002d140000000000000000000000000000000000000000000000000000000000002d160000000000000000000000000000000000000000000000000000000000002d180000000000000000000000000000000000000000000000000000000000002d1a0000000000000000000000000000000000000000000000000000000000002d1c0000000000000000000000000000000000000000000000000000000000002d1e0000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d220000000000000000000000000000000000000000000000000000000000002d240000000000000000000000000000000000000000000000000000000000002d260000000000000000000000000000000000000000000000000000000000002d280000000000000000000000000000000000000000000000000000000000002d2a0000000000000000000000000000000000000000000000000000000000002d2c0000000000000000000000000000000000000000000000000000000000002d2e0000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d320000000000000000000000000000000000000000000000000000000000002d340000000000000000000000000000000000000000000000000000000000002d360000000000000000000000000000000000000000000000000000000000002d380000000000000000000000000000000000000000000000000000000000002d3a0000000000000000000000000000000000000000000000000000000000002d3c0000000000000000000000000000000000000000000000000000000000002d3e0000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d420000000000000000000000000000000000000000000000000000000000002d440000000000000000000000000000000000000000000000000000000000002d460000000000000000000000000000000000000000000000000000000000002d480000000000000000000000000000000000000000000000000000000000002d4a0000000000000000000000000000000000000000000000000000000000002d4c0000000000000000000000000000000000000000000000000000000000002d4e0000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d520000000000000000000000000000000000000000000000000000000000002d540000000000000000000000000000000000000000000000000000000000002d560000000000000000000000000000000000000000000000000000000000002d580000000000000000000000000000000000000000000000000000000000002d5a0000000000000000000000000000000000000000000000000000000000002d5c0000000000000000000000000000000000000000000000000000000000002d5e0000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d620000000000000000000000000000000000000000000000000000000000002d640000000000000000000000000000000000000000000000000000000000002d660000000000000000000000000000000000000000000000000000000000002d680000000000000000000000000000000000000000000000000000000000002d6a0000000000000000000000000000000000000000000000000000000000002d6c0000000000000000000000000000000000000000000000000000000000002d6e0000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d720000000000000000000000000000000000000000000000000000000000002d740000000000000000000000000000000000000000000000000000000000002d760000000000000000000000000000000000000000000000000000000000002d780000000000000000000000000000000000000000000000000000000000002d7a0000000000000000000000000000000000000000000000000000000000002d7c0000000000000000000000000000000000000000000000000000000000002d7e0000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d820000000000000000000000000000000000000000000000000000000000002d840000000000000000000000000000000000000000000000000000000000002d860000000000000000000000000000000000000000000000000000000000002d880000000000000000000000000000000000000000000000000000000000002d8a0000000000000000000000000000000000000000000000000000000000002d8c0000000000000000000000000000000000000000000000000000000000002d8e0000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002d920000000000000000000000000000000000000000000000000000000000002d940000000000000000000000000000000000000000000000000000000000002d960000000000000000000000000000000000000000000000000000000000002d980000000000000000000000000000000000000000000000000000000000002d9a0000000000000000000000000000000000000000000000000000000000002d9c0000000000000000000000000000000000000000000000000000000000002d9e0000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002da20000000000000000000000000000000000000000000000000000000000002da40000000000000000000000000000000000000000000000000000000000002da60000000000000000000000000000000000000000000000000000000000002da80000000000000000000000000000000000000000000000000000000000002daa0000000000000000000000000000000000000000000000000000000000002dac0000000000000000000000000000000000000000000000000000000000002dae0000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002db20000000000000000000000000000000000000000000000000000000000002db40000000000000000000000000000000000000000000000000000000000002db60000000000000000000000000000000000000000000000000000000000002db80000000000000000000000000000000000000000000000000000000000002dba0000000000000000000000000000000000000000000000000000000000002dbc0000000000000000000000000000000000000000000000000000000000002dbe0000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dc20000000000000000000000000000000000000000000000000000000000002dc40000000000000000000000000000000000000000000000000000000000002dc60000000000000000000000000000000000000000000000000000000000002dc80000000000000000000000000000000000000000000000000000000000002dca0000000000000000000000000000000000000000000000000000000000002dcc0000000000000000000000000000000000000000000000000000000000002dce0000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002dd20000000000000000000000000000000000000000000000000000000000002dd40000000000000000000000000000000000000000000000000000000000002dd60000000000000000000000000000000000000000000000000000000000002dd80000000000000000000000000000000000000000000000000000000000002dda0000000000000000000000000000000000000000000000000000000000002ddc0000000000000000000000000000000000000000000000000000000000002dde0000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002de20000000000000000000000000000000000000000000000000000000000002de40000000000000000000000000000000000000000000000000000000000002de60000000000000000000000000000000000000000000000000000000000002de80000000000000000000000000000000000000000000000000000000000002dea0000000000000000000000000000000000000000000000000000000000002dec0000000000000000000000000000000000000000000000000000000000002dee0000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002df20000000000000000000000000000000000000000000000000000000000002df40000000000000000000000000000000000000000000000000000000000002df60000000000000000000000000000000000000000000000000000000000002df80000000000000000000000000000000000000000000000000000000000002dfa0000000000000000000000000000000000000000000000000000000000002dfc0000000000000000000000000000000000000000000000000000000000002dfe0000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e020000000000000000000000000000000000000000000000000000000000002e040000000000000000000000000000000000000000000000000000000000002e060000000000000000000000000000000000000000000000000000000000002e080000000000000000000000000000000000000000000000000000000000002e0a0000000000000000000000000000000000000000000000000000000000002e0c0000000000000000000000000000000000000000000000000000000000002e0e0000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e120000000000000000000000000000000000000000000000000000000000002e140000000000000000000000000000000000000000000000000000000000002e160000000000000000000000000000000000000000000000000000000000002e180000000000000000000000000000000000000000000000000000000000002e1a0000000000000000000000000000000000000000000000000000000000002e1c0000000000000000000000000000000000000000000000000000000000002e1e0000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e220000000000000000000000000000000000000000000000000000000000002e240000000000000000000000000000000000000000000000000000000000002e260000000000000000000000000000000000000000000000000000000000002e280000000000000000000000000000000000000000000000000000000000002e2a0000000000000000000000000000000000000000000000000000000000002e2c0000000000000000000000000000000000000000000000000000000000002e2e0000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e320000000000000000000000000000000000000000000000000000000000002e340000000000000000000000000000000000000000000000000000000000002e360000000000000000000000000000000000000000000000000000000000002e380000000000000000000000000000000000000000000000000000000000002e3a0000000000000000000000000000000000000000000000000000000000002e3c0000000000000000000000000000000000000000000000000000000000002e3e0000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e420000000000000000000000000000000000000000000000000000000000002e440000000000000000000000000000000000000000000000000000000000002e460000000000000000000000000000000000000000000000000000000000002e480000000000000000000000000000000000000000000000000000000000002e4a0000000000000000000000000000000000000000000000000000000000002e4c0000000000000000000000000000000000000000000000000000000000002e4e0000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e520000000000000000000000000000000000000000000000000000000000002e540000000000000000000000000000000000000000000000000000000000002e560000000000000000000000000000000000000000000000000000000000002e580000000000000000000000000000000000000000000000000000000000002e5a0000000000000000000000000000000000000000000000000000000000002e5c0000000000000000000000000000000000000000000000000000000000002e5e0000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e620000000000000000000000000000000000000000000000000000000000002e640000000000000000000000000000000000000000000000000000000000002e660000000000000000000000000000000000000000000000000000000000002e680000000000000000000000000000000000000000000000000000000000002e6a0000000000000000000000000000000000000000000000000000000000002e6c0000000000000000000000000000000000000000000000000000000000002e6e0000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e720000000000000000000000000000000000000000000000000000000000002e740000000000000000000000000000000000000000000000000000000000002e760000000000000000000000000000000000000000000000000000000000002e780000000000000000000000000000000000000000000000000000000000002e7a0000000000000000000000000000000000000000000000000000000000002e7c0000000000000000000000000000000000000000000000000000000000002e7e0000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e820000000000000000000000000000000000000000000000000000000000002e840000000000000000000000000000000000000000000000000000000000002e860000000000000000000000000000000000000000000000000000000000002e880000000000000000000000000000000000000000000000000000000000002e8a0000000000000000000000000000000000000000000000000000000000002e8c0000000000000000000000000000000000000000000000000000000000002e8e0000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002e920000000000000000000000000000000000000000000000000000000000002e940000000000000000000000000000000000000000000000000000000000002e960000000000000000000000000000000000000000000000000000000000002e980000000000000000000000000000000000000000000000000000000000002e9a0000000000000000000000000000000000000000000000000000000000002e9c0000000000000000000000000000000000000000000000000000000000002e9e0000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002ea20000000000000000000000000000000000000000000000000000000000002ea40000000000000000000000000000000000000000000000000000000000002ea60000000000000000000000000000000000000000000000000000000000002ea80000000000000000000000000000000000000000000000000000000000002eaa0000000000000000000000000000000000000000000000000000000000002eac0000000000000000000000000000000000000000000000000000000000002eae0000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002eb20000000000000000000000000000000000000000000000000000000000002eb40000000000000000000000000000000000000000000000000000000000002eb60000000000000000000000000000000000000000000000000000000000002eb80000000000000000000000000000000000000000000000000000000000002eba0000000000000000000000000000000000000000000000000000000000002ebc0000000000000000000000000000000000000000000000000000000000002ebe0000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ec20000000000000000000000000000000000000000000000000000000000002ec40000000000000000000000000000000000000000000000000000000000002ec60000000000000000000000000000000000000000000000000000000000002ec80000000000000000000000000000000000000000000000000000000000002eca0000000000000000000000000000000000000000000000000000000000002ecc0000000000000000000000000000000000000000000000000000000000002ece0000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ed20000000000000000000000000000000000000000000000000000000000002ed40000000000000000000000000000000000000000000000000000000000002ed60000000000000000000000000000000000000000000000000000000000002ed80000000000000000000000000000000000000000000000000000000000002eda0000000000000000000000000000000000000000000000000000000000002edc0000000000000000000000000000000000000000000000000000000000002ede0000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ee20000000000000000000000000000000000000000000000000000000000002ee40000000000000000000000000000000000000000000000000000000000002ee60000000000000000000000000000000000000000000000000000000000002ee80000000000000000000000000000000000000000000000000000000000002eea0000000000000000000000000000000000000000000000000000000000002eec0000000000000000000000000000000000000000000000000000000000002eee0000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002ef20000000000000000000000000000000000000000000000000000000000002ef40000000000000000000000000000000000000000000000000000000000002ef60000000000000000000000000000000000000000000000000000000000002ef80000000000000000000000000000000000000000000000000000000000002efa0000000000000000000000000000000000000000000000000000000000002efc0000000000000000000000000000000000000000000000000000000000002efe0000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f020000000000000000000000000000000000000000000000000000000000002f040000000000000000000000000000000000000000000000000000000000002f060000000000000000000000000000000000000000000000000000000000002f080000000000000000000000000000000000000000000000000000000000002f0a0000000000000000000000000000000000000000000000000000000000002f0c0000000000000000000000000000000000000000000000000000000000002f0e0000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f120000000000000000000000000000000000000000000000000000000000002f140000000000000000000000000000000000000000000000000000000000002f160000000000000000000000000000000000000000000000000000000000002f180000000000000000000000000000000000000000000000000000000000002f1a0000000000000000000000000000000000000000000000000000000000002f1c0000000000000000000000000000000000000000000000000000000000002f1e0000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f220000000000000000000000000000000000000000000000000000000000002f240000000000000000000000000000000000000000000000000000000000002f260000000000000000000000000000000000000000000000000000000000002f280000000000000000000000000000000000000000000000000000000000002f2a0000000000000000000000000000000000000000000000000000000000002f2c0000000000000000000000000000000000000000000000000000000000002f2e0000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f320000000000000000000000000000000000000000000000000000000000002f340000000000000000000000000000000000000000000000000000000000002f360000000000000000000000000000000000000000000000000000000000002f380000000000000000000000000000000000000000000000000000000000002f3a0000000000000000000000000000000000000000000000000000000000002f3c0000000000000000000000000000000000000000000000000000000000002f3e0000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f420000000000000000000000000000000000000000000000000000000000002f440000000000000000000000000000000000000000000000000000000000002f460000000000000000000000000000000000000000000000000000000000002f480000000000000000000000000000000000000000000000000000000000002f4a0000000000000000000000000000000000000000000000000000000000002f4c0000000000000000000000000000000000000000000000000000000000002f4e0000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f520000000000000000000000000000000000000000000000000000000000002f540000000000000000000000000000000000000000000000000000000000002f560000000000000000000000000000000000000000000000000000000000002f580000000000000000000000000000000000000000000000000000000000002f5a0000000000000000000000000000000000000000000000000000000000002f5c0000000000000000000000000000000000000000000000000000000000002f5e0000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f620000000000000000000000000000000000000000000000000000000000002f640000000000000000000000000000000000000000000000000000000000002f660000000000000000000000000000000000000000000000000000000000002f680000000000000000000000000000000000000000000000000000000000002f6a0000000000000000000000000000000000000000000000000000000000002f6c0000000000000000000000000000000000000000000000000000000000002f6e0000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f720000000000000000000000000000000000000000000000000000000000002f740000000000000000000000000000000000000000000000000000000000002f760000000000000000000000000000000000000000000000000000000000002f780000000000000000000000000000000000000000000000000000000000002f7a0000000000000000000000000000000000000000000000000000000000002f7c0000000000000000000000000000000000000000000000000000000000002f7e0000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f820000000000000000000000000000000000000000000000000000000000002f840000000000000000000000000000000000000000000000000000000000002f860000000000000000000000000000000000000000000000000000000000002f880000000000000000000000000000000000000000000000000000000000002f8a0000000000000000000000000000000000000000000000000000000000002f8c0000000000000000000000000000000000000000000000000000000000002f8e0000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002f920000000000000000000000000000000000000000000000000000000000002f940000000000000000000000000000000000000000000000000000000000002f960000000000000000000000000000000000000000000000000000000000002f980000000000000000000000000000000000000000000000000000000000002f9a0000000000000000000000000000000000000000000000000000000000002f9c0000000000000000000000000000000000000000000000000000000000002f9e0000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fa20000000000000000000000000000000000000000000000000000000000002fa40000000000000000000000000000000000000000000000000000000000002fa60000000000000000000000000000000000000000000000000000000000002fa80000000000000000000000000000000000000000000000000000000000002faa0000000000000000000000000000000000000000000000000000000000002fac0000000000000000000000000000000000000000000000000000000000002fae0000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fb20000000000000000000000000000000000000000000000000000000000002fb40000000000000000000000000000000000000000000000000000000000002fb60000000000000000000000000000000000000000000000000000000000002fb80000000000000000000000000000000000000000000000000000000000002fba0000000000000000000000000000000000000000000000000000000000002fbc0000000000000000000000000000000000000000000000000000000000002fbe0000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fc20000000000000000000000000000000000000000000000000000000000002fc40000000000000000000000000000000000000000000000000000000000002fc60000000000000000000000000000000000000000000000000000000000002fc80000000000000000000000000000000000000000000000000000000000002fca0000000000000000000000000000000000000000000000000000000000002fcc0000000000000000000000000000000000000000000000000000000000002fce0000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fd20000000000000000000000000000000000000000000000000000000000002fd40000000000000000000000000000000000000000000000000000000000002fd60000000000000000000000000000000000000000000000000000000000002fd80000000000000000000000000000000000000000000000000000000000002fda0000000000000000000000000000000000000000000000000000000000002fdc0000000000000000000000000000000000000000000000000000000000002fde0000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002fe20000000000000000000000000000000000000000000000000000000000002fe40000000000000000000000000000000000000000000000000000000000002fe60000000000000000000000000000000000000000000000000000000000002fe80000000000000000000000000000000000000000000000000000000000002fea0000000000000000000000000000000000000000000000000000000000002fec0000000000000000000000000000000000000000000000000000000000002fee0000000000000000000000000000000000000000000000000000000000002ff00000000000000000000000000000000000000000000000000000000000002ff20000000000000000000000000000000000000000000000000000000000002ff40000000000000000000000000000000000000000000000000000000000002ff60000000000000000000000000000000000000000000000000000000000002ff80000000000000000000000000000000000000000000000000000000000002ffa0000000000000000000000000000000000000000000000000000000000002ffc0000000000000000000000000000000000000000000000000000000000002ffe00000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003002000000000000000000000000000000000000000000000000000000000000300400000000000000000000000000000000000000000000000000000000000030060000000000000000000000000000000000000000000000000000000000003008000000000000000000000000000000000000000000000000000000000000300a000000000000000000000000000000000000000000000000000000000000300c000000000000000000000000000000000000000000000000000000000000300e00000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003012000000000000000000000000000000000000000000000000000000000000301400000000000000000000000000000000000000000000000000000000000030160000000000000000000000000000000000000000000000000000000000003018000000000000000000000000000000000000000000000000000000000000301a000000000000000000000000000000000000000000000000000000000000301c000000000000000000000000000000000000000000000000000000000000301e00000000000000000000000000000000000000000000000000000000000030200000000000000000000000000000000000000000000000000000000000003022000000000000000000000000000000000000000000000000000000000000302400000000000000000000000000000000000000000000000000000000000030260000000000000000000000000000000000000000000000000000000000003028000000000000000000000000000000000000000000000000000000000000302a000000000000000000000000000000000000000000000000000000000000302c000000000000000000000000000000000000000000000000000000000000302e00000000000000000000000000000000000000000000000000000000000030300000000000000000000000000000000000000000000000000000000000003032000000000000000000000000000000000000000000000000000000000000303400000000000000000000000000000000000000000000000000000000000030360000000000000000000000000000000000000000000000000000000000003038000000000000000000000000000000000000000000000000000000000000303a000000000000000000000000000000000000000000000000000000000000303c000000000000000000000000000000000000000000000000000000000000303e00000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003042000000000000000000000000000000000000000000000000000000000000304400000000000000000000000000000000000000000000000000000000000030460000000000000000000000000000000000000000000000000000000000003048000000000000000000000000000000000000000000000000000000000000304a000000000000000000000000000000000000000000000000000000000000304c000000000000000000000000000000000000000000000000000000000000304e00000000000000000000000000000000000000000000000000000000000030500000000000000000000000000000000000000000000000000000000000003052000000000000000000000000000000000000000000000000000000000000305400000000000000000000000000000000000000000000000000000000000030560000000000000000000000000000000000000000000000000000000000003058000000000000000000000000000000000000000000000000000000000000305a000000000000000000000000000000000000000000000000000000000000305c000000000000000000000000000000000000000000000000000000000000305e00000000000000000000000000000000000000000000000000000000000030600000000000000000000000000000000000000000000000000000000000003062000000000000000000000000000000000000000000000000000000000000306400000000000000000000000000000000000000000000000000000000000030660000000000000000000000000000000000000000000000000000000000003068000000000000000000000000000000000000000000000000000000000000306a000000000000000000000000000000000000000000000000000000000000306c000000000000000000000000000000000000000000000000000000000000306e00000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003072000000000000000000000000000000000000000000000000000000000000307400000000000000000000000000000000000000000000000000000000000030760000000000000000000000000000000000000000000000000000000000003078000000000000000000000000000000000000000000000000000000000000307a000000000000000000000000000000000000000000000000000000000000307c000000000000000000000000000000000000000000000000000000000000307e00000000000000000000000000000000000000000000000000000000000030800000000000000000000000000000000000000000000000000000000000003082000000000000000000000000000000000000000000000000000000000000308400000000000000000000000000000000000000000000000000000000000030860000000000000000000000000000000000000000000000000000000000003088000000000000000000000000000000000000000000000000000000000000308a000000000000000000000000000000000000000000000000000000000000308c000000000000000000000000000000000000000000000000000000000000308e00000000000000000000000000000000000000000000000000000000000030900000000000000000000000000000000000000000000000000000000000003092000000000000000000000000000000000000000000000000000000000000309400000000000000000000000000000000000000000000000000000000000030960000000000000000000000000000000000000000000000000000000000003098000000000000000000000000000000000000000000000000000000000000309a000000000000000000000000000000000000000000000000000000000000309c000000000000000000000000000000000000000000000000000000000000309e00000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030a200000000000000000000000000000000000000000000000000000000000030a400000000000000000000000000000000000000000000000000000000000030a600000000000000000000000000000000000000000000000000000000000030a800000000000000000000000000000000000000000000000000000000000030aa00000000000000000000000000000000000000000000000000000000000030ac00000000000000000000000000000000000000000000000000000000000030ae00000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030b200000000000000000000000000000000000000000000000000000000000030b400000000000000000000000000000000000000000000000000000000000030b600000000000000000000000000000000000000000000000000000000000030b800000000000000000000000000000000000000000000000000000000000030ba00000000000000000000000000000000000000000000000000000000000030bc00000000000000000000000000000000000000000000000000000000000030be00000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030c200000000000000000000000000000000000000000000000000000000000030c400000000000000000000000000000000000000000000000000000000000030c600000000000000000000000000000000000000000000000000000000000030c800000000000000000000000000000000000000000000000000000000000030ca00000000000000000000000000000000000000000000000000000000000030cc00000000000000000000000000000000000000000000000000000000000030ce00000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030d200000000000000000000000000000000000000000000000000000000000030d400000000000000000000000000000000000000000000000000000000000030d600000000000000000000000000000000000000000000000000000000000030d800000000000000000000000000000000000000000000000000000000000030da00000000000000000000000000000000000000000000000000000000000030dc00000000000000000000000000000000000000000000000000000000000030de00000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030e200000000000000000000000000000000000000000000000000000000000030e400000000000000000000000000000000000000000000000000000000000030e600000000000000000000000000000000000000000000000000000000000030e800000000000000000000000000000000000000000000000000000000000030ea00000000000000000000000000000000000000000000000000000000000030ec00000000000000000000000000000000000000000000000000000000000030ee00000000000000000000000000000000000000000000000000000000000030f000000000000000000000000000000000000000000000000000000000000030f200000000000000000000000000000000000000000000000000000000000030f400000000000000000000000000000000000000000000000000000000000030f600000000000000000000000000000000000000000000000000000000000030f800000000000000000000000000000000000000000000000000000000000030fa00000000000000000000000000000000000000000000000000000000000030fc00000000000000000000000000000000000000000000000000000000000030fe00000000000000000000000000000000000000000000000000000000000031000000000000000000000000000000000000000000000000000000000000003102000000000000000000000000000000000000000000000000000000000000310400000000000000000000000000000000000000000000000000000000000031060000000000000000000000000000000000000000000000000000000000003108000000000000000000000000000000000000000000000000000000000000310a000000000000000000000000000000000000000000000000000000000000310c000000000000000000000000000000000000000000000000000000000000310e00000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003112000000000000000000000000000000000000000000000000000000000000311400000000000000000000000000000000000000000000000000000000000031160000000000000000000000000000000000000000000000000000000000003118000000000000000000000000000000000000000000000000000000000000311a000000000000000000000000000000000000000000000000000000000000311c000000000000000000000000000000000000000000000000000000000000311e00000000000000000000000000000000000000000000000000000000000031200000000000000000000000000000000000000000000000000000000000003122000000000000000000000000000000000000000000000000000000000000312400000000000000000000000000000000000000000000000000000000000031260000000000000000000000000000000000000000000000000000000000003128000000000000000000000000000000000000000000000000000000000000312a000000000000000000000000000000000000000000000000000000000000312c000000000000000000000000000000000000000000000000000000000000312e00000000000000000000000000000000000000000000000000000000000031300000000000000000000000000000000000000000000000000000000000003132000000000000000000000000000000000000000000000000000000000000313400000000000000000000000000000000000000000000000000000000000031360000000000000000000000000000000000000000000000000000000000003138000000000000000000000000000000000000000000000000000000000000313a000000000000000000000000000000000000000000000000000000000000313c000000000000000000000000000000000000000000000000000000000000313e00000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003142000000000000000000000000000000000000000000000000000000000000314400000000000000000000000000000000000000000000000000000000000031460000000000000000000000000000000000000000000000000000000000003148000000000000000000000000000000000000000000000000000000000000314a000000000000000000000000000000000000000000000000000000000000314c000000000000000000000000000000000000000000000000000000000000314e00000000000000000000000000000000000000000000000000000000000031500000000000000000000000000000000000000000000000000000000000003152000000000000000000000000000000000000000000000000000000000000315400000000000000000000000000000000000000000000000000000000000031560000000000000000000000000000000000000000000000000000000000003158000000000000000000000000000000000000000000000000000000000000315a000000000000000000000000000000000000000000000000000000000000315c000000000000000000000000000000000000000000000000000000000000315e00000000000000000000000000000000000000000000000000000000000031600000000000000000000000000000000000000000000000000000000000003162000000000000000000000000000000000000000000000000000000000000316400000000000000000000000000000000000000000000000000000000000031660000000000000000000000000000000000000000000000000000000000003168000000000000000000000000000000000000000000000000000000000000316a000000000000000000000000000000000000000000000000000000000000316c000000000000000000000000000000000000000000000000000000000000316e00000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003172000000000000000000000000000000000000000000000000000000000000317400000000000000000000000000000000000000000000000000000000000031760000000000000000000000000000000000000000000000000000000000003178000000000000000000000000000000000000000000000000000000000000317a000000000000000000000000000000000000000000000000000000000000317c000000000000000000000000000000000000000000000000000000000000317e00000000000000000000000000000000000000000000000000000000000031800000000000000000000000000000000000000000000000000000000000003182000000000000000000000000000000000000000000000000000000000000318400000000000000000000000000000000000000000000000000000000000031860000000000000000000000000000000000000000000000000000000000003188000000000000000000000000000000000000000000000000000000000000318a000000000000000000000000000000000000000000000000000000000000318c000000000000000000000000000000000000000000000000000000000000318e00000000000000000000000000000000000000000000000000000000000031900000000000000000000000000000000000000000000000000000000000003192000000000000000000000000000000000000000000000000000000000000319400000000000000000000000000000000000000000000000000000000000031960000000000000000000000000000000000000000000000000000000000003198000000000000000000000000000000000000000000000000000000000000319a000000000000000000000000000000000000000000000000000000000000319c000000000000000000000000000000000000000000000000000000000000319e00000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031a200000000000000000000000000000000000000000000000000000000000031a400000000000000000000000000000000000000000000000000000000000031a600000000000000000000000000000000000000000000000000000000000031a800000000000000000000000000000000000000000000000000000000000031aa00000000000000000000000000000000000000000000000000000000000031ac00000000000000000000000000000000000000000000000000000000000031ae00000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031b200000000000000000000000000000000000000000000000000000000000031b400000000000000000000000000000000000000000000000000000000000031b600000000000000000000000000000000000000000000000000000000000031b800000000000000000000000000000000000000000000000000000000000031ba00000000000000000000000000000000000000000000000000000000000031bc00000000000000000000000000000000000000000000000000000000000031be00000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031c200000000000000000000000000000000000000000000000000000000000031c400000000000000000000000000000000000000000000000000000000000031c600000000000000000000000000000000000000000000000000000000000031c800000000000000000000000000000000000000000000000000000000000031ca00000000000000000000000000000000000000000000000000000000000031cc00000000000000000000000000000000000000000000000000000000000031ce00000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031d200000000000000000000000000000000000000000000000000000000000031d400000000000000000000000000000000000000000000000000000000000031d600000000000000000000000000000000000000000000000000000000000031d800000000000000000000000000000000000000000000000000000000000031da00000000000000000000000000000000000000000000000000000000000031dc00000000000000000000000000000000000000000000000000000000000031de00000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031e200000000000000000000000000000000000000000000000000000000000031e400000000000000000000000000000000000000000000000000000000000031e600000000000000000000000000000000000000000000000000000000000031e800000000000000000000000000000000000000000000000000000000000031ea00000000000000000000000000000000000000000000000000000000000031ec00000000000000000000000000000000000000000000000000000000000031ee00000000000000000000000000000000000000000000000000000000000031f000000000000000000000000000000000000000000000000000000000000031f200000000000000000000000000000000000000000000000000000000000031f400000000000000000000000000000000000000000000000000000000000031f600000000000000000000000000000000000000000000000000000000000031f800000000000000000000000000000000000000000000000000000000000031fa00000000000000000000000000000000000000000000000000000000000031fc00000000000000000000000000000000000000000000000000000000000031fe00000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000003202000000000000000000000000000000000000000000000000000000000000320400000000000000000000000000000000000000000000000000000000000032060000000000000000000000000000000000000000000000000000000000003208000000000000000000000000000000000000000000000000000000000000320a000000000000000000000000000000000000000000000000000000000000320c000000000000000000000000000000000000000000000000000000000000320e00000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003212000000000000000000000000000000000000000000000000000000000000321400000000000000000000000000000000000000000000000000000000000032160000000000000000000000000000000000000000000000000000000000003218000000000000000000000000000000000000000000000000000000000000321a000000000000000000000000000000000000000000000000000000000000321c000000000000000000000000000000000000000000000000000000000000321e00000000000000000000000000000000000000000000000000000000000032200000000000000000000000000000000000000000000000000000000000003222000000000000000000000000000000000000000000000000000000000000322400000000000000000000000000000000000000000000000000000000000032260000000000000000000000000000000000000000000000000000000000003228000000000000000000000000000000000000000000000000000000000000322a000000000000000000000000000000000000000000000000000000000000322c000000000000000000000000000000000000000000000000000000000000322e00000000000000000000000000000000000000000000000000000000000032300000000000000000000000000000000000000000000000000000000000003232000000000000000000000000000000000000000000000000000000000000323400000000000000000000000000000000000000000000000000000000000032360000000000000000000000000000000000000000000000000000000000003238000000000000000000000000000000000000000000000000000000000000323a000000000000000000000000000000000000000000000000000000000000323c000000000000000000000000000000000000000000000000000000000000323e00000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003242000000000000000000000000000000000000000000000000000000000000324400000000000000000000000000000000000000000000000000000000000032460000000000000000000000000000000000000000000000000000000000003248000000000000000000000000000000000000000000000000000000000000324a000000000000000000000000000000000000000000000000000000000000324c000000000000000000000000000000000000000000000000000000000000324e00000000000000000000000000000000000000000000000000000000000032500000000000000000000000000000000000000000000000000000000000003252000000000000000000000000000000000000000000000000000000000000325400000000000000000000000000000000000000000000000000000000000032560000000000000000000000000000000000000000000000000000000000003258000000000000000000000000000000000000000000000000000000000000325a000000000000000000000000000000000000000000000000000000000000325c000000000000000000000000000000000000000000000000000000000000325e00000000000000000000000000000000000000000000000000000000000032600000000000000000000000000000000000000000000000000000000000003262000000000000000000000000000000000000000000000000000000000000326400000000000000000000000000000000000000000000000000000000000032660000000000000000000000000000000000000000000000000000000000003268000000000000000000000000000000000000000000000000000000000000326a000000000000000000000000000000000000000000000000000000000000326c000000000000000000000000000000000000000000000000000000000000326e00000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003272000000000000000000000000000000000000000000000000000000000000327400000000000000000000000000000000000000000000000000000000000032760000000000000000000000000000000000000000000000000000000000003278000000000000000000000000000000000000000000000000000000000000327a000000000000000000000000000000000000000000000000000000000000327c000000000000000000000000000000000000000000000000000000000000327e00000000000000000000000000000000000000000000000000000000000032800000000000000000000000000000000000000000000000000000000000003282000000000000000000000000000000000000000000000000000000000000328400000000000000000000000000000000000000000000000000000000000032860000000000000000000000000000000000000000000000000000000000003288000000000000000000000000000000000000000000000000000000000000328a000000000000000000000000000000000000000000000000000000000000328c000000000000000000000000000000000000000000000000000000000000328e00000000000000000000000000000000000000000000000000000000000032900000000000000000000000000000000000000000000000000000000000003292000000000000000000000000000000000000000000000000000000000000329400000000000000000000000000000000000000000000000000000000000032960000000000000000000000000000000000000000000000000000000000003298000000000000000000000000000000000000000000000000000000000000329a000000000000000000000000000000000000000000000000000000000000329c000000000000000000000000000000000000000000000000000000000000329e00000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032a200000000000000000000000000000000000000000000000000000000000032a400000000000000000000000000000000000000000000000000000000000032a600000000000000000000000000000000000000000000000000000000000032a800000000000000000000000000000000000000000000000000000000000032aa00000000000000000000000000000000000000000000000000000000000032ac00000000000000000000000000000000000000000000000000000000000032ae00000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032b200000000000000000000000000000000000000000000000000000000000032b400000000000000000000000000000000000000000000000000000000000032b600000000000000000000000000000000000000000000000000000000000032b800000000000000000000000000000000000000000000000000000000000032ba00000000000000000000000000000000000000000000000000000000000032bc00000000000000000000000000000000000000000000000000000000000032be00000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032c200000000000000000000000000000000000000000000000000000000000032c400000000000000000000000000000000000000000000000000000000000032c600000000000000000000000000000000000000000000000000000000000032c800000000000000000000000000000000000000000000000000000000000032ca00000000000000000000000000000000000000000000000000000000000032cc00000000000000000000000000000000000000000000000000000000000032ce00000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032d200000000000000000000000000000000000000000000000000000000000032d400000000000000000000000000000000000000000000000000000000000032d600000000000000000000000000000000000000000000000000000000000032d800000000000000000000000000000000000000000000000000000000000032da00000000000000000000000000000000000000000000000000000000000032dc00000000000000000000000000000000000000000000000000000000000032de00000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032e200000000000000000000000000000000000000000000000000000000000032e400000000000000000000000000000000000000000000000000000000000032e600000000000000000000000000000000000000000000000000000000000032e800000000000000000000000000000000000000000000000000000000000032ea00000000000000000000000000000000000000000000000000000000000032ec00000000000000000000000000000000000000000000000000000000000032ee00000000000000000000000000000000000000000000000000000000000032f000000000000000000000000000000000000000000000000000000000000032f200000000000000000000000000000000000000000000000000000000000032f400000000000000000000000000000000000000000000000000000000000032f600000000000000000000000000000000000000000000000000000000000032f800000000000000000000000000000000000000000000000000000000000032fa00000000000000000000000000000000000000000000000000000000000032fc00000000000000000000000000000000000000000000000000000000000032fe00000000000000000000000000000000000000000000000000000000000033000000000000000000000000000000000000000000000000000000000000003302000000000000000000000000000000000000000000000000000000000000330400000000000000000000000000000000000000000000000000000000000033060000000000000000000000000000000000000000000000000000000000003308000000000000000000000000000000000000000000000000000000000000330a000000000000000000000000000000000000000000000000000000000000330c000000000000000000000000000000000000000000000000000000000000330e00000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003312000000000000000000000000000000000000000000000000000000000000331400000000000000000000000000000000000000000000000000000000000033160000000000000000000000000000000000000000000000000000000000003318000000000000000000000000000000000000000000000000000000000000331a000000000000000000000000000000000000000000000000000000000000331c000000000000000000000000000000000000000000000000000000000000331e00000000000000000000000000000000000000000000000000000000000033200000000000000000000000000000000000000000000000000000000000003322000000000000000000000000000000000000000000000000000000000000332400000000000000000000000000000000000000000000000000000000000033260000000000000000000000000000000000000000000000000000000000003328000000000000000000000000000000000000000000000000000000000000332a000000000000000000000000000000000000000000000000000000000000332c000000000000000000000000000000000000000000000000000000000000332e00000000000000000000000000000000000000000000000000000000000033300000000000000000000000000000000000000000000000000000000000003332000000000000000000000000000000000000000000000000000000000000333400000000000000000000000000000000000000000000000000000000000033360000000000000000000000000000000000000000000000000000000000003338000000000000000000000000000000000000000000000000000000000000333a000000000000000000000000000000000000000000000000000000000000333c000000000000000000000000000000000000000000000000000000000000333e00000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003342000000000000000000000000000000000000000000000000000000000000334400000000000000000000000000000000000000000000000000000000000033460000000000000000000000000000000000000000000000000000000000003348000000000000000000000000000000000000000000000000000000000000334a000000000000000000000000000000000000000000000000000000000000334c000000000000000000000000000000000000000000000000000000000000334e00000000000000000000000000000000000000000000000000000000000033500000000000000000000000000000000000000000000000000000000000003352000000000000000000000000000000000000000000000000000000000000335400000000000000000000000000000000000000000000000000000000000033560000000000000000000000000000000000000000000000000000000000003358000000000000000000000000000000000000000000000000000000000000335a000000000000000000000000000000000000000000000000000000000000335c000000000000000000000000000000000000000000000000000000000000335e00000000000000000000000000000000000000000000000000000000000033600000000000000000000000000000000000000000000000000000000000003362000000000000000000000000000000000000000000000000000000000000336400000000000000000000000000000000000000000000000000000000000033660000000000000000000000000000000000000000000000000000000000003368000000000000000000000000000000000000000000000000000000000000336a000000000000000000000000000000000000000000000000000000000000336c000000000000000000000000000000000000000000000000000000000000336e00000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003372000000000000000000000000000000000000000000000000000000000000337400000000000000000000000000000000000000000000000000000000000033760000000000000000000000000000000000000000000000000000000000003378000000000000000000000000000000000000000000000000000000000000337a000000000000000000000000000000000000000000000000000000000000337c000000000000000000000000000000000000000000000000000000000000337e00000000000000000000000000000000000000000000000000000000000033800000000000000000000000000000000000000000000000000000000000003382000000000000000000000000000000000000000000000000000000000000338400000000000000000000000000000000000000000000000000000000000033860000000000000000000000000000000000000000000000000000000000003388000000000000000000000000000000000000000000000000000000000000338a000000000000000000000000000000000000000000000000000000000000338c000000000000000000000000000000000000000000000000000000000000338e00000000000000000000000000000000000000000000000000000000000033900000000000000000000000000000000000000000000000000000000000003392000000000000000000000000000000000000000000000000000000000000339400000000000000000000000000000000000000000000000000000000000033960000000000000000000000000000000000000000000000000000000000003398000000000000000000000000000000000000000000000000000000000000339a000000000000000000000000000000000000000000000000000000000000339c000000000000000000000000000000000000000000000000000000000000339e00000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033a200000000000000000000000000000000000000000000000000000000000033a400000000000000000000000000000000000000000000000000000000000033a600000000000000000000000000000000000000000000000000000000000033a800000000000000000000000000000000000000000000000000000000000033aa00000000000000000000000000000000000000000000000000000000000033ac00000000000000000000000000000000000000000000000000000000000033ae00000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033b200000000000000000000000000000000000000000000000000000000000033b400000000000000000000000000000000000000000000000000000000000033b600000000000000000000000000000000000000000000000000000000000033b800000000000000000000000000000000000000000000000000000000000033ba00000000000000000000000000000000000000000000000000000000000033bc00000000000000000000000000000000000000000000000000000000000033be00000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033c200000000000000000000000000000000000000000000000000000000000033c400000000000000000000000000000000000000000000000000000000000033c600000000000000000000000000000000000000000000000000000000000033c800000000000000000000000000000000000000000000000000000000000033ca00000000000000000000000000000000000000000000000000000000000033cc00000000000000000000000000000000000000000000000000000000000033ce00000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033d200000000000000000000000000000000000000000000000000000000000033d400000000000000000000000000000000000000000000000000000000000033d600000000000000000000000000000000000000000000000000000000000033d800000000000000000000000000000000000000000000000000000000000033da00000000000000000000000000000000000000000000000000000000000033dc00000000000000000000000000000000000000000000000000000000000033de00000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033e200000000000000000000000000000000000000000000000000000000000033e400000000000000000000000000000000000000000000000000000000000033e600000000000000000000000000000000000000000000000000000000000033e800000000000000000000000000000000000000000000000000000000000033ea00000000000000000000000000000000000000000000000000000000000033ec00000000000000000000000000000000000000000000000000000000000033ee00000000000000000000000000000000000000000000000000000000000033f000000000000000000000000000000000000000000000000000000000000033f200000000000000000000000000000000000000000000000000000000000033f400000000000000000000000000000000000000000000000000000000000033f600000000000000000000000000000000000000000000000000000000000033f800000000000000000000000000000000000000000000000000000000000033fa00000000000000000000000000000000000000000000000000000000000033fc00000000000000000000000000000000000000000000000000000000000033fe00000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003402000000000000000000000000000000000000000000000000000000000000340400000000000000000000000000000000000000000000000000000000000034060000000000000000000000000000000000000000000000000000000000003408000000000000000000000000000000000000000000000000000000000000340a000000000000000000000000000000000000000000000000000000000000340c000000000000000000000000000000000000000000000000000000000000340e00000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003412000000000000000000000000000000000000000000000000000000000000341400000000000000000000000000000000000000000000000000000000000034160000000000000000000000000000000000000000000000000000000000003418000000000000000000000000000000000000000000000000000000000000341a000000000000000000000000000000000000000000000000000000000000341c000000000000000000000000000000000000000000000000000000000000341e00000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000003422000000000000000000000000000000000000000000000000000000000000342400000000000000000000000000000000000000000000000000000000000034260000000000000000000000000000000000000000000000000000000000003428000000000000000000000000000000000000000000000000000000000000342a000000000000000000000000000000000000000000000000000000000000342c000000000000000000000000000000000000000000000000000000000000342e00000000000000000000000000000000000000000000000000000000000034300000000000000000000000000000000000000000000000000000000000003432000000000000000000000000000000000000000000000000000000000000343400000000000000000000000000000000000000000000000000000000000034360000000000000000000000000000000000000000000000000000000000003438000000000000000000000000000000000000000000000000000000000000343a000000000000000000000000000000000000000000000000000000000000343c000000000000000000000000000000000000000000000000000000000000343e00000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003442000000000000000000000000000000000000000000000000000000000000344400000000000000000000000000000000000000000000000000000000000034460000000000000000000000000000000000000000000000000000000000003448000000000000000000000000000000000000000000000000000000000000344a000000000000000000000000000000000000000000000000000000000000344c000000000000000000000000000000000000000000000000000000000000344e00000000000000000000000000000000000000000000000000000000000034500000000000000000000000000000000000000000000000000000000000003452000000000000000000000000000000000000000000000000000000000000345400000000000000000000000000000000000000000000000000000000000034560000000000000000000000000000000000000000000000000000000000003458000000000000000000000000000000000000000000000000000000000000345a000000000000000000000000000000000000000000000000000000000000345c000000000000000000000000000000000000000000000000000000000000345e00000000000000000000000000000000000000000000000000000000000034600000000000000000000000000000000000000000000000000000000000003462000000000000000000000000000000000000000000000000000000000000346400000000000000000000000000000000000000000000000000000000000034660000000000000000000000000000000000000000000000000000000000003468000000000000000000000000000000000000000000000000000000000000346a000000000000000000000000000000000000000000000000000000000000346c000000000000000000000000000000000000000000000000000000000000346e00000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003472000000000000000000000000000000000000000000000000000000000000347400000000000000000000000000000000000000000000000000000000000034760000000000000000000000000000000000000000000000000000000000003478000000000000000000000000000000000000000000000000000000000000347a000000000000000000000000000000000000000000000000000000000000347c000000000000000000000000000000000000000000000000000000000000347e00000000000000000000000000000000000000000000000000000000000034800000000000000000000000000000000000000000000000000000000000003482000000000000000000000000000000000000000000000000000000000000348400000000000000000000000000000000000000000000000000000000000034860000000000000000000000000000000000000000000000000000000000003488000000000000000000000000000000000000000000000000000000000000348a000000000000000000000000000000000000000000000000000000000000348c000000000000000000000000000000000000000000000000000000000000348e00000000000000000000000000000000000000000000000000000000000034900000000000000000000000000000000000000000000000000000000000003492000000000000000000000000000000000000000000000000000000000000349400000000000000000000000000000000000000000000000000000000000034960000000000000000000000000000000000000000000000000000000000003498000000000000000000000000000000000000000000000000000000000000349a000000000000000000000000000000000000000000000000000000000000349c000000000000000000000000000000000000000000000000000000000000349e00000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034a200000000000000000000000000000000000000000000000000000000000034a400000000000000000000000000000000000000000000000000000000000034a600000000000000000000000000000000000000000000000000000000000034a800000000000000000000000000000000000000000000000000000000000034aa00000000000000000000000000000000000000000000000000000000000034ac00000000000000000000000000000000000000000000000000000000000034ae00000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034b200000000000000000000000000000000000000000000000000000000000034b400000000000000000000000000000000000000000000000000000000000034b600000000000000000000000000000000000000000000000000000000000034b800000000000000000000000000000000000000000000000000000000000034ba00000000000000000000000000000000000000000000000000000000000034bc00000000000000000000000000000000000000000000000000000000000034be00000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034c200000000000000000000000000000000000000000000000000000000000034c400000000000000000000000000000000000000000000000000000000000034c600000000000000000000000000000000000000000000000000000000000034c800000000000000000000000000000000000000000000000000000000000034ca00000000000000000000000000000000000000000000000000000000000034cc00000000000000000000000000000000000000000000000000000000000034ce00000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034d200000000000000000000000000000000000000000000000000000000000034d400000000000000000000000000000000000000000000000000000000000034d600000000000000000000000000000000000000000000000000000000000034d800000000000000000000000000000000000000000000000000000000000034da00000000000000000000000000000000000000000000000000000000000034dc00000000000000000000000000000000000000000000000000000000000034de00000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034e200000000000000000000000000000000000000000000000000000000000034e400000000000000000000000000000000000000000000000000000000000034e600000000000000000000000000000000000000000000000000000000000034e800000000000000000000000000000000000000000000000000000000000034ea00000000000000000000000000000000000000000000000000000000000034ec00000000000000000000000000000000000000000000000000000000000034ee00000000000000000000000000000000000000000000000000000000000034f000000000000000000000000000000000000000000000000000000000000034f200000000000000000000000000000000000000000000000000000000000034f400000000000000000000000000000000000000000000000000000000000034f600000000000000000000000000000000000000000000000000000000000034f800000000000000000000000000000000000000000000000000000000000034fa00000000000000000000000000000000000000000000000000000000000034fc00000000000000000000000000000000000000000000000000000000000034fe00000000000000000000000000000000000000000000000000000000000035000000000000000000000000000000000000000000000000000000000000003502000000000000000000000000000000000000000000000000000000000000350400000000000000000000000000000000000000000000000000000000000035060000000000000000000000000000000000000000000000000000000000003508000000000000000000000000000000000000000000000000000000000000350a000000000000000000000000000000000000000000000000000000000000350c000000000000000000000000000000000000000000000000000000000000350e00000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003512000000000000000000000000000000000000000000000000000000000000351400000000000000000000000000000000000000000000000000000000000035160000000000000000000000000000000000000000000000000000000000003518000000000000000000000000000000000000000000000000000000000000351a000000000000000000000000000000000000000000000000000000000000351c000000000000000000000000000000000000000000000000000000000000351e00000000000000000000000000000000000000000000000000000000000035200000000000000000000000000000000000000000000000000000000000003522000000000000000000000000000000000000000000000000000000000000352400000000000000000000000000000000000000000000000000000000000035260000000000000000000000000000000000000000000000000000000000003528000000000000000000000000000000000000000000000000000000000000352a000000000000000000000000000000000000000000000000000000000000352c000000000000000000000000000000000000000000000000000000000000352e00000000000000000000000000000000000000000000000000000000000035300000000000000000000000000000000000000000000000000000000000003532000000000000000000000000000000000000000000000000000000000000353400000000000000000000000000000000000000000000000000000000000035360000000000000000000000000000000000000000000000000000000000003538000000000000000000000000000000000000000000000000000000000000353a000000000000000000000000000000000000000000000000000000000000353c000000000000000000000000000000000000000000000000000000000000353e00000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003542000000000000000000000000000000000000000000000000000000000000354400000000000000000000000000000000000000000000000000000000000035460000000000000000000000000000000000000000000000000000000000003548000000000000000000000000000000000000000000000000000000000000354a000000000000000000000000000000000000000000000000000000000000354c000000000000000000000000000000000000000000000000000000000000354e00000000000000000000000000000000000000000000000000000000000035500000000000000000000000000000000000000000000000000000000000003552000000000000000000000000000000000000000000000000000000000000355400000000000000000000000000000000000000000000000000000000000035560000000000000000000000000000000000000000000000000000000000003558000000000000000000000000000000000000000000000000000000000000355a000000000000000000000000000000000000000000000000000000000000355c000000000000000000000000000000000000000000000000000000000000355e00000000000000000000000000000000000000000000000000000000000035600000000000000000000000000000000000000000000000000000000000003562000000000000000000000000000000000000000000000000000000000000356400000000000000000000000000000000000000000000000000000000000035660000000000000000000000000000000000000000000000000000000000003568000000000000000000000000000000000000000000000000000000000000356a000000000000000000000000000000000000000000000000000000000000356c000000000000000000000000000000000000000000000000000000000000356e00000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003572000000000000000000000000000000000000000000000000000000000000357400000000000000000000000000000000000000000000000000000000000035760000000000000000000000000000000000000000000000000000000000003578000000000000000000000000000000000000000000000000000000000000357a000000000000000000000000000000000000000000000000000000000000357c000000000000000000000000000000000000000000000000000000000000357e00000000000000000000000000000000000000000000000000000000000035800000000000000000000000000000000000000000000000000000000000003582000000000000000000000000000000000000000000000000000000000000358400000000000000000000000000000000000000000000000000000000000035860000000000000000000000000000000000000000000000000000000000003588000000000000000000000000000000000000000000000000000000000000358a000000000000000000000000000000000000000000000000000000000000358c000000000000000000000000000000000000000000000000000000000000358e00000000000000000000000000000000000000000000000000000000000035900000000000000000000000000000000000000000000000000000000000003592000000000000000000000000000000000000000000000000000000000000359400000000000000000000000000000000000000000000000000000000000035960000000000000000000000000000000000000000000000000000000000003598000000000000000000000000000000000000000000000000000000000000359a000000000000000000000000000000000000000000000000000000000000359c000000000000000000000000000000000000000000000000000000000000359e00000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035a200000000000000000000000000000000000000000000000000000000000035a400000000000000000000000000000000000000000000000000000000000035a600000000000000000000000000000000000000000000000000000000000035a800000000000000000000000000000000000000000000000000000000000035aa00000000000000000000000000000000000000000000000000000000000035ac00000000000000000000000000000000000000000000000000000000000035ae00000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035b200000000000000000000000000000000000000000000000000000000000035b400000000000000000000000000000000000000000000000000000000000035b600000000000000000000000000000000000000000000000000000000000035b800000000000000000000000000000000000000000000000000000000000035ba00000000000000000000000000000000000000000000000000000000000035bc00000000000000000000000000000000000000000000000000000000000035be00000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035c200000000000000000000000000000000000000000000000000000000000035c400000000000000000000000000000000000000000000000000000000000035c600000000000000000000000000000000000000000000000000000000000035c800000000000000000000000000000000000000000000000000000000000035ca00000000000000000000000000000000000000000000000000000000000035cc00000000000000000000000000000000000000000000000000000000000035ce00000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035d200000000000000000000000000000000000000000000000000000000000035d400000000000000000000000000000000000000000000000000000000000035d600000000000000000000000000000000000000000000000000000000000035d800000000000000000000000000000000000000000000000000000000000035da00000000000000000000000000000000000000000000000000000000000035dc00000000000000000000000000000000000000000000000000000000000035de00000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035e200000000000000000000000000000000000000000000000000000000000035e400000000000000000000000000000000000000000000000000000000000035e600000000000000000000000000000000000000000000000000000000000035e800000000000000000000000000000000000000000000000000000000000035ea00000000000000000000000000000000000000000000000000000000000035ec00000000000000000000000000000000000000000000000000000000000035ee00000000000000000000000000000000000000000000000000000000000035f000000000000000000000000000000000000000000000000000000000000035f200000000000000000000000000000000000000000000000000000000000035f400000000000000000000000000000000000000000000000000000000000035f600000000000000000000000000000000000000000000000000000000000035f800000000000000000000000000000000000000000000000000000000000035fa00000000000000000000000000000000000000000000000000000000000035fc00000000000000000000000000000000000000000000000000000000000035fe00000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003602000000000000000000000000000000000000000000000000000000000000360400000000000000000000000000000000000000000000000000000000000036060000000000000000000000000000000000000000000000000000000000003608000000000000000000000000000000000000000000000000000000000000360a000000000000000000000000000000000000000000000000000000000000360c000000000000000000000000000000000000000000000000000000000000360e00000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003612000000000000000000000000000000000000000000000000000000000000361400000000000000000000000000000000000000000000000000000000000036160000000000000000000000000000000000000000000000000000000000003618000000000000000000000000000000000000000000000000000000000000361a000000000000000000000000000000000000000000000000000000000000361c000000000000000000000000000000000000000000000000000000000000361e00000000000000000000000000000000000000000000000000000000000036200000000000000000000000000000000000000000000000000000000000003622000000000000000000000000000000000000000000000000000000000000362400000000000000000000000000000000000000000000000000000000000036260000000000000000000000000000000000000000000000000000000000003628000000000000000000000000000000000000000000000000000000000000362a000000000000000000000000000000000000000000000000000000000000362c000000000000000000000000000000000000000000000000000000000000362e00000000000000000000000000000000000000000000000000000000000036300000000000000000000000000000000000000000000000000000000000003632000000000000000000000000000000000000000000000000000000000000363400000000000000000000000000000000000000000000000000000000000036360000000000000000000000000000000000000000000000000000000000003638000000000000000000000000000000000000000000000000000000000000363a000000000000000000000000000000000000000000000000000000000000363c000000000000000000000000000000000000000000000000000000000000363e00000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003642000000000000000000000000000000000000000000000000000000000000364400000000000000000000000000000000000000000000000000000000000036460000000000000000000000000000000000000000000000000000000000003648000000000000000000000000000000000000000000000000000000000000364a000000000000000000000000000000000000000000000000000000000000364c000000000000000000000000000000000000000000000000000000000000364e00000000000000000000000000000000000000000000000000000000000036500000000000000000000000000000000000000000000000000000000000003652000000000000000000000000000000000000000000000000000000000000365400000000000000000000000000000000000000000000000000000000000036560000000000000000000000000000000000000000000000000000000000003658000000000000000000000000000000000000000000000000000000000000365a000000000000000000000000000000000000000000000000000000000000365c000000000000000000000000000000000000000000000000000000000000365e00000000000000000000000000000000000000000000000000000000000036600000000000000000000000000000000000000000000000000000000000003662000000000000000000000000000000000000000000000000000000000000366400000000000000000000000000000000000000000000000000000000000036660000000000000000000000000000000000000000000000000000000000003668000000000000000000000000000000000000000000000000000000000000366a000000000000000000000000000000000000000000000000000000000000366c000000000000000000000000000000000000000000000000000000000000366e00000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003672000000000000000000000000000000000000000000000000000000000000367400000000000000000000000000000000000000000000000000000000000036760000000000000000000000000000000000000000000000000000000000003678000000000000000000000000000000000000000000000000000000000000367a000000000000000000000000000000000000000000000000000000000000367c000000000000000000000000000000000000000000000000000000000000367e00000000000000000000000000000000000000000000000000000000000036800000000000000000000000000000000000000000000000000000000000003682000000000000000000000000000000000000000000000000000000000000368400000000000000000000000000000000000000000000000000000000000036860000000000000000000000000000000000000000000000000000000000003688000000000000000000000000000000000000000000000000000000000000368a000000000000000000000000000000000000000000000000000000000000368c000000000000000000000000000000000000000000000000000000000000368e00000000000000000000000000000000000000000000000000000000000036900000000000000000000000000000000000000000000000000000000000003692000000000000000000000000000000000000000000000000000000000000369400000000000000000000000000000000000000000000000000000000000036960000000000000000000000000000000000000000000000000000000000003698000000000000000000000000000000000000000000000000000000000000369a000000000000000000000000000000000000000000000000000000000000369c000000000000000000000000000000000000000000000000000000000000369e00000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036a200000000000000000000000000000000000000000000000000000000000036a400000000000000000000000000000000000000000000000000000000000036a600000000000000000000000000000000000000000000000000000000000036a800000000000000000000000000000000000000000000000000000000000036aa00000000000000000000000000000000000000000000000000000000000036ac00000000000000000000000000000000000000000000000000000000000036ae00000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036b200000000000000000000000000000000000000000000000000000000000036b400000000000000000000000000000000000000000000000000000000000036b600000000000000000000000000000000000000000000000000000000000036b800000000000000000000000000000000000000000000000000000000000036ba00000000000000000000000000000000000000000000000000000000000036bc00000000000000000000000000000000000000000000000000000000000036be00000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036c200000000000000000000000000000000000000000000000000000000000036c400000000000000000000000000000000000000000000000000000000000036c600000000000000000000000000000000000000000000000000000000000036c800000000000000000000000000000000000000000000000000000000000036ca00000000000000000000000000000000000000000000000000000000000036cc00000000000000000000000000000000000000000000000000000000000036ce00000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036d200000000000000000000000000000000000000000000000000000000000036d400000000000000000000000000000000000000000000000000000000000036d600000000000000000000000000000000000000000000000000000000000036d800000000000000000000000000000000000000000000000000000000000036da00000000000000000000000000000000000000000000000000000000000036dc00000000000000000000000000000000000000000000000000000000000036de00000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036e200000000000000000000000000000000000000000000000000000000000036e400000000000000000000000000000000000000000000000000000000000036e600000000000000000000000000000000000000000000000000000000000036e800000000000000000000000000000000000000000000000000000000000036ea00000000000000000000000000000000000000000000000000000000000036ec00000000000000000000000000000000000000000000000000000000000036ee00000000000000000000000000000000000000000000000000000000000036f000000000000000000000000000000000000000000000000000000000000036f200000000000000000000000000000000000000000000000000000000000036f400000000000000000000000000000000000000000000000000000000000036f600000000000000000000000000000000000000000000000000000000000036f800000000000000000000000000000000000000000000000000000000000036fa00000000000000000000000000000000000000000000000000000000000036fc00000000000000000000000000000000000000000000000000000000000036fe00000000000000000000000000000000000000000000000000000000000037000000000000000000000000000000000000000000000000000000000000003702000000000000000000000000000000000000000000000000000000000000370400000000000000000000000000000000000000000000000000000000000037060000000000000000000000000000000000000000000000000000000000003708000000000000000000000000000000000000000000000000000000000000370a000000000000000000000000000000000000000000000000000000000000370c000000000000000000000000000000000000000000000000000000000000370e00000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003712000000000000000000000000000000000000000000000000000000000000371400000000000000000000000000000000000000000000000000000000000037160000000000000000000000000000000000000000000000000000000000003718000000000000000000000000000000000000000000000000000000000000371a000000000000000000000000000000000000000000000000000000000000371c000000000000000000000000000000000000000000000000000000000000371e00000000000000000000000000000000000000000000000000000000000037200000000000000000000000000000000000000000000000000000000000003722000000000000000000000000000000000000000000000000000000000000372400000000000000000000000000000000000000000000000000000000000037260000000000000000000000000000000000000000000000000000000000003728000000000000000000000000000000000000000000000000000000000000372a000000000000000000000000000000000000000000000000000000000000372c000000000000000000000000000000000000000000000000000000000000372e00000000000000000000000000000000000000000000000000000000000037300000000000000000000000000000000000000000000000000000000000003732000000000000000000000000000000000000000000000000000000000000373400000000000000000000000000000000000000000000000000000000000037360000000000000000000000000000000000000000000000000000000000003738000000000000000000000000000000000000000000000000000000000000373a000000000000000000000000000000000000000000000000000000000000373c000000000000000000000000000000000000000000000000000000000000373e00000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003742000000000000000000000000000000000000000000000000000000000000374400000000000000000000000000000000000000000000000000000000000037460000000000000000000000000000000000000000000000000000000000003748000000000000000000000000000000000000000000000000000000000000374a000000000000000000000000000000000000000000000000000000000000374c000000000000000000000000000000000000000000000000000000000000374e00000000000000000000000000000000000000000000000000000000000037500000000000000000000000000000000000000000000000000000000000003752000000000000000000000000000000000000000000000000000000000000375400000000000000000000000000000000000000000000000000000000000037560000000000000000000000000000000000000000000000000000000000003758000000000000000000000000000000000000000000000000000000000000375a000000000000000000000000000000000000000000000000000000000000375c000000000000000000000000000000000000000000000000000000000000375e00000000000000000000000000000000000000000000000000000000000037600000000000000000000000000000000000000000000000000000000000003762000000000000000000000000000000000000000000000000000000000000376400000000000000000000000000000000000000000000000000000000000037660000000000000000000000000000000000000000000000000000000000003768000000000000000000000000000000000000000000000000000000000000376a000000000000000000000000000000000000000000000000000000000000376c000000000000000000000000000000000000000000000000000000000000376e00000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003772000000000000000000000000000000000000000000000000000000000000377400000000000000000000000000000000000000000000000000000000000037760000000000000000000000000000000000000000000000000000000000003778000000000000000000000000000000000000000000000000000000000000377a000000000000000000000000000000000000000000000000000000000000377c000000000000000000000000000000000000000000000000000000000000377e00000000000000000000000000000000000000000000000000000000000037800000000000000000000000000000000000000000000000000000000000003782000000000000000000000000000000000000000000000000000000000000378400000000000000000000000000000000000000000000000000000000000037860000000000000000000000000000000000000000000000000000000000003788000000000000000000000000000000000000000000000000000000000000378a000000000000000000000000000000000000000000000000000000000000378c000000000000000000000000000000000000000000000000000000000000378e00000000000000000000000000000000000000000000000000000000000037900000000000000000000000000000000000000000000000000000000000003792000000000000000000000000000000000000000000000000000000000000379400000000000000000000000000000000000000000000000000000000000037960000000000000000000000000000000000000000000000000000000000003798000000000000000000000000000000000000000000000000000000000000379a000000000000000000000000000000000000000000000000000000000000379c000000000000000000000000000000000000000000000000000000000000379e00000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037a200000000000000000000000000000000000000000000000000000000000037a400000000000000000000000000000000000000000000000000000000000037a600000000000000000000000000000000000000000000000000000000000037a800000000000000000000000000000000000000000000000000000000000037aa00000000000000000000000000000000000000000000000000000000000037ac00000000000000000000000000000000000000000000000000000000000037ae00000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037b200000000000000000000000000000000000000000000000000000000000037b400000000000000000000000000000000000000000000000000000000000037b600000000000000000000000000000000000000000000000000000000000037b800000000000000000000000000000000000000000000000000000000000037ba00000000000000000000000000000000000000000000000000000000000037bc00000000000000000000000000000000000000000000000000000000000037be00000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037c200000000000000000000000000000000000000000000000000000000000037c400000000000000000000000000000000000000000000000000000000000037c600000000000000000000000000000000000000000000000000000000000037c800000000000000000000000000000000000000000000000000000000000037ca00000000000000000000000000000000000000000000000000000000000037cc00000000000000000000000000000000000000000000000000000000000037ce00000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037d200000000000000000000000000000000000000000000000000000000000037d400000000000000000000000000000000000000000000000000000000000037d600000000000000000000000000000000000000000000000000000000000037d800000000000000000000000000000000000000000000000000000000000037da00000000000000000000000000000000000000000000000000000000000037dc00000000000000000000000000000000000000000000000000000000000037de00000000000000000000000000000000000000000000000000000000000037e000000000000000000000000000000000000000000000000000000000000037e200000000000000000000000000000000000000000000000000000000000037e400000000000000000000000000000000000000000000000000000000000037e600000000000000000000000000000000000000000000000000000000000037e800000000000000000000000000000000000000000000000000000000000037ea00000000000000000000000000000000000000000000000000000000000037ec00000000000000000000000000000000000000000000000000000000000037ee00000000000000000000000000000000000000000000000000000000000037f000000000000000000000000000000000000000000000000000000000000037f200000000000000000000000000000000000000000000000000000000000037f400000000000000000000000000000000000000000000000000000000000037f600000000000000000000000000000000000000000000000000000000000037f800000000000000000000000000000000000000000000000000000000000037fa00000000000000000000000000000000000000000000000000000000000037fc00000000000000000000000000000000000000000000000000000000000037fe00000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003802000000000000000000000000000000000000000000000000000000000000380400000000000000000000000000000000000000000000000000000000000038060000000000000000000000000000000000000000000000000000000000003808000000000000000000000000000000000000000000000000000000000000380a000000000000000000000000000000000000000000000000000000000000380c000000000000000000000000000000000000000000000000000000000000380e00000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003812000000000000000000000000000000000000000000000000000000000000381400000000000000000000000000000000000000000000000000000000000038160000000000000000000000000000000000000000000000000000000000003818000000000000000000000000000000000000000000000000000000000000381a000000000000000000000000000000000000000000000000000000000000381c000000000000000000000000000000000000000000000000000000000000381e00000000000000000000000000000000000000000000000000000000000038200000000000000000000000000000000000000000000000000000000000003822000000000000000000000000000000000000000000000000000000000000382400000000000000000000000000000000000000000000000000000000000038260000000000000000000000000000000000000000000000000000000000003828000000000000000000000000000000000000000000000000000000000000382a000000000000000000000000000000000000000000000000000000000000382c000000000000000000000000000000000000000000000000000000000000382e00000000000000000000000000000000000000000000000000000000000038300000000000000000000000000000000000000000000000000000000000003832000000000000000000000000000000000000000000000000000000000000383400000000000000000000000000000000000000000000000000000000000038360000000000000000000000000000000000000000000000000000000000003838000000000000000000000000000000000000000000000000000000000000383a000000000000000000000000000000000000000000000000000000000000383c000000000000000000000000000000000000000000000000000000000000383e00000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003842000000000000000000000000000000000000000000000000000000000000384400000000000000000000000000000000000000000000000000000000000038460000000000000000000000000000000000000000000000000000000000003848000000000000000000000000000000000000000000000000000000000000384a000000000000000000000000000000000000000000000000000000000000384c000000000000000000000000000000000000000000000000000000000000384e00000000000000000000000000000000000000000000000000000000000038500000000000000000000000000000000000000000000000000000000000003852000000000000000000000000000000000000000000000000000000000000385400000000000000000000000000000000000000000000000000000000000038560000000000000000000000000000000000000000000000000000000000003858000000000000000000000000000000000000000000000000000000000000385a000000000000000000000000000000000000000000000000000000000000385c000000000000000000000000000000000000000000000000000000000000385e00000000000000000000000000000000000000000000000000000000000038600000000000000000000000000000000000000000000000000000000000003862000000000000000000000000000000000000000000000000000000000000386400000000000000000000000000000000000000000000000000000000000038660000000000000000000000000000000000000000000000000000000000003868000000000000000000000000000000000000000000000000000000000000386a000000000000000000000000000000000000000000000000000000000000386c000000000000000000000000000000000000000000000000000000000000386e00000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003872000000000000000000000000000000000000000000000000000000000000387400000000000000000000000000000000000000000000000000000000000038760000000000000000000000000000000000000000000000000000000000003878000000000000000000000000000000000000000000000000000000000000387a000000000000000000000000000000000000000000000000000000000000387c000000000000000000000000000000000000000000000000000000000000387e00000000000000000000000000000000000000000000000000000000000038800000000000000000000000000000000000000000000000000000000000003882000000000000000000000000000000000000000000000000000000000000388400000000000000000000000000000000000000000000000000000000000038860000000000000000000000000000000000000000000000000000000000003888000000000000000000000000000000000000000000000000000000000000388a000000000000000000000000000000000000000000000000000000000000388c000000000000000000000000000000000000000000000000000000000000388e00000000000000000000000000000000000000000000000000000000000038900000000000000000000000000000000000000000000000000000000000003892000000000000000000000000000000000000000000000000000000000000389400000000000000000000000000000000000000000000000000000000000038960000000000000000000000000000000000000000000000000000000000003898000000000000000000000000000000000000000000000000000000000000389a000000000000000000000000000000000000000000000000000000000000389c000000000000000000000000000000000000000000000000000000000000389e00000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038a200000000000000000000000000000000000000000000000000000000000038a400000000000000000000000000000000000000000000000000000000000038a600000000000000000000000000000000000000000000000000000000000038a800000000000000000000000000000000000000000000000000000000000038aa00000000000000000000000000000000000000000000000000000000000038ac00000000000000000000000000000000000000000000000000000000000038ae00000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038b200000000000000000000000000000000000000000000000000000000000038b400000000000000000000000000000000000000000000000000000000000038b600000000000000000000000000000000000000000000000000000000000038b800000000000000000000000000000000000000000000000000000000000038ba00000000000000000000000000000000000000000000000000000000000038bc00000000000000000000000000000000000000000000000000000000000038be00000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038c200000000000000000000000000000000000000000000000000000000000038c400000000000000000000000000000000000000000000000000000000000038c600000000000000000000000000000000000000000000000000000000000038c800000000000000000000000000000000000000000000000000000000000038ca00000000000000000000000000000000000000000000000000000000000038cc00000000000000000000000000000000000000000000000000000000000038ce00000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038d200000000000000000000000000000000000000000000000000000000000038d400000000000000000000000000000000000000000000000000000000000038d600000000000000000000000000000000000000000000000000000000000038d800000000000000000000000000000000000000000000000000000000000038da00000000000000000000000000000000000000000000000000000000000038dc00000000000000000000000000000000000000000000000000000000000038de00000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038e200000000000000000000000000000000000000000000000000000000000038e400000000000000000000000000000000000000000000000000000000000038e600000000000000000000000000000000000000000000000000000000000038e800000000000000000000000000000000000000000000000000000000000038ea00000000000000000000000000000000000000000000000000000000000038ec00000000000000000000000000000000000000000000000000000000000038ee00000000000000000000000000000000000000000000000000000000000038f000000000000000000000000000000000000000000000000000000000000038f200000000000000000000000000000000000000000000000000000000000038f400000000000000000000000000000000000000000000000000000000000038f600000000000000000000000000000000000000000000000000000000000038f800000000000000000000000000000000000000000000000000000000000038fa00000000000000000000000000000000000000000000000000000000000038fc00000000000000000000000000000000000000000000000000000000000038fe00000000000000000000000000000000000000000000000000000000000039000000000000000000000000000000000000000000000000000000000000003902000000000000000000000000000000000000000000000000000000000000390400000000000000000000000000000000000000000000000000000000000039060000000000000000000000000000000000000000000000000000000000003908000000000000000000000000000000000000000000000000000000000000390a000000000000000000000000000000000000000000000000000000000000390c000000000000000000000000000000000000000000000000000000000000390e00000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003912000000000000000000000000000000000000000000000000000000000000391400000000000000000000000000000000000000000000000000000000000039160000000000000000000000000000000000000000000000000000000000003918000000000000000000000000000000000000000000000000000000000000391a000000000000000000000000000000000000000000000000000000000000391c000000000000000000000000000000000000000000000000000000000000391e00000000000000000000000000000000000000000000000000000000000039200000000000000000000000000000000000000000000000000000000000003922000000000000000000000000000000000000000000000000000000000000392400000000000000000000000000000000000000000000000000000000000039260000000000000000000000000000000000000000000000000000000000003928000000000000000000000000000000000000000000000000000000000000392a000000000000000000000000000000000000000000000000000000000000392c000000000000000000000000000000000000000000000000000000000000392e00000000000000000000000000000000000000000000000000000000000039300000000000000000000000000000000000000000000000000000000000003932000000000000000000000000000000000000000000000000000000000000393400000000000000000000000000000000000000000000000000000000000039360000000000000000000000000000000000000000000000000000000000003938000000000000000000000000000000000000000000000000000000000000393a000000000000000000000000000000000000000000000000000000000000393c000000000000000000000000000000000000000000000000000000000000393e00000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003942000000000000000000000000000000000000000000000000000000000000394400000000000000000000000000000000000000000000000000000000000039460000000000000000000000000000000000000000000000000000000000003948000000000000000000000000000000000000000000000000000000000000394a000000000000000000000000000000000000000000000000000000000000394c000000000000000000000000000000000000000000000000000000000000394e00000000000000000000000000000000000000000000000000000000000039500000000000000000000000000000000000000000000000000000000000003952000000000000000000000000000000000000000000000000000000000000395400000000000000000000000000000000000000000000000000000000000039560000000000000000000000000000000000000000000000000000000000003958000000000000000000000000000000000000000000000000000000000000395a000000000000000000000000000000000000000000000000000000000000395c000000000000000000000000000000000000000000000000000000000000395e00000000000000000000000000000000000000000000000000000000000039600000000000000000000000000000000000000000000000000000000000003962000000000000000000000000000000000000000000000000000000000000396400000000000000000000000000000000000000000000000000000000000039660000000000000000000000000000000000000000000000000000000000003968000000000000000000000000000000000000000000000000000000000000396a000000000000000000000000000000000000000000000000000000000000396c000000000000000000000000000000000000000000000000000000000000396e00000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003972000000000000000000000000000000000000000000000000000000000000397400000000000000000000000000000000000000000000000000000000000039760000000000000000000000000000000000000000000000000000000000003978000000000000000000000000000000000000000000000000000000000000397a000000000000000000000000000000000000000000000000000000000000397c000000000000000000000000000000000000000000000000000000000000397e00000000000000000000000000000000000000000000000000000000000039800000000000000000000000000000000000000000000000000000000000003982000000000000000000000000000000000000000000000000000000000000398400000000000000000000000000000000000000000000000000000000000039860000000000000000000000000000000000000000000000000000000000003988000000000000000000000000000000000000000000000000000000000000398a000000000000000000000000000000000000000000000000000000000000398c000000000000000000000000000000000000000000000000000000000000398e00000000000000000000000000000000000000000000000000000000000039900000000000000000000000000000000000000000000000000000000000003992000000000000000000000000000000000000000000000000000000000000399400000000000000000000000000000000000000000000000000000000000039960000000000000000000000000000000000000000000000000000000000003998000000000000000000000000000000000000000000000000000000000000399a000000000000000000000000000000000000000000000000000000000000399c000000000000000000000000000000000000000000000000000000000000399e00000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039a200000000000000000000000000000000000000000000000000000000000039a400000000000000000000000000000000000000000000000000000000000039a600000000000000000000000000000000000000000000000000000000000039a800000000000000000000000000000000000000000000000000000000000039aa00000000000000000000000000000000000000000000000000000000000039ac00000000000000000000000000000000000000000000000000000000000039ae00000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039b200000000000000000000000000000000000000000000000000000000000039b400000000000000000000000000000000000000000000000000000000000039b600000000000000000000000000000000000000000000000000000000000039b800000000000000000000000000000000000000000000000000000000000039ba00000000000000000000000000000000000000000000000000000000000039bc00000000000000000000000000000000000000000000000000000000000039be00000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039c200000000000000000000000000000000000000000000000000000000000039c400000000000000000000000000000000000000000000000000000000000039c600000000000000000000000000000000000000000000000000000000000039c800000000000000000000000000000000000000000000000000000000000039ca00000000000000000000000000000000000000000000000000000000000039cc00000000000000000000000000000000000000000000000000000000000039ce00000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039d200000000000000000000000000000000000000000000000000000000000039d400000000000000000000000000000000000000000000000000000000000039d600000000000000000000000000000000000000000000000000000000000039d800000000000000000000000000000000000000000000000000000000000039da00000000000000000000000000000000000000000000000000000000000039dc00000000000000000000000000000000000000000000000000000000000039de00000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039e200000000000000000000000000000000000000000000000000000000000039e400000000000000000000000000000000000000000000000000000000000039e600000000000000000000000000000000000000000000000000000000000039e800000000000000000000000000000000000000000000000000000000000039ea00000000000000000000000000000000000000000000000000000000000039ec00000000000000000000000000000000000000000000000000000000000039ee00000000000000000000000000000000000000000000000000000000000039f000000000000000000000000000000000000000000000000000000000000039f200000000000000000000000000000000000000000000000000000000000039f400000000000000000000000000000000000000000000000000000000000039f600000000000000000000000000000000000000000000000000000000000039f800000000000000000000000000000000000000000000000000000000000039fa00000000000000000000000000000000000000000000000000000000000039fc00000000000000000000000000000000000000000000000000000000000039fe0000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a020000000000000000000000000000000000000000000000000000000000003a040000000000000000000000000000000000000000000000000000000000003a060000000000000000000000000000000000000000000000000000000000003a080000000000000000000000000000000000000000000000000000000000003a0a0000000000000000000000000000000000000000000000000000000000003a0c0000000000000000000000000000000000000000000000000000000000003a0e0000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a120000000000000000000000000000000000000000000000000000000000003a140000000000000000000000000000000000000000000000000000000000003a160000000000000000000000000000000000000000000000000000000000003a180000000000000000000000000000000000000000000000000000000000003a1a0000000000000000000000000000000000000000000000000000000000003a1c0000000000000000000000000000000000000000000000000000000000003a1e0000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a220000000000000000000000000000000000000000000000000000000000003a240000000000000000000000000000000000000000000000000000000000003a260000000000000000000000000000000000000000000000000000000000003a280000000000000000000000000000000000000000000000000000000000003a2a0000000000000000000000000000000000000000000000000000000000003a2c0000000000000000000000000000000000000000000000000000000000003a2e0000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a320000000000000000000000000000000000000000000000000000000000003a340000000000000000000000000000000000000000000000000000000000003a360000000000000000000000000000000000000000000000000000000000003a380000000000000000000000000000000000000000000000000000000000003a3a0000000000000000000000000000000000000000000000000000000000003a3c0000000000000000000000000000000000000000000000000000000000003a3e0000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a420000000000000000000000000000000000000000000000000000000000003a440000000000000000000000000000000000000000000000000000000000003a460000000000000000000000000000000000000000000000000000000000003a480000000000000000000000000000000000000000000000000000000000003a4a0000000000000000000000000000000000000000000000000000000000003a4c0000000000000000000000000000000000000000000000000000000000003a4e0000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a520000000000000000000000000000000000000000000000000000000000003a540000000000000000000000000000000000000000000000000000000000003a560000000000000000000000000000000000000000000000000000000000003a580000000000000000000000000000000000000000000000000000000000003a5a0000000000000000000000000000000000000000000000000000000000003a5c0000000000000000000000000000000000000000000000000000000000003a5e0000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a620000000000000000000000000000000000000000000000000000000000003a640000000000000000000000000000000000000000000000000000000000003a660000000000000000000000000000000000000000000000000000000000003a680000000000000000000000000000000000000000000000000000000000003a6a0000000000000000000000000000000000000000000000000000000000003a6c0000000000000000000000000000000000000000000000000000000000003a6e0000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a720000000000000000000000000000000000000000000000000000000000003a740000000000000000000000000000000000000000000000000000000000003a760000000000000000000000000000000000000000000000000000000000003a780000000000000000000000000000000000000000000000000000000000003a7a0000000000000000000000000000000000000000000000000000000000003a7c0000000000000000000000000000000000000000000000000000000000003a7e0000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a820000000000000000000000000000000000000000000000000000000000003a840000000000000000000000000000000000000000000000000000000000003a860000000000000000000000000000000000000000000000000000000000003a880000000000000000000000000000000000000000000000000000000000003a8a0000000000000000000000000000000000000000000000000000000000003a8c0000000000000000000000000000000000000000000000000000000000003a8e0000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003a920000000000000000000000000000000000000000000000000000000000003a940000000000000000000000000000000000000000000000000000000000003a960000000000000000000000000000000000000000000000000000000000003a980000000000000000000000000000000000000000000000000000000000003a9a0000000000000000000000000000000000000000000000000000000000003a9c0000000000000000000000000000000000000000000000000000000000003a9e0000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003aa20000000000000000000000000000000000000000000000000000000000003aa40000000000000000000000000000000000000000000000000000000000003aa60000000000000000000000000000000000000000000000000000000000003aa80000000000000000000000000000000000000000000000000000000000003aaa0000000000000000000000000000000000000000000000000000000000003aac0000000000000000000000000000000000000000000000000000000000003aae0000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ab20000000000000000000000000000000000000000000000000000000000003ab40000000000000000000000000000000000000000000000000000000000003ab60000000000000000000000000000000000000000000000000000000000003ab80000000000000000000000000000000000000000000000000000000000003aba0000000000000000000000000000000000000000000000000000000000003abc0000000000000000000000000000000000000000000000000000000000003abe0000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ac20000000000000000000000000000000000000000000000000000000000003ac40000000000000000000000000000000000000000000000000000000000003ac60000000000000000000000000000000000000000000000000000000000003ac80000000000000000000000000000000000000000000000000000000000003aca0000000000000000000000000000000000000000000000000000000000003acc0000000000000000000000000000000000000000000000000000000000003ace0000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ad20000000000000000000000000000000000000000000000000000000000003ad40000000000000000000000000000000000000000000000000000000000003ad60000000000000000000000000000000000000000000000000000000000003ad80000000000000000000000000000000000000000000000000000000000003ada0000000000000000000000000000000000000000000000000000000000003adc0000000000000000000000000000000000000000000000000000000000003ade0000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003ae20000000000000000000000000000000000000000000000000000000000003ae40000000000000000000000000000000000000000000000000000000000003ae60000000000000000000000000000000000000000000000000000000000003ae80000000000000000000000000000000000000000000000000000000000003aea0000000000000000000000000000000000000000000000000000000000003aec0000000000000000000000000000000000000000000000000000000000003aee0000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003af20000000000000000000000000000000000000000000000000000000000003af40000000000000000000000000000000000000000000000000000000000003af60000000000000000000000000000000000000000000000000000000000003af80000000000000000000000000000000000000000000000000000000000003afa0000000000000000000000000000000000000000000000000000000000003afc0000000000000000000000000000000000000000000000000000000000003afe0000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b020000000000000000000000000000000000000000000000000000000000003b040000000000000000000000000000000000000000000000000000000000003b060000000000000000000000000000000000000000000000000000000000003b080000000000000000000000000000000000000000000000000000000000003b0a0000000000000000000000000000000000000000000000000000000000003b0c0000000000000000000000000000000000000000000000000000000000003b0e0000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b120000000000000000000000000000000000000000000000000000000000003b140000000000000000000000000000000000000000000000000000000000003b160000000000000000000000000000000000000000000000000000000000003b180000000000000000000000000000000000000000000000000000000000003b1a0000000000000000000000000000000000000000000000000000000000003b1c0000000000000000000000000000000000000000000000000000000000003b1e0000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b220000000000000000000000000000000000000000000000000000000000003b240000000000000000000000000000000000000000000000000000000000003b260000000000000000000000000000000000000000000000000000000000003b280000000000000000000000000000000000000000000000000000000000003b2a0000000000000000000000000000000000000000000000000000000000003b2c0000000000000000000000000000000000000000000000000000000000003b2e0000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b320000000000000000000000000000000000000000000000000000000000003b340000000000000000000000000000000000000000000000000000000000003b360000000000000000000000000000000000000000000000000000000000003b380000000000000000000000000000000000000000000000000000000000003b3a0000000000000000000000000000000000000000000000000000000000003b3c0000000000000000000000000000000000000000000000000000000000003b3e0000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b420000000000000000000000000000000000000000000000000000000000003b440000000000000000000000000000000000000000000000000000000000003b460000000000000000000000000000000000000000000000000000000000003b480000000000000000000000000000000000000000000000000000000000003b4a0000000000000000000000000000000000000000000000000000000000003b4c0000000000000000000000000000000000000000000000000000000000003b4e0000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b520000000000000000000000000000000000000000000000000000000000003b540000000000000000000000000000000000000000000000000000000000003b560000000000000000000000000000000000000000000000000000000000003b580000000000000000000000000000000000000000000000000000000000003b5a0000000000000000000000000000000000000000000000000000000000003b5c0000000000000000000000000000000000000000000000000000000000003b5e0000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b620000000000000000000000000000000000000000000000000000000000003b640000000000000000000000000000000000000000000000000000000000003b660000000000000000000000000000000000000000000000000000000000003b680000000000000000000000000000000000000000000000000000000000003b6a0000000000000000000000000000000000000000000000000000000000003b6c0000000000000000000000000000000000000000000000000000000000003b6e0000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b720000000000000000000000000000000000000000000000000000000000003b740000000000000000000000000000000000000000000000000000000000003b760000000000000000000000000000000000000000000000000000000000003b780000000000000000000000000000000000000000000000000000000000003b7a0000000000000000000000000000000000000000000000000000000000003b7c0000000000000000000000000000000000000000000000000000000000003b7e0000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b820000000000000000000000000000000000000000000000000000000000003b840000000000000000000000000000000000000000000000000000000000003b860000000000000000000000000000000000000000000000000000000000003b880000000000000000000000000000000000000000000000000000000000003b8a0000000000000000000000000000000000000000000000000000000000003b8c0000000000000000000000000000000000000000000000000000000000003b8e0000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003b920000000000000000000000000000000000000000000000000000000000003b940000000000000000000000000000000000000000000000000000000000003b960000000000000000000000000000000000000000000000000000000000003b980000000000000000000000000000000000000000000000000000000000003b9a0000000000000000000000000000000000000000000000000000000000003b9c0000000000000000000000000000000000000000000000000000000000003b9e0000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003ba20000000000000000000000000000000000000000000000000000000000003ba40000000000000000000000000000000000000000000000000000000000003ba60000000000000000000000000000000000000000000000000000000000003ba80000000000000000000000000000000000000000000000000000000000003baa0000000000000000000000000000000000000000000000000000000000003bac0000000000000000000000000000000000000000000000000000000000003bae0000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bb20000000000000000000000000000000000000000000000000000000000003bb40000000000000000000000000000000000000000000000000000000000003bb60000000000000000000000000000000000000000000000000000000000003bb80000000000000000000000000000000000000000000000000000000000003bba0000000000000000000000000000000000000000000000000000000000003bbc0000000000000000000000000000000000000000000000000000000000003bbe0000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bc20000000000000000000000000000000000000000000000000000000000003bc40000000000000000000000000000000000000000000000000000000000003bc60000000000000000000000000000000000000000000000000000000000003bc80000000000000000000000000000000000000000000000000000000000003bca0000000000000000000000000000000000000000000000000000000000003bcc0000000000000000000000000000000000000000000000000000000000003bce0000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003bd20000000000000000000000000000000000000000000000000000000000003bd40000000000000000000000000000000000000000000000000000000000003bd60000000000000000000000000000000000000000000000000000000000003bd80000000000000000000000000000000000000000000000000000000000003bda0000000000000000000000000000000000000000000000000000000000003bdc0000000000000000000000000000000000000000000000000000000000003bde0000000000000000000000000000000000000000000000000000000000003be00000000000000000000000000000000000000000000000000000000000003be20000000000000000000000000000000000000000000000000000000000003be40000000000000000000000000000000000000000000000000000000000003be60000000000000000000000000000000000000000000000000000000000003be80000000000000000000000000000000000000000000000000000000000003bea0000000000000000000000000000000000000000000000000000000000003bec0000000000000000000000000000000000000000000000000000000000003bee0000000000000000000000000000000000000000000000000000000000003bf00000000000000000000000000000000000000000000000000000000000003bf20000000000000000000000000000000000000000000000000000000000003bf40000000000000000000000000000000000000000000000000000000000003bf60000000000000000000000000000000000000000000000000000000000003bf80000000000000000000000000000000000000000000000000000000000003bfa0000000000000000000000000000000000000000000000000000000000003bfc0000000000000000000000000000000000000000000000000000000000003bfe0000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c020000000000000000000000000000000000000000000000000000000000003c040000000000000000000000000000000000000000000000000000000000003c060000000000000000000000000000000000000000000000000000000000003c080000000000000000000000000000000000000000000000000000000000003c0a0000000000000000000000000000000000000000000000000000000000003c0c0000000000000000000000000000000000000000000000000000000000003c0e0000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c120000000000000000000000000000000000000000000000000000000000003c140000000000000000000000000000000000000000000000000000000000003c160000000000000000000000000000000000000000000000000000000000003c180000000000000000000000000000000000000000000000000000000000003c1a0000000000000000000000000000000000000000000000000000000000003c1c0000000000000000000000000000000000000000000000000000000000003c1e0000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c220000000000000000000000000000000000000000000000000000000000003c240000000000000000000000000000000000000000000000000000000000003c260000000000000000000000000000000000000000000000000000000000003c280000000000000000000000000000000000000000000000000000000000003c2a0000000000000000000000000000000000000000000000000000000000003c2c0000000000000000000000000000000000000000000000000000000000003c2e0000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c320000000000000000000000000000000000000000000000000000000000003c340000000000000000000000000000000000000000000000000000000000003c360000000000000000000000000000000000000000000000000000000000003c380000000000000000000000000000000000000000000000000000000000003c3a0000000000000000000000000000000000000000000000000000000000003c3c0000000000000000000000000000000000000000000000000000000000003c3e0000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c420000000000000000000000000000000000000000000000000000000000003c440000000000000000000000000000000000000000000000000000000000003c460000000000000000000000000000000000000000000000000000000000003c480000000000000000000000000000000000000000000000000000000000003c4a0000000000000000000000000000000000000000000000000000000000003c4c0000000000000000000000000000000000000000000000000000000000003c4e0000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c520000000000000000000000000000000000000000000000000000000000003c540000000000000000000000000000000000000000000000000000000000003c560000000000000000000000000000000000000000000000000000000000003c580000000000000000000000000000000000000000000000000000000000003c5a0000000000000000000000000000000000000000000000000000000000003c5c0000000000000000000000000000000000000000000000000000000000003c5e0000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c620000000000000000000000000000000000000000000000000000000000003c640000000000000000000000000000000000000000000000000000000000003c660000000000000000000000000000000000000000000000000000000000003c680000000000000000000000000000000000000000000000000000000000003c6a0000000000000000000000000000000000000000000000000000000000003c6c0000000000000000000000000000000000000000000000000000000000003c6e0000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c720000000000000000000000000000000000000000000000000000000000003c740000000000000000000000000000000000000000000000000000000000003c760000000000000000000000000000000000000000000000000000000000003c780000000000000000000000000000000000000000000000000000000000003c7a0000000000000000000000000000000000000000000000000000000000003c7c0000000000000000000000000000000000000000000000000000000000003c7e0000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c820000000000000000000000000000000000000000000000000000000000003c840000000000000000000000000000000000000000000000000000000000003c860000000000000000000000000000000000000000000000000000000000003c880000000000000000000000000000000000000000000000000000000000003c8a0000000000000000000000000000000000000000000000000000000000003c8c0000000000000000000000000000000000000000000000000000000000003c8e0000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003c920000000000000000000000000000000000000000000000000000000000003c940000000000000000000000000000000000000000000000000000000000003c960000000000000000000000000000000000000000000000000000000000003c980000000000000000000000000000000000000000000000000000000000003c9a0000000000000000000000000000000000000000000000000000000000003c9c0000000000000000000000000000000000000000000000000000000000003c9e0000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003ca20000000000000000000000000000000000000000000000000000000000003ca40000000000000000000000000000000000000000000000000000000000003ca60000000000000000000000000000000000000000000000000000000000003ca80000000000000000000000000000000000000000000000000000000000003caa0000000000000000000000000000000000000000000000000000000000003cac0000000000000000000000000000000000000000000000000000000000003cae0000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cb20000000000000000000000000000000000000000000000000000000000003cb40000000000000000000000000000000000000000000000000000000000003cb60000000000000000000000000000000000000000000000000000000000003cb80000000000000000000000000000000000000000000000000000000000003cba0000000000000000000000000000000000000000000000000000000000003cbc0000000000000000000000000000000000000000000000000000000000003cbe0000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cc20000000000000000000000000000000000000000000000000000000000003cc40000000000000000000000000000000000000000000000000000000000003cc60000000000000000000000000000000000000000000000000000000000003cc80000000000000000000000000000000000000000000000000000000000003cca0000000000000000000000000000000000000000000000000000000000003ccc0000000000000000000000000000000000000000000000000000000000003cce0000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003cd20000000000000000000000000000000000000000000000000000000000003cd40000000000000000000000000000000000000000000000000000000000003cd60000000000000000000000000000000000000000000000000000000000003cd80000000000000000000000000000000000000000000000000000000000003cda0000000000000000000000000000000000000000000000000000000000003cdc0000000000000000000000000000000000000000000000000000000000003cde0000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003ce20000000000000000000000000000000000000000000000000000000000003ce40000000000000000000000000000000000000000000000000000000000003ce60000000000000000000000000000000000000000000000000000000000003ce80000000000000000000000000000000000000000000000000000000000003cea0000000000000000000000000000000000000000000000000000000000003cec0000000000000000000000000000000000000000000000000000000000003cee0000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003cf20000000000000000000000000000000000000000000000000000000000003cf40000000000000000000000000000000000000000000000000000000000003cf60000000000000000000000000000000000000000000000000000000000003cf80000000000000000000000000000000000000000000000000000000000003cfa0000000000000000000000000000000000000000000000000000000000003cfc0000000000000000000000000000000000000000000000000000000000003cfe0000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d020000000000000000000000000000000000000000000000000000000000003d040000000000000000000000000000000000000000000000000000000000003d060000000000000000000000000000000000000000000000000000000000003d080000000000000000000000000000000000000000000000000000000000003d0a0000000000000000000000000000000000000000000000000000000000003d0c0000000000000000000000000000000000000000000000000000000000003d0e0000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d120000000000000000000000000000000000000000000000000000000000003d140000000000000000000000000000000000000000000000000000000000003d160000000000000000000000000000000000000000000000000000000000003d180000000000000000000000000000000000000000000000000000000000003d1a0000000000000000000000000000000000000000000000000000000000003d1c0000000000000000000000000000000000000000000000000000000000003d1e0000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d220000000000000000000000000000000000000000000000000000000000003d240000000000000000000000000000000000000000000000000000000000003d260000000000000000000000000000000000000000000000000000000000003d280000000000000000000000000000000000000000000000000000000000003d2a0000000000000000000000000000000000000000000000000000000000003d2c0000000000000000000000000000000000000000000000000000000000003d2e0000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d320000000000000000000000000000000000000000000000000000000000003d340000000000000000000000000000000000000000000000000000000000003d360000000000000000000000000000000000000000000000000000000000003d380000000000000000000000000000000000000000000000000000000000003d3a0000000000000000000000000000000000000000000000000000000000003d3c0000000000000000000000000000000000000000000000000000000000003d3e0000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d420000000000000000000000000000000000000000000000000000000000003d440000000000000000000000000000000000000000000000000000000000003d460000000000000000000000000000000000000000000000000000000000003d480000000000000000000000000000000000000000000000000000000000003d4a0000000000000000000000000000000000000000000000000000000000003d4c0000000000000000000000000000000000000000000000000000000000003d4e0000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d520000000000000000000000000000000000000000000000000000000000003d540000000000000000000000000000000000000000000000000000000000003d560000000000000000000000000000000000000000000000000000000000003d580000000000000000000000000000000000000000000000000000000000003d5a0000000000000000000000000000000000000000000000000000000000003d5c0000000000000000000000000000000000000000000000000000000000003d5e0000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d620000000000000000000000000000000000000000000000000000000000003d640000000000000000000000000000000000000000000000000000000000003d660000000000000000000000000000000000000000000000000000000000003d680000000000000000000000000000000000000000000000000000000000003d6a0000000000000000000000000000000000000000000000000000000000003d6c0000000000000000000000000000000000000000000000000000000000003d6e0000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d720000000000000000000000000000000000000000000000000000000000003d740000000000000000000000000000000000000000000000000000000000003d760000000000000000000000000000000000000000000000000000000000003d780000000000000000000000000000000000000000000000000000000000003d7a0000000000000000000000000000000000000000000000000000000000003d7c0000000000000000000000000000000000000000000000000000000000003d7e0000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d820000000000000000000000000000000000000000000000000000000000003d840000000000000000000000000000000000000000000000000000000000003d860000000000000000000000000000000000000000000000000000000000003d880000000000000000000000000000000000000000000000000000000000003d8a0000000000000000000000000000000000000000000000000000000000003d8c0000000000000000000000000000000000000000000000000000000000003d8e0000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003d920000000000000000000000000000000000000000000000000000000000003d940000000000000000000000000000000000000000000000000000000000003d960000000000000000000000000000000000000000000000000000000000003d980000000000000000000000000000000000000000000000000000000000003d9a0000000000000000000000000000000000000000000000000000000000003d9c0000000000000000000000000000000000000000000000000000000000003d9e0000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003da20000000000000000000000000000000000000000000000000000000000003da40000000000000000000000000000000000000000000000000000000000003da60000000000000000000000000000000000000000000000000000000000003da80000000000000000000000000000000000000000000000000000000000003daa0000000000000000000000000000000000000000000000000000000000003dac0000000000000000000000000000000000000000000000000000000000003dae0000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003db20000000000000000000000000000000000000000000000000000000000003db40000000000000000000000000000000000000000000000000000000000003db60000000000000000000000000000000000000000000000000000000000003db80000000000000000000000000000000000000000000000000000000000003dba0000000000000000000000000000000000000000000000000000000000003dbc0000000000000000000000000000000000000000000000000000000000003dbe0000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dc20000000000000000000000000000000000000000000000000000000000003dc40000000000000000000000000000000000000000000000000000000000003dc60000000000000000000000000000000000000000000000000000000000003dc80000000000000000000000000000000000000000000000000000000000003dca0000000000000000000000000000000000000000000000000000000000003dcc0000000000000000000000000000000000000000000000000000000000003dce0000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003dd20000000000000000000000000000000000000000000000000000000000003dd40000000000000000000000000000000000000000000000000000000000003dd60000000000000000000000000000000000000000000000000000000000003dd80000000000000000000000000000000000000000000000000000000000003dda0000000000000000000000000000000000000000000000000000000000003ddc0000000000000000000000000000000000000000000000000000000000003dde0000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003de20000000000000000000000000000000000000000000000000000000000003de40000000000000000000000000000000000000000000000000000000000003de60000000000000000000000000000000000000000000000000000000000003de80000000000000000000000000000000000000000000000000000000000003dea0000000000000000000000000000000000000000000000000000000000003dec0000000000000000000000000000000000000000000000000000000000003dee0000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003df20000000000000000000000000000000000000000000000000000000000003df40000000000000000000000000000000000000000000000000000000000003df60000000000000000000000000000000000000000000000000000000000003df80000000000000000000000000000000000000000000000000000000000003dfa0000000000000000000000000000000000000000000000000000000000003dfc0000000000000000000000000000000000000000000000000000000000003dfe0000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e020000000000000000000000000000000000000000000000000000000000003e040000000000000000000000000000000000000000000000000000000000003e060000000000000000000000000000000000000000000000000000000000003e080000000000000000000000000000000000000000000000000000000000003e0a0000000000000000000000000000000000000000000000000000000000003e0c0000000000000000000000000000000000000000000000000000000000003e0e0000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e120000000000000000000000000000000000000000000000000000000000003e140000000000000000000000000000000000000000000000000000000000003e160000000000000000000000000000000000000000000000000000000000003e180000000000000000000000000000000000000000000000000000000000003e1a0000000000000000000000000000000000000000000000000000000000003e1c0000000000000000000000000000000000000000000000000000000000003e1e0000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e220000000000000000000000000000000000000000000000000000000000003e240000000000000000000000000000000000000000000000000000000000003e260000000000000000000000000000000000000000000000000000000000003e280000000000000000000000000000000000000000000000000000000000003e2a0000000000000000000000000000000000000000000000000000000000003e2c0000000000000000000000000000000000000000000000000000000000003e2e0000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e320000000000000000000000000000000000000000000000000000000000003e340000000000000000000000000000000000000000000000000000000000003e360000000000000000000000000000000000000000000000000000000000003e380000000000000000000000000000000000000000000000000000000000003e3a0000000000000000000000000000000000000000000000000000000000003e3c0000000000000000000000000000000000000000000000000000000000003e3e0000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e420000000000000000000000000000000000000000000000000000000000003e440000000000000000000000000000000000000000000000000000000000003e460000000000000000000000000000000000000000000000000000000000003e480000000000000000000000000000000000000000000000000000000000003e4a0000000000000000000000000000000000000000000000000000000000003e4c0000000000000000000000000000000000000000000000000000000000003e4e0000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e520000000000000000000000000000000000000000000000000000000000003e540000000000000000000000000000000000000000000000000000000000003e560000000000000000000000000000000000000000000000000000000000003e580000000000000000000000000000000000000000000000000000000000003e5a0000000000000000000000000000000000000000000000000000000000003e5c0000000000000000000000000000000000000000000000000000000000003e5e0000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e620000000000000000000000000000000000000000000000000000000000003e640000000000000000000000000000000000000000000000000000000000003e660000000000000000000000000000000000000000000000000000000000003e680000000000000000000000000000000000000000000000000000000000003e6a0000000000000000000000000000000000000000000000000000000000003e6c0000000000000000000000000000000000000000000000000000000000003e6e0000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e720000000000000000000000000000000000000000000000000000000000003e740000000000000000000000000000000000000000000000000000000000003e760000000000000000000000000000000000000000000000000000000000003e780000000000000000000000000000000000000000000000000000000000003e7a0000000000000000000000000000000000000000000000000000000000003e7c0000000000000000000000000000000000000000000000000000000000003e7e0000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e820000000000000000000000000000000000000000000000000000000000003e840000000000000000000000000000000000000000000000000000000000003e860000000000000000000000000000000000000000000000000000000000003e880000000000000000000000000000000000000000000000000000000000003e8a0000000000000000000000000000000000000000000000000000000000003e8c0000000000000000000000000000000000000000000000000000000000003e8e0000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003e920000000000000000000000000000000000000000000000000000000000003e940000000000000000000000000000000000000000000000000000000000003e960000000000000000000000000000000000000000000000000000000000003e980000000000000000000000000000000000000000000000000000000000003e9a0000000000000000000000000000000000000000000000000000000000003e9c0000000000000000000000000000000000000000000000000000000000003e9e0000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003ea20000000000000000000000000000000000000000000000000000000000003ea40000000000000000000000000000000000000000000000000000000000003ea60000000000000000000000000000000000000000000000000000000000003ea80000000000000000000000000000000000000000000000000000000000003eaa0000000000000000000000000000000000000000000000000000000000003eac0000000000000000000000000000000000000000000000000000000000003eae0000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003eb20000000000000000000000000000000000000000000000000000000000003eb40000000000000000000000000000000000000000000000000000000000003eb60000000000000000000000000000000000000000000000000000000000003eb80000000000000000000000000000000000000000000000000000000000003eba0000000000000000000000000000000000000000000000000000000000003ebc0000000000000000000000000000000000000000000000000000000000003ebe0000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ec20000000000000000000000000000000000000000000000000000000000003ec40000000000000000000000000000000000000000000000000000000000003ec60000000000000000000000000000000000000000000000000000000000003ec80000000000000000000000000000000000000000000000000000000000003eca0000000000000000000000000000000000000000000000000000000000003ecc0000000000000000000000000000000000000000000000000000000000003ece0000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ed20000000000000000000000000000000000000000000000000000000000003ed40000000000000000000000000000000000000000000000000000000000003ed60000000000000000000000000000000000000000000000000000000000003ed80000000000000000000000000000000000000000000000000000000000003eda0000000000000000000000000000000000000000000000000000000000003edc0000000000000000000000000000000000000000000000000000000000003ede0000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ee20000000000000000000000000000000000000000000000000000000000003ee40000000000000000000000000000000000000000000000000000000000003ee60000000000000000000000000000000000000000000000000000000000003ee80000000000000000000000000000000000000000000000000000000000003eea0000000000000000000000000000000000000000000000000000000000003eec0000000000000000000000000000000000000000000000000000000000003eee0000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003ef20000000000000000000000000000000000000000000000000000000000003ef40000000000000000000000000000000000000000000000000000000000003ef60000000000000000000000000000000000000000000000000000000000003ef80000000000000000000000000000000000000000000000000000000000003efa0000000000000000000000000000000000000000000000000000000000003efc0000000000000000000000000000000000000000000000000000000000003efe0000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f020000000000000000000000000000000000000000000000000000000000003f040000000000000000000000000000000000000000000000000000000000003f060000000000000000000000000000000000000000000000000000000000003f080000000000000000000000000000000000000000000000000000000000003f0a0000000000000000000000000000000000000000000000000000000000003f0c0000000000000000000000000000000000000000000000000000000000003f0e0000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f120000000000000000000000000000000000000000000000000000000000003f140000000000000000000000000000000000000000000000000000000000003f160000000000000000000000000000000000000000000000000000000000003f180000000000000000000000000000000000000000000000000000000000003f1a0000000000000000000000000000000000000000000000000000000000003f1c0000000000000000000000000000000000000000000000000000000000003f1e0000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f220000000000000000000000000000000000000000000000000000000000003f240000000000000000000000000000000000000000000000000000000000003f260000000000000000000000000000000000000000000000000000000000003f280000000000000000000000000000000000000000000000000000000000003f2a0000000000000000000000000000000000000000000000000000000000003f2c0000000000000000000000000000000000000000000000000000000000003f2e0000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f320000000000000000000000000000000000000000000000000000000000003f340000000000000000000000000000000000000000000000000000000000003f360000000000000000000000000000000000000000000000000000000000003f380000000000000000000000000000000000000000000000000000000000003f3a0000000000000000000000000000000000000000000000000000000000003f3c0000000000000000000000000000000000000000000000000000000000003f3e0000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f420000000000000000000000000000000000000000000000000000000000003f440000000000000000000000000000000000000000000000000000000000003f460000000000000000000000000000000000000000000000000000000000003f480000000000000000000000000000000000000000000000000000000000003f4a0000000000000000000000000000000000000000000000000000000000003f4c0000000000000000000000000000000000000000000000000000000000003f4e0000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f520000000000000000000000000000000000000000000000000000000000003f540000000000000000000000000000000000000000000000000000000000003f560000000000000000000000000000000000000000000000000000000000003f580000000000000000000000000000000000000000000000000000000000003f5a0000000000000000000000000000000000000000000000000000000000003f5c0000000000000000000000000000000000000000000000000000000000003f5e0000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f620000000000000000000000000000000000000000000000000000000000003f640000000000000000000000000000000000000000000000000000000000003f660000000000000000000000000000000000000000000000000000000000003f680000000000000000000000000000000000000000000000000000000000003f6a0000000000000000000000000000000000000000000000000000000000003f6c0000000000000000000000000000000000000000000000000000000000003f6e0000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f720000000000000000000000000000000000000000000000000000000000003f740000000000000000000000000000000000000000000000000000000000003f760000000000000000000000000000000000000000000000000000000000003f780000000000000000000000000000000000000000000000000000000000003f7a0000000000000000000000000000000000000000000000000000000000003f7c0000000000000000000000000000000000000000000000000000000000003f7e0000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f820000000000000000000000000000000000000000000000000000000000003f840000000000000000000000000000000000000000000000000000000000003f860000000000000000000000000000000000000000000000000000000000003f880000000000000000000000000000000000000000000000000000000000003f8a0000000000000000000000000000000000000000000000000000000000003f8c0000000000000000000000000000000000000000000000000000000000003f8e0000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003f920000000000000000000000000000000000000000000000000000000000003f940000000000000000000000000000000000000000000000000000000000003f960000000000000000000000000000000000000000000000000000000000003f980000000000000000000000000000000000000000000000000000000000003f9a0000000000000000000000000000000000000000000000000000000000003f9c0000000000000000000000000000000000000000000000000000000000003f9e0000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fa20000000000000000000000000000000000000000000000000000000000003fa40000000000000000000000000000000000000000000000000000000000003fa60000000000000000000000000000000000000000000000000000000000003fa80000000000000000000000000000000000000000000000000000000000003faa0000000000000000000000000000000000000000000000000000000000003fac0000000000000000000000000000000000000000000000000000000000003fae0000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fb20000000000000000000000000000000000000000000000000000000000003fb40000000000000000000000000000000000000000000000000000000000003fb60000000000000000000000000000000000000000000000000000000000003fb80000000000000000000000000000000000000000000000000000000000003fba0000000000000000000000000000000000000000000000000000000000003fbc0000000000000000000000000000000000000000000000000000000000003fbe0000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fc20000000000000000000000000000000000000000000000000000000000003fc40000000000000000000000000000000000000000000000000000000000003fc60000000000000000000000000000000000000000000000000000000000003fc80000000000000000000000000000000000000000000000000000000000003fca0000000000000000000000000000000000000000000000000000000000003fcc0000000000000000000000000000000000000000000000000000000000003fce0000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fd20000000000000000000000000000000000000000000000000000000000003fd40000000000000000000000000000000000000000000000000000000000003fd60000000000000000000000000000000000000000000000000000000000003fd80000000000000000000000000000000000000000000000000000000000003fda0000000000000000000000000000000000000000000000000000000000003fdc0000000000000000000000000000000000000000000000000000000000003fde0000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000003fe20000000000000000000000000000000000000000000000000000000000003fe40000000000000000000000000000000000000000000000000000000000003fe60000000000000000000000000000000000000000000000000000000000003fe80000000000000000000000000000000000000000000000000000000000003fea0000000000000000000000000000000000000000000000000000000000003fec0000000000000000000000000000000000000000000000000000000000003fee0000000000000000000000000000000000000000000000000000000000003ff00000000000000000000000000000000000000000000000000000000000003ff20000000000000000000000000000000000000000000000000000000000003ff40000000000000000000000000000000000000000000000000000000000003ff60000000000000000000000000000000000000000000000000000000000003ff80000000000000000000000000000000000000000000000000000000000003ffa0000000000000000000000000000000000000000000000000000000000003ffc0000000000000000000000000000000000000000000000000000000000003ffe00000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004002000000000000000000000000000000000000000000000000000000000000400400000000000000000000000000000000000000000000000000000000000040060000000000000000000000000000000000000000000000000000000000004008000000000000000000000000000000000000000000000000000000000000400a000000000000000000000000000000000000000000000000000000000000400c000000000000000000000000000000000000000000000000000000000000400e00000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004012000000000000000000000000000000000000000000000000000000000000401400000000000000000000000000000000000000000000000000000000000040160000000000000000000000000000000000000000000000000000000000004018000000000000000000000000000000000000000000000000000000000000401a000000000000000000000000000000000000000000000000000000000000401c000000000000000000000000000000000000000000000000000000000000401e00000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000000000000000000000000000000000004022000000000000000000000000000000000000000000000000000000000000402400000000000000000000000000000000000000000000000000000000000040260000000000000000000000000000000000000000000000000000000000004028000000000000000000000000000000000000000000000000000000000000402a000000000000000000000000000000000000000000000000000000000000402c000000000000000000000000000000000000000000000000000000000000402e00000000000000000000000000000000000000000000000000000000000040300000000000000000000000000000000000000000000000000000000000004032000000000000000000000000000000000000000000000000000000000000403400000000000000000000000000000000000000000000000000000000000040360000000000000000000000000000000000000000000000000000000000004038000000000000000000000000000000000000000000000000000000000000403a000000000000000000000000000000000000000000000000000000000000403c000000000000000000000000000000000000000000000000000000000000403e00000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004042000000000000000000000000000000000000000000000000000000000000404400000000000000000000000000000000000000000000000000000000000040460000000000000000000000000000000000000000000000000000000000004048000000000000000000000000000000000000000000000000000000000000404a000000000000000000000000000000000000000000000000000000000000404c000000000000000000000000000000000000000000000000000000000000404e00000000000000000000000000000000000000000000000000000000000040500000000000000000000000000000000000000000000000000000000000004052000000000000000000000000000000000000000000000000000000000000405400000000000000000000000000000000000000000000000000000000000040560000000000000000000000000000000000000000000000000000000000004058000000000000000000000000000000000000000000000000000000000000405a000000000000000000000000000000000000000000000000000000000000405c000000000000000000000000000000000000000000000000000000000000405e00000000000000000000000000000000000000000000000000000000000040600000000000000000000000000000000000000000000000000000000000004062000000000000000000000000000000000000000000000000000000000000406400000000000000000000000000000000000000000000000000000000000040660000000000000000000000000000000000000000000000000000000000004068000000000000000000000000000000000000000000000000000000000000406a000000000000000000000000000000000000000000000000000000000000406c000000000000000000000000000000000000000000000000000000000000406e00000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004072000000000000000000000000000000000000000000000000000000000000407400000000000000000000000000000000000000000000000000000000000040760000000000000000000000000000000000000000000000000000000000004078000000000000000000000000000000000000000000000000000000000000407a000000000000000000000000000000000000000000000000000000000000407c000000000000000000000000000000000000000000000000000000000000407e00000000000000000000000000000000000000000000000000000000000040800000000000000000000000000000000000000000000000000000000000004082000000000000000000000000000000000000000000000000000000000000408400000000000000000000000000000000000000000000000000000000000040860000000000000000000000000000000000000000000000000000000000004088000000000000000000000000000000000000000000000000000000000000408a000000000000000000000000000000000000000000000000000000000000408c000000000000000000000000000000000000000000000000000000000000408e00000000000000000000000000000000000000000000000000000000000040900000000000000000000000000000000000000000000000000000000000004092000000000000000000000000000000000000000000000000000000000000409400000000000000000000000000000000000000000000000000000000000040960000000000000000000000000000000000000000000000000000000000004098000000000000000000000000000000000000000000000000000000000000409a000000000000000000000000000000000000000000000000000000000000409c000000000000000000000000000000000000000000000000000000000000409e00000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040a200000000000000000000000000000000000000000000000000000000000040a400000000000000000000000000000000000000000000000000000000000040a600000000000000000000000000000000000000000000000000000000000040a800000000000000000000000000000000000000000000000000000000000040aa00000000000000000000000000000000000000000000000000000000000040ac00000000000000000000000000000000000000000000000000000000000040ae00000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040b200000000000000000000000000000000000000000000000000000000000040b400000000000000000000000000000000000000000000000000000000000040b600000000000000000000000000000000000000000000000000000000000040b800000000000000000000000000000000000000000000000000000000000040ba00000000000000000000000000000000000000000000000000000000000040bc00000000000000000000000000000000000000000000000000000000000040be00000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040c200000000000000000000000000000000000000000000000000000000000040c400000000000000000000000000000000000000000000000000000000000040c600000000000000000000000000000000000000000000000000000000000040c800000000000000000000000000000000000000000000000000000000000040ca00000000000000000000000000000000000000000000000000000000000040cc00000000000000000000000000000000000000000000000000000000000040ce00000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040d200000000000000000000000000000000000000000000000000000000000040d400000000000000000000000000000000000000000000000000000000000040d600000000000000000000000000000000000000000000000000000000000040d800000000000000000000000000000000000000000000000000000000000040da00000000000000000000000000000000000000000000000000000000000040dc00000000000000000000000000000000000000000000000000000000000040de00000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040e200000000000000000000000000000000000000000000000000000000000040e400000000000000000000000000000000000000000000000000000000000040e600000000000000000000000000000000000000000000000000000000000040e800000000000000000000000000000000000000000000000000000000000040ea00000000000000000000000000000000000000000000000000000000000040ec00000000000000000000000000000000000000000000000000000000000040ee00000000000000000000000000000000000000000000000000000000000040f000000000000000000000000000000000000000000000000000000000000040f200000000000000000000000000000000000000000000000000000000000040f400000000000000000000000000000000000000000000000000000000000040f600000000000000000000000000000000000000000000000000000000000040f800000000000000000000000000000000000000000000000000000000000040fa00000000000000000000000000000000000000000000000000000000000040fc00000000000000000000000000000000000000000000000000000000000040fe00000000000000000000000000000000000000000000000000000000000041000000000000000000000000000000000000000000000000000000000000004102000000000000000000000000000000000000000000000000000000000000410400000000000000000000000000000000000000000000000000000000000041060000000000000000000000000000000000000000000000000000000000004108000000000000000000000000000000000000000000000000000000000000410a000000000000000000000000000000000000000000000000000000000000410c000000000000000000000000000000000000000000000000000000000000410e00000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004112000000000000000000000000000000000000000000000000000000000000411400000000000000000000000000000000000000000000000000000000000041160000000000000000000000000000000000000000000000000000000000004118000000000000000000000000000000000000000000000000000000000000411a000000000000000000000000000000000000000000000000000000000000411c000000000000000000000000000000000000000000000000000000000000411e00000000000000000000000000000000000000000000000000000000000041200000000000000000000000000000000000000000000000000000000000004122000000000000000000000000000000000000000000000000000000000000412400000000000000000000000000000000000000000000000000000000000041260000000000000000000000000000000000000000000000000000000000004128000000000000000000000000000000000000000000000000000000000000412a000000000000000000000000000000000000000000000000000000000000412c000000000000000000000000000000000000000000000000000000000000412e00000000000000000000000000000000000000000000000000000000000041300000000000000000000000000000000000000000000000000000000000004132000000000000000000000000000000000000000000000000000000000000413400000000000000000000000000000000000000000000000000000000000041360000000000000000000000000000000000000000000000000000000000004138000000000000000000000000000000000000000000000000000000000000413a000000000000000000000000000000000000000000000000000000000000413c000000000000000000000000000000000000000000000000000000000000413e00000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004142000000000000000000000000000000000000000000000000000000000000414400000000000000000000000000000000000000000000000000000000000041460000000000000000000000000000000000000000000000000000000000004148000000000000000000000000000000000000000000000000000000000000414a000000000000000000000000000000000000000000000000000000000000414c000000000000000000000000000000000000000000000000000000000000414e00000000000000000000000000000000000000000000000000000000000041500000000000000000000000000000000000000000000000000000000000004152000000000000000000000000000000000000000000000000000000000000415400000000000000000000000000000000000000000000000000000000000041560000000000000000000000000000000000000000000000000000000000004158000000000000000000000000000000000000000000000000000000000000415a000000000000000000000000000000000000000000000000000000000000415c000000000000000000000000000000000000000000000000000000000000415e00000000000000000000000000000000000000000000000000000000000041600000000000000000000000000000000000000000000000000000000000004162000000000000000000000000000000000000000000000000000000000000416400000000000000000000000000000000000000000000000000000000000041660000000000000000000000000000000000000000000000000000000000004168000000000000000000000000000000000000000000000000000000000000416a000000000000000000000000000000000000000000000000000000000000416c000000000000000000000000000000000000000000000000000000000000416e00000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004172000000000000000000000000000000000000000000000000000000000000417400000000000000000000000000000000000000000000000000000000000041760000000000000000000000000000000000000000000000000000000000004178000000000000000000000000000000000000000000000000000000000000417a000000000000000000000000000000000000000000000000000000000000417c000000000000000000000000000000000000000000000000000000000000417e00000000000000000000000000000000000000000000000000000000000041800000000000000000000000000000000000000000000000000000000000004182000000000000000000000000000000000000000000000000000000000000418400000000000000000000000000000000000000000000000000000000000041860000000000000000000000000000000000000000000000000000000000004188000000000000000000000000000000000000000000000000000000000000418a000000000000000000000000000000000000000000000000000000000000418c000000000000000000000000000000000000000000000000000000000000418e00000000000000000000000000000000000000000000000000000000000041900000000000000000000000000000000000000000000000000000000000004192000000000000000000000000000000000000000000000000000000000000419400000000000000000000000000000000000000000000000000000000000041960000000000000000000000000000000000000000000000000000000000004198000000000000000000000000000000000000000000000000000000000000419a000000000000000000000000000000000000000000000000000000000000419c000000000000000000000000000000000000000000000000000000000000419e00000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041a200000000000000000000000000000000000000000000000000000000000041a400000000000000000000000000000000000000000000000000000000000041a600000000000000000000000000000000000000000000000000000000000041a800000000000000000000000000000000000000000000000000000000000041aa00000000000000000000000000000000000000000000000000000000000041ac00000000000000000000000000000000000000000000000000000000000041ae00000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041b200000000000000000000000000000000000000000000000000000000000041b400000000000000000000000000000000000000000000000000000000000041b600000000000000000000000000000000000000000000000000000000000041b800000000000000000000000000000000000000000000000000000000000041ba00000000000000000000000000000000000000000000000000000000000041bc00000000000000000000000000000000000000000000000000000000000041be00000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041c200000000000000000000000000000000000000000000000000000000000041c400000000000000000000000000000000000000000000000000000000000041c600000000000000000000000000000000000000000000000000000000000041c800000000000000000000000000000000000000000000000000000000000041ca00000000000000000000000000000000000000000000000000000000000041cc00000000000000000000000000000000000000000000000000000000000041ce00000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041d200000000000000000000000000000000000000000000000000000000000041d400000000000000000000000000000000000000000000000000000000000041d600000000000000000000000000000000000000000000000000000000000041d800000000000000000000000000000000000000000000000000000000000041da00000000000000000000000000000000000000000000000000000000000041dc00000000000000000000000000000000000000000000000000000000000041de00000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041e200000000000000000000000000000000000000000000000000000000000041e400000000000000000000000000000000000000000000000000000000000041e600000000000000000000000000000000000000000000000000000000000041e800000000000000000000000000000000000000000000000000000000000041ea00000000000000000000000000000000000000000000000000000000000041ec00000000000000000000000000000000000000000000000000000000000041ee00000000000000000000000000000000000000000000000000000000000041f000000000000000000000000000000000000000000000000000000000000041f200000000000000000000000000000000000000000000000000000000000041f400000000000000000000000000000000000000000000000000000000000041f600000000000000000000000000000000000000000000000000000000000041f800000000000000000000000000000000000000000000000000000000000041fa00000000000000000000000000000000000000000000000000000000000041fc00000000000000000000000000000000000000000000000000000000000041fe00000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000004202000000000000000000000000000000000000000000000000000000000000420400000000000000000000000000000000000000000000000000000000000042060000000000000000000000000000000000000000000000000000000000004208000000000000000000000000000000000000000000000000000000000000420a000000000000000000000000000000000000000000000000000000000000420c000000000000000000000000000000000000000000000000000000000000420e00000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004212000000000000000000000000000000000000000000000000000000000000421400000000000000000000000000000000000000000000000000000000000042160000000000000000000000000000000000000000000000000000000000004218000000000000000000000000000000000000000000000000000000000000421a000000000000000000000000000000000000000000000000000000000000421c000000000000000000000000000000000000000000000000000000000000421e00000000000000000000000000000000000000000000000000000000000042200000000000000000000000000000000000000000000000000000000000004222000000000000000000000000000000000000000000000000000000000000422400000000000000000000000000000000000000000000000000000000000042260000000000000000000000000000000000000000000000000000000000004228000000000000000000000000000000000000000000000000000000000000422a000000000000000000000000000000000000000000000000000000000000422c000000000000000000000000000000000000000000000000000000000000422e00000000000000000000000000000000000000000000000000000000000042300000000000000000000000000000000000000000000000000000000000004232000000000000000000000000000000000000000000000000000000000000423400000000000000000000000000000000000000000000000000000000000042360000000000000000000000000000000000000000000000000000000000004238000000000000000000000000000000000000000000000000000000000000423a000000000000000000000000000000000000000000000000000000000000423c000000000000000000000000000000000000000000000000000000000000423e00000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004242000000000000000000000000000000000000000000000000000000000000424400000000000000000000000000000000000000000000000000000000000042460000000000000000000000000000000000000000000000000000000000004248000000000000000000000000000000000000000000000000000000000000424a000000000000000000000000000000000000000000000000000000000000424c000000000000000000000000000000000000000000000000000000000000424e00000000000000000000000000000000000000000000000000000000000042500000000000000000000000000000000000000000000000000000000000004252000000000000000000000000000000000000000000000000000000000000425400000000000000000000000000000000000000000000000000000000000042560000000000000000000000000000000000000000000000000000000000004258000000000000000000000000000000000000000000000000000000000000425a000000000000000000000000000000000000000000000000000000000000425c000000000000000000000000000000000000000000000000000000000000425e00000000000000000000000000000000000000000000000000000000000042600000000000000000000000000000000000000000000000000000000000004262000000000000000000000000000000000000000000000000000000000000426400000000000000000000000000000000000000000000000000000000000042660000000000000000000000000000000000000000000000000000000000004268000000000000000000000000000000000000000000000000000000000000426a000000000000000000000000000000000000000000000000000000000000426c000000000000000000000000000000000000000000000000000000000000426e00000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004272000000000000000000000000000000000000000000000000000000000000427400000000000000000000000000000000000000000000000000000000000042760000000000000000000000000000000000000000000000000000000000004278000000000000000000000000000000000000000000000000000000000000427a000000000000000000000000000000000000000000000000000000000000427c000000000000000000000000000000000000000000000000000000000000427e00000000000000000000000000000000000000000000000000000000000042800000000000000000000000000000000000000000000000000000000000004282000000000000000000000000000000000000000000000000000000000000428400000000000000000000000000000000000000000000000000000000000042860000000000000000000000000000000000000000000000000000000000004288000000000000000000000000000000000000000000000000000000000000428a000000000000000000000000000000000000000000000000000000000000428c000000000000000000000000000000000000000000000000000000000000428e00000000000000000000000000000000000000000000000000000000000042900000000000000000000000000000000000000000000000000000000000004292000000000000000000000000000000000000000000000000000000000000429400000000000000000000000000000000000000000000000000000000000042960000000000000000000000000000000000000000000000000000000000004298000000000000000000000000000000000000000000000000000000000000429a000000000000000000000000000000000000000000000000000000000000429c000000000000000000000000000000000000000000000000000000000000429e00000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042a200000000000000000000000000000000000000000000000000000000000042a400000000000000000000000000000000000000000000000000000000000042a600000000000000000000000000000000000000000000000000000000000042a800000000000000000000000000000000000000000000000000000000000042aa00000000000000000000000000000000000000000000000000000000000042ac00000000000000000000000000000000000000000000000000000000000042ae00000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042b200000000000000000000000000000000000000000000000000000000000042b400000000000000000000000000000000000000000000000000000000000042b600000000000000000000000000000000000000000000000000000000000042b800000000000000000000000000000000000000000000000000000000000042ba00000000000000000000000000000000000000000000000000000000000042bc00000000000000000000000000000000000000000000000000000000000042be00000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042c200000000000000000000000000000000000000000000000000000000000042c400000000000000000000000000000000000000000000000000000000000042c600000000000000000000000000000000000000000000000000000000000042c800000000000000000000000000000000000000000000000000000000000042ca00000000000000000000000000000000000000000000000000000000000042cc00000000000000000000000000000000000000000000000000000000000042ce00000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042d200000000000000000000000000000000000000000000000000000000000042d400000000000000000000000000000000000000000000000000000000000042d600000000000000000000000000000000000000000000000000000000000042d800000000000000000000000000000000000000000000000000000000000042da00000000000000000000000000000000000000000000000000000000000042dc00000000000000000000000000000000000000000000000000000000000042de00000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042e200000000000000000000000000000000000000000000000000000000000042e400000000000000000000000000000000000000000000000000000000000042e600000000000000000000000000000000000000000000000000000000000042e800000000000000000000000000000000000000000000000000000000000042ea00000000000000000000000000000000000000000000000000000000000042ec00000000000000000000000000000000000000000000000000000000000042ee00000000000000000000000000000000000000000000000000000000000042f000000000000000000000000000000000000000000000000000000000000042f200000000000000000000000000000000000000000000000000000000000042f400000000000000000000000000000000000000000000000000000000000042f600000000000000000000000000000000000000000000000000000000000042f800000000000000000000000000000000000000000000000000000000000042fa00000000000000000000000000000000000000000000000000000000000042fc00000000000000000000000000000000000000000000000000000000000042fe00000000000000000000000000000000000000000000000000000000000043000000000000000000000000000000000000000000000000000000000000004302000000000000000000000000000000000000000000000000000000000000430400000000000000000000000000000000000000000000000000000000000043060000000000000000000000000000000000000000000000000000000000004308000000000000000000000000000000000000000000000000000000000000430a000000000000000000000000000000000000000000000000000000000000430c000000000000000000000000000000000000000000000000000000000000430e00000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004312000000000000000000000000000000000000000000000000000000000000431400000000000000000000000000000000000000000000000000000000000043160000000000000000000000000000000000000000000000000000000000004318000000000000000000000000000000000000000000000000000000000000431a000000000000000000000000000000000000000000000000000000000000431c000000000000000000000000000000000000000000000000000000000000431e00000000000000000000000000000000000000000000000000000000000043200000000000000000000000000000000000000000000000000000000000004322000000000000000000000000000000000000000000000000000000000000432400000000000000000000000000000000000000000000000000000000000043260000000000000000000000000000000000000000000000000000000000004328000000000000000000000000000000000000000000000000000000000000432a000000000000000000000000000000000000000000000000000000000000432c000000000000000000000000000000000000000000000000000000000000432e00000000000000000000000000000000000000000000000000000000000043300000000000000000000000000000000000000000000000000000000000004332000000000000000000000000000000000000000000000000000000000000433400000000000000000000000000000000000000000000000000000000000043360000000000000000000000000000000000000000000000000000000000004338000000000000000000000000000000000000000000000000000000000000433a000000000000000000000000000000000000000000000000000000000000433c000000000000000000000000000000000000000000000000000000000000433e00000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004342000000000000000000000000000000000000000000000000000000000000434400000000000000000000000000000000000000000000000000000000000043460000000000000000000000000000000000000000000000000000000000004348000000000000000000000000000000000000000000000000000000000000434a000000000000000000000000000000000000000000000000000000000000434c000000000000000000000000000000000000000000000000000000000000434e00000000000000000000000000000000000000000000000000000000000043500000000000000000000000000000000000000000000000000000000000004352000000000000000000000000000000000000000000000000000000000000435400000000000000000000000000000000000000000000000000000000000043560000000000000000000000000000000000000000000000000000000000004358000000000000000000000000000000000000000000000000000000000000435a000000000000000000000000000000000000000000000000000000000000435c000000000000000000000000000000000000000000000000000000000000435e00000000000000000000000000000000000000000000000000000000000043600000000000000000000000000000000000000000000000000000000000004362000000000000000000000000000000000000000000000000000000000000436400000000000000000000000000000000000000000000000000000000000043660000000000000000000000000000000000000000000000000000000000004368000000000000000000000000000000000000000000000000000000000000436a000000000000000000000000000000000000000000000000000000000000436c000000000000000000000000000000000000000000000000000000000000436e00000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004372000000000000000000000000000000000000000000000000000000000000437400000000000000000000000000000000000000000000000000000000000043760000000000000000000000000000000000000000000000000000000000004378000000000000000000000000000000000000000000000000000000000000437a000000000000000000000000000000000000000000000000000000000000437c000000000000000000000000000000000000000000000000000000000000437e00000000000000000000000000000000000000000000000000000000000043800000000000000000000000000000000000000000000000000000000000004382000000000000000000000000000000000000000000000000000000000000438400000000000000000000000000000000000000000000000000000000000043860000000000000000000000000000000000000000000000000000000000004388000000000000000000000000000000000000000000000000000000000000438a000000000000000000000000000000000000000000000000000000000000438c000000000000000000000000000000000000000000000000000000000000438e00000000000000000000000000000000000000000000000000000000000043900000000000000000000000000000000000000000000000000000000000004392000000000000000000000000000000000000000000000000000000000000439400000000000000000000000000000000000000000000000000000000000043960000000000000000000000000000000000000000000000000000000000004398000000000000000000000000000000000000000000000000000000000000439a000000000000000000000000000000000000000000000000000000000000439c000000000000000000000000000000000000000000000000000000000000439e00000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043a200000000000000000000000000000000000000000000000000000000000043a400000000000000000000000000000000000000000000000000000000000043a600000000000000000000000000000000000000000000000000000000000043a800000000000000000000000000000000000000000000000000000000000043aa00000000000000000000000000000000000000000000000000000000000043ac00000000000000000000000000000000000000000000000000000000000043ae00000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043b200000000000000000000000000000000000000000000000000000000000043b400000000000000000000000000000000000000000000000000000000000043b600000000000000000000000000000000000000000000000000000000000043b800000000000000000000000000000000000000000000000000000000000043ba00000000000000000000000000000000000000000000000000000000000043bc00000000000000000000000000000000000000000000000000000000000043be00000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043c200000000000000000000000000000000000000000000000000000000000043c400000000000000000000000000000000000000000000000000000000000043c600000000000000000000000000000000000000000000000000000000000043c800000000000000000000000000000000000000000000000000000000000043ca00000000000000000000000000000000000000000000000000000000000043cc00000000000000000000000000000000000000000000000000000000000043ce00000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043d200000000000000000000000000000000000000000000000000000000000043d400000000000000000000000000000000000000000000000000000000000043d600000000000000000000000000000000000000000000000000000000000043d800000000000000000000000000000000000000000000000000000000000043da00000000000000000000000000000000000000000000000000000000000043dc00000000000000000000000000000000000000000000000000000000000043de00000000000000000000000000000000000000000000000000000000000043e000000000000000000000000000000000000000000000000000000000000043e200000000000000000000000000000000000000000000000000000000000043e400000000000000000000000000000000000000000000000000000000000043e600000000000000000000000000000000000000000000000000000000000043e800000000000000000000000000000000000000000000000000000000000043ea00000000000000000000000000000000000000000000000000000000000043ec00000000000000000000000000000000000000000000000000000000000043ee00000000000000000000000000000000000000000000000000000000000043f000000000000000000000000000000000000000000000000000000000000043f200000000000000000000000000000000000000000000000000000000000043f400000000000000000000000000000000000000000000000000000000000043f600000000000000000000000000000000000000000000000000000000000043f800000000000000000000000000000000000000000000000000000000000043fa00000000000000000000000000000000000000000000000000000000000043fc00000000000000000000000000000000000000000000000000000000000043fe00000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004402000000000000000000000000000000000000000000000000000000000000440400000000000000000000000000000000000000000000000000000000000044060000000000000000000000000000000000000000000000000000000000004408000000000000000000000000000000000000000000000000000000000000440a000000000000000000000000000000000000000000000000000000000000440c000000000000000000000000000000000000000000000000000000000000440e00000000000000000000000000000000000000000000000000000000000044100000000000000000000000000000000000000000000000000000000000004412000000000000000000000000000000000000000000000000000000000000441400000000000000000000000000000000000000000000000000000000000044160000000000000000000000000000000000000000000000000000000000004418000000000000000000000000000000000000000000000000000000000000441a000000000000000000000000000000000000000000000000000000000000441c000000000000000000000000000000000000000000000000000000000000441e00000000000000000000000000000000000000000000000000000000000044200000000000000000000000000000000000000000000000000000000000004422000000000000000000000000000000000000000000000000000000000000442400000000000000000000000000000000000000000000000000000000000044260000000000000000000000000000000000000000000000000000000000004428000000000000000000000000000000000000000000000000000000000000442a000000000000000000000000000000000000000000000000000000000000442c000000000000000000000000000000000000000000000000000000000000442e00000000000000000000000000000000000000000000000000000000000044300000000000000000000000000000000000000000000000000000000000004432000000000000000000000000000000000000000000000000000000000000443400000000000000000000000000000000000000000000000000000000000044360000000000000000000000000000000000000000000000000000000000004438000000000000000000000000000000000000000000000000000000000000443a000000000000000000000000000000000000000000000000000000000000443c000000000000000000000000000000000000000000000000000000000000443e00000000000000000000000000000000000000000000000000000000000044400000000000000000000000000000000000000000000000000000000000004442000000000000000000000000000000000000000000000000000000000000444400000000000000000000000000000000000000000000000000000000000044460000000000000000000000000000000000000000000000000000000000004448000000000000000000000000000000000000000000000000000000000000444a000000000000000000000000000000000000000000000000000000000000444c000000000000000000000000000000000000000000000000000000000000444e00000000000000000000000000000000000000000000000000000000000044500000000000000000000000000000000000000000000000000000000000004452000000000000000000000000000000000000000000000000000000000000445400000000000000000000000000000000000000000000000000000000000044560000000000000000000000000000000000000000000000000000000000004458000000000000000000000000000000000000000000000000000000000000445a000000000000000000000000000000000000000000000000000000000000445c000000000000000000000000000000000000000000000000000000000000445e00000000000000000000000000000000000000000000000000000000000044600000000000000000000000000000000000000000000000000000000000004462000000000000000000000000000000000000000000000000000000000000446400000000000000000000000000000000000000000000000000000000000044660000000000000000000000000000000000000000000000000000000000004468000000000000000000000000000000000000000000000000000000000000446a000000000000000000000000000000000000000000000000000000000000446c000000000000000000000000000000000000000000000000000000000000446e00000000000000000000000000000000000000000000000000000000000044700000000000000000000000000000000000000000000000000000000000004472000000000000000000000000000000000000000000000000000000000000447400000000000000000000000000000000000000000000000000000000000044760000000000000000000000000000000000000000000000000000000000004478000000000000000000000000000000000000000000000000000000000000447a000000000000000000000000000000000000000000000000000000000000447c000000000000000000000000000000000000000000000000000000000000447e00000000000000000000000000000000000000000000000000000000000044800000000000000000000000000000000000000000000000000000000000004482000000000000000000000000000000000000000000000000000000000000448400000000000000000000000000000000000000000000000000000000000044860000000000000000000000000000000000000000000000000000000000004488000000000000000000000000000000000000000000000000000000000000448a000000000000000000000000000000000000000000000000000000000000448c000000000000000000000000000000000000000000000000000000000000448e00000000000000000000000000000000000000000000000000000000000044900000000000000000000000000000000000000000000000000000000000004492000000000000000000000000000000000000000000000000000000000000449400000000000000000000000000000000000000000000000000000000000044960000000000000000000000000000000000000000000000000000000000004498000000000000000000000000000000000000000000000000000000000000449a000000000000000000000000000000000000000000000000000000000000449c000000000000000000000000000000000000000000000000000000000000449e00000000000000000000000000000000000000000000000000000000000044a000000000000000000000000000000000000000000000000000000000000044a200000000000000000000000000000000000000000000000000000000000044a400000000000000000000000000000000000000000000000000000000000044a600000000000000000000000000000000000000000000000000000000000044a800000000000000000000000000000000000000000000000000000000000044aa00000000000000000000000000000000000000000000000000000000000044ac00000000000000000000000000000000000000000000000000000000000044ae00000000000000000000000000000000000000000000000000000000000044b000000000000000000000000000000000000000000000000000000000000044b200000000000000000000000000000000000000000000000000000000000044b400000000000000000000000000000000000000000000000000000000000044b600000000000000000000000000000000000000000000000000000000000044b800000000000000000000000000000000000000000000000000000000000044ba00000000000000000000000000000000000000000000000000000000000044bc00000000000000000000000000000000000000000000000000000000000044be00000000000000000000000000000000000000000000000000000000000044c000000000000000000000000000000000000000000000000000000000000044c200000000000000000000000000000000000000000000000000000000000044c400000000000000000000000000000000000000000000000000000000000044c600000000000000000000000000000000000000000000000000000000000044c800000000000000000000000000000000000000000000000000000000000044ca00000000000000000000000000000000000000000000000000000000000044cc00000000000000000000000000000000000000000000000000000000000044ce00000000000000000000000000000000000000000000000000000000000044d000000000000000000000000000000000000000000000000000000000000044d200000000000000000000000000000000000000000000000000000000000044d400000000000000000000000000000000000000000000000000000000000044d600000000000000000000000000000000000000000000000000000000000044d800000000000000000000000000000000000000000000000000000000000044da00000000000000000000000000000000000000000000000000000000000044dc00000000000000000000000000000000000000000000000000000000000044de00000000000000000000000000000000000000000000000000000000000044e000000000000000000000000000000000000000000000000000000000000044e200000000000000000000000000000000000000000000000000000000000044e400000000000000000000000000000000000000000000000000000000000044e600000000000000000000000000000000000000000000000000000000000044e800000000000000000000000000000000000000000000000000000000000044ea00000000000000000000000000000000000000000000000000000000000044ec00000000000000000000000000000000000000000000000000000000000044ee00000000000000000000000000000000000000000000000000000000000044f000000000000000000000000000000000000000000000000000000000000044f200000000000000000000000000000000000000000000000000000000000044f400000000000000000000000000000000000000000000000000000000000044f600000000000000000000000000000000000000000000000000000000000044f800000000000000000000000000000000000000000000000000000000000044fa00000000000000000000000000000000000000000000000000000000000044fc00000000000000000000000000000000000000000000000000000000000044fe00000000000000000000000000000000000000000000000000000000000045000000000000000000000000000000000000000000000000000000000000004502000000000000000000000000000000000000000000000000000000000000450400000000000000000000000000000000000000000000000000000000000045060000000000000000000000000000000000000000000000000000000000004508000000000000000000000000000000000000000000000000000000000000450a000000000000000000000000000000000000000000000000000000000000450c000000000000000000000000000000000000000000000000000000000000450e00000000000000000000000000000000000000000000000000000000000045100000000000000000000000000000000000000000000000000000000000004512000000000000000000000000000000000000000000000000000000000000451400000000000000000000000000000000000000000000000000000000000045160000000000000000000000000000000000000000000000000000000000004518000000000000000000000000000000000000000000000000000000000000451a000000000000000000000000000000000000000000000000000000000000451c000000000000000000000000000000000000000000000000000000000000451e00000000000000000000000000000000000000000000000000000000000045200000000000000000000000000000000000000000000000000000000000004522000000000000000000000000000000000000000000000000000000000000452400000000000000000000000000000000000000000000000000000000000045260000000000000000000000000000000000000000000000000000000000004528000000000000000000000000000000000000000000000000000000000000452a000000000000000000000000000000000000000000000000000000000000452c000000000000000000000000000000000000000000000000000000000000452e00000000000000000000000000000000000000000000000000000000000045300000000000000000000000000000000000000000000000000000000000004532000000000000000000000000000000000000000000000000000000000000453400000000000000000000000000000000000000000000000000000000000045360000000000000000000000000000000000000000000000000000000000004538000000000000000000000000000000000000000000000000000000000000453a000000000000000000000000000000000000000000000000000000000000453c000000000000000000000000000000000000000000000000000000000000453e00000000000000000000000000000000000000000000000000000000000045400000000000000000000000000000000000000000000000000000000000004542000000000000000000000000000000000000000000000000000000000000454400000000000000000000000000000000000000000000000000000000000045460000000000000000000000000000000000000000000000000000000000004548000000000000000000000000000000000000000000000000000000000000454a000000000000000000000000000000000000000000000000000000000000454c000000000000000000000000000000000000000000000000000000000000454e00000000000000000000000000000000000000000000000000000000000045500000000000000000000000000000000000000000000000000000000000004552000000000000000000000000000000000000000000000000000000000000455400000000000000000000000000000000000000000000000000000000000045560000000000000000000000000000000000000000000000000000000000004558000000000000000000000000000000000000000000000000000000000000455a000000000000000000000000000000000000000000000000000000000000455c000000000000000000000000000000000000000000000000000000000000455e00000000000000000000000000000000000000000000000000000000000045600000000000000000000000000000000000000000000000000000000000004562000000000000000000000000000000000000000000000000000000000000456400000000000000000000000000000000000000000000000000000000000045660000000000000000000000000000000000000000000000000000000000004568000000000000000000000000000000000000000000000000000000000000456a000000000000000000000000000000000000000000000000000000000000456c000000000000000000000000000000000000000000000000000000000000456e00000000000000000000000000000000000000000000000000000000000045700000000000000000000000000000000000000000000000000000000000004572000000000000000000000000000000000000000000000000000000000000457400000000000000000000000000000000000000000000000000000000000045760000000000000000000000000000000000000000000000000000000000004578000000000000000000000000000000000000000000000000000000000000457a000000000000000000000000000000000000000000000000000000000000457c000000000000000000000000000000000000000000000000000000000000457e00000000000000000000000000000000000000000000000000000000000045800000000000000000000000000000000000000000000000000000000000004582000000000000000000000000000000000000000000000000000000000000458400000000000000000000000000000000000000000000000000000000000045860000000000000000000000000000000000000000000000000000000000004588000000000000000000000000000000000000000000000000000000000000458a000000000000000000000000000000000000000000000000000000000000458c000000000000000000000000000000000000000000000000000000000000458e00000000000000000000000000000000000000000000000000000000000045900000000000000000000000000000000000000000000000000000000000004592000000000000000000000000000000000000000000000000000000000000459400000000000000000000000000000000000000000000000000000000000045960000000000000000000000000000000000000000000000000000000000004598000000000000000000000000000000000000000000000000000000000000459a000000000000000000000000000000000000000000000000000000000000459c000000000000000000000000000000000000000000000000000000000000459e00000000000000000000000000000000000000000000000000000000000045a000000000000000000000000000000000000000000000000000000000000045a200000000000000000000000000000000000000000000000000000000000045a400000000000000000000000000000000000000000000000000000000000045a600000000000000000000000000000000000000000000000000000000000045a800000000000000000000000000000000000000000000000000000000000045aa00000000000000000000000000000000000000000000000000000000000045ac00000000000000000000000000000000000000000000000000000000000045ae00000000000000000000000000000000000000000000000000000000000045b000000000000000000000000000000000000000000000000000000000000045b200000000000000000000000000000000000000000000000000000000000045b400000000000000000000000000000000000000000000000000000000000045b600000000000000000000000000000000000000000000000000000000000045b800000000000000000000000000000000000000000000000000000000000045ba00000000000000000000000000000000000000000000000000000000000045bc00000000000000000000000000000000000000000000000000000000000045be00000000000000000000000000000000000000000000000000000000000045c000000000000000000000000000000000000000000000000000000000000045c200000000000000000000000000000000000000000000000000000000000045c400000000000000000000000000000000000000000000000000000000000045c600000000000000000000000000000000000000000000000000000000000045c800000000000000000000000000000000000000000000000000000000000045ca00000000000000000000000000000000000000000000000000000000000045cc00000000000000000000000000000000000000000000000000000000000045ce00000000000000000000000000000000000000000000000000000000000045d000000000000000000000000000000000000000000000000000000000000045d200000000000000000000000000000000000000000000000000000000000045d400000000000000000000000000000000000000000000000000000000000045d600000000000000000000000000000000000000000000000000000000000045d800000000000000000000000000000000000000000000000000000000000045da00000000000000000000000000000000000000000000000000000000000045dc00000000000000000000000000000000000000000000000000000000000045de00000000000000000000000000000000000000000000000000000000000045e000000000000000000000000000000000000000000000000000000000000045e200000000000000000000000000000000000000000000000000000000000045e400000000000000000000000000000000000000000000000000000000000045e600000000000000000000000000000000000000000000000000000000000045e800000000000000000000000000000000000000000000000000000000000045ea00000000000000000000000000000000000000000000000000000000000045ec00000000000000000000000000000000000000000000000000000000000045ee00000000000000000000000000000000000000000000000000000000000045f000000000000000000000000000000000000000000000000000000000000045f200000000000000000000000000000000000000000000000000000000000045f400000000000000000000000000000000000000000000000000000000000045f600000000000000000000000000000000000000000000000000000000000045f800000000000000000000000000000000000000000000000000000000000045fa00000000000000000000000000000000000000000000000000000000000045fc00000000000000000000000000000000000000000000000000000000000045fe00000000000000000000000000000000000000000000000000000000000046000000000000000000000000000000000000000000000000000000000000004602000000000000000000000000000000000000000000000000000000000000460400000000000000000000000000000000000000000000000000000000000046060000000000000000000000000000000000000000000000000000000000004608000000000000000000000000000000000000000000000000000000000000460a000000000000000000000000000000000000000000000000000000000000460c000000000000000000000000000000000000000000000000000000000000460e00000000000000000000000000000000000000000000000000000000000046100000000000000000000000000000000000000000000000000000000000004612000000000000000000000000000000000000000000000000000000000000461400000000000000000000000000000000000000000000000000000000000046160000000000000000000000000000000000000000000000000000000000004618000000000000000000000000000000000000000000000000000000000000461a000000000000000000000000000000000000000000000000000000000000461c000000000000000000000000000000000000000000000000000000000000461e00000000000000000000000000000000000000000000000000000000000046200000000000000000000000000000000000000000000000000000000000004622000000000000000000000000000000000000000000000000000000000000462400000000000000000000000000000000000000000000000000000000000046260000000000000000000000000000000000000000000000000000000000004628000000000000000000000000000000000000000000000000000000000000462a000000000000000000000000000000000000000000000000000000000000462c000000000000000000000000000000000000000000000000000000000000462e00000000000000000000000000000000000000000000000000000000000046300000000000000000000000000000000000000000000000000000000000004632000000000000000000000000000000000000000000000000000000000000463400000000000000000000000000000000000000000000000000000000000046360000000000000000000000000000000000000000000000000000000000004638000000000000000000000000000000000000000000000000000000000000463a000000000000000000000000000000000000000000000000000000000000463c000000000000000000000000000000000000000000000000000000000000463e00000000000000000000000000000000000000000000000000000000000046400000000000000000000000000000000000000000000000000000000000004642000000000000000000000000000000000000000000000000000000000000464400000000000000000000000000000000000000000000000000000000000046460000000000000000000000000000000000000000000000000000000000004648000000000000000000000000000000000000000000000000000000000000464a000000000000000000000000000000000000000000000000000000000000464c000000000000000000000000000000000000000000000000000000000000464e00000000000000000000000000000000000000000000000000000000000046500000000000000000000000000000000000000000000000000000000000004652000000000000000000000000000000000000000000000000000000000000465400000000000000000000000000000000000000000000000000000000000046560000000000000000000000000000000000000000000000000000000000004658000000000000000000000000000000000000000000000000000000000000465a000000000000000000000000000000000000000000000000000000000000465c000000000000000000000000000000000000000000000000000000000000465e00000000000000000000000000000000000000000000000000000000000046600000000000000000000000000000000000000000000000000000000000004662000000000000000000000000000000000000000000000000000000000000466400000000000000000000000000000000000000000000000000000000000046660000000000000000000000000000000000000000000000000000000000004668000000000000000000000000000000000000000000000000000000000000466a000000000000000000000000000000000000000000000000000000000000466c000000000000000000000000000000000000000000000000000000000000466e00000000000000000000000000000000000000000000000000000000000046700000000000000000000000000000000000000000000000000000000000004672000000000000000000000000000000000000000000000000000000000000467400000000000000000000000000000000000000000000000000000000000046760000000000000000000000000000000000000000000000000000000000004678000000000000000000000000000000000000000000000000000000000000467a000000000000000000000000000000000000000000000000000000000000467c000000000000000000000000000000000000000000000000000000000000467e00000000000000000000000000000000000000000000000000000000000046800000000000000000000000000000000000000000000000000000000000004682000000000000000000000000000000000000000000000000000000000000468400000000000000000000000000000000000000000000000000000000000046860000000000000000000000000000000000000000000000000000000000004688000000000000000000000000000000000000000000000000000000000000468a000000000000000000000000000000000000000000000000000000000000468c000000000000000000000000000000000000000000000000000000000000468e00000000000000000000000000000000000000000000000000000000000046900000000000000000000000000000000000000000000000000000000000004692000000000000000000000000000000000000000000000000000000000000469400000000000000000000000000000000000000000000000000000000000046960000000000000000000000000000000000000000000000000000000000004698000000000000000000000000000000000000000000000000000000000000469a000000000000000000000000000000000000000000000000000000000000469c000000000000000000000000000000000000000000000000000000000000469e00000000000000000000000000000000000000000000000000000000000046a000000000000000000000000000000000000000000000000000000000000046a200000000000000000000000000000000000000000000000000000000000046a400000000000000000000000000000000000000000000000000000000000046a600000000000000000000000000000000000000000000000000000000000046a800000000000000000000000000000000000000000000000000000000000046aa00000000000000000000000000000000000000000000000000000000000046ac00000000000000000000000000000000000000000000000000000000000046ae00000000000000000000000000000000000000000000000000000000000046b000000000000000000000000000000000000000000000000000000000000046b200000000000000000000000000000000000000000000000000000000000046b400000000000000000000000000000000000000000000000000000000000046b600000000000000000000000000000000000000000000000000000000000046b800000000000000000000000000000000000000000000000000000000000046ba00000000000000000000000000000000000000000000000000000000000046bc00000000000000000000000000000000000000000000000000000000000046be00000000000000000000000000000000000000000000000000000000000046c000000000000000000000000000000000000000000000000000000000000046c200000000000000000000000000000000000000000000000000000000000046c400000000000000000000000000000000000000000000000000000000000046c600000000000000000000000000000000000000000000000000000000000046c800000000000000000000000000000000000000000000000000000000000046ca00000000000000000000000000000000000000000000000000000000000046cc00000000000000000000000000000000000000000000000000000000000046ce00000000000000000000000000000000000000000000000000000000000046d000000000000000000000000000000000000000000000000000000000000046d200000000000000000000000000000000000000000000000000000000000046d400000000000000000000000000000000000000000000000000000000000046d600000000000000000000000000000000000000000000000000000000000046d800000000000000000000000000000000000000000000000000000000000046da00000000000000000000000000000000000000000000000000000000000046dc00000000000000000000000000000000000000000000000000000000000046de00000000000000000000000000000000000000000000000000000000000046e000000000000000000000000000000000000000000000000000000000000046e200000000000000000000000000000000000000000000000000000000000046e400000000000000000000000000000000000000000000000000000000000046e600000000000000000000000000000000000000000000000000000000000046e800000000000000000000000000000000000000000000000000000000000046ea00000000000000000000000000000000000000000000000000000000000046ec00000000000000000000000000000000000000000000000000000000000046ee00000000000000000000000000000000000000000000000000000000000046f000000000000000000000000000000000000000000000000000000000000046f200000000000000000000000000000000000000000000000000000000000046f400000000000000000000000000000000000000000000000000000000000046f600000000000000000000000000000000000000000000000000000000000046f800000000000000000000000000000000000000000000000000000000000046fa00000000000000000000000000000000000000000000000000000000000046fc00000000000000000000000000000000000000000000000000000000000046fe00000000000000000000000000000000000000000000000000000000000047000000000000000000000000000000000000000000000000000000000000004702000000000000000000000000000000000000000000000000000000000000470400000000000000000000000000000000000000000000000000000000000047060000000000000000000000000000000000000000000000000000000000004708000000000000000000000000000000000000000000000000000000000000470a000000000000000000000000000000000000000000000000000000000000470c000000000000000000000000000000000000000000000000000000000000470e00000000000000000000000000000000000000000000000000000000000047100000000000000000000000000000000000000000000000000000000000004712000000000000000000000000000000000000000000000000000000000000471400000000000000000000000000000000000000000000000000000000000047160000000000000000000000000000000000000000000000000000000000004718000000000000000000000000000000000000000000000000000000000000471a000000000000000000000000000000000000000000000000000000000000471c000000000000000000000000000000000000000000000000000000000000471e00000000000000000000000000000000000000000000000000000000000047200000000000000000000000000000000000000000000000000000000000004722000000000000000000000000000000000000000000000000000000000000472400000000000000000000000000000000000000000000000000000000000047260000000000000000000000000000000000000000000000000000000000004728000000000000000000000000000000000000000000000000000000000000472a000000000000000000000000000000000000000000000000000000000000472c000000000000000000000000000000000000000000000000000000000000472e00000000000000000000000000000000000000000000000000000000000047300000000000000000000000000000000000000000000000000000000000004732000000000000000000000000000000000000000000000000000000000000473400000000000000000000000000000000000000000000000000000000000047360000000000000000000000000000000000000000000000000000000000004738000000000000000000000000000000000000000000000000000000000000473a000000000000000000000000000000000000000000000000000000000000473c000000000000000000000000000000000000000000000000000000000000473e00000000000000000000000000000000000000000000000000000000000047400000000000000000000000000000000000000000000000000000000000004742000000000000000000000000000000000000000000000000000000000000474400000000000000000000000000000000000000000000000000000000000047460000000000000000000000000000000000000000000000000000000000004748000000000000000000000000000000000000000000000000000000000000474a000000000000000000000000000000000000000000000000000000000000474c000000000000000000000000000000000000000000000000000000000000474e00000000000000000000000000000000000000000000000000000000000047500000000000000000000000000000000000000000000000000000000000004752000000000000000000000000000000000000000000000000000000000000475400000000000000000000000000000000000000000000000000000000000047560000000000000000000000000000000000000000000000000000000000004758000000000000000000000000000000000000000000000000000000000000475a000000000000000000000000000000000000000000000000000000000000475c000000000000000000000000000000000000000000000000000000000000475e00000000000000000000000000000000000000000000000000000000000047600000000000000000000000000000000000000000000000000000000000004762000000000000000000000000000000000000000000000000000000000000476400000000000000000000000000000000000000000000000000000000000047660000000000000000000000000000000000000000000000000000000000004768000000000000000000000000000000000000000000000000000000000000476a000000000000000000000000000000000000000000000000000000000000476c000000000000000000000000000000000000000000000000000000000000476e00000000000000000000000000000000000000000000000000000000000047700000000000000000000000000000000000000000000000000000000000004772000000000000000000000000000000000000000000000000000000000000477400000000000000000000000000000000000000000000000000000000000047760000000000000000000000000000000000000000000000000000000000004778000000000000000000000000000000000000000000000000000000000000477a000000000000000000000000000000000000000000000000000000000000477c000000000000000000000000000000000000000000000000000000000000477e00000000000000000000000000000000000000000000000000000000000047800000000000000000000000000000000000000000000000000000000000004782000000000000000000000000000000000000000000000000000000000000478400000000000000000000000000000000000000000000000000000000000047860000000000000000000000000000000000000000000000000000000000004788000000000000000000000000000000000000000000000000000000000000478a000000000000000000000000000000000000000000000000000000000000478c000000000000000000000000000000000000000000000000000000000000478e00000000000000000000000000000000000000000000000000000000000047900000000000000000000000000000000000000000000000000000000000004792000000000000000000000000000000000000000000000000000000000000479400000000000000000000000000000000000000000000000000000000000047960000000000000000000000000000000000000000000000000000000000004798000000000000000000000000000000000000000000000000000000000000479a000000000000000000000000000000000000000000000000000000000000479c000000000000000000000000000000000000000000000000000000000000479e00000000000000000000000000000000000000000000000000000000000047a000000000000000000000000000000000000000000000000000000000000047a200000000000000000000000000000000000000000000000000000000000047a400000000000000000000000000000000000000000000000000000000000047a600000000000000000000000000000000000000000000000000000000000047a800000000000000000000000000000000000000000000000000000000000047aa00000000000000000000000000000000000000000000000000000000000047ac00000000000000000000000000000000000000000000000000000000000047ae00000000000000000000000000000000000000000000000000000000000047b000000000000000000000000000000000000000000000000000000000000047b200000000000000000000000000000000000000000000000000000000000047b400000000000000000000000000000000000000000000000000000000000047b600000000000000000000000000000000000000000000000000000000000047b800000000000000000000000000000000000000000000000000000000000047ba00000000000000000000000000000000000000000000000000000000000047bc00000000000000000000000000000000000000000000000000000000000047be00000000000000000000000000000000000000000000000000000000000047c000000000000000000000000000000000000000000000000000000000000047c200000000000000000000000000000000000000000000000000000000000047c400000000000000000000000000000000000000000000000000000000000047c600000000000000000000000000000000000000000000000000000000000047c800000000000000000000000000000000000000000000000000000000000047ca00000000000000000000000000000000000000000000000000000000000047cc00000000000000000000000000000000000000000000000000000000000047ce00000000000000000000000000000000000000000000000000000000000047d000000000000000000000000000000000000000000000000000000000000047d200000000000000000000000000000000000000000000000000000000000047d400000000000000000000000000000000000000000000000000000000000047d600000000000000000000000000000000000000000000000000000000000047d800000000000000000000000000000000000000000000000000000000000047da00000000000000000000000000000000000000000000000000000000000047dc00000000000000000000000000000000000000000000000000000000000047de00000000000000000000000000000000000000000000000000000000000047e000000000000000000000000000000000000000000000000000000000000047e200000000000000000000000000000000000000000000000000000000000047e400000000000000000000000000000000000000000000000000000000000047e600000000000000000000000000000000000000000000000000000000000047e800000000000000000000000000000000000000000000000000000000000047ea00000000000000000000000000000000000000000000000000000000000047ec00000000000000000000000000000000000000000000000000000000000047ee00000000000000000000000000000000000000000000000000000000000047f000000000000000000000000000000000000000000000000000000000000047f200000000000000000000000000000000000000000000000000000000000047f400000000000000000000000000000000000000000000000000000000000047f600000000000000000000000000000000000000000000000000000000000047f800000000000000000000000000000000000000000000000000000000000047fa00000000000000000000000000000000000000000000000000000000000047fc00000000000000000000000000000000000000000000000000000000000047fe00000000000000000000000000000000000000000000000000000000000048000000000000000000000000000000000000000000000000000000000000004802000000000000000000000000000000000000000000000000000000000000480400000000000000000000000000000000000000000000000000000000000048060000000000000000000000000000000000000000000000000000000000004808000000000000000000000000000000000000000000000000000000000000480a000000000000000000000000000000000000000000000000000000000000480c000000000000000000000000000000000000000000000000000000000000480e00000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004812000000000000000000000000000000000000000000000000000000000000481400000000000000000000000000000000000000000000000000000000000048160000000000000000000000000000000000000000000000000000000000004818000000000000000000000000000000000000000000000000000000000000481a000000000000000000000000000000000000000000000000000000000000481c000000000000000000000000000000000000000000000000000000000000481e00000000000000000000000000000000000000000000000000000000000048200000000000000000000000000000000000000000000000000000000000004822000000000000000000000000000000000000000000000000000000000000482400000000000000000000000000000000000000000000000000000000000048260000000000000000000000000000000000000000000000000000000000004828000000000000000000000000000000000000000000000000000000000000482a000000000000000000000000000000000000000000000000000000000000482c000000000000000000000000000000000000000000000000000000000000482e00000000000000000000000000000000000000000000000000000000000048300000000000000000000000000000000000000000000000000000000000004832000000000000000000000000000000000000000000000000000000000000483400000000000000000000000000000000000000000000000000000000000048360000000000000000000000000000000000000000000000000000000000004838000000000000000000000000000000000000000000000000000000000000483a000000000000000000000000000000000000000000000000000000000000483c000000000000000000000000000000000000000000000000000000000000483e00000000000000000000000000000000000000000000000000000000000048400000000000000000000000000000000000000000000000000000000000004842000000000000000000000000000000000000000000000000000000000000484400000000000000000000000000000000000000000000000000000000000048460000000000000000000000000000000000000000000000000000000000004848000000000000000000000000000000000000000000000000000000000000484a000000000000000000000000000000000000000000000000000000000000484c000000000000000000000000000000000000000000000000000000000000484e00000000000000000000000000000000000000000000000000000000000048500000000000000000000000000000000000000000000000000000000000004852000000000000000000000000000000000000000000000000000000000000485400000000000000000000000000000000000000000000000000000000000048560000000000000000000000000000000000000000000000000000000000004858000000000000000000000000000000000000000000000000000000000000485a000000000000000000000000000000000000000000000000000000000000485c000000000000000000000000000000000000000000000000000000000000485e00000000000000000000000000000000000000000000000000000000000048600000000000000000000000000000000000000000000000000000000000004862000000000000000000000000000000000000000000000000000000000000486400000000000000000000000000000000000000000000000000000000000048660000000000000000000000000000000000000000000000000000000000004868000000000000000000000000000000000000000000000000000000000000486a000000000000000000000000000000000000000000000000000000000000486c000000000000000000000000000000000000000000000000000000000000486e00000000000000000000000000000000000000000000000000000000000048700000000000000000000000000000000000000000000000000000000000004872000000000000000000000000000000000000000000000000000000000000487400000000000000000000000000000000000000000000000000000000000048760000000000000000000000000000000000000000000000000000000000004878000000000000000000000000000000000000000000000000000000000000487a000000000000000000000000000000000000000000000000000000000000487c000000000000000000000000000000000000000000000000000000000000487e00000000000000000000000000000000000000000000000000000000000048800000000000000000000000000000000000000000000000000000000000004882000000000000000000000000000000000000000000000000000000000000488400000000000000000000000000000000000000000000000000000000000048860000000000000000000000000000000000000000000000000000000000004888000000000000000000000000000000000000000000000000000000000000488a000000000000000000000000000000000000000000000000000000000000488c000000000000000000000000000000000000000000000000000000000000488e00000000000000000000000000000000000000000000000000000000000048900000000000000000000000000000000000000000000000000000000000004892000000000000000000000000000000000000000000000000000000000000489400000000000000000000000000000000000000000000000000000000000048960000000000000000000000000000000000000000000000000000000000004898000000000000000000000000000000000000000000000000000000000000489a000000000000000000000000000000000000000000000000000000000000489c000000000000000000000000000000000000000000000000000000000000489e00000000000000000000000000000000000000000000000000000000000048a000000000000000000000000000000000000000000000000000000000000048a200000000000000000000000000000000000000000000000000000000000048a400000000000000000000000000000000000000000000000000000000000048a600000000000000000000000000000000000000000000000000000000000048a800000000000000000000000000000000000000000000000000000000000048aa00000000000000000000000000000000000000000000000000000000000048ac00000000000000000000000000000000000000000000000000000000000048ae00000000000000000000000000000000000000000000000000000000000048b000000000000000000000000000000000000000000000000000000000000048b200000000000000000000000000000000000000000000000000000000000048b400000000000000000000000000000000000000000000000000000000000048b600000000000000000000000000000000000000000000000000000000000048b800000000000000000000000000000000000000000000000000000000000048ba00000000000000000000000000000000000000000000000000000000000048bc00000000000000000000000000000000000000000000000000000000000048be00000000000000000000000000000000000000000000000000000000000048c000000000000000000000000000000000000000000000000000000000000048c200000000000000000000000000000000000000000000000000000000000048c400000000000000000000000000000000000000000000000000000000000048c600000000000000000000000000000000000000000000000000000000000048c800000000000000000000000000000000000000000000000000000000000048ca00000000000000000000000000000000000000000000000000000000000048cc00000000000000000000000000000000000000000000000000000000000048ce00000000000000000000000000000000000000000000000000000000000048d000000000000000000000000000000000000000000000000000000000000048d200000000000000000000000000000000000000000000000000000000000048d400000000000000000000000000000000000000000000000000000000000048d600000000000000000000000000000000000000000000000000000000000048d800000000000000000000000000000000000000000000000000000000000048da00000000000000000000000000000000000000000000000000000000000048dc00000000000000000000000000000000000000000000000000000000000048de00000000000000000000000000000000000000000000000000000000000048e000000000000000000000000000000000000000000000000000000000000048e200000000000000000000000000000000000000000000000000000000000048e400000000000000000000000000000000000000000000000000000000000048e600000000000000000000000000000000000000000000000000000000000048e800000000000000000000000000000000000000000000000000000000000048ea00000000000000000000000000000000000000000000000000000000000048ec00000000000000000000000000000000000000000000000000000000000048ee00000000000000000000000000000000000000000000000000000000000048f000000000000000000000000000000000000000000000000000000000000048f200000000000000000000000000000000000000000000000000000000000048f400000000000000000000000000000000000000000000000000000000000048f600000000000000000000000000000000000000000000000000000000000048f800000000000000000000000000000000000000000000000000000000000048fa00000000000000000000000000000000000000000000000000000000000048fc00000000000000000000000000000000000000000000000000000000000048fe00000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000004902000000000000000000000000000000000000000000000000000000000000490400000000000000000000000000000000000000000000000000000000000049060000000000000000000000000000000000000000000000000000000000004908000000000000000000000000000000000000000000000000000000000000490a000000000000000000000000000000000000000000000000000000000000490c000000000000000000000000000000000000000000000000000000000000490e00000000000000000000000000000000000000000000000000000000000049100000000000000000000000000000000000000000000000000000000000004912000000000000000000000000000000000000000000000000000000000000491400000000000000000000000000000000000000000000000000000000000049160000000000000000000000000000000000000000000000000000000000004918000000000000000000000000000000000000000000000000000000000000491a000000000000000000000000000000000000000000000000000000000000491c000000000000000000000000000000000000000000000000000000000000491e00000000000000000000000000000000000000000000000000000000000049200000000000000000000000000000000000000000000000000000000000004922000000000000000000000000000000000000000000000000000000000000492400000000000000000000000000000000000000000000000000000000000049260000000000000000000000000000000000000000000000000000000000004928000000000000000000000000000000000000000000000000000000000000492a000000000000000000000000000000000000000000000000000000000000492c000000000000000000000000000000000000000000000000000000000000492e00000000000000000000000000000000000000000000000000000000000049300000000000000000000000000000000000000000000000000000000000004932000000000000000000000000000000000000000000000000000000000000493400000000000000000000000000000000000000000000000000000000000049360000000000000000000000000000000000000000000000000000000000004938000000000000000000000000000000000000000000000000000000000000493a000000000000000000000000000000000000000000000000000000000000493c000000000000000000000000000000000000000000000000000000000000493e00000000000000000000000000000000000000000000000000000000000049400000000000000000000000000000000000000000000000000000000000004942000000000000000000000000000000000000000000000000000000000000494400000000000000000000000000000000000000000000000000000000000049460000000000000000000000000000000000000000000000000000000000004948000000000000000000000000000000000000000000000000000000000000494a000000000000000000000000000000000000000000000000000000000000494c000000000000000000000000000000000000000000000000000000000000494e00000000000000000000000000000000000000000000000000000000000049500000000000000000000000000000000000000000000000000000000000004952000000000000000000000000000000000000000000000000000000000000495400000000000000000000000000000000000000000000000000000000000049560000000000000000000000000000000000000000000000000000000000004958000000000000000000000000000000000000000000000000000000000000495a000000000000000000000000000000000000000000000000000000000000495c000000000000000000000000000000000000000000000000000000000000495e00000000000000000000000000000000000000000000000000000000000049600000000000000000000000000000000000000000000000000000000000004962000000000000000000000000000000000000000000000000000000000000496400000000000000000000000000000000000000000000000000000000000049660000000000000000000000000000000000000000000000000000000000004968000000000000000000000000000000000000000000000000000000000000496a000000000000000000000000000000000000000000000000000000000000496c000000000000000000000000000000000000000000000000000000000000496e00000000000000000000000000000000000000000000000000000000000049700000000000000000000000000000000000000000000000000000000000004972000000000000000000000000000000000000000000000000000000000000497400000000000000000000000000000000000000000000000000000000000049760000000000000000000000000000000000000000000000000000000000004978000000000000000000000000000000000000000000000000000000000000497a000000000000000000000000000000000000000000000000000000000000497c000000000000000000000000000000000000000000000000000000000000497e00000000000000000000000000000000000000000000000000000000000049800000000000000000000000000000000000000000000000000000000000004982000000000000000000000000000000000000000000000000000000000000498400000000000000000000000000000000000000000000000000000000000049860000000000000000000000000000000000000000000000000000000000004988000000000000000000000000000000000000000000000000000000000000498a000000000000000000000000000000000000000000000000000000000000498c000000000000000000000000000000000000000000000000000000000000498e00000000000000000000000000000000000000000000000000000000000049900000000000000000000000000000000000000000000000000000000000004992000000000000000000000000000000000000000000000000000000000000499400000000000000000000000000000000000000000000000000000000000049960000000000000000000000000000000000000000000000000000000000004998000000000000000000000000000000000000000000000000000000000000499a000000000000000000000000000000000000000000000000000000000000499c000000000000000000000000000000000000000000000000000000000000499e00000000000000000000000000000000000000000000000000000000000049a000000000000000000000000000000000000000000000000000000000000049a200000000000000000000000000000000000000000000000000000000000049a400000000000000000000000000000000000000000000000000000000000049a600000000000000000000000000000000000000000000000000000000000049a800000000000000000000000000000000000000000000000000000000000049aa00000000000000000000000000000000000000000000000000000000000049ac00000000000000000000000000000000000000000000000000000000000049ae00000000000000000000000000000000000000000000000000000000000049b000000000000000000000000000000000000000000000000000000000000049b200000000000000000000000000000000000000000000000000000000000049b400000000000000000000000000000000000000000000000000000000000049b600000000000000000000000000000000000000000000000000000000000049b800000000000000000000000000000000000000000000000000000000000049ba00000000000000000000000000000000000000000000000000000000000049bc00000000000000000000000000000000000000000000000000000000000049be00000000000000000000000000000000000000000000000000000000000049c000000000000000000000000000000000000000000000000000000000000049c200000000000000000000000000000000000000000000000000000000000049c400000000000000000000000000000000000000000000000000000000000049c600000000000000000000000000000000000000000000000000000000000049c800000000000000000000000000000000000000000000000000000000000049ca00000000000000000000000000000000000000000000000000000000000049cc00000000000000000000000000000000000000000000000000000000000049ce00000000000000000000000000000000000000000000000000000000000049d000000000000000000000000000000000000000000000000000000000000049d200000000000000000000000000000000000000000000000000000000000049d400000000000000000000000000000000000000000000000000000000000049d600000000000000000000000000000000000000000000000000000000000049d800000000000000000000000000000000000000000000000000000000000049da00000000000000000000000000000000000000000000000000000000000049dc00000000000000000000000000000000000000000000000000000000000049de00000000000000000000000000000000000000000000000000000000000049e000000000000000000000000000000000000000000000000000000000000049e200000000000000000000000000000000000000000000000000000000000049e400000000000000000000000000000000000000000000000000000000000049e600000000000000000000000000000000000000000000000000000000000049e800000000000000000000000000000000000000000000000000000000000049ea00000000000000000000000000000000000000000000000000000000000049ec00000000000000000000000000000000000000000000000000000000000049ee00000000000000000000000000000000000000000000000000000000000049f000000000000000000000000000000000000000000000000000000000000049f200000000000000000000000000000000000000000000000000000000000049f400000000000000000000000000000000000000000000000000000000000049f600000000000000000000000000000000000000000000000000000000000049f800000000000000000000000000000000000000000000000000000000000049fa00000000000000000000000000000000000000000000000000000000000049fc00000000000000000000000000000000000000000000000000000000000049fe0000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000004a020000000000000000000000000000000000000000000000000000000000004a040000000000000000000000000000000000000000000000000000000000004a060000000000000000000000000000000000000000000000000000000000004a080000000000000000000000000000000000000000000000000000000000004a0a0000000000000000000000000000000000000000000000000000000000004a0c0000000000000000000000000000000000000000000000000000000000004a0e0000000000000000000000000000000000000000000000000000000000004a100000000000000000000000000000000000000000000000000000000000004a120000000000000000000000000000000000000000000000000000000000004a140000000000000000000000000000000000000000000000000000000000004a160000000000000000000000000000000000000000000000000000000000004a180000000000000000000000000000000000000000000000000000000000004a1a0000000000000000000000000000000000000000000000000000000000004a1c0000000000000000000000000000000000000000000000000000000000004a1e0000000000000000000000000000000000000000000000000000000000004a200000000000000000000000000000000000000000000000000000000000004a220000000000000000000000000000000000000000000000000000000000004a240000000000000000000000000000000000000000000000000000000000004a260000000000000000000000000000000000000000000000000000000000004a280000000000000000000000000000000000000000000000000000000000004a2a0000000000000000000000000000000000000000000000000000000000004a2c0000000000000000000000000000000000000000000000000000000000004a2e0000000000000000000000000000000000000000000000000000000000004a300000000000000000000000000000000000000000000000000000000000004a320000000000000000000000000000000000000000000000000000000000004a340000000000000000000000000000000000000000000000000000000000004a360000000000000000000000000000000000000000000000000000000000004a380000000000000000000000000000000000000000000000000000000000004a3a0000000000000000000000000000000000000000000000000000000000004a3c0000000000000000000000000000000000000000000000000000000000004a3e0000000000000000000000000000000000000000000000000000000000004a400000000000000000000000000000000000000000000000000000000000004a420000000000000000000000000000000000000000000000000000000000004a440000000000000000000000000000000000000000000000000000000000004a460000000000000000000000000000000000000000000000000000000000004a480000000000000000000000000000000000000000000000000000000000004a4a0000000000000000000000000000000000000000000000000000000000004a4c0000000000000000000000000000000000000000000000000000000000004a4e0000000000000000000000000000000000000000000000000000000000004a500000000000000000000000000000000000000000000000000000000000004a520000000000000000000000000000000000000000000000000000000000004a540000000000000000000000000000000000000000000000000000000000004a560000000000000000000000000000000000000000000000000000000000004a580000000000000000000000000000000000000000000000000000000000004a5a0000000000000000000000000000000000000000000000000000000000004a5c0000000000000000000000000000000000000000000000000000000000004a5e0000000000000000000000000000000000000000000000000000000000004a600000000000000000000000000000000000000000000000000000000000004a620000000000000000000000000000000000000000000000000000000000004a640000000000000000000000000000000000000000000000000000000000004a660000000000000000000000000000000000000000000000000000000000004a680000000000000000000000000000000000000000000000000000000000004a6a0000000000000000000000000000000000000000000000000000000000004a6c0000000000000000000000000000000000000000000000000000000000004a6e0000000000000000000000000000000000000000000000000000000000004a700000000000000000000000000000000000000000000000000000000000004a720000000000000000000000000000000000000000000000000000000000004a740000000000000000000000000000000000000000000000000000000000004a760000000000000000000000000000000000000000000000000000000000004a780000000000000000000000000000000000000000000000000000000000004a7a0000000000000000000000000000000000000000000000000000000000004a7c0000000000000000000000000000000000000000000000000000000000004a7e0000000000000000000000000000000000000000000000000000000000004a800000000000000000000000000000000000000000000000000000000000004a820000000000000000000000000000000000000000000000000000000000004a840000000000000000000000000000000000000000000000000000000000004a860000000000000000000000000000000000000000000000000000000000004a880000000000000000000000000000000000000000000000000000000000004a8a0000000000000000000000000000000000000000000000000000000000004a8c0000000000000000000000000000000000000000000000000000000000004a8e0000000000000000000000000000000000000000000000000000000000004a900000000000000000000000000000000000000000000000000000000000004a920000000000000000000000000000000000000000000000000000000000004a940000000000000000000000000000000000000000000000000000000000004a960000000000000000000000000000000000000000000000000000000000004a980000000000000000000000000000000000000000000000000000000000004a9a0000000000000000000000000000000000000000000000000000000000004a9c0000000000000000000000000000000000000000000000000000000000004a9e0000000000000000000000000000000000000000000000000000000000004aa00000000000000000000000000000000000000000000000000000000000004aa20000000000000000000000000000000000000000000000000000000000004aa40000000000000000000000000000000000000000000000000000000000004aa60000000000000000000000000000000000000000000000000000000000004aa80000000000000000000000000000000000000000000000000000000000004aaa0000000000000000000000000000000000000000000000000000000000004aac0000000000000000000000000000000000000000000000000000000000004aae0000000000000000000000000000000000000000000000000000000000004ab00000000000000000000000000000000000000000000000000000000000004ab20000000000000000000000000000000000000000000000000000000000004ab40000000000000000000000000000000000000000000000000000000000004ab60000000000000000000000000000000000000000000000000000000000004ab80000000000000000000000000000000000000000000000000000000000004aba0000000000000000000000000000000000000000000000000000000000004abc0000000000000000000000000000000000000000000000000000000000004abe0000000000000000000000000000000000000000000000000000000000004ac00000000000000000000000000000000000000000000000000000000000004ac20000000000000000000000000000000000000000000000000000000000004ac40000000000000000000000000000000000000000000000000000000000004ac60000000000000000000000000000000000000000000000000000000000004ac80000000000000000000000000000000000000000000000000000000000004aca0000000000000000000000000000000000000000000000000000000000004acc0000000000000000000000000000000000000000000000000000000000004ace0000000000000000000000000000000000000000000000000000000000004ad00000000000000000000000000000000000000000000000000000000000004ad20000000000000000000000000000000000000000000000000000000000004ad40000000000000000000000000000000000000000000000000000000000004ad60000000000000000000000000000000000000000000000000000000000004ad80000000000000000000000000000000000000000000000000000000000004ada0000000000000000000000000000000000000000000000000000000000004adc0000000000000000000000000000000000000000000000000000000000004ade0000000000000000000000000000000000000000000000000000000000004ae00000000000000000000000000000000000000000000000000000000000004ae20000000000000000000000000000000000000000000000000000000000004ae40000000000000000000000000000000000000000000000000000000000004ae60000000000000000000000000000000000000000000000000000000000004ae80000000000000000000000000000000000000000000000000000000000004aea0000000000000000000000000000000000000000000000000000000000004aec0000000000000000000000000000000000000000000000000000000000004aee0000000000000000000000000000000000000000000000000000000000004af00000000000000000000000000000000000000000000000000000000000004af20000000000000000000000000000000000000000000000000000000000004af40000000000000000000000000000000000000000000000000000000000004af60000000000000000000000000000000000000000000000000000000000004af80000000000000000000000000000000000000000000000000000000000004afa0000000000000000000000000000000000000000000000000000000000004afc0000000000000000000000000000000000000000000000000000000000004afe0000000000000000000000000000000000000000000000000000000000004b000000000000000000000000000000000000000000000000000000000000004b020000000000000000000000000000000000000000000000000000000000004b040000000000000000000000000000000000000000000000000000000000004b060000000000000000000000000000000000000000000000000000000000004b080000000000000000000000000000000000000000000000000000000000004b0a0000000000000000000000000000000000000000000000000000000000004b0c0000000000000000000000000000000000000000000000000000000000004b0e0000000000000000000000000000000000000000000000000000000000004b100000000000000000000000000000000000000000000000000000000000004b120000000000000000000000000000000000000000000000000000000000004b140000000000000000000000000000000000000000000000000000000000004b160000000000000000000000000000000000000000000000000000000000004b180000000000000000000000000000000000000000000000000000000000004b1a0000000000000000000000000000000000000000000000000000000000004b1c0000000000000000000000000000000000000000000000000000000000004b1e0000000000000000000000000000000000000000000000000000000000004b200000000000000000000000000000000000000000000000000000000000004b220000000000000000000000000000000000000000000000000000000000004b240000000000000000000000000000000000000000000000000000000000004b260000000000000000000000000000000000000000000000000000000000004b280000000000000000000000000000000000000000000000000000000000004b2a0000000000000000000000000000000000000000000000000000000000004b2c0000000000000000000000000000000000000000000000000000000000004b2e0000000000000000000000000000000000000000000000000000000000004b300000000000000000000000000000000000000000000000000000000000004b320000000000000000000000000000000000000000000000000000000000004b340000000000000000000000000000000000000000000000000000000000004b360000000000000000000000000000000000000000000000000000000000004b380000000000000000000000000000000000000000000000000000000000004b3a0000000000000000000000000000000000000000000000000000000000004b3c0000000000000000000000000000000000000000000000000000000000004b3e0000000000000000000000000000000000000000000000000000000000004b400000000000000000000000000000000000000000000000000000000000004b420000000000000000000000000000000000000000000000000000000000004b440000000000000000000000000000000000000000000000000000000000004b460000000000000000000000000000000000000000000000000000000000004b480000000000000000000000000000000000000000000000000000000000004b4a0000000000000000000000000000000000000000000000000000000000004b4c0000000000000000000000000000000000000000000000000000000000004b4e0000000000000000000000000000000000000000000000000000000000004b500000000000000000000000000000000000000000000000000000000000004b520000000000000000000000000000000000000000000000000000000000004b540000000000000000000000000000000000000000000000000000000000004b560000000000000000000000000000000000000000000000000000000000004b580000000000000000000000000000000000000000000000000000000000004b5a0000000000000000000000000000000000000000000000000000000000004b5c0000000000000000000000000000000000000000000000000000000000004b5e0000000000000000000000000000000000000000000000000000000000004b600000000000000000000000000000000000000000000000000000000000004b620000000000000000000000000000000000000000000000000000000000004b640000000000000000000000000000000000000000000000000000000000004b660000000000000000000000000000000000000000000000000000000000004b680000000000000000000000000000000000000000000000000000000000004b6a0000000000000000000000000000000000000000000000000000000000004b6c0000000000000000000000000000000000000000000000000000000000004b6e0000000000000000000000000000000000000000000000000000000000004b700000000000000000000000000000000000000000000000000000000000004b720000000000000000000000000000000000000000000000000000000000004b740000000000000000000000000000000000000000000000000000000000004b760000000000000000000000000000000000000000000000000000000000004b780000000000000000000000000000000000000000000000000000000000004b7a0000000000000000000000000000000000000000000000000000000000004b7c0000000000000000000000000000000000000000000000000000000000004b7e0000000000000000000000000000000000000000000000000000000000004b800000000000000000000000000000000000000000000000000000000000004b820000000000000000000000000000000000000000000000000000000000004b840000000000000000000000000000000000000000000000000000000000004b860000000000000000000000000000000000000000000000000000000000004b880000000000000000000000000000000000000000000000000000000000004b8a0000000000000000000000000000000000000000000000000000000000004b8c0000000000000000000000000000000000000000000000000000000000004b8e0000000000000000000000000000000000000000000000000000000000004b900000000000000000000000000000000000000000000000000000000000004b920000000000000000000000000000000000000000000000000000000000004b940000000000000000000000000000000000000000000000000000000000004b960000000000000000000000000000000000000000000000000000000000004b980000000000000000000000000000000000000000000000000000000000004b9a0000000000000000000000000000000000000000000000000000000000004b9c0000000000000000000000000000000000000000000000000000000000004b9e0000000000000000000000000000000000000000000000000000000000004ba00000000000000000000000000000000000000000000000000000000000004ba20000000000000000000000000000000000000000000000000000000000004ba40000000000000000000000000000000000000000000000000000000000004ba60000000000000000000000000000000000000000000000000000000000004ba80000000000000000000000000000000000000000000000000000000000004baa0000000000000000000000000000000000000000000000000000000000004bac0000000000000000000000000000000000000000000000000000000000004bae0000000000000000000000000000000000000000000000000000000000004bb00000000000000000000000000000000000000000000000000000000000004bb20000000000000000000000000000000000000000000000000000000000004bb40000000000000000000000000000000000000000000000000000000000004bb60000000000000000000000000000000000000000000000000000000000004bb80000000000000000000000000000000000000000000000000000000000004bba0000000000000000000000000000000000000000000000000000000000004bbc0000000000000000000000000000000000000000000000000000000000004bbe0000000000000000000000000000000000000000000000000000000000004bc00000000000000000000000000000000000000000000000000000000000004bc20000000000000000000000000000000000000000000000000000000000004bc40000000000000000000000000000000000000000000000000000000000004bc60000000000000000000000000000000000000000000000000000000000004bc80000000000000000000000000000000000000000000000000000000000004bca0000000000000000000000000000000000000000000000000000000000004bcc0000000000000000000000000000000000000000000000000000000000004bce0000000000000000000000000000000000000000000000000000000000004bd00000000000000000000000000000000000000000000000000000000000004bd20000000000000000000000000000000000000000000000000000000000004bd40000000000000000000000000000000000000000000000000000000000004bd60000000000000000000000000000000000000000000000000000000000004bd80000000000000000000000000000000000000000000000000000000000004bda0000000000000000000000000000000000000000000000000000000000004bdc0000000000000000000000000000000000000000000000000000000000004bde0000000000000000000000000000000000000000000000000000000000004be00000000000000000000000000000000000000000000000000000000000004be20000000000000000000000000000000000000000000000000000000000004be40000000000000000000000000000000000000000000000000000000000004be60000000000000000000000000000000000000000000000000000000000004be80000000000000000000000000000000000000000000000000000000000004bea0000000000000000000000000000000000000000000000000000000000004bec0000000000000000000000000000000000000000000000000000000000004bee0000000000000000000000000000000000000000000000000000000000004bf00000000000000000000000000000000000000000000000000000000000004bf20000000000000000000000000000000000000000000000000000000000004bf40000000000000000000000000000000000000000000000000000000000004bf60000000000000000000000000000000000000000000000000000000000004bf80000000000000000000000000000000000000000000000000000000000004bfa0000000000000000000000000000000000000000000000000000000000004bfc0000000000000000000000000000000000000000000000000000000000004bfe0000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c020000000000000000000000000000000000000000000000000000000000004c040000000000000000000000000000000000000000000000000000000000004c060000000000000000000000000000000000000000000000000000000000004c080000000000000000000000000000000000000000000000000000000000004c0a0000000000000000000000000000000000000000000000000000000000004c0c0000000000000000000000000000000000000000000000000000000000004c0e0000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000004c120000000000000000000000000000000000000000000000000000000000004c140000000000000000000000000000000000000000000000000000000000004c160000000000000000000000000000000000000000000000000000000000004c180000000000000000000000000000000000000000000000000000000000004c1a0000000000000000000000000000000000000000000000000000000000004c1c0000000000000000000000000000000000000000000000000000000000004c1e0000000000000000000000000000000000000000000000000000000000004c200000000000000000000000000000000000000000000000000000000000004c220000000000000000000000000000000000000000000000000000000000004c240000000000000000000000000000000000000000000000000000000000004c260000000000000000000000000000000000000000000000000000000000004c280000000000000000000000000000000000000000000000000000000000004c2a0000000000000000000000000000000000000000000000000000000000004c2c0000000000000000000000000000000000000000000000000000000000004c2e0000000000000000000000000000000000000000000000000000000000004c300000000000000000000000000000000000000000000000000000000000004c320000000000000000000000000000000000000000000000000000000000004c340000000000000000000000000000000000000000000000000000000000004c360000000000000000000000000000000000000000000000000000000000004c380000000000000000000000000000000000000000000000000000000000004c3a0000000000000000000000000000000000000000000000000000000000004c3c0000000000000000000000000000000000000000000000000000000000004c3e0000000000000000000000000000000000000000000000000000000000004c400000000000000000000000000000000000000000000000000000000000004c420000000000000000000000000000000000000000000000000000000000004c440000000000000000000000000000000000000000000000000000000000004c460000000000000000000000000000000000000000000000000000000000004c480000000000000000000000000000000000000000000000000000000000004c4a0000000000000000000000000000000000000000000000000000000000004c4c0000000000000000000000000000000000000000000000000000000000004c4e0000000000000000000000000000000000000000000000000000000000004c500000000000000000000000000000000000000000000000000000000000004c520000000000000000000000000000000000000000000000000000000000004c540000000000000000000000000000000000000000000000000000000000004c560000000000000000000000000000000000000000000000000000000000004c580000000000000000000000000000000000000000000000000000000000004c5a0000000000000000000000000000000000000000000000000000000000004c5c0000000000000000000000000000000000000000000000000000000000004c5e0000000000000000000000000000000000000000000000000000000000004c600000000000000000000000000000000000000000000000000000000000004c620000000000000000000000000000000000000000000000000000000000004c640000000000000000000000000000000000000000000000000000000000004c660000000000000000000000000000000000000000000000000000000000004c680000000000000000000000000000000000000000000000000000000000004c6a0000000000000000000000000000000000000000000000000000000000004c6c0000000000000000000000000000000000000000000000000000000000004c6e0000000000000000000000000000000000000000000000000000000000004c700000000000000000000000000000000000000000000000000000000000004c720000000000000000000000000000000000000000000000000000000000004c740000000000000000000000000000000000000000000000000000000000004c760000000000000000000000000000000000000000000000000000000000004c780000000000000000000000000000000000000000000000000000000000004c7a0000000000000000000000000000000000000000000000000000000000004c7c0000000000000000000000000000000000000000000000000000000000004c7e0000000000000000000000000000000000000000000000000000000000004c800000000000000000000000000000000000000000000000000000000000004c820000000000000000000000000000000000000000000000000000000000004c840000000000000000000000000000000000000000000000000000000000004c860000000000000000000000000000000000000000000000000000000000004c880000000000000000000000000000000000000000000000000000000000004c8a0000000000000000000000000000000000000000000000000000000000004c8c0000000000000000000000000000000000000000000000000000000000004c8e0000000000000000000000000000000000000000000000000000000000004c900000000000000000000000000000000000000000000000000000000000004c920000000000000000000000000000000000000000000000000000000000004c940000000000000000000000000000000000000000000000000000000000004c960000000000000000000000000000000000000000000000000000000000004c980000000000000000000000000000000000000000000000000000000000004c9a0000000000000000000000000000000000000000000000000000000000004c9c0000000000000000000000000000000000000000000000000000000000004c9e0000000000000000000000000000000000000000000000000000000000004ca00000000000000000000000000000000000000000000000000000000000004ca20000000000000000000000000000000000000000000000000000000000004ca40000000000000000000000000000000000000000000000000000000000004ca60000000000000000000000000000000000000000000000000000000000004ca80000000000000000000000000000000000000000000000000000000000004caa0000000000000000000000000000000000000000000000000000000000004cac0000000000000000000000000000000000000000000000000000000000004cae0000000000000000000000000000000000000000000000000000000000004cb00000000000000000000000000000000000000000000000000000000000004cb20000000000000000000000000000000000000000000000000000000000004cb40000000000000000000000000000000000000000000000000000000000004cb60000000000000000000000000000000000000000000000000000000000004cb80000000000000000000000000000000000000000000000000000000000004cba0000000000000000000000000000000000000000000000000000000000004cbc0000000000000000000000000000000000000000000000000000000000004cbe0000000000000000000000000000000000000000000000000000000000004cc00000000000000000000000000000000000000000000000000000000000004cc20000000000000000000000000000000000000000000000000000000000004cc40000000000000000000000000000000000000000000000000000000000004cc60000000000000000000000000000000000000000000000000000000000004cc80000000000000000000000000000000000000000000000000000000000004cca0000000000000000000000000000000000000000000000000000000000004ccc0000000000000000000000000000000000000000000000000000000000004cce0000000000000000000000000000000000000000000000000000000000004cd00000000000000000000000000000000000000000000000000000000000004cd20000000000000000000000000000000000000000000000000000000000004cd40000000000000000000000000000000000000000000000000000000000004cd60000000000000000000000000000000000000000000000000000000000004cd80000000000000000000000000000000000000000000000000000000000004cda0000000000000000000000000000000000000000000000000000000000004cdc0000000000000000000000000000000000000000000000000000000000004cde0000000000000000000000000000000000000000000000000000000000004ce00000000000000000000000000000000000000000000000000000000000004ce20000000000000000000000000000000000000000000000000000000000004ce40000000000000000000000000000000000000000000000000000000000004ce60000000000000000000000000000000000000000000000000000000000004ce80000000000000000000000000000000000000000000000000000000000004cea0000000000000000000000000000000000000000000000000000000000004cec0000000000000000000000000000000000000000000000000000000000004cee0000000000000000000000000000000000000000000000000000000000004cf00000000000000000000000000000000000000000000000000000000000004cf20000000000000000000000000000000000000000000000000000000000004cf40000000000000000000000000000000000000000000000000000000000004cf60000000000000000000000000000000000000000000000000000000000004cf80000000000000000000000000000000000000000000000000000000000004cfa0000000000000000000000000000000000000000000000000000000000004cfc0000000000000000000000000000000000000000000000000000000000004cfe0000000000000000000000000000000000000000000000000000000000004d000000000000000000000000000000000000000000000000000000000000004d020000000000000000000000000000000000000000000000000000000000004d040000000000000000000000000000000000000000000000000000000000004d060000000000000000000000000000000000000000000000000000000000004d080000000000000000000000000000000000000000000000000000000000004d0a0000000000000000000000000000000000000000000000000000000000004d0c0000000000000000000000000000000000000000000000000000000000004d0e0000000000000000000000000000000000000000000000000000000000004d100000000000000000000000000000000000000000000000000000000000004d120000000000000000000000000000000000000000000000000000000000004d140000000000000000000000000000000000000000000000000000000000004d160000000000000000000000000000000000000000000000000000000000004d180000000000000000000000000000000000000000000000000000000000004d1a0000000000000000000000000000000000000000000000000000000000004d1c0000000000000000000000000000000000000000000000000000000000004d1e0000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000004d220000000000000000000000000000000000000000000000000000000000004d240000000000000000000000000000000000000000000000000000000000004d260000000000000000000000000000000000000000000000000000000000004d280000000000000000000000000000000000000000000000000000000000004d2a0000000000000000000000000000000000000000000000000000000000004d2c0000000000000000000000000000000000000000000000000000000000004d2e0000000000000000000000000000000000000000000000000000000000004d300000000000000000000000000000000000000000000000000000000000004d320000000000000000000000000000000000000000000000000000000000004d340000000000000000000000000000000000000000000000000000000000004d360000000000000000000000000000000000000000000000000000000000004d380000000000000000000000000000000000000000000000000000000000004d3a0000000000000000000000000000000000000000000000000000000000004d3c0000000000000000000000000000000000000000000000000000000000004d3e0000000000000000000000000000000000000000000000000000000000004d400000000000000000000000000000000000000000000000000000000000004d420000000000000000000000000000000000000000000000000000000000004d440000000000000000000000000000000000000000000000000000000000004d460000000000000000000000000000000000000000000000000000000000004d480000000000000000000000000000000000000000000000000000000000004d4a0000000000000000000000000000000000000000000000000000000000004d4c0000000000000000000000000000000000000000000000000000000000004d4e0000000000000000000000000000000000000000000000000000000000004d500000000000000000000000000000000000000000000000000000000000004d520000000000000000000000000000000000000000000000000000000000004d540000000000000000000000000000000000000000000000000000000000004d560000000000000000000000000000000000000000000000000000000000004d580000000000000000000000000000000000000000000000000000000000004d5a0000000000000000000000000000000000000000000000000000000000004d5c0000000000000000000000000000000000000000000000000000000000004d5e0000000000000000000000000000000000000000000000000000000000004d600000000000000000000000000000000000000000000000000000000000004d620000000000000000000000000000000000000000000000000000000000004d640000000000000000000000000000000000000000000000000000000000004d660000000000000000000000000000000000000000000000000000000000004d680000000000000000000000000000000000000000000000000000000000004d6a0000000000000000000000000000000000000000000000000000000000004d6c0000000000000000000000000000000000000000000000000000000000004d6e0000000000000000000000000000000000000000000000000000000000004d700000000000000000000000000000000000000000000000000000000000004d720000000000000000000000000000000000000000000000000000000000004d740000000000000000000000000000000000000000000000000000000000004d760000000000000000000000000000000000000000000000000000000000004d780000000000000000000000000000000000000000000000000000000000004d7a0000000000000000000000000000000000000000000000000000000000004d7c0000000000000000000000000000000000000000000000000000000000004d7e0000000000000000000000000000000000000000000000000000000000004d800000000000000000000000000000000000000000000000000000000000004d820000000000000000000000000000000000000000000000000000000000004d840000000000000000000000000000000000000000000000000000000000004d860000000000000000000000000000000000000000000000000000000000004d880000000000000000000000000000000000000000000000000000000000004d8a0000000000000000000000000000000000000000000000000000000000004d8c0000000000000000000000000000000000000000000000000000000000004d8e0000000000000000000000000000000000000000000000000000000000004d900000000000000000000000000000000000000000000000000000000000004d920000000000000000000000000000000000000000000000000000000000004d940000000000000000000000000000000000000000000000000000000000004d960000000000000000000000000000000000000000000000000000000000004d980000000000000000000000000000000000000000000000000000000000004d9a0000000000000000000000000000000000000000000000000000000000004d9c0000000000000000000000000000000000000000000000000000000000004d9e0000000000000000000000000000000000000000000000000000000000004da00000000000000000000000000000000000000000000000000000000000004da20000000000000000000000000000000000000000000000000000000000004da40000000000000000000000000000000000000000000000000000000000004da60000000000000000000000000000000000000000000000000000000000004da80000000000000000000000000000000000000000000000000000000000004daa0000000000000000000000000000000000000000000000000000000000004dac0000000000000000000000000000000000000000000000000000000000004dae0000000000000000000000000000000000000000000000000000000000004db00000000000000000000000000000000000000000000000000000000000004db20000000000000000000000000000000000000000000000000000000000004db40000000000000000000000000000000000000000000000000000000000004db60000000000000000000000000000000000000000000000000000000000004db80000000000000000000000000000000000000000000000000000000000004dba0000000000000000000000000000000000000000000000000000000000004dbc0000000000000000000000000000000000000000000000000000000000004dbe0000000000000000000000000000000000000000000000000000000000004dc00000000000000000000000000000000000000000000000000000000000004dc20000000000000000000000000000000000000000000000000000000000004dc40000000000000000000000000000000000000000000000000000000000004dc60000000000000000000000000000000000000000000000000000000000004dc80000000000000000000000000000000000000000000000000000000000004dca0000000000000000000000000000000000000000000000000000000000004dcc0000000000000000000000000000000000000000000000000000000000004dce0000000000000000000000000000000000000000000000000000000000004dd00000000000000000000000000000000000000000000000000000000000004dd20000000000000000000000000000000000000000000000000000000000004dd40000000000000000000000000000000000000000000000000000000000004dd60000000000000000000000000000000000000000000000000000000000004dd80000000000000000000000000000000000000000000000000000000000004dda0000000000000000000000000000000000000000000000000000000000004ddc0000000000000000000000000000000000000000000000000000000000004dde0000000000000000000000000000000000000000000000000000000000004de00000000000000000000000000000000000000000000000000000000000004de20000000000000000000000000000000000000000000000000000000000004de40000000000000000000000000000000000000000000000000000000000004de60000000000000000000000000000000000000000000000000000000000004de80000000000000000000000000000000000000000000000000000000000004dea0000000000000000000000000000000000000000000000000000000000004dec0000000000000000000000000000000000000000000000000000000000004dee0000000000000000000000000000000000000000000000000000000000004df00000000000000000000000000000000000000000000000000000000000004df20000000000000000000000000000000000000000000000000000000000004df40000000000000000000000000000000000000000000000000000000000004df60000000000000000000000000000000000000000000000000000000000004df80000000000000000000000000000000000000000000000000000000000004dfa0000000000000000000000000000000000000000000000000000000000004dfc0000000000000000000000000000000000000000000000000000000000004dfe0000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000004e020000000000000000000000000000000000000000000000000000000000004e040000000000000000000000000000000000000000000000000000000000004e060000000000000000000000000000000000000000000000000000000000004e080000000000000000000000000000000000000000000000000000000000004e0a0000000000000000000000000000000000000000000000000000000000004e0c0000000000000000000000000000000000000000000000000000000000004e0e0000000000000000000000000000000000000000000000000000000000004e100000000000000000000000000000000000000000000000000000000000004e120000000000000000000000000000000000000000000000000000000000004e140000000000000000000000000000000000000000000000000000000000004e160000000000000000000000000000000000000000000000000000000000004e180000000000000000000000000000000000000000000000000000000000004e1a0000000000000000000000000000000000000000000000000000000000004e1c0000000000000000000000000000000000000000000000000000000000004e1e0000000000000000000000000000000000000000000000000000000000004e200000000000000000000000000000000000000000000000000000000000004e220000000000000000000000000000000000000000000000000000000000004e240000000000000000000000000000000000000000000000000000000000004e260000000000000000000000000000000000000000000000000000000000004e280000000000000000000000000000000000000000000000000000000000004e2a0000000000000000000000000000000000000000000000000000000000004e2c0000000000000000000000000000000000000000000000000000000000004e2e0000000000000000000000000000000000000000000000000000000000004e300000000000000000000000000000000000000000000000000000000000004e320000000000000000000000000000000000000000000000000000000000004e340000000000000000000000000000000000000000000000000000000000004e360000000000000000000000000000000000000000000000000000000000004e380000000000000000000000000000000000000000000000000000000000004e3a0000000000000000000000000000000000000000000000000000000000004e3c0000000000000000000000000000000000000000000000000000000000004e3e0000000000000000000000000000000000000000000000000000000000004e400000000000000000000000000000000000000000000000000000000000004e420000000000000000000000000000000000000000000000000000000000004e440000000000000000000000000000000000000000000000000000000000004e460000000000000000000000000000000000000000000000000000000000004e480000000000000000000000000000000000000000000000000000000000004e4a0000000000000000000000000000000000000000000000000000000000004e4c0000000000000000000000000000000000000000000000000000000000004e4e0000000000000000000000000000000000000000000000000000000000004e500000000000000000000000000000000000000000000000000000000000004e520000000000000000000000000000000000000000000000000000000000004e540000000000000000000000000000000000000000000000000000000000004e560000000000000000000000000000000000000000000000000000000000004e580000000000000000000000000000000000000000000000000000000000004e5a0000000000000000000000000000000000000000000000000000000000004e5c0000000000000000000000000000000000000000000000000000000000004e5e0000000000000000000000000000000000000000000000000000000000004e600000000000000000000000000000000000000000000000000000000000004e620000000000000000000000000000000000000000000000000000000000004e640000000000000000000000000000000000000000000000000000000000004e660000000000000000000000000000000000000000000000000000000000004e680000000000000000000000000000000000000000000000000000000000004e6a0000000000000000000000000000000000000000000000000000000000004e6c0000000000000000000000000000000000000000000000000000000000004e6e0000000000000000000000000000000000000000000000000000000000004e700000000000000000000000000000000000000000000000000000000000004e720000000000000000000000000000000000000000000000000000000000004e740000000000000000000000000000000000000000000000000000000000004e760000000000000000000000000000000000000000000000000000000000004e780000000000000000000000000000000000000000000000000000000000004e7a0000000000000000000000000000000000000000000000000000000000004e7c0000000000000000000000000000000000000000000000000000000000004e7e0000000000000000000000000000000000000000000000000000000000004e800000000000000000000000000000000000000000000000000000000000004e820000000000000000000000000000000000000000000000000000000000004e840000000000000000000000000000000000000000000000000000000000004e860000000000000000000000000000000000000000000000000000000000004e880000000000000000000000000000000000000000000000000000000000004e8a0000000000000000000000000000000000000000000000000000000000004e8c0000000000000000000000000000000000000000000000000000000000004e8e0000000000000000000000000000000000000000000000000000000000004e900000000000000000000000000000000000000000000000000000000000004e920000000000000000000000000000000000000000000000000000000000004e940000000000000000000000000000000000000000000000000000000000004e960000000000000000000000000000000000000000000000000000000000004e980000000000000000000000000000000000000000000000000000000000004e9a0000000000000000000000000000000000000000000000000000000000004e9c0000000000000000000000000000000000000000000000000000000000004e9e0000000000000000000000000000000000000000000000000000000000004ea00000000000000000000000000000000000000000000000000000000000004ea20000000000000000000000000000000000000000000000000000000000004ea40000000000000000000000000000000000000000000000000000000000004ea60000000000000000000000000000000000000000000000000000000000004ea80000000000000000000000000000000000000000000000000000000000004eaa0000000000000000000000000000000000000000000000000000000000004eac0000000000000000000000000000000000000000000000000000000000004eae0000000000000000000000000000000000000000000000000000000000004eb00000000000000000000000000000000000000000000000000000000000004eb20000000000000000000000000000000000000000000000000000000000004eb40000000000000000000000000000000000000000000000000000000000004eb60000000000000000000000000000000000000000000000000000000000004eb80000000000000000000000000000000000000000000000000000000000004eba0000000000000000000000000000000000000000000000000000000000004ebc0000000000000000000000000000000000000000000000000000000000004ebe0000000000000000000000000000000000000000000000000000000000004ec00000000000000000000000000000000000000000000000000000000000004ec20000000000000000000000000000000000000000000000000000000000004ec40000000000000000000000000000000000000000000000000000000000004ec60000000000000000000000000000000000000000000000000000000000004ec80000000000000000000000000000000000000000000000000000000000004eca0000000000000000000000000000000000000000000000000000000000004ecc0000000000000000000000000000000000000000000000000000000000004ece0000000000000000000000000000000000000000000000000000000000004ed00000000000000000000000000000000000000000000000000000000000004ed20000000000000000000000000000000000000000000000000000000000004ed40000000000000000000000000000000000000000000000000000000000004ed60000000000000000000000000000000000000000000000000000000000004ed80000000000000000000000000000000000000000000000000000000000004eda0000000000000000000000000000000000000000000000000000000000004edc0000000000000000000000000000000000000000000000000000000000004ede0000000000000000000000000000000000000000000000000000000000004ee00000000000000000000000000000000000000000000000000000000000004ee20000000000000000000000000000000000000000000000000000000000004ee40000000000000000000000000000000000000000000000000000000000004ee60000000000000000000000000000000000000000000000000000000000004ee80000000000000000000000000000000000000000000000000000000000004eea0000000000000000000000000000000000000000000000000000000000004eec0000000000000000000000000000000000000000000000000000000000004eee0000000000000000000000000000000000000000000000000000000000004ef00000000000000000000000000000000000000000000000000000000000004ef20000000000000000000000000000000000000000000000000000000000004ef40000000000000000000000000000000000000000000000000000000000004ef60000000000000000000000000000000000000000000000000000000000004ef80000000000000000000000000000000000000000000000000000000000004efa0000000000000000000000000000000000000000000000000000000000004efc0000000000000000000000000000000000000000000000000000000000004efe0000000000000000000000000000000000000000000000000000000000004f000000000000000000000000000000000000000000000000000000000000004f020000000000000000000000000000000000000000000000000000000000004f040000000000000000000000000000000000000000000000000000000000004f060000000000000000000000000000000000000000000000000000000000004f080000000000000000000000000000000000000000000000000000000000004f0a0000000000000000000000000000000000000000000000000000000000004f0c0000000000000000000000000000000000000000000000000000000000004f0e0000000000000000000000000000000000000000000000000000000000004f100000000000000000000000000000000000000000000000000000000000004f120000000000000000000000000000000000000000000000000000000000004f140000000000000000000000000000000000000000000000000000000000004f160000000000000000000000000000000000000000000000000000000000004f180000000000000000000000000000000000000000000000000000000000004f1a0000000000000000000000000000000000000000000000000000000000004f1c0000000000000000000000000000000000000000000000000000000000004f1e0000000000000000000000000000000000000000000000000000000000004f200000000000000000000000000000000000000000000000000000000000004f220000000000000000000000000000000000000000000000000000000000004f240000000000000000000000000000000000000000000000000000000000004f260000000000000000000000000000000000000000000000000000000000004f280000000000000000000000000000000000000000000000000000000000004f2a0000000000000000000000000000000000000000000000000000000000004f2c0000000000000000000000000000000000000000000000000000000000004f2e0000000000000000000000000000000000000000000000000000000000004f300000000000000000000000000000000000000000000000000000000000004f320000000000000000000000000000000000000000000000000000000000004f340000000000000000000000000000000000000000000000000000000000004f360000000000000000000000000000000000000000000000000000000000004f380000000000000000000000000000000000000000000000000000000000004f3a0000000000000000000000000000000000000000000000000000000000004f3c0000000000000000000000000000000000000000000000000000000000004f3e0000000000000000000000000000000000000000000000000000000000004f400000000000000000000000000000000000000000000000000000000000004f420000000000000000000000000000000000000000000000000000000000004f440000000000000000000000000000000000000000000000000000000000004f460000000000000000000000000000000000000000000000000000000000004f480000000000000000000000000000000000000000000000000000000000004f4a0000000000000000000000000000000000000000000000000000000000004f4c0000000000000000000000000000000000000000000000000000000000004f4e0000000000000000000000000000000000000000000000000000000000004f500000000000000000000000000000000000000000000000000000000000004f520000000000000000000000000000000000000000000000000000000000004f540000000000000000000000000000000000000000000000000000000000004f560000000000000000000000000000000000000000000000000000000000004f580000000000000000000000000000000000000000000000000000000000004f5a0000000000000000000000000000000000000000000000000000000000004f5c0000000000000000000000000000000000000000000000000000000000004f5e0000000000000000000000000000000000000000000000000000000000004f600000000000000000000000000000000000000000000000000000000000004f620000000000000000000000000000000000000000000000000000000000004f640000000000000000000000000000000000000000000000000000000000004f660000000000000000000000000000000000000000000000000000000000004f680000000000000000000000000000000000000000000000000000000000004f6a0000000000000000000000000000000000000000000000000000000000004f6c0000000000000000000000000000000000000000000000000000000000004f6e0000000000000000000000000000000000000000000000000000000000004f700000000000000000000000000000000000000000000000000000000000004f720000000000000000000000000000000000000000000000000000000000004f740000000000000000000000000000000000000000000000000000000000004f760000000000000000000000000000000000000000000000000000000000004f780000000000000000000000000000000000000000000000000000000000004f7a0000000000000000000000000000000000000000000000000000000000004f7c0000000000000000000000000000000000000000000000000000000000004f7e0000000000000000000000000000000000000000000000000000000000004f800000000000000000000000000000000000000000000000000000000000004f820000000000000000000000000000000000000000000000000000000000004f840000000000000000000000000000000000000000000000000000000000004f860000000000000000000000000000000000000000000000000000000000004f880000000000000000000000000000000000000000000000000000000000004f8a0000000000000000000000000000000000000000000000000000000000004f8c0000000000000000000000000000000000000000000000000000000000004f8e0000000000000000000000000000000000000000000000000000000000004f900000000000000000000000000000000000000000000000000000000000004f920000000000000000000000000000000000000000000000000000000000004f940000000000000000000000000000000000000000000000000000000000004f960000000000000000000000000000000000000000000000000000000000004f980000000000000000000000000000000000000000000000000000000000004f9a0000000000000000000000000000000000000000000000000000000000004f9c0000000000000000000000000000000000000000000000000000000000004f9e0000000000000000000000000000000000000000000000000000000000004fa00000000000000000000000000000000000000000000000000000000000004fa20000000000000000000000000000000000000000000000000000000000004fa40000000000000000000000000000000000000000000000000000000000004fa60000000000000000000000000000000000000000000000000000000000004fa80000000000000000000000000000000000000000000000000000000000004faa0000000000000000000000000000000000000000000000000000000000004fac0000000000000000000000000000000000000000000000000000000000004fae0000000000000000000000000000000000000000000000000000000000004fb00000000000000000000000000000000000000000000000000000000000004fb20000000000000000000000000000000000000000000000000000000000004fb40000000000000000000000000000000000000000000000000000000000004fb60000000000000000000000000000000000000000000000000000000000004fb80000000000000000000000000000000000000000000000000000000000004fba0000000000000000000000000000000000000000000000000000000000004fbc0000000000000000000000000000000000000000000000000000000000004fbe0000000000000000000000000000000000000000000000000000000000004fc00000000000000000000000000000000000000000000000000000000000004fc20000000000000000000000000000000000000000000000000000000000004fc40000000000000000000000000000000000000000000000000000000000004fc60000000000000000000000000000000000000000000000000000000000004fc80000000000000000000000000000000000000000000000000000000000004fca0000000000000000000000000000000000000000000000000000000000004fcc0000000000000000000000000000000000000000000000000000000000004fce0000000000000000000000000000000000000000000000000000000000004fd00000000000000000000000000000000000000000000000000000000000004fd20000000000000000000000000000000000000000000000000000000000004fd40000000000000000000000000000000000000000000000000000000000004fd60000000000000000000000000000000000000000000000000000000000004fd80000000000000000000000000000000000000000000000000000000000004fda0000000000000000000000000000000000000000000000000000000000004fdc0000000000000000000000000000000000000000000000000000000000004fde0000000000000000000000000000000000000000000000000000000000004fe00000000000000000000000000000000000000000000000000000000000004fe20000000000000000000000000000000000000000000000000000000000004fe40000000000000000000000000000000000000000000000000000000000004fe60000000000000000000000000000000000000000000000000000000000004fe80000000000000000000000000000000000000000000000000000000000004fea0000000000000000000000000000000000000000000000000000000000004fec0000000000000000000000000000000000000000000000000000000000004fee0000000000000000000000000000000000000000000000000000000000004ff00000000000000000000000000000000000000000000000000000000000004ff20000000000000000000000000000000000000000000000000000000000004ff40000000000000000000000000000000000000000000000000000000000004ff60000000000000000000000000000000000000000000000000000000000004ff80000000000000000000000000000000000000000000000000000000000004ffa0000000000000000000000000000000000000000000000000000000000004ffc0000000000000000000000000000000000000000000000000000000000004ffe00000000000000000000000000000000000000000000000000000000000050000 (327744 bytes)]
  `,
  )
  expect(() =>
    AbiParameters.decode(AbiParameters.from(arr4), p2),
  ).toThrowErrorMatchingInlineSnapshot(
    '[Cursor.RecursiveReadLimitExceededError: Recursive read limit of `8192` exceeded (recursive read count: `8193`).]',
  )
  expect(() =>
    AbiParameters.decode(AbiParameters.from(arr2), p2),
  ).toThrowErrorMatchingInlineSnapshot(
    '[Cursor.RecursiveReadLimitExceededError: Recursive read limit of `8192` exceeded (recursive read count: `8193`).]',
  )
})

test('recursive 2', () => {
  const arr10 = AbiParameters.from('uint256[][][][][][][][][][]')
  const a = [[], [], [], [], [], [], [], [], [], []] as const
  const ptrArr = AbiParameters.from('uint256[]')
  const mainPtr = AbiParameters.encode(ptrArr, [
    a.map((i: any) => BigInt(a.length - i + 1) * 32n),
  ])
  expect(() =>
    AbiParameters.decode(arr10, `0x${mainPtr.slice(2).repeat(10 + 1)}`),
  ).toThrowErrorMatchingInlineSnapshot(
    '[Cursor.RecursiveReadLimitExceededError: Recursive read limit of `8192` exceeded (recursive read count: `8193`).]',
  )
})

describe('zero-width types', () => {
  test('zero-length fixed array', () => {
    expect(
      AbiParameters.decode(
        [{ type: 'uint256[0]' }, { type: 'uint256' }],
        '0x0000000000000000000000000000000000000000000000000000000000000003',
      ),
    ).toEqual([[], 3n])
  })

  test('trailing empty tuple', () => {
    expect(
      AbiParameters.decode(
        [{ type: 'uint256' }, { type: 'tuple', components: [] }],
        '0x0000000000000000000000000000000000000000000000000000000000000005',
      ),
    ).toEqual([5n, []])
  })

  test('zero-length fixed array of dynamic type', () => {
    expect(
      AbiParameters.decode(
        [{ type: 'string[0]' }, { type: 'uint256' }],
        '0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000003',
      ),
    ).toEqual([[], 3n])
  })

  test('standalone zero-length fixed array of dynamic type', () => {
    // The head is a single offset word pointing at an empty tail.
    expect(
      AbiParameters.decode(
        [{ type: 'string[0]' }],
        '0x0000000000000000000000000000000000000000000000000000000000000020',
      ),
    ).toEqual([[]])
    expect(
      AbiParameters.decode(
        [{ type: 'bytes[0]' }],
        '0x0000000000000000000000000000000000000000000000000000000000000020',
      ),
    ).toEqual([[]])
  })

  test('round-trip', () => {
    const cases = [
      {
        parameters: [{ type: 'uint256[0]' }, { type: 'uint256' }],
        values: [[], 3n],
      },
      {
        parameters: [{ type: 'uint256' }, { type: 'tuple', components: [] }],
        values: [5n, []],
      },
      {
        parameters: [{ type: 'string[0]' }, { type: 'uint256' }],
        values: [[], 3n],
      },
      {
        parameters: [{ type: 'uint256[0]' }, { type: 'string' }],
        values: [[], 'hello'],
      },
      {
        parameters: [{ type: 'uint256[0][2]' }, { type: 'uint256' }],
        values: [[[], []], 9n],
      },
      {
        parameters: [{ type: 'string[0]' }],
        values: [[]],
      },
      {
        parameters: [{ type: 'tuple', components: [{ type: 'string[0]' }] }],
        values: [[[]]],
      },
    ] as const
    for (const { parameters, values } of cases) {
      expect(
        AbiParameters.decode(
          parameters,
          AbiParameters.encode(parameters, values as never),
        ),
      ).toEqual(values)
    }
  })
})
