donación

Acuerdo de donación en México: requisitos, impuestos y cómo formalizarlo

agosto 8, 2026 México Derecho 5 min read
Acuerdo de donación en México: requisitos, impuestos y cómo formalizarlo
EN 30 SEGUNDOS

  • La donación es un contrato gratuito por el que una persona transfiere un bien a otra que lo acepta, regulado por el Código Civil Federal y los códigos civiles de cada entidad. Las partes necesitan capacidad legal, consentimiento sin vicios, animus donandi y aceptación expresa o tácita del donatario para que el contrato exista y sea válido.
  • Los costos suman derechos notariales, impuesto estatal por adquisición de inmuebles, registro público y, si hay ganancia, ISR a cargo del donante. El donante tributa por ISR cuando el valor de donación supera el de adquisición, con tasa de hasta 35%; hay exenciones entre parientes y deducción a donatarias autorizadas.
  • Cómo reclamar: papeleta al SMAC y demanda, en 20 días.

La donación es un contrato por el cual una persona transfiere gratuitamente un bien a otra, que lo acepta. En México se rige por el Código Civil Federal y por los códigos civiles de cada entidad; la forma exigida (verbal, escrito privado o escritura pública) depende del tipo de bien y de su valor, y el costo total cambia según el estado y el monto de la operación.

¿Quién puede donar y quién puede recibir? Requisitos de las partes

El Código Civil Federal reconoce a la donación como un contrato traslativo de dominio, gratuito y, en principio, irrevocable. Para que exista y sea válida se necesitan cuatro elementos básicos:

  • Capacidad legal: pueden donar y recibir todas las personas que la ley no declara inhábiles para contratar. Los menores de edad y las personas bajo interdicción necesitan representante.
  • Consentimiento sin vicios: la voluntad del donante debe ser libre y consciente; si hay violencia, error o dolo, el contrato puede anularse.
  • Animus donandi: la intención de liberalidad, de entregar algo sin esperar una contraprestación económica a cambio.
  • Aceptación del donatario: la donación se perfecciona con la aceptación, ya sea de forma expresa o tácita.

En cuanto a las personas morales, las llamadas donatarias autorizadas son organizaciones civiles y fideicomisos autorizados por el Servicio de Administración Tributaria (SAT) para recibir donativos deducibles; están reguladas por la Ley del ISR. No toda asociación recibe donativos deducibles: el SAT publica cada año el listado vigente.

Costos de formalizar una donación en México
Estimaciones orientativas con base en la legislación federal y en la práctica notarial mexicana; cada estado fija sus propias tarifas y subsidios.

35%ISR máximo por enajenación0%100%

Compara los cuatro bloques de gasto clave —notaría, impuesto estatal, registro e ISR— para anticipar cuánto saldrá donar un bien, sobre todo un inmueble.

Documentos para formalizar el acuerdo de donación

La papelería cambia según el bien y el estado. Aun así, hay un paquete común que cualquier notaría de México solicita:

  • Identificación oficial vigente del donante y del donatario (INE/IFE o pasaporte).
  • Clave Única de Registro de Población (CURP) de ambos.
  • RFC del donante y, cuando aplique, del donatario.
  • Comprobante de domicilio reciente.
  • Comprobantes del bien: facturas, contratos previos, estados de cuenta o títulos.
  • Avalúo vigente cuando se trate de inmuebles o muebles de alto valor.
  • Papeles registrales: certificado de libertad de gravamen y, para inmuebles, la escritura que acredite la propiedad.

Si el donante actúa en representación, hay que añadir el poder notarial y la identificación del representante. Cuando hay menores o incapaces, la donación debe autorizar el juez familiar o un tutor con facultades.

¿Cuánto cuesta formalizar la donación? Impuestos, notaría y registro

Los costos varían por estado, por notaría y por el valor del bien. Una forma útil de pensarlo es separar cuatro bloques de gasto:

Concepto Qué cubre Quién cobra Cómo varía
Derechos notariales Honorarios del notario por escriturar Notaría Por el valor del bien y la tarifa del estado
Impuesto sobre adquisición de inmuebles Traslado de dominio Gobierno estatal Cada estado fija tasa y, en su caso, subsidio
Registro Público de la Propiedad Inscripción para oponer la donación ante terceros Registro estatal Cuotas fijas o proporcionales por estado
ISR enajenación (donante) Ganancia所得所得 por diferencia entre valor de adquisición y valor de donación SAT Aplica cuando hay ganancia所得所得所得; hay exenciones por monto y parentesco
Dato a tener en cuentaEl plazo de 20 días se cuenta en Dato a tener en cuentaEn donación de inmuebles, el ISR se calcula sobre el ingreso acumulable, que suele tomarse como el 20% del valor de donación cuando se trata de adquisición por particulares.
: aplica solo si hay ganancia real frente al valor de adquisición, y existen exenciones por parentesco según el código fiscal de cada estado.

A estos se suman gestoría, copias certificadas y, si se requiere, el avalúo. Por su utilidad, conviene pedir dos cotizaciones notariales antes de firmar.

Tratamiento fiscal: ISR, exenciones y donatarias autorizadas

El SAT grava la donación como una enajenación. La regla general es que el donante paga ISR si el valor de donación supera el valor con el que adquirió el bien; la tasa aplicable es la de enajenación de inmuebles (hasta 35%, según la franja de ganancia). Existen exenciones importantes:

  • Entre padres, hijos o cónyuges, las donaciones de casa habitación suelen tener una exención parcial o total según el estado; revisa el código fiscal local.
  • Cuando el donatario es una donataria autorizada, el donante puede deducir el donativo en su declaración anual dentro de los topes que fija la Ley del ISR.
  • Para gozar de la deducibilidad, el donativo debe pagarse con transferencia electrónica y emitirse un CFDI de donativo.

Ejemplo resuelto en pesos mexicanos. Donante: Luis, en Monterrey, vende una propiedad que adquirió hace 12 años por 1.500.000 MXN. Hoy la dona a su hija, que acepta. El avalúo y el valor de donación son 3.200.000 MXN.

  • Ganancia所得所得 enajenación: 3.200.000 − 1.500.000 = 1.700.000 MXN.
  • Ingreso acumulable base para ISR: el 20% del valor de donación cuando se trata de adquisición所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得所得

Fuentes

  1. WikipediaContrato de donación – Wikipedia, la enciclopedia libreconsultado el 08/08/2026