diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 760f8edd..8816c42f 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -4,6 +4,17 @@ on: push: branches: - main + - development + workflow_dispatch: + inputs: + environment: + description: 'Desplegar dev' + required: true + default: 'development' + type: choice + options: + - development + - main jobs: build: @@ -12,6 +23,60 @@ jobs: steps: - name: Checkout código uses: actions/checkout@v4 + with: + fetch-depth: 0 # Necesario para obtener el historial completo de git + + # ------------------------ + # Generar versión automática + # ------------------------ + - name: Generar versión automática + id: version + run: | + # Obtener año y mes actual + YEAR=$(date +%y) + MONTH=$(date +%m) + + # Detectar rama actual usando variables de Gitea + BRANCH="${GITHUB_REF##*/}" + + if [ "$BRANCH" = "development" ]; then + # Para development: YY.MM.1. + SHORT_HASH=$(git rev-parse --short=8 HEAD) + VERSION="${YEAR}.${MONTH}.${{ secrets.VERSION_MAYOR }}.${SHORT_HASH}" + elif [ "$BRANCH" = "main" ]; then + # Para main: YY.MM.0. + # Intentar obtener el último tag + LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") + + if [ -z "$LAST_TAG" ]; then + # No hay tags, usar commit count total (primera ejecución) + COMMIT_COUNT=$(git rev-list --count HEAD) + echo "⚠️ No se encontraron tags. Usando commit count total: ${COMMIT_COUNT}" + else + # Hay tags, contar commits desde el último tag + COMMIT_COUNT=$(git rev-list ${LAST_TAG}..HEAD --count) + # Si es 0, significa que estamos en el mismo commit del tag, incrementar + if [ "$COMMIT_COUNT" -eq 0 ]; then + COMMIT_COUNT=1 + fi + echo "📌 Último tag: ${LAST_TAG}" + echo "🔢 Commits desde el último tag: ${COMMIT_COUNT}" + fi + + VERSION="${YEAR}.${MONTH}.${{ secrets.VERSION_MAYOR }}.${COMMIT_COUNT}" + else + # Fallback para otras ramas + SHORT_HASH=$(git rev-parse --short=8 HEAD) + VERSION="${YEAR}.${MONTH}.99.${SHORT_HASH}" + fi + + # Guardar versión en output para usarla en steps posteriores + echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT + echo "BRANCH=${BRANCH}" >> $GITHUB_OUTPUT + + # Mostrar en logs + echo "📦 Versión generada: ${VERSION}" + echo "🌿 Rama: ${BRANCH}" - name: Login a Harbor run: | @@ -26,6 +91,7 @@ jobs: - name: Build backend run: | docker build \ + --build-arg APP_VERSION=${{ steps.version.outputs.VERSION }} \ -t dev.aduanasoft.com/anexo76/backend:latest \ -f ./backend/Dockerfile \ ./backend @@ -53,3 +119,33 @@ jobs: - name: Push frontend run: | docker push dev.aduanasoft.com/anexo76/frontend:latest + + # ------------------------ + # Crear tag de versión (solo para main) + # ------------------------ + - name: Crear tag de versión + if: github.ref == 'refs/heads/main' + run: | + VERSION=${{ steps.version.outputs.VERSION }} + git config user.name "Gitea Actions" + git config user.email "actions@gitea.local" + git tag -a "v${VERSION}" -m "Release version ${VERSION}" + git push origin "v${VERSION}" + echo "✅ Tag v${VERSION} creado y pusheado" + + # ------------------------ + # Deploy a Development + # ------------------------ + - name: Deploy a servidor de desarrollo + if: github.ref == 'refs/heads/development' + run: | + eval $(ssh-agent -s) + ssh-add <(echo "${{ secrets.DEV_SERVER_SSH_KEY }}") + ssh -o StrictHostKeyChecking=accept-new \ + ${{ secrets.DEV_SERVER_USER }}@${{ secrets.DEV_SERVER_HOST }} \ + 'cd ~/projects/anexo76 && \ + echo '"'"'${{ secrets.HARBOR_PASSWORD }}'"'"' | docker login dev.aduanasoft.com -u '"'"'${{ secrets.HARBOR_USERNAME }}'"'"' --password-stdin && \ + docker compose -f docker-compose.prod.yml pull && \ + docker compose -f docker-compose.prod.yml up -d && \ + docker image prune -f' + ssh-agent -k diff --git a/.gitignore b/.gitignore index 1da35013..48bbc048 100644 --- a/.gitignore +++ b/.gitignore @@ -61,4 +61,5 @@ node_modules/ # Docker *.dockerignore postgres-data/ -backend/uploads/ \ No newline at end of file +backend/uploads/ +docker-compose.yml diff --git a/backend/Dockerfile b/backend/Dockerfile index 89d5822d..f6253da3 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -2,6 +2,12 @@ FROM python:3.11-slim WORKDIR /app +# ======================================== +# ARG para recibir la versión desde CI/CD +# ======================================== +ARG APP_VERSION="dev" +ENV APP_VERSION=${APP_VERSION} + # Instalar dependencias del sistema RUN apt-get update && apt-get install -y \ gcc \ diff --git a/backend/alembic/versions/7937209f9718_seed_initial_data.py b/backend/alembic/versions/7937209f9718_seed_initial_data.py index 6e1e2359..586a1da6 100644 --- a/backend/alembic/versions/7937209f9718_seed_initial_data.py +++ b/backend/alembic/versions/7937209f9718_seed_initial_data.py @@ -69,9 +69,15 @@ from api.v1.modules.a76.general_catalogs.units_of_measure.seed_ame import ( from api.v1.modules.a76.general_catalogs.units_of_measure.seed_adua import ( seed as adua_seed, ) -from api.v1.modules.a76.general_catalogs.tariff_fractions.seed import ( +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.seed import ( seed as tariff_fractions_seed, ) +from api.v1.modules.a76.general_catalogs.fractions.historical_tariff_fractions.seed import ( + seed as historical_tariff_fractions_seed, +) +from api.v1.modules.public.reference_data.trailer_types.seed import ( + seed as trailer_types_seed, +) from api.v1.modules.core.permissions.seed import ( seed_invoices, seed_user, @@ -307,6 +313,20 @@ def upgrade() -> None: """ ) + values_trailer = ", ".join( + [ + f"('{code}', '{desc.replace(chr(39), chr(39)*2)}')" + for code, desc in trailer_types_seed + ] + ) + op.execute( + f""" + INSERT INTO public.trailer_type (trailer_type_key, description) VALUES + {values_trailer} + ON CONFLICT (trailer_type_key) DO NOTHING; + """ + ) + values_vm = ", ".join( [ f"('{key}', '{desc.replace(chr(39), chr(39)*2)}')" @@ -481,12 +501,49 @@ def upgrade() -> None: """ ) + def format_bool(val): + """Convert boolean string to SQL boolean.""" + if val is None or str(val).strip() == "" or str(val).upper() == "NONE": + return "NULL" + return "TRUE" if str(val).upper() == "TRUE" else "FALSE" + + def format_timestamp(val): + """Format timestamp for PostgreSQL.""" + if val is None or str(val).strip() == "" or str(val).upper() == "NONE": + return "NULL" + # El valor ya viene en formato 'YYYY-MM-DD HH:MM:SS' + return f"'{str(val)}'" + + values_historical_fractions = ", ".join( + [ + f"({format_value(historical_fraction)}, {format_value(unit_measure)}, {format_value(country)}, " + f"{format_value(fraction_type)}, {format_value(sector)}, {format_value(import_tax)}, " + f"{format_value(export_tax)}, {format_timestamp(pub_date)}, {format_bool(is_immex)}, " + f"{format_bool(normal_temp)}, {format_bool(services_temp)}, {format_bool(certified_temp)}, " + f"{format_bool(by_log)}, {format_timestamp(end_date)})" + for historical_fraction, unit_measure, country, fraction_type, sector, import_tax, export_tax, pub_date, is_immex, normal_temp, services_temp, certified_temp, by_log, end_date in historical_tariff_fractions_seed + ] + ) + + if values_historical_fractions: + op.execute( + f""" + INSERT INTO a76.historical_tariff_fractions + (historical_fraction, unit_of_measure_code, country, fraction_type, sector, + import_tax_rate, export_tax_rate, publication_date, is_immex, + normal_temporality, services_temporality, certified_temporality, by_log, end_date) + VALUES {values_historical_fractions} + ON CONFLICT DO NOTHING; + """ + ) + def downgrade() -> None: """Downgrade schema.""" op.drop_table("valuation_methods", schema="public") op.drop_table("transport_types", schema="public") + op.drop_table("trailer_types", schema="public") op.drop_table("transport_modes", schema="public") op.drop_table("sectors", schema="public") op.drop_table("payment_methods", schema="public") diff --git a/backend/api/v1/common/tenant_crud_routes.py b/backend/api/v1/common/tenant_crud_routes.py index 78e213d8..91b23321 100644 --- a/backend/api/v1/common/tenant_crud_routes.py +++ b/backend/api/v1/common/tenant_crud_routes.py @@ -1,4 +1,5 @@ from typing import Any, Callable, Dict, Generic, Optional, Type, TypeVar, Union +import logging from core.database import get_core_db from core.security import get_current_user, validate_access_to_resource @@ -6,6 +7,8 @@ from fastapi import APIRouter, Body, Depends, HTTPException, Path, Query from pydantic import BaseModel from sqlalchemy.orm import Session +logger = logging.getLogger(__name__) + # Type variables for generic types ModelType = TypeVar("ModelType") CreateSchemaType = TypeVar("CreateSchemaType", bound=BaseModel) @@ -173,6 +176,7 @@ class TenantCRUDRoutes( db, tenant_id, company_id, skip, page_size, filters ) + return { "items": [ self.response_schema.model_validate(item) for item in items diff --git a/backend/api/v1/modules/a24/fa/fa_item_lines/models.py b/backend/api/v1/modules/a24/fa/fa_item_lines/models.py index 91e9e958..3ca32851 100644 --- a/backend/api/v1/modules/a24/fa/fa_item_lines/models.py +++ b/backend/api/v1/modules/a24/fa/fa_item_lines/models.py @@ -67,9 +67,6 @@ class FaLineItem(Base, TenantScopedMixin, TimestampMixin): # Subitems is_subitem: Mapped[Optional[bool]] = mapped_column(Boolean) # ESSUBPARTIDA contains_subitems: Mapped[Optional[bool]] = mapped_column(Boolean) # CONTIENESUBP - includes_subitems: Mapped[Optional[bool]] = mapped_column( - Boolean - ) # INCUYESUBPARTIDAS subitem_number: Mapped[Optional[int]] = mapped_column(Integer) # SUBPARTIDA # Special flags diff --git a/backend/api/v1/modules/a24/router.py b/backend/api/v1/modules/a24/router.py index c6657bac..06a92dcc 100644 --- a/backend/api/v1/modules/a24/router.py +++ b/backend/api/v1/modules/a24/router.py @@ -8,6 +8,7 @@ from fastapi import APIRouter from .fa.fa_classes.routes import router as fa_classes_router from .fa.fa_item_lines.routes import router as fa_item_lines_router + # Router principal de A24 router = APIRouter() diff --git a/backend/api/v1/modules/a76/audit_log/events.py b/backend/api/v1/modules/a76/audit_log/events.py new file mode 100644 index 00000000..478ef95c --- /dev/null +++ b/backend/api/v1/modules/a76/audit_log/events.py @@ -0,0 +1,116 @@ +""" +Audit Log Events +""" +from sqlalchemy import event, inspect +from sqlalchemy.orm import Session +from .services.service import AuditService +from core.context import get_user_context + +def register_audit_listeners(models_to_audit): + """ + Register SQLAlchemy listeners for given models + """ + for model in models_to_audit: + event.listen(model, "after_insert", after_insert_listener) + event.listen(model, "after_update", after_update_listener) + event.listen(model, "after_delete", after_delete_listener) + +def _get_current_username(): + try: + context = get_user_context() + if context: + # Token usually has 'preferred_username' or 'name' or 'sub' + return context.get("preferred_username") or context.get("email") or context.get("sub") or "System" + except: + pass + return "System" + +def after_insert_listener(mapper, connection, target): + """ + Listener for INSERT operations + """ + table_name = target.__tablename__ + record_data = {c.name: getattr(target, c.name) for c in mapper.columns} + username = _get_current_username() + company_id = getattr(target, "company_id", None) + + # Create a session bound to the connection + session = Session(bind=connection) + try: + AuditService.log_crud_operation( + db=session, + table_name=table_name, + operation_type="CREATE", + record_data=record_data, + username=username, + record_id=str(getattr(target, "id", "")), + company_id=company_id + ) + except Exception as e: + print(f"Error logging insert: {e}") + finally: + session.close() + +def after_update_listener(mapper, connection, target): + """ + Listener for UPDATE operations + """ + table_name = target.__tablename__ + + state = inspect(target) + changes = {} + old_values = {} + new_values = {} + + for attr in state.attrs: + hist = attr.history + if hist.has_changes(): + changes[attr.key] = hist.added[0] if hist.added else None + old_values[attr.key] = hist.deleted[0] if hist.deleted else None + new_values[attr.key] = hist.added[0] if hist.added else None + + if not changes: + return + + record_data = {c.name: getattr(target, c.name) for c in mapper.columns} + username = _get_current_username() + + session = Session(bind=connection) + try: + AuditService.log_crud_operation( + db=session, + table_name=table_name, + operation_type="UPDATE", + record_data=record_data, + username=username, + record_id=str(getattr(target, "id", "")), + old_values=old_values, + new_values=new_values + ) + except Exception as e: + print(f"Error logging update: {e}") + finally: + session.close() + +def after_delete_listener(mapper, connection, target): + """ + Listener for DELETE operations + """ + table_name = target.__tablename__ + record_data = {c.name: getattr(target, c.name) for c in mapper.columns} + username = _get_current_username() + + session = Session(bind=connection) + try: + AuditService.log_crud_operation( + db=session, + table_name=table_name, + operation_type="DELETE", + record_data=record_data, + username=username, + record_id=str(getattr(target, "id", "")) + ) + except Exception as e: + print(f"Error logging delete: {e}") + finally: + session.close() diff --git a/backend/api/v1/modules/a76/audit_log/middleware.py b/backend/api/v1/modules/a76/audit_log/middleware.py new file mode 100644 index 00000000..fe2c111a --- /dev/null +++ b/backend/api/v1/modules/a76/audit_log/middleware.py @@ -0,0 +1,22 @@ +from starlette.middleware.base import BaseHTTPMiddleware +from starlette.requests import Request +from starlette.responses import Response +from core.security import verify_token +from core.context import set_user_context + +class UserContextMiddleware(BaseHTTPMiddleware): + async def dispatch(self, request: Request, call_next) -> Response: + auth_header = request.headers.get("Authorization") + if auth_header and auth_header.startswith("Bearer "): + token = auth_header.split(" ")[1] + try: + # verify_token might raise exception if invalid, we catch it to not block request + # but we won't have user context + user_info = verify_token(token) + set_user_context(user_info) + except Exception: + # Log error or ignore + pass + + response = await call_next(request) + return response diff --git a/backend/api/v1/modules/a76/audit_log/models.py b/backend/api/v1/modules/a76/audit_log/models.py new file mode 100644 index 00000000..c47900f5 --- /dev/null +++ b/backend/api/v1/modules/a76/audit_log/models.py @@ -0,0 +1,56 @@ +""" +Audit Log Models +""" + +from sqlalchemy import Column, Integer, String, Date, Time, DateTime, Text, Index, func +from sqlalchemy.dialects.postgresql import JSONB, ARRAY +from core.database import Base + +class AuditLog(Base): + __tablename__ = "audit_logs" + + # Primary Key + spec_id = Column(Integer, primary_key=True, autoincrement=True) + + # Legacy Display Columns (English names as requested) + reference = Column(String(100), nullable=False, index=True) # Legacy: Referencia + procedure = Column(String(100), nullable=False, index=True) # Legacy: Procedimiento + movement = Column(String(255), nullable=False) # Legacy: Movimiento + username = Column(String(100), nullable=False, index=True) # Legacy: Usuario + date = Column(Date, nullable=False, index=True) # Legacy: Fecha + time = Column(Time, nullable=False) # Legacy: Hora + + # Technical Columns + timestamp = Column(DateTime(timezone=True), nullable=False, index=True) # Combined for queries + system = Column(String(20), nullable=False, index=True, default="SCAF") + company_id = Column(Integer, nullable=True, index=True) + tenant_id = Column(Integer, nullable=True, index=True) + + # Traceability + table_name = Column(String(100), nullable=True, index=True) + record_id = Column(String(255), nullable=True, index=True) + operation_type = Column(String(20), nullable=True, index=True) # CREATE, UPDATE, DELETE, LOGIN + + # Data Changes + old_values = Column(JSONB, nullable=True) + new_values = Column(JSONB, nullable=True) + changed_fields = Column(ARRAY(String), nullable=True) + + # Request Context + ip_address = Column(String(45), nullable=True) + user_agent = Column(Text, nullable=True) + endpoint = Column(String(500), nullable=True) + request_method = Column(String(10), nullable=True) + session_id = Column(String(50), nullable=True, index=True) + execution_time_ms = Column(Integer, nullable=True) + + # Metadata + created_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False) + + # Composite Indexes for common filters + __table_args__ = ( + Index('idx_audit_username_date', 'username', 'date'), + Index('idx_audit_procedure_date', 'procedure', 'date'), + Index('idx_audit_system_timestamp', 'system', 'timestamp'), + Index('idx_audit_table_record', 'table_name', 'record_id'), + ) diff --git a/backend/api/v1/modules/a76/audit_log/router.py b/backend/api/v1/modules/a76/audit_log/router.py new file mode 100644 index 00000000..6bd03187 --- /dev/null +++ b/backend/api/v1/modules/a76/audit_log/router.py @@ -0,0 +1,93 @@ +""" +Audit Log Router +""" +from typing import List, Optional +from datetime import date +from fastapi import APIRouter, Depends, Query, HTTPException +from sqlalchemy.orm import Session +from sqlalchemy import or_, desc, distinct + +from core.database import get_core_db +from core.security import get_current_user # Assuming this exists +from .models import AuditLog +from .schemas import AuditLogListResponse, AuditLogResponse, AuditLogDetailResponse + +router = APIRouter() + +@router.get("/bitacora", response_model=AuditLogListResponse) +async def get_bitacora( + page: int = Query(1, ge=1), + page_size: int = Query(50, ge=1, le=100), + search: Optional[str] = None, + username: Optional[str] = None, + procedure: Optional[str] = None, + reference: Optional[str] = None, + date_from: Optional[date] = None, + date_to: Optional[date] = None, + db: Session = Depends(get_core_db) +): + """ + Get legacy audit log (Bitácora) + """ + query = db.query(AuditLog) + + # Filters + if date_from: + query = query.filter(AuditLog.date >= date_from) + if date_to: + query = query.filter(AuditLog.date <= date_to) + + if username: + query = query.filter(AuditLog.username.ilike(f"%{username}%")) + if procedure: + # Exact match for dropdown filter usually better, but let's allow partial if manual + # Legacy UI sends exact strings usually + query = query.filter(AuditLog.procedure == procedure) + if reference: + query = query.filter(AuditLog.reference.ilike(f"%{reference}%")) + + if search: + # General search across main columns + search_filter = or_( + AuditLog.reference.ilike(f"%{search}%"), + AuditLog.procedure.ilike(f"%{search}%"), + AuditLog.movement.ilike(f"%{search}%"), + AuditLog.username.ilike(f"%{search}%") + ) + query = query.filter(search_filter) + + total = query.count() + + # Sort by ID desc (newest first) -> Legacy usually shows newest first or spec_id desc + logs = query.order_by(desc(AuditLog.spec_id))\ + .offset((page - 1) * page_size)\ + .limit(page_size)\ + .all() + + return { + "data": logs, + "total": total, + "page": page, + "page_size": page_size + } + +@router.get("/bitacora/procedimientos", response_model=List[str]) +async def get_procedures(db: Session = Depends(get_core_db)): + """ + Get distinct list of procedures for filters + """ + results = db.query(distinct(AuditLog.procedure))\ + .order_by(AuditLog.procedure)\ + .all() + # verify if result is tuple + return [r[0] for r in results if r[0]] + +@router.get("/bitacora/{spec_id}/detalle", response_model=AuditLogDetailResponse) +async def get_audit_detail(spec_id: int, db: Session = Depends(get_core_db)): + """ + Get full detail of a log entry + """ + log = db.query(AuditLog).filter(AuditLog.spec_id == spec_id).first() + if not log: + raise HTTPException(status_code=404, detail="Log entry not found") + return log diff --git a/backend/api/v1/modules/a76/audit_log/schemas.py b/backend/api/v1/modules/a76/audit_log/schemas.py new file mode 100644 index 00000000..bd803974 --- /dev/null +++ b/backend/api/v1/modules/a76/audit_log/schemas.py @@ -0,0 +1,52 @@ +""" +Audit Log Schemas +""" + +from typing import Optional, List, Any, Dict +from datetime import date as date_type, time as time_type, datetime +from pydantic import BaseModel, Field + +# --- Response Schemas --- + +class AuditLogResponse(BaseModel): + """ + Standard response showing the Legacy columns + """ + spec_id: int + reference: str + procedure: str + movement: str + username: str + date: date_type + time: time_type + + # Modern extras + timestamp: datetime + system: str + operation_type: Optional[str] = None + table_name: Optional[str] = None + record_id: Optional[str] = None + + class Config: + from_attributes = True + +class AuditLogDetailResponse(AuditLogResponse): + """ + Detailed response including changed values + """ + old_values: Optional[Dict[str, Any]] = None + new_values: Optional[Dict[str, Any]] = None + changed_fields: Optional[List[str]] = None + ip_address: Optional[str] = None + execution_time_ms: Optional[int] = None + +# --- List Response --- + +class AuditLogListResponse(BaseModel): + """ + Paginated response + """ + data: List[AuditLogResponse] + total: int + page: int + page_size: int diff --git a/backend/api/v1/modules/a76/audit_log/services/core.py b/backend/api/v1/modules/a76/audit_log/services/core.py new file mode 100644 index 00000000..dfb5f2b1 --- /dev/null +++ b/backend/api/v1/modules/a76/audit_log/services/core.py @@ -0,0 +1,183 @@ +""" +Audit Log Core Logic: Reference Generation and Mapping +""" +from typing import Optional, Dict, Any, Tuple + +class ReferenceGenerator: + """ + Generates legacy-style references (e.g., FUSE0-040-10) + """ + + @staticmethod + def generate_invoice_reference(invoice_data: Dict[str, Any]) -> str: + """ + Format: {SYSTEM}-{CUSTOMS}-{YEAR} + Example: FUSE0-040-10 + """ + # Default values + system = "FUSE0" + customs = "000" + year = "00" + + # Try to extract system (invoice_type usually holds this key) + if invoice_data.get("invoice_type"): + system = str(invoice_data["invoice_type"]) + + # Try to extract customs (need to look into nested compliance_mx if available, or just use default) + # Since this receives a dictionary from the mapper, we might not have deep nested relations resolved + # We'll try to do our best with available data + + # Try to get year from invoice_date + if invoice_data.get("invoice_date"): + try: + # invoice_date can be a date object or string + d = invoice_data["invoice_date"] + if hasattr(d, "year"): + y = d.year + else: + # Assume string YYYY-MM-DD + y = int(str(d)[:4]) + year = str(y)[-2:] + except: + pass + + return f"{system}-{customs}-{year}" + + @staticmethod + def generate_invoice_item_reference(invoice_ref: str, item_data: Dict[str, Any]) -> str: + """ + Format: {INVOICE_REF}-{ITEM_PART} + Example: FUSE0-040-10-FUS035 + """ + part_number = item_data.get("part_number", "ITEM") + return f"{invoice_ref}-{part_number}" + + @staticmethod + def generate_pedimento_reference(pedimento_data: Dict[str, Any]) -> str: + """ + Format: {LICENSE}-{CUSTOMS}{YEAR}{NUMBER} + Example: 0756C-040010315 + """ + license = str(pedimento_data.get("license", "0000")).strip() + customs = str(pedimento_data.get("customs_office", "000")).zfill(3) + year = str(pedimento_data.get("year", "00")).zfill(2) + number = str(pedimento_data.get("pedimento_number", "0000000")).zfill(7) + + return f"{license}-{customs}{year}{number}" + + +class AuditMapper: + """ + Maps table names and operations to English Procedures and Movements + """ + + # Map table names to Legacy Procedures (English) + TABLE_TO_PROCEDURE = { + # Invoices + "invoice_header": "IMPORT INVOICE BROWSE", # BROWSEOFACIMP + "invoice_sales_details": "IMPORT INVOICE UPDATE", # UPDATEOFACIMP + + # Exports would be similar but we start with general + + # Pedimentos + "pedimentos": "PEDIMENTO BROWSE", # BROWSEPEDIMEN + + # System + "users": "SYSTEM SCAF", + "sessions": "SYSTEM SCAF", + + # General fallbacks + "clients_and_providers": "CATALOGS", + "clients_and_providers": "CATALOGS", + "clients_and_providers": "CATALOGS", + "items": "CATALOGS", + "classes": "CATALOGS", + "classification_concepts": "CATALOGS", + "concepts": "CATALOGS", + "customs_broker_concepts": "CATALOGS", + "depreciation_catalog": "CATALOGS", + "electronic_notices": "ELECTRONIC NOTICES", + "equivalencies": "CATALOGS", + "error_catalogs": "CATALOGS", + "fda_catalog": "CATALOGS", + "inpc": "CATALOGS", + "legends": "CATALOGS", + "multi_currency_types": "CATALOGS", + "packages": "CATALOGS", + "ports": "CATALOGS", + "prevalidators": "CATALOGS", + "seal": "CATALOGS", + "signatures": "CATALOGS", + "tariff_fractions": "CATALOGS", + "unit_conversions": "CATALOGS", + "us_tariff_fractions": "CATALOGS", + + # DODA + "doda": "DODA", + "doda_containers": "DODA", + "doda_pedimentos": "DODA", + } + + # Map (Table, Operation) to Legacy Movements (English) + OPERATION_TO_MOVEMENT = { + ("invoice_header", "CREATE"): "ADD IMPORT_INVOICE", + ("invoice_header", "UPDATE"): "EDIT IMPORT_INVOICE", + ("invoice_header", "DELETE"): "DELETE IMPORT_INVOICE", + + ("invoice_sales_details", "CREATE"): "ADD IMPORT_INVOICE_ITEM", + ("invoice_sales_details", "UPDATE"): "EDIT IMPORT_INVOICE_ITEM", + ("invoice_sales_details", "DELETE"): "DELETE IMPORT_INVOICE_ITEM", + + ("pedimentos", "CREATE"): "ADD PEDIMENTO", + ("pedimentos", "UPDATE"): "EDIT PEDIMENTO", + ("pedimentos", "DELETE"): "DELETE PEDIMENTO", + + ("auth", "LOGIN"): "SYSTEM LOGIN", + ("auth", "LOGOUT"): "SYSTEM LOGOUT", + + ("classes", "CREATE"): "ADD CLASS", + ("classes", "UPDATE"): "EDIT CLASS", + ("classes", "DELETE"): "DELETE CLASS", + + ("doda", "CREATE"): "ADD DODA", + ("doda", "UPDATE"): "EDIT DODA", + ("doda", "DELETE"): "DELETE DODA", + } + + @staticmethod + def map_to_legacy_format( + table_name: str, + record_id: str, + operation_type: str, + username: str, + system: str = "SCAF" + ) -> Dict[str, Any]: + """ + Returns dictionary with keys: reference, procedure, movement, username, system + """ + # Determine Procedure + procedure = AuditMapper.TABLE_TO_PROCEDURE.get( + table_name, + table_name.upper().replace("_", " ") # Fallback + ) + + # Determine Movement + movement_key = (table_name, operation_type) + movement = AuditMapper.OPERATION_TO_MOVEMENT.get( + movement_key, + f"{operation_type} {table_name.upper()}" + ) + + # Determine Reference Base + if operation_type in ["LOGIN", "LOGOUT"]: + reference = operation_type + else: + reference = record_id or "NO-REF" + + return { + "reference": reference, + "procedure": procedure, + "movement": movement, + "username": username, + "system": system + } diff --git a/backend/api/v1/modules/a76/audit_log/services/service.py b/backend/api/v1/modules/a76/audit_log/services/service.py new file mode 100644 index 00000000..9fdf4a6b --- /dev/null +++ b/backend/api/v1/modules/a76/audit_log/services/service.py @@ -0,0 +1,211 @@ +""" +Audit Log Service +""" +from datetime import datetime, timedelta +import pytz +from typing import Optional, List, Dict, Any +from sqlalchemy.orm import Session +from ..models import AuditLog +from .core import AuditMapper, ReferenceGenerator +from core.security import verify_token # keep if needed or simpler just remove if unused +# We don't need security import here anymore as context is passed explicitly or handled by events + + +class AuditService: + + @staticmethod + def create_audit_log( + db: Session, + reference: str, + procedure: str, + movement: str, + username: str, + system: str = "SCAF", + # Extra context + table_name: Optional[str] = None, + record_id: Optional[str] = None, + operation_type: Optional[str] = None, + old_values: Optional[Dict] = None, + new_values: Optional[Dict] = None, + changed_fields: Optional[List[str]] = None, + # HTTP Context + ip_address: Optional[str] = None, + user_agent: Optional[str] = None, + endpoint: Optional[str] = None, + request_method: Optional[str] = None, + session_id: Optional[str] = None, + company_id: Optional[int] = None, + tenant_id: Optional[int] = None, + ) -> AuditLog: + """ + Low-level creation of an Audit Log entry + """ + # Timezone handling: Use UTC for consistency across regions. + # Frontend will convert to user's local time. + now = datetime.now(pytz.UTC) + + log = AuditLog( + reference=reference, + procedure=procedure, + movement=movement, + username=username, + date=now.date(), + time=now.time(), + timestamp=now, + system=system, + table_name=table_name, + record_id=record_id, + operation_type=operation_type, + old_values=old_values, + new_values=new_values, + changed_fields=changed_fields, + ip_address=ip_address, + user_agent=user_agent, + endpoint=endpoint, + request_method=request_method, + session_id=session_id, + company_id=company_id, + tenant_id=tenant_id + ) + + db.add(log) + db.commit() + db.refresh(log) + return log + + @staticmethod + def log_crud_operation( + db: Session, + table_name: str, + operation_type: str, + record_data: Dict[str, Any], + username: str, + record_id: Optional[str] = None, + old_values: Optional[Dict] = None, + new_values: Optional[Dict] = None, + # Context + ip_address: Optional[str] = None, + user_agent: Optional[str] = None, + company_id: Optional[int] = None + ): + """ + High-level wrapper to log CRUD operations automatically mapping to Legacy format + """ + + # 1. Map to Legacy Base Format + legacy_data = AuditMapper.map_to_legacy_format( + table_name=table_name, + record_id=record_id, + operation_type=operation_type, + username=username + ) + + # 2. Refine Reference based on specific table logic + reference = legacy_data["reference"] + + if table_name == "invoice_header": + generated_ref = ReferenceGenerator.generate_invoice_reference(record_data) + # Use generated ref only if meaningful, else keep default + if generated_ref != "FUSE0-000-00": + reference = generated_ref + + elif table_name == "pedimentos": + reference = ReferenceGenerator.generate_pedimento_reference(record_data) + + elif table_name == "clients_and_providers": + reference = record_data.get("rfc") or reference + + elif table_name == "parts": + reference = record_data.get("part_number") or reference + + elif table_name == "companies": + reference = record_data.get("rfc") or reference + + elif table_name == "classes": + reference = record_data.get("class_code") or reference + + + # 3. Detect Changed Fields (for Update) + changed_fields = None + if operation_type == "UPDATE" and old_values and new_values: + changed_fields = [ + k for k in new_values.keys() + if old_values.get(k) != new_values.get(k) + ] + + # 4. Create Log + return AuditService.create_audit_log( + db=db, + reference=reference, + procedure=legacy_data["procedure"], + movement=legacy_data["movement"], + username=username, + system=legacy_data["system"], + table_name=table_name, + record_id=record_id, + operation_type=operation_type, + old_values=old_values, + new_values=new_values, + changed_fields=changed_fields, + ip_address=ip_address, + user_agent=user_agent, + company_id=company_id + ) + + @staticmethod + def log_login(db: Session, username: str, ip_address: str = None, user_agent: str = None): + + # Prevent duplicate login logs (debounce 5 seconds) + # This handles cases where frontend might submit twice or redirects trigger re-auth + try: + # Timezone handling: Use UTC for consistency + now = datetime.now(pytz.UTC) + + five_seconds_ago = now - timedelta(seconds=5) + + # Check for recent login from same user + existing = db.query(AuditLog).filter( + AuditLog.username == username, + AuditLog.operation_type == "LOGIN", + # Compare against timestamp (timezone aware) + AuditLog.timestamp >= five_seconds_ago + ).first() + + if existing: + return existing + + except Exception as e: + import traceback + traceback.print_exc() + + return AuditService.create_audit_log( + db=db, + reference="LOGIN", + procedure="SYSTEM SCAF", + movement="SYSTEM LOGIN", + username=username, + operation_type="LOGIN", + ip_address=ip_address, + user_agent=user_agent + ) + + @staticmethod + def log_logout(db: Session, username: str, ip_address: str = None, user_agent: str = None): + """ + Registra un evento de cierre de sesión + """ + try: + # Reutilizamos create_audit_log para mantener consistencia + AuditService.create_audit_log( + db=db, + reference="LOGOUT", + procedure="SYSTEM AUTH", + movement="SYSTEM LOGOUT", + username=username, + operation_type="LOGOUT", + ip_address=ip_address, + user_agent=user_agent + ) + except Exception as e: + # No re-lanzamos la excepción para no interrumpir el flujo de logout + pass diff --git a/backend/api/v1/modules/a76/classes/dto.py b/backend/api/v1/modules/a76/classes/dto.py index 7fc3ccc0..00c141b4 100644 --- a/backend/api/v1/modules/a76/classes/dto.py +++ b/backend/api/v1/modules/a76/classes/dto.py @@ -196,4 +196,33 @@ class ClassSearchDTO(BaseModel): ) class Config: - from_attributes = True \ No newline at end of file + from_attributes = True + + +class ClassWithFADataResponse(BaseModel): + """DTO para respuesta de clase con datos FA embebidos (para fixed-asset-classes)""" + + # Base class fields + id: int + tenant_id: int + company_id: int + class_code: str + description_es: Optional[str] = None + description_en: Optional[str] = None + material_key: Optional[str] = None + unit_of_measure: Optional[str] = None + fraction: Optional[str] = None + us_fraction: Optional[str] = None + sub_key: Optional[str] = None + physical_review: Optional[int] = None + iva_exempt_fraction: Optional[str] = None + created_at: datetime + updated_at: datetime + + # FA-specific fields (embedded from a24.fa_classes) + fa_class_id: Optional[int] = None + depreciation_rate: Optional[Decimal] = None + fda_code: Optional[str] = None + class_enabled: Optional[bool] = None + + model_config = ConfigDict(from_attributes=True) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/classes/routes.py b/backend/api/v1/modules/a76/classes/routes.py index c59dd575..329294b0 100644 --- a/backend/api/v1/modules/a76/classes/routes.py +++ b/backend/api/v1/modules/a76/classes/routes.py @@ -2,34 +2,53 @@ Endpoints API para gestión de clases SCAII y SCAF """ -from typing import Dict, Any -from fastapi import Depends, Query +from typing import Dict, Any, List +from fastapi import APIRouter, Depends, Query from sqlalchemy.orm import Session from core.database import get_core_db from core.security import get_current_user from api.v1.common.tenant_crud_routes import TenantCRUDRoutes, validate_access_to_resource -from .dto import ClassCreateDTO, ClassCreateDTOFA, ClassResponseDTO, ClassResponseDTOFA, ClassUpdateDTO +from .dto import ClassCreateDTO, ClassCreateDTOFA, ClassResponseDTO, ClassResponseDTOFA, ClassUpdateDTO, ClassWithFADataResponse from .service import ClassService -# Create router with generic CRUD routes -crud_routes = TenantCRUDRoutes( - service=ClassService, - create_schema=ClassCreateDTO, - update_schema=ClassUpdateDTO, - response_schema=ClassResponseDTO, - prefix="/classes", - tags=["a76 / classes"], - resource_name="Class", - id_name="id", - enable_list=True, - enable_filters=True, - default_page_size=50, - max_page_size=1000, -) +# Create a new router for custom endpoints +router = APIRouter() -router = crud_routes.router +# Add consolidated catalog endpoints FIRST (before generic CRUD routes) +# This ensures they have priority over the generic /{id} route +@router.get( + "/with-fa-data", + response_model=List[ClassWithFADataResponse], + summary="Get Classes with FA Data", + description="Get all classes with their FA data in a single query (eliminates N+1 problem)", + tags=["a76 / classes"], +) +async def get_classes_with_fa_data( + company_id: int = Query(..., description="Company ID"), + page: int = Query(1, ge=1, description="Page number"), + page_size: int = Query(1000, ge=1, le=1000, description="Page size"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """ + Get all classes with their FA data using a single LEFT JOIN query. + This endpoint is optimized for the fixed-asset-classes view. + """ + tenant_id = validate_access_to_resource(db, company_id, current_user) + + skip = (page - 1) * page_size + + classes_with_fa, total = ClassService.get_all_with_fa_data( + db=db, + tenant_id=tenant_id, + company_id=company_id, + skip=skip, + limit=page_size, + ) + + return classes_with_fa @router.post( "/fa", @@ -37,6 +56,7 @@ router = crud_routes.router status_code=201, summary="Create Fixed Asset Class", description="Create a class with FA extension in a single transaction", + tags=["a76 / classes"], ) async def create_fa_class( class_data: ClassCreateDTOFA, @@ -50,4 +70,24 @@ async def create_fa_class( result = ClassService.create_fa_class(db, class_data, tenant_id, company_id) - return result \ No newline at end of file + return result + +# Now include generic CRUD routes +# These will be registered AFTER the custom endpoints above +crud_router = TenantCRUDRoutes( + service=ClassService, + create_schema=ClassCreateDTO, + update_schema=ClassUpdateDTO, + response_schema=ClassResponseDTO, + prefix="", # No prefix here, will be added in main router + tags=["a76 / classes"], + resource_name="Class", + id_name="id", + enable_list=True, + enable_filters=True, + default_page_size=50, + max_page_size=1000, +).router + +# Include the CRUD routes into our main router +router.include_router(crud_router) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/classes/service.py b/backend/api/v1/modules/a76/classes/service.py index a4c3fd1b..1e3ba949 100644 --- a/backend/api/v1/modules/a76/classes/service.py +++ b/backend/api/v1/modules/a76/classes/service.py @@ -73,6 +73,91 @@ class ClassService: return items, total + @staticmethod + def get_all_with_fa_data( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 1000, + filters: Optional[Dict[str, Any]] = None, + ) -> tuple[List[Dict[str, Any]], int]: + """ + Get all classes with their FA data in a single query using LEFT JOIN. + This eliminates the N+1 query problem. + + Returns a list of dicts with combined base class + FA data. + """ + from api.v1.modules.a24.fa.fa_classes.models import QClasses + + # Build query with LEFT JOIN + query = ( + db.query(Class, QClasses) + .outerjoin(QClasses, and_( + Class.id == QClasses.class_id, + QClasses.tenant_id == tenant_id + )) + .filter(Class.tenant_id == tenant_id) + .filter(Class.company_id == company_id) + ) + + # Apply filters if provided + if filters: + if filters.get("class_code"): + query = query.filter( + Class.class_code.ilike(f"%{filters['class_code']}%") + ) + if filters.get("description"): + description_pattern = f"%{filters['description']}%" + query = query.filter( + or_( + Class.description_es.ilike(description_pattern), + Class.description_en.ilike(description_pattern), + ) + ) + if filters.get("material_key"): + query = query.filter( + Class.material_key.ilike(f"%{filters['material_key']}%") + ) + if filters.get("fraction"): + query = query.filter(Class.fraction.ilike(f"%{filters['fraction']}%")) + + # Count total before pagination + total = query.count() + + # Apply pagination + results = query.offset(skip).limit(limit).all() + + # Combine base class + FA data into dicts + combined = [] + for base_class, fa_class in results: + class_dict = { + # Base class fields + "id": base_class.id, + "tenant_id": base_class.tenant_id, + "company_id": base_class.company_id, + "class_code": base_class.class_code, + "description_es": base_class.description_es, + "description_en": base_class.description_en, + "material_key": base_class.material_key, + "unit_of_measure": base_class.unit_of_measure, + "fraction": base_class.fraction, + "us_fraction": base_class.us_fraction, + "sub_key": base_class.sub_key, + "physical_review": base_class.physical_review, + "iva_exempt_fraction": base_class.iva_exempt_fraction, + "created_at": base_class.created_at, + "updated_at": base_class.updated_at, + # FA extension fields (None if no FA record exists) + "fa_class_id": fa_class.id if fa_class else None, + "depreciation_rate": fa_class.depreciation_rate if fa_class else None, + "fda_code": fa_class.fda_code if fa_class else None, + "class_enabled": fa_class.class_enabled if fa_class else None, + } + combined.append(class_dict) + + return combined, total + @staticmethod def get_by_id( db: Session, class_id: int, tenant_id: int, company_id: int diff --git a/backend/api/v1/modules/a76/customs_brokers/dto.py b/backend/api/v1/modules/a76/customs_brokers/dto.py index fa11b268..7f65b264 100644 --- a/backend/api/v1/modules/a76/customs_brokers/dto.py +++ b/backend/api/v1/modules/a76/customs_brokers/dto.py @@ -1,6 +1,6 @@ from typing import Optional -from pydantic import BaseModel +from pydantic import BaseModel, Field class CustomsBrokerBaseDTO(BaseModel): @@ -19,7 +19,7 @@ class CustomsBrokerBaseDTO(BaseModel): tax_id: Optional[str] = None personal_id: Optional[str] = None position: Optional[str] = None - license: Optional[str] = None + license: Optional[str] = Field(None, max_length=4, pattern=r"^\d*$") company: Optional[str] = None contact: Optional[str] = None @@ -27,7 +27,7 @@ class CustomsBrokerBaseDTO(BaseModel): class CustomsBrokerCreateDTO(CustomsBrokerBaseDTO): """Schema for creating a new CustomsBroker""" - broker_key: str + broker_key: str = Field(..., max_length=5, pattern=r"^[a-zA-Z0-9]+$", description="Clave única del agente aduanal (máx 5 caracteres)") class CustomsBrokerUpdateDTO(CustomsBrokerBaseDTO): @@ -51,7 +51,7 @@ class CustomsBrokerResponseDTO(CustomsBrokerBaseDTO): # Legacy DTO for backwards compatibility (if needed elsewhere) class CustomsBrokerDTO(BaseModel): type: Optional[str] = None - broker_key: str + broker_key: str = Field(..., max_length=5, pattern=r"^[a-zA-Z0-9]+$") name: Optional[str] = None address: Optional[str] = None postal_code: Optional[str] = None @@ -64,7 +64,7 @@ class CustomsBrokerDTO(BaseModel): tax_id: Optional[str] = None personal_id: Optional[str] = None position: Optional[str] = None - license: Optional[str] = None + license: Optional[str] = Field(None, max_length=4, pattern=r"^\d*$") company: Optional[str] = None contact: Optional[str] = None tenant_id: str @@ -100,13 +100,13 @@ class CustomsBrokerVUCreateDTO(BaseModel): class CustomsBrokerPersonnelDTO(BaseModel): - broker_key: str + broker_key: str = Field(..., max_length=5, pattern=r"^[a-zA-Z0-9]+$") line: int name: Optional[str] tax_id: Optional[str] personal_id: Optional[str] position: Optional[str] - license: Optional[str] + license: Optional[str] = Field(None, max_length=4, pattern=r"^\d*$") first_name: Optional[str] last_name: Optional[str] middle_name: Optional[str] diff --git a/backend/api/v1/modules/a76/general_catalogs/company/models.py b/backend/api/v1/modules/a76/general_catalogs/company/models.py index 61ccc8a6..4914f791 100644 --- a/backend/api/v1/modules/a76/general_catalogs/company/models.py +++ b/backend/api/v1/modules/a76/general_catalogs/company/models.py @@ -39,7 +39,7 @@ class Company(Base, TimestampMixin): # Programa program: Mapped[Optional[str]] = mapped_column(String(7)) program_number: Mapped[Optional[str]] = mapped_column(String(40)) - prosec: Mapped[Optional[int]] = mapped_column(SmallInteger) + prosec: Mapped[bool] = mapped_column(Boolean, default=False, server_default="false") prosec_authorization: Mapped[Optional[str]] = mapped_column(String(20)) # Sectores @@ -61,9 +61,9 @@ class Company(Base, TimestampMixin): # Configuración básica logo: Mapped[Optional[str]] = mapped_column(String(255)) - has_express_line: Mapped[Optional[str]] = mapped_column(String(2), default="N") + has_express_line: Mapped[Optional[bool]] = mapped_column(Boolean, default=False, server_default="false") order_format_type: Mapped[Optional[str]] = mapped_column(String(19)) - is_service_company: Mapped[Optional[bool]] = mapped_column(Boolean, default=False) + is_service_company: Mapped[Optional[bool]] = mapped_column(Boolean, default=False, server_default="false") client_name: Mapped[Optional[str]] = mapped_column(String(300)) subassembly_mode: Mapped[Optional[str]] = mapped_column(String(7)) @@ -77,9 +77,11 @@ class Company(Base, TimestampMixin): scaf_readonly: Mapped[Optional[int]] = mapped_column(SmallInteger) parts_replacement: Mapped[Optional[int]] = mapped_column(SmallInteger) activate_facmexame: Mapped[Optional[int]] = mapped_column(SmallInteger) - part_reference: Mapped[Optional[int]] = mapped_column(SmallInteger) - part_reference: Mapped[Optional[int]] = mapped_column(SmallInteger) + part_reference: Mapped[Optional[int]] = mapped_column(SmallInteger) international_firm: Mapped[Optional[int]] = mapped_column(SmallInteger) + seventh_amendment: Mapped[Optional[bool]] = mapped_column( + Boolean + ) # Septima enimenda (FinalContadorAElectronico) # Configuraciones simples ftp_key: Mapped[Optional[str]] = mapped_column(String(10)) diff --git a/backend/api/v1/modules/a76/general_catalogs/company/service.py b/backend/api/v1/modules/a76/general_catalogs/company/service.py index 90460e79..3f16f72b 100644 --- a/backend/api/v1/modules/a76/general_catalogs/company/service.py +++ b/backend/api/v1/modules/a76/general_catalogs/company/service.py @@ -147,11 +147,6 @@ class CompanyService: # Explicitly ensure logo is present (defensive programming) if hasattr(company, 'logo'): result['logo'] = company.logo - - # Convert has_express_line from String "S"/"N" to Boolean - if hasattr(company, 'has_express_line'): - val = getattr(company, 'has_express_line', "N") - result['has_express_line'] = (val == "S") # 2. Certification fields if company.certification: @@ -185,11 +180,6 @@ class CompanyService: # 1. Preparar datos obj_data = data.model_dump(exclude_unset=True) - # Handle boolean flags for Company (Hybrid Approach) - # has_express_line is String(2), is_service_company is Boolean - if "has_express_line" in obj_data and isinstance(obj_data["has_express_line"], bool): - obj_data["has_express_line"] = "S" if obj_data["has_express_line"] else "N" - # 2. Extract fields for each model company_data = self._extract_company_fields(obj_data) cert_data = self._extract_certification_fields(obj_data) @@ -253,10 +243,6 @@ class CompanyService: # 1. Update Company fields company_fields = self._extract_company_fields(update_data) - # Hybrid Approach: has_express_line is String, is_service_company is Boolean - if "has_express_line" in company_fields and isinstance(company_fields["has_express_line"], bool): - company_fields["has_express_line"] = "S" if company_fields["has_express_line"] else "N" - for field, value in company_fields.items(): setattr(company, field, value) diff --git a/backend/api/v1/modules/a76/general_catalogs/doda/service.py b/backend/api/v1/modules/a76/general_catalogs/doda/service.py index cccb1314..98a0b05b 100644 --- a/backend/api/v1/modules/a76/general_catalogs/doda/service.py +++ b/backend/api/v1/modules/a76/general_catalogs/doda/service.py @@ -61,6 +61,9 @@ class DodaService: if filters.get("patent"): query = query.filter( Doda.patent.ilike(f"%{filters['patent']}%")) + if filters.get("operation_type"): + query = query.filter( + Doda.operation_type == filters["operation_type"]) total = query.count() dodas = query.offset(skip).limit(limit).all() diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/models.py b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/models.py new file mode 100644 index 00000000..13a7068e --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/models.py @@ -0,0 +1,32 @@ +from datetime import datetime +from typing import Optional +from decimal import Decimal +from sqlalchemy import DateTime, ForeignKey, String, Integer, Numeric, Boolean +from sqlalchemy.orm import Mapped, mapped_column +from core.database import Base + + +class HistoricalTariffFraction(Base): + """ + Historical tariff fractions catalog. + Maps to SQL Server table: GFraccionesHistorico + """ + + __tablename__ = "historical_tariff_fractions" + __table_args__ = {"schema": "a76"} + + id: Mapped[int] = mapped_column(Integer, primary_key=True, nullable=False) + historical_fraction: Mapped[Optional[str]] = mapped_column(String(8), nullable=True) + unit_of_measure_code: Mapped[Optional[str]] = mapped_column(ForeignKey("a76.unit_of_measure_customs.code"), nullable=True) + country: Mapped[Optional[str]] = mapped_column(ForeignKey("public.countries.m3_key"), nullable=True) + fraction_type: Mapped[Optional[str]] = mapped_column(String(7), nullable=True) + sector: Mapped[Optional[str]] = mapped_column(String(5), nullable=True) + import_tax_rate: Mapped[Optional[Decimal]] = mapped_column(Numeric(7, 2), nullable=True) + export_tax_rate: Mapped[Optional[Decimal]] = mapped_column(Numeric(7, 2), nullable=True) + publication_date: Mapped[Optional[datetime]] = mapped_column(DateTime, nullable=True) + is_immex: Mapped[Optional[bool]] = mapped_column(Boolean, nullable=True) + normal_temporality: Mapped[Optional[bool]] = mapped_column(Boolean, nullable=True) + services_temporality: Mapped[Optional[bool]] = mapped_column(Boolean, nullable=True) + certified_temporality: Mapped[Optional[bool]] = mapped_column(Boolean, nullable=True) + by_log: Mapped[Optional[bool]] = mapped_column(Boolean, nullable=True) + end_date: Mapped[Optional[datetime]] = mapped_column(DateTime, nullable=True) diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/seed.py b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/seed.py new file mode 100644 index 00000000..4a318498 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/historical_tariff_fractions/seed.py @@ -0,0 +1,6592 @@ +seed = [ + ('1012901', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1039102', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1039202', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1039203', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1041002', '7', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1051101', '7', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1051102', '7', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1061901', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1061903', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1062001', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1062002', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1062003', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1062099', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1063901', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('1063902', '7', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071301', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071302', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071303', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071399', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071401', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071403', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2071404', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2072601', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2072602', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2072699', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2072701', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2072703', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2076001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2076002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2076099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2089001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2089002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2109901', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('2109903', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3029001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3039001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3044402', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3044499', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3044902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3044903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3044904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045202', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045302', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045399', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3045903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3047402', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3047499', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3048902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3048903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049502', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049599', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3049904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053202', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3053905', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054905', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3054906', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055905', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055906', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3055907', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3056901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3056902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3056903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3056904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3056905', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057203', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057204', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057205', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057206', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057207', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057208', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057905', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057906', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3057907', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062201', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062401', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062501', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062601', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062699', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062701', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062799', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3062901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3074101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3074199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3074901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('3078999', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4011001', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4011099', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4012001', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4012099', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4014001', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4014099', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4015001', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4015099', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4051001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4051099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4063001', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4063099', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4069003', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4069005', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4069006', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4072101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4072199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4079001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4089101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4089199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('4089901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5079001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5080001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5080099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5100001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5100002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5100003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5100099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5119101', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5119902', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5119906', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('5119907', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6011099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012004', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012005', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012006', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012007', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012008', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012009', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6012099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6021099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6022001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6022002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6022003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6022099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029004', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029005', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029008', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029009', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029010', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029011', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029012', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6029013', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031401', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031499', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031901', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031902', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031903', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031904', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031905', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031906', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031907', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6031908', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6042002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6042003', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6049002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6049003', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('6049004', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7020001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7020002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2013-05-15 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7020099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7031001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7031099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7032001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7032099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7041001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7041002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7041099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7049001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7092001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7092099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7094001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7094099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7095901', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7096001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7096099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7099901', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7108002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7108003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7108004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7109001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7109099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7119001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7119002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7129002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7129003', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7133302', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7133303', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('7149001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8029001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8041001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8041099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8042001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8042099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8045001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8045002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8045003', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8052001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8055001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8055002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8055099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8071901', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8093001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8093002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8129001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8129002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8131001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8131099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8132001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8132099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8134001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8134002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8134003', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('8134099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9011101', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9011199', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9019001', '1', 'None', 'GENERAL', 'None', '60.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9042101', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9042199', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9042201', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9042299', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9109901', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('9109902', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10039001', '1', 'None', 'GENERAL', 'None', '60.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10059001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10059002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10059003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10063001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('10063099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11029001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11029002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11031901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11031902', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11031999', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11032001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11032099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11041901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11041999', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11042901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11042999', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11062001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11062099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11063001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11063099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11081901', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('11081999', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12060001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12060099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12076001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12076002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12079901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12079902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12089001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12089002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12092901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12092902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12092903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12092905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099106', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099107', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099108', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099109', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099110', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099111', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099112', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099113', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099114', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12099906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119004', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119005', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119006', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12119007', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2014-12-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12129201', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12129299', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12129401', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12129499', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('12129904', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13019001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13019002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021101', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021103', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021201', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021299', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021910', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021911', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13021912', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13022001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13022099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('13023903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('14049001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('14049002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('14049003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('14049004', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15030001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15030099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15042001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15042099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15050001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15050002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15050003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15050099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15060002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15091001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15091099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15099001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15099002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15159001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15159002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15159003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15159004', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15159005', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15179001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15179002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15219001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15219002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('15219003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16010001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16010002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2018-06-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16010099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16021001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16021099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16022001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16022099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16024901', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16025001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16025099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041301', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041303', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041399', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041401', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041402', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041403', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041601', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041603', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041699', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041901', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041902', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16041903', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042004', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042005', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042006', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042007', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042008', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042009', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16042099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16051001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('16051099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17011201', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17011204', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17011401', '1', 'None', 'GENERAL', 'None', '0.34', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17011404', '1', 'None', 'GENERAL', 'None', '0.34', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17019102', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17019103', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17019901', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17019902', '1', 'None', 'GENERAL', 'None', '0.36', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17026001', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17026002', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17026099', '1', 'None', 'GENERAL', 'None', '75.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('17031002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('18069001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('18069002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('19011001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('19011099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('19012001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('19019001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('19059001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20019001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20019002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20019003', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20049001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20049002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20049099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20059901', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20059902', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20079904', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20081101', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20081199', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20081901', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20081999', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083003', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083004', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083005', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083006', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083007', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083008', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20083099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20089901', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20091201', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20091299', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20091901', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20093101', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20093199', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20093901', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20094101', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20094199', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20094901', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20099001', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('20099099', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21011101', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21021001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21032001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21032099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21033001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21033099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21061003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21061004', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21069002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('21069006', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22011001', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22011099', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029001', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029002', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029003', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029004', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029005', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2009-12-16 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22029099', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22041001', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22041099', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22042101', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22042102', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22042103', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22042199', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22051001', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22051099', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22059001', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22060001', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22060099', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22083001', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22083002', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22083003', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22083004', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22083099', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22084001', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22084099', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22087001', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22087002', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22087099', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22089002', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22089003', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22089004', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('22089005', '8', 'None', 'GENERAL', 'None', '20.0', '0.0', '2012-11-23 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23011001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23011099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23024001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23024099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23069001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23080001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23080099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099007', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099008', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099009', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099010', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('23099011', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24011001', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24011099', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24012001', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24012002', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24012099', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24039101', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('24039199', '1', 'None', 'GENERAL', 'None', '45.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25010001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25010099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25030001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25030099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25062001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25062099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25084001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25084099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25101001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25101099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25102001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25102099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25131001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25131099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25241001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25241002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25249001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25249002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('25309009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26020001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26020099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26060001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26060099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26100001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26100099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26140001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26140002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26140099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26151001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26151099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26190001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26190099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26204001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26204099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26209101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26209199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26209901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26209902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('26209903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27030001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27030099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27040001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27040002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27079901', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27079902', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27079903', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27090002', '15', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27090003', '15', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27090004', '15', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101201', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101202', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101203', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101205', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101207', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101208', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101209', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101210', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101291', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101901', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101903', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101905', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101906', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101907', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101908', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101909', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101910', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27101991', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27111902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27111903', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('27129004', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28030001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28042901', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28047001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28047002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28047003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28047099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28051901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28100001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28100099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28111901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28112902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28121001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28121002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28121003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28121099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28152001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28152002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28164001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28164002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28181001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28181002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28181099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28182001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28182099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28183001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28183002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28201001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28201099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28211001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28211002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28211003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28249001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28251001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28251099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28254001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28254099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28255001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28255002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28255099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28259001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28261901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28261902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28269001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28273906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28274101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28274199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28291101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28291102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28291901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28309001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28309002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28319001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28321001', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28321099', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28322001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28332901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28332902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28332904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28334001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28334002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28334099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28341001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28341099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28352501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28352599', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28352901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28352902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28352903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28364001', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28364002', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28369901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28369902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28369903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28369904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28371101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28371199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28371901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28372001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28372099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28399001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28399002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28399003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28399099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28415001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28415002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28415099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28419001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28421001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28421099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28429001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28439001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28444001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28444002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28444099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28469001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28469002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28480001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28480002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28480003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28480099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28492001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28500001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28500002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28500099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28521001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28521002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28521003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28521099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28529001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('28530001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29011001', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29011002', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29011003', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29011004', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29011099', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29021901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29021902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29021903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29029007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29031904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29032901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29033901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29033902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037701', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037702', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037703', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037704', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037799', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037901', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037904', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29037905', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29038203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29038901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29038902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29039902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29039903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29039904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29039906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29042007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29049099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051401', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051402', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051403', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051499', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051601', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051602', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051699', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29051908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052204', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052205', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29052903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29053903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29053904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29054901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29054902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29055901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29055902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29055903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29055904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29055905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29061903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29062901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29062902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29062903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29062904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29062906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071502', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071599', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29071909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29072905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29081907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29089912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29091901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29091902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29091903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29093099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29094402', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29095002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29095003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29095004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29095005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29109002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29110001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29110002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29110003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29110099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29121912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29122901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29122903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29122904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29122905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29124901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29124902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29124903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29124906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29130001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29130002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29130099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29141901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29141903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29141904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29141905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29141906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29142301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29142302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29143907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29145001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29145002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29145003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29145099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29146901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29146902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29147001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29147002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29147003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29147099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29151201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29151202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29151299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29152901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29152902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29153916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29154002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29154003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29154004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29155001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29155002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29155004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29155005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29156002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29157008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29157009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159013', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159014', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159017', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159021', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29159028', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161502', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161503', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161504', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29161905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29162001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29162002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29162003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29162004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29162099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29163907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29171907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29172001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29172002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29172003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29172099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181303', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181304', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181503', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181504', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181601', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181602', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181699', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29181910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182303', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29182916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29183099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189917', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189918', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189919', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29189920', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29199012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29201901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29201902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29209013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211101', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211102', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211103', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2013-12-13 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29211917', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29212911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29213001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214204', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214205', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214206', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214207', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214208', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214209', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214210', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214211', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214212', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214213', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214215', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214216', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214218', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214303', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214304', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214305', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214306', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214307', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214308', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214309', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214310', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214311', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214312', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214401', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214499', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214502', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214503', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214504', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214505', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214506', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214507', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29214915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29215910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221301', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221401', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221402', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221499', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221917', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221918', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221919', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221921', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221922', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221923', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221924', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221925', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221926', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221927', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221928', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221929', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221930', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221931', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221932', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221933', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221934', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221935', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221936', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221937', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221938', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221939', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29221941', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222917', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222918', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222919', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222920', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222921', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222922', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222923', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29222924', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29223911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29224101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29224199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225015', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225017', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225018', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225019', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225020', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225021', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29225022', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29232099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29239012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29241201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29241903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29241914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242106', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242107', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242917', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242918', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242919', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242920', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242921', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242922', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242923', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242924', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242925', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242926', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242927', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242928', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242929', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242930', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242931', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242933', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242934', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242935', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242936', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242937', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242938', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242939', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242940', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242941', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242942', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242943', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242944', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242945', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242946', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242947', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29242948', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29251901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29251902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29251903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29252901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29252902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29252903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29252904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29269009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29270099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29280004', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29291003', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29299001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29299002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29302009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29303001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29303099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29305002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309015', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309017', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309018', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309019', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309020', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309021', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309022', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309023', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309024', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309025', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309026', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309028', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309029', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309030', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309032', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309033', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309034', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309035', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309036', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309037', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309038', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309039', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309040', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309041', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309042', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309043', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309044', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309045', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309046', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309047', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309048', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309049', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309050', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309051', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309052', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309053', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309054', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309055', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309056', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309057', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309058', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309059', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309060', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309061', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309062', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309063', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309064', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309065', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309066', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309067', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309068', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309069', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309070', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29309071', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319015', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319017', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319018', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319019', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29319020', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29321901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29321903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29321904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29321905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29322099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29329911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29331909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29332916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333918', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333919', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333920', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333921', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333923', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333925', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333926', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333927', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333928', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333929', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333930', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29333931', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29334913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335502', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335599', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335917', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335918', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335919', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29335920', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29336916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29337901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29337902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29337903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29337904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29337999', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339917', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339918', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339919', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339920', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339921', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339922', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339923', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339924', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339925', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339927', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339928', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339929', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339930', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339931', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339932', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339933', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339934', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339935', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339936', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339937', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339938', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339939', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339940', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339941', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339942', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339943', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339944', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339945', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339946', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339947', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29339948', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29341099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29342001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29342002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29342003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29342004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29342006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29343001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29343099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349917', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349918', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349919', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349920', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349921', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349922', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349923', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349925', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349926', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349927', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349928', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349929', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349930', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349931', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349932', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349933', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349934', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349935', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349936', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349937', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349938', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349939', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349940', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349942', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349943', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349944', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349945', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349946', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349947', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349948', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29349949', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350003', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350007', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350015', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350017', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350018', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350019', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350020', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350021', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350022', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350023', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350024', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350025', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350026', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350027', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350028', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350029', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350030', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350031', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350032', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350033', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350034', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350035', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350036', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350038', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29350099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362401', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362402', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362499', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362599', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362602', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362701', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362799', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362802', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362899', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29362908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29369001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29369002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29369004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29369005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29371905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372201', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372202', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372204', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372205', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372206', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372207', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372208', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372209', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372210', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372303', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372306', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372309', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372312', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372313', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372314', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372315', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372316', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372319', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372320', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372323', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372918', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372920', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372921', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372922', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372923', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372925', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372926', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372927', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372928', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372930', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372931', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372934', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372935', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372937', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372938', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372939', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372940', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372941', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29372942', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29375001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29375099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29379001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29379002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29379003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29379004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29389007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391106', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391107', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391108', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391109', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391110', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391111', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391112', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391113', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391114', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391115', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391116', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391117', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29391906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29392001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29392099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29393001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29393002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29393003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29395901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29395902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29396901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399917', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399918', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399919', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29399999', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29400001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29400002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29400003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29400004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29400099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29411013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29413001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29413002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29413003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29413099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29414001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29414002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29414003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29415001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29415099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419015', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('29419016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30012001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30012002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30019002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30019007', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021003', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021005', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021006', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021011', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021012', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021013', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021014', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021015', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021016', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021017', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021018', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021019', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021020', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021021', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021022', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30021099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30022001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30022003', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30022004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30022005', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30023001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30023002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30023099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30029002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30029003', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30029004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30033101', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30033199', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30033902', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30034003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30034004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30034099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30039006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30039007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30043101', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30043199', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30043906', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30044003', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30044004', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30044005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30044099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30045003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30045004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30049003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30049010', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30059002', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30061001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30061002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('30064001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31023001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31023099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31029001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31029099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31031001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31039001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31043001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31043099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31049001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('31059001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32019001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32030001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32030002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32030099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041204', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041205', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041206', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041303', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041304', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041401', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041402', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041403', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041404', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041499', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041599', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041601', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041602', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041603', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041604', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041699', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041709', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32041909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32049001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32049002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32050001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32064101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32064199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32064201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32064299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32064906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32065002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32071001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32071099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32074001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32074002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32074099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32081001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32081099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32082001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32082002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32082099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32089001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32091001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32091099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32100001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32100002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32100003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32100099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32110001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32110099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32129001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32129002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32151101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32151102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32151199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32151901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32151903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('32159001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011902', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011904', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011905', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33011906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33012907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33019002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33019003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33062001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('33062099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34021101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34021103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34021201', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34021202', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34052001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34052099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34070001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('34070002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35019002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35030002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35030003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35030004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35040099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35061001', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35069102', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35069103', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35069104', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('35079012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('36020001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37011001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37019902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37019903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37019905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37023101', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37023199', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37023901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37031001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37031099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37051001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37051099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37059001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37059002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37059099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37079001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('37079099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38013001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38013099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38019002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38019003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38019004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38029001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38029002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38029003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38029004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38029005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38040001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38040099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38051001', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38051099', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38063001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38063002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38063099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38085099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-11-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089303', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38089902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38099203', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38109001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38111101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38111199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38112901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38112902', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38112903', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123001', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38123099', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38151299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38159001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38159003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38160001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38160003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38160004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38160005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38170004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38190001', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38190002', '8', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38220001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38220002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38220004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38231201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38231202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38231901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38231902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38237001', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38237099', '8', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38243001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38243099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249001', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249005', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249007', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249012', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249015', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249017', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249018', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249019', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249020', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249021', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249022', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249023', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249024', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249025', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249026', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249027', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249028', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249029', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249030', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249031', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249032', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249033', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249034', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249035', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249036', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249037', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249038', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249039', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249040', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249041', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249042', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249043', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249044', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249045', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249046', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249047', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249048', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249049', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249050', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249051', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249052', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249053', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249054', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249055', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249056', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249057', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249058', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249059', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249060', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249061', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249062', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249063', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249064', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249065', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249066', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249067', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249068', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249069', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249070', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249071', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249072', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249073', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249074', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249075', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249076', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249077', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38249099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38256101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38256102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38256199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('38256901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39011001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39011002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39019002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39019003', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39022001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39022099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39031901', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39031902', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39039004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39042102', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39059901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39059902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39061001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39061099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39071001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39071002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39071003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39071004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39071099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39073001', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39074001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39074002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39074003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39074099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39075001', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39076001', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39076099', '1', 'None', 'GENERAL', 'None', '9.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39092001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39093001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39093099', '1', 'None', 'GENERAL', 'None', '3.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39094002', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39094004', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39095001', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39095002', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39095003', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39122001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39122099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39123904', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39123905', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39131099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39139001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39139003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39139004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39139007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39139008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39159002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2013-09-02 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39161001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39161099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39162001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39162002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39162099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39169001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39169002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39169003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39169004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39169099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39171001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39171002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39171003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39171004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39171099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172303', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39172999', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39173201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39173202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39173299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39181001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39181099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39201001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39201002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39201003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39201004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39201099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39202001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39202002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39202003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39202004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39202099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39203001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39203002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39203003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39203099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39204301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39204302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39204399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39204901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39204902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39205901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39206201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39206301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39206302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39206399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39207301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39207399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39207901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39207999', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39209201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39209299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39209901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39209999', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39211301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39211399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39211901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39211999', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39219008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39231001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39231002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39232901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39232902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39232999', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39233001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39233099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39262002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39263001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39263099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269017', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269021', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269022', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269023', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269025', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269026', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269028', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269030', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269031', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269032', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269033', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269034', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('39269035', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40012901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40013001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40013002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40013099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40021101', '1', 'None', 'GENERAL', 'None', '6.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40024901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40026001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40026099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40029102', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40052001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40052099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40059101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40059102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40059103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40059199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40081901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40082101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40082199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40082901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40082902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40091101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40091199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40091201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40091202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40091299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092204', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40092299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093204', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40093299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40094299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40101904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103599', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103601', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103699', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40103904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111004', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111005', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111006', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111007', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111008', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111009', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40111099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40112002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40112003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116199', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116299', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116302', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116303', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116399', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40116999', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119299', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119399', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119401', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119499', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40119999', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40122002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40129001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40129003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40159004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169303', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169401', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40169910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40170001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('40170002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41012001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41012002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41015001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41015002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41015099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41019001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41019002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41019099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41039001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41039002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41039003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041101', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041102', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041103', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041199', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041901', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041902', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41041903', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41044101', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41044199', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41044901', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41051001', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41051002', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41051003', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41051099', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41062101', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41062102', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41062103', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41062199', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41064001', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41064099', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41071101', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41071199', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41071201', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41071299', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41071901', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41079901', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('41139001', '4', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42021201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42021202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42022201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42022202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42023201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42023202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42029201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42029202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42029203', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42033001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42033099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42050001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('42060002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43018099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43021901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43021902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43021903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43022001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43022099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43023001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('43023099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44011001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44031001', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44032099', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44034901', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44034902', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44039201', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44041001', '5', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44041099', '5', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44050001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44050002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44061001', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44069099', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44071001', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44071002', '5', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44071003', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44071004', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44071099', '5', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072101', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072102', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072199', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072201', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072299', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072901', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072902', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44072903', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079201', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079299', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079501', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079502', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079599', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079901', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079902', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44079903', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44081001', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44081002', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2009-12-16 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44083901', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44089001', '5', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44091001', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44092101', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44092102', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44092199', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44092901', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44092902', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101103', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101201', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44101903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111202', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111203', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111204', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111205', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111302', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111303', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111304', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111305', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111402', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111404', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44111405', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119201', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119299', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119301', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119302', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119303', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119399', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119401', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119402', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119403', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44119499', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44123201', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44123299', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44123901', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44123999', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44129402', '1', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44152001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44152099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44160002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44160003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44160004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44187101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44187202', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44187299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44187901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44189001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44189099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44190001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44219001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44219002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44219003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44219004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('44219099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('45041001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('45041003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('46012901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('46019301', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('46019399', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47020001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47020099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47031101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47031102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47031199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47031901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47031902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47032101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47032102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47032901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47032902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47063001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47063002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('47063003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48022001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48022002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48022099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025401', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025402', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025403', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025405', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025406', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025407', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025501', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025601', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025701', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025799', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025801', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025802', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025803', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48025899', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026101', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026102', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026199', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026201', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026299', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48026901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48030001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48030002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48030003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48030099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48041901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48041902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48043903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48044901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48044902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48045101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48045199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48045901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48045902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48052401', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48052499', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48052501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48052599', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48070001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48070002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48070099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48084001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48084002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48084003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48084099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48089001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48099001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101303', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101304', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101305', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101306', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101401', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101402', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101403', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101404', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101405', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101406', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48101499', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48102201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48102299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48102901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48103104', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48109901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48111001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115103', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115106', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48115906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48116001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48116002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48116099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48119009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48149001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48169001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48169002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48192001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48192099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48201001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48201099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48232001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48232099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48237001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48237002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239003', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239006', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239007', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239008', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239009', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239013', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239014', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239015', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('48239016', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49019101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49019102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49019103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49019199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49021001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49021099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49029001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49070001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49070002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49089001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49089004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119104', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('49119905', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('50030001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('50030099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51011101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51011199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51011901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51012101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51012199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51012901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51013001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51013099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51021901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51021902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51022001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51022099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51031001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51031002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51031099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51032001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51032002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51032099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51052901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51053901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51053902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51111101', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51111199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51111901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51112001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51112099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51113001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51113099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51121101', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51121199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51121901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51121902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51122001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51122099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51123001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51123002', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51123099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51130001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('51130099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52010001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52010002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52010099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52029901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52081901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52081902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52081999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52082901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52082999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52083901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52083999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52085901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52085902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52085999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52091901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52091999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52092901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52092999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52093901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52093999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52094202', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52094203', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52094291', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52094292', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52095901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52095999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52101101', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52101199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52101901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52101902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52101999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52102901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52102902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52102999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52103901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52103999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52104901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52104999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52105901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52105902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52105999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52111101', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52111199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52111901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52111999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52112001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52112002', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52112003', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52112099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52113901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52113999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52114202', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52114203', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52114291', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52114292', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52115901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52115999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52122401', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('52122499', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53050099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53089001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53089002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53110001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('53110099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54021901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54022001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54022099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54023901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024501', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024502', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024504', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024701', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024702', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024799', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024801', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024802', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024899', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024902', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54024905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025201', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025202', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025299', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54025905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026201', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026299', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54026905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54033101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54033102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54033201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54033202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54033901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54034101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54034102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54034901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54041201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54041299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54041901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54041902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54041903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54050001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54050002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54050003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54050004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54050099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54060003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54071001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54071002', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54071099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54072001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54072099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54073001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54073002', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54073003', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54073099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074104', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074202', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074203', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074204', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074301', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074302', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074303', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54074399', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075104', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075202', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075203', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075204', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075301', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075302', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075303', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075391', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075392', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075393', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075402', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075403', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54075404', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076101', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076104', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076105', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076191', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076192', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076193', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076991', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076992', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54076993', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54077301', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54077302', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54077303', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54077399', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54078201', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54078202', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54078203', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54078299', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079101', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079104', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079105', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079106', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079107', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079201', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079202', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079203', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079204', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079205', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079206', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079299', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079301', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079302', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079303', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079304', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079305', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079306', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079307', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079399', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079401', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079402', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079403', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079404', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079405', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079406', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079407', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54079499', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54081001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54081002', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54081003', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54081004', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54081099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082101', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082201', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082202', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082203', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082204', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082299', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082301', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082302', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082303', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082304', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082305', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082399', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082401', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54082499', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083101', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083104', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083201', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083202', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083203', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083204', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083205', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083299', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083301', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083302', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083303', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083304', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083399', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083401', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083402', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083403', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('54083499', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55012001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55012003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55020001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55020099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55032001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55032002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55041001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55041099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121104', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121991', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121992', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55121993', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131202', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131299', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131302', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131399', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55131999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132303', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132304', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132391', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132399', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55132999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133904', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133905', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133906', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133991', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55133999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134904', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134905', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134991', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55134999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55141901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55141999', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55143001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55143002', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55143003', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55143004', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55143099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151202', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151203', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151299', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151301', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151399', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55151902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152201', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152299', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55152902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159102', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159103', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159903', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55159904', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163101', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163201', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163299', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163301', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163399', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163401', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('55163499', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56012101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56012199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56013001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56013099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56021001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56021099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56022101', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56022102', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56022199', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56031201', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56031299', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56031301', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56031399', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56049003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56060001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56060002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56060099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56079001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56081101', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56081199', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56090001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('56090099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57025001', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57025002', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57025099', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57032001', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57032099', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57033001', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57033099', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57050001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('57050099', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('58030001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('58030002', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('58030003', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('58030004', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('58030099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59019001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59019002', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59031001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59031099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59032001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59032099', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59039001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59039003', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59039004', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59039005', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59049001', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59049002', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59069101', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59069199', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59069901', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59069902', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59069903', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59070002', '3', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59070003', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59070004', '4', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59080001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59080002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59119002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('59119003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60011002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60011099', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012102', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012199', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012202', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012203', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012299', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60012902', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60019102', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60019199', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60019202', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60019203', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60019299', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60024002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60024003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60024004', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60029002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60029003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60029004', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60041002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60041003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60041004', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60041005', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60041006', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053102', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053199', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053201', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053299', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053301', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053402', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60053499', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60059001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062101', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062199', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062201', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062299', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062301', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062399', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062401', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60062499', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063102', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063199', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063202', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063299', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063302', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063399', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063402', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('60063499', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61012002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61012099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61013003', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61013091', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61013092', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61019001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61019099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61022002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61022099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61023002', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61023003', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61031001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61031002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61031003', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61031004', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61031099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61032901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61032999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61033301', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61033399', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61033901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61033902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61033999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034204', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034291', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034292', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034302', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034303', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034304', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034305', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034391', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034392', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61034999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041301', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041399', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041903', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041904', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041905', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61041999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61042901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61042999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61043301', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61043399', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61043901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61043902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61043999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044299', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044301', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044391', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044392', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044401', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044403', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044499', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61044999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045299', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045301', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045391', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045392', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61045999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046206', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046291', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046292', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046302', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046303', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046304', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046391', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046392', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61046999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61051003', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61051004', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61051099', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61052002', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61052099', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61059001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61059099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61061003', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61061004', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61061091', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61061092', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61062091', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61062092', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61069001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61069002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61069099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61071102', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61071199', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61071202', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61071299', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072102', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072199', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072299', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61072999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61079901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61079902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61079999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61082102', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61082199', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61082202', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61082299', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083102', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083199', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083202', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083299', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61083999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089101', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089199', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089299', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61089999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61091002', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61091099', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61099002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61099003', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61099091', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61099092', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61099093', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61101102', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61101199', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61101202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61101299', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61101901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102002', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102003', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102004', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102091', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102092', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102093', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102094', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61102099', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103003', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103004', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103005', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103006', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103007', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103091', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103092', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61103093', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109003', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109004', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109005', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109006', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109091', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61109099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112004', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112005', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112007', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112008', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112009', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112011', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112013', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112014', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112015', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112016', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112017', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112018', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112019', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112020', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112091', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112092', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61112099', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113005', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113008', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113009', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113010', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113011', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113012', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113013', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113014', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113015', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113016', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113017', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113018', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113019', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113020', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113091', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113092', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113093', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61113099', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61119001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61119002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61119003', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61119004', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61119099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61121901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61121902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61121999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61122001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61122099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61130001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61130099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61143001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61143099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61149001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61149099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61161001', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61161099', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61171001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61171099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('61178001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62011291', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62011292', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62011391', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62011392', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62019291', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62019292', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62021291', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62021292', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62021391', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62021392', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62029291', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62029292', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62029391', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62029392', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62031901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62031902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62031999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62032901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62032999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033202', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033299', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033391', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033392', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033903', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62033999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034207', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034208', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034209', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034210', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034293', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034294', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034295', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034296', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034304', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034305', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034308', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034309', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034310', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034311', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034393', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034394', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034395', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62034396', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041301', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041399', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041903', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62041999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043202', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043299', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043391', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043392', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043393', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043903', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62043999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044291', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044292', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044303', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044391', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044392', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044491', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044492', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62044999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045202', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045299', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045391', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045392', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045903', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045904', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045905', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62045999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046206', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046207', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046208', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046210', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046291', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046292', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046293', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046294', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046295', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046296', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046304', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046305', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046307', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046308', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046309', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046310', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046393', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046394', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046395', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046904', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62046905', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62062001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62062099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62063002', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62063003', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62071102', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62071199', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62072102', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62072199', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62072901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62072999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62079901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62079902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62079999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082102', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082199', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082299', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62082999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089203', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089291', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62089999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092004', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092005', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092008', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092009', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092010', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092011', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092012', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092013', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092014', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092015', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092091', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092092', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62092099', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093004', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093006', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093007', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093008', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093009', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093010', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093091', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093092', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62093099', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62099001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62099002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62099003', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62099004', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62099099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62112001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62112099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113299', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113301', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113399', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113902', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62113999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62114201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62114299', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62114301', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62114399', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121002', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121003', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121004', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121005', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121006', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62121008', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62129001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62129002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62139001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62139003', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62139099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62171002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('62171099', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022102', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022103', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022104', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022105', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022106', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022107', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022108', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022109', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022199', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022202', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022203', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022204', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022205', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022206', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022207', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022208', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022209', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63022299', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023107', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023108', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023109', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023110', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023111', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023112', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023113', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023114', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023199', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023207', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023208', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023209', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023210', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023211', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023212', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023213', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023214', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63023299', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63025901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63025999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63026002', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63026003', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63026004', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63026005', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63026099', '6', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-05-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63029901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63029999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63031901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63031999', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63039201', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63039299', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63061901', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63061999', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63062901', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63062999', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63063001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63063099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63064001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63064099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63069001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63101001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63101099', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('63109001', '1', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64011002', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64011099', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019202', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019203', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019204', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019205', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019206', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019207', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019208', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019209', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019210', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019901', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019902', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019903', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019904', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019905', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019906', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019907', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64019908', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021902', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021903', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021904', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021905', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021906', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021907', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021908', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64021909', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64022002', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64022003', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029103', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029104', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029105', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029107', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029903', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029904', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029907', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029908', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029909', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029910', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029911', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029912', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029913', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029914', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029916', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029917', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029918', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029922', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029923', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029924', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029925', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029926', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029927', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029928', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029929', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029930', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029931', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64029932', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64031901', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64031903', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64031904', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64031991', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64034002', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64034003', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64034004', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035101', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035102', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035103', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035104', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035901', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035902', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035903', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035904', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035905', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035906', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64035907', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039101', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039105', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039106', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039107', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039108', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039109', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039110', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039111', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039903', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039904', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039905', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039907', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039908', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039909', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039910', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64039911', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041104', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041105', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041107', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041108', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041110', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041111', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041113', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041114', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041115', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041118', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041119', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041120', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041121', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041122', '9', 'None', 'GENERAL', 'None', '30.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041901', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041904', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041905', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041906', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041907', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041909', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041910', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041911', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041912', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041913', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041914', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041915', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041916', '9', 'None', 'GENERAL', 'None', '25.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041917', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64041991', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64042002', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64042003', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64042099', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64052003', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64052004', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64052005', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64052091', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64059001', '9', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64059002', '9', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061002', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061003', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061004', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061005', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061006', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061007', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('64061099', '9', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65050001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65050002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65050003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65050099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65069901', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('65069999', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('66039001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68022301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68022399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68022901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68022999', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68041001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68041099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68042399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68051099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68109901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68114001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68114002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68128002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68128003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68128004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68128007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68129301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68129399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68129901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68129904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68132001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68132002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68132003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68132004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68132099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68138901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68138902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68141001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68141099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68159101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('68159199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69029001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69029002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69029003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69031001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69031002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69031099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69032099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69039001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69071001', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69079001', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69079002', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69079099', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69081001', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69089002', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69089003', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69089099', '4', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69091199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69120001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('69120099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70022001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70022002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70022003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70022004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70022099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70023101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70023102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70023199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70031201', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70031299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70031901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70031999', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70042001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70042002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70042099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70049001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70049099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70051001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70051099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70052904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70060001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70060002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70060003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70060099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70071102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70071103', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70071901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70072101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70072102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70091001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70091002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70091003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70109001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70109002', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70109003', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70111001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70111002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70111003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70111004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70111099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70112001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70112002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70112003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70112004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70112099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70119001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70132801', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70133701', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70133702', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70133703', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70134901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70134902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70134903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70134904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70171013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70172002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70179001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70179002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70179005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70189001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70193901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70193902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70193903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70193904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70194001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70194099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70195101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70195199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70195901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70199008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('70200099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71011001', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71011099', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71129101', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71129199', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71131901', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71131902', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('71159001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72015001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72015099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72022101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72022199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72029903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72071201', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72071299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72072001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72072099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72081001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72081002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72081004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72081099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72082501', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72082599', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72084001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72084099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72085101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72085102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72085103', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091501', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091502', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091503', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091599', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091802', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72091899', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72101201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72101202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72101203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72101299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72103001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72103099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72104903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72105001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72105002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72105099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72106901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72107003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72107004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72107005', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72107091', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72107099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72109001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72109091', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111401', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111402', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111404', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111499', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72111904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112301', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112302', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112399', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72112903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72121001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72121002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72121099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72122001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72122002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72122099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72123001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72123002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72123099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72124001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72124002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72124003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72124099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72126001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72126002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72126003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72126099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72139101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72139102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72139901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72139902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72149101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72149102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72149199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72149901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72149902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72155001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72155099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72159001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72163101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72163102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72163199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72163201', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72163202', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72166901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72166902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72171001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72171099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72172001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72172099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72173001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72173099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72191201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72191299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72193599', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72202001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72202002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72202099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72210002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72210099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72221101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72221199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72223001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72223099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72224002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72224099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72230001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72230099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241091', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72241099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72249001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72249003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253005', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253006', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253008', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253091', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72253099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254005', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254007', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254091', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72254099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255006', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255008', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255009', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255010', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255011', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255012', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255091', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72255099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269103', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269104', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269105', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269108', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269109', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269110', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269111', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269112', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269191', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269201', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269202', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269203', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269204', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269205', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269207', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72269902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72272002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72272099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72279001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72279002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72279003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72281001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72281099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72282001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72282099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72283003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72284001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72284099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72285001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72285099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72286001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72286003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72286099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72287002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72287099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72299001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72299002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72299003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('72299004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73021001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73021003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73021099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73024001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73024099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73029001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73029002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73030001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73030099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73041105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73041991', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042301', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042303', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042401', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042402', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042403', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042404', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042405', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042406', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042499', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042903', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042904', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042905', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73042906', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043106', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043107', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043108', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043109', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73043191', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73044101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73044102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73044199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73044901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045106', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045107', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045108', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045109', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045110', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045111', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045191', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045916', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045917', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045991', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73045992', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73051101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73051199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73051201', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73051299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73051901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73059001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73061901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73063005', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73063006', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73063091', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73065003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73065004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73066102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73066103', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73066199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73066901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73066902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73071906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73072201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73072299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73079905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73082001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73082099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73083001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73083099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73090001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73090002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73090003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73090099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73101001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73101002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73101003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73101004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73101099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73102902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73102903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73102904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73110001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73110002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73110003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73110004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73110099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73121010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73141901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73141902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73151999', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73158902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181502', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181503', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181505', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181506', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181507', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181508', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181509', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181510', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181601', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181602', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181603', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181604', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181605', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73181902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182299', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182401', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182402', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182499', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73182901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73201001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73201099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73202001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73202002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73202003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73202004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73202099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73209001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73209002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73209003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73218101', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73218199', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73218201', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73218299', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73221101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73221199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239201', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239202', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239203', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239301', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239302', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239303', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239304', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239399', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239401', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239402', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239403', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239404', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73239499', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73249001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73249002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73249003', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73249099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73251001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73251002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73251003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73251004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73251099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73259906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73261914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73262099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269015', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269017', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('73269018', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74010001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74010002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74032901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74032999', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74040001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74040002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74040099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74071002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072101', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74072905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74081101', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74081199', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74102101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74102102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74102103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74102199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74111002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74111003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74111004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112203', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112204', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74112904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74130001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74130099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74151001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74151099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74152901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74153301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74153302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74153399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74153901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199911', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199912', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199913', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199914', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('74199915', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75061001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75061099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75062001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75062099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75089001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75089002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('75089003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76011001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76011099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76012001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76012099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76020001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76020099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76072001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76072099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76081001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76081002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76090001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76090099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76151001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76151099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76169991', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('76169992', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('78060001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('78060002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('78060099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('79070001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('79070099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81019601', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81019602', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81019699', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81019901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81029501', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81029599', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81049001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81049002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81110001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81110099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81130001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('81130099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82011001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82011099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82013001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82013099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82019001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82019004', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82021002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82021003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82024001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82024099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82029101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82029102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82029103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82029199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82031001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82034002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82041202', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82051002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82051003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055101', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055103', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055901', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055902', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055903', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055904', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055906', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055907', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055911', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055912', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055917', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055918', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82055919', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82056001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82056099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82057001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82057002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82059002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82059003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82059004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071302', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071303', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071304', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071305', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071306', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071307', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071399', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071905', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071906', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071907', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071908', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071909', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82071999', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82073001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82073002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82074001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82074002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82074003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82074099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82075099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82076099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82077001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82077002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82077099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82081001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82081099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82082001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82082099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82083001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82083099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82084001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82084002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82084099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82141001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82141099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82142001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82142099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82149002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82149003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82149004', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('82159901', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83012001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83012099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83016001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83016099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83017001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83017099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83022001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83022099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024101', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024102', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024103', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024104', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024105', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024199', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024201', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024202', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83024299', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83040001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83040002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83040099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83099002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83099004', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83099005', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83111001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83112001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83112002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83112003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83112004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83112099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83113002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83113003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('83113004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84069003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84072101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84072199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073203', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073302', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073303', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073399', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073401', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073402', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84073499', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84079001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84079099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099106', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099107', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099108', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099109', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099110', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099112', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099113', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099114', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099115', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099116', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099117', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099118', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099119', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099906', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84099907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84101201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84101299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84101301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84101399', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84123901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84131902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84131904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84133001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84133002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84133004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84133005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84133006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84134001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84134099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84135001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84136002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84136003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84136005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84137003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84137004', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84137006', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139106', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139107', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139108', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139109', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139110', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139111', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139112', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84139199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84141099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84143009', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148009', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148011', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148012', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148013', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148014', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148015', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84148016', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84149099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84159001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84159099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84169001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84169099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84171001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84171002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84171004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84171005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84172001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84172099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84183003', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84184003', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84185002', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186102', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186902', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186903', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186911', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186916', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84186917', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84189901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84189902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84191902', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-11-23 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84191903', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-11-23 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84192001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84192099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84193905', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84194001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84194002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84194003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84195001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84195002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84195004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84195005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198905', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198906', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198907', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198908', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198912', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198913', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198914', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198916', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198920', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84198921', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84199001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84199002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84199003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84199099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84209101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84209199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211201', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211299', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84211904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84212103', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84212904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84212905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84212907', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84213901', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84213904', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84219903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84222003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223009', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84223010', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84224001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84224003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84224004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84224005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84224006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84229001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84229002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84229003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84229004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84229099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84231001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84231099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84233001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84233099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84238101', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84238102', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84238201', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84238202', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84239001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84239099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84241001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84241002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84241099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84242002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84242003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84243001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84243002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84243003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248104', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248105', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248106', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84248902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84264103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84264104', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84264901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84264902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84269101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84269102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84269901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84269902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84271002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84279001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84279099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84282001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84283901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84283902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84284001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84289004', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84289005', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84294001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84294099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295202', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84295904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84303101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84303102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84303199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84304101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84304102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84304199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84304901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84304902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84312001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84312099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84313101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84313199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314399', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84314903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84322901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84323001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84323002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84323003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84323099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84324001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84328001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84328002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84328003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84328099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84332001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84332002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84332099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84334001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84334002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84334099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84335901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84335902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84335903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84335904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84336001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84336002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84336003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84336099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84339001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84339002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84339003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84339099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84362901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84368001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84368002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84368003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84368099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84371001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84371002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84371003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84371099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84378001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84378002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84378099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84379001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84379099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84381002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84381005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84381006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84381007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84382001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84382002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84382099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84384001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84384099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84385008', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84386001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84386002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84386003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84386005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84388001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84388002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84388003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84388099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84389099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84391099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84401001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84401099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84411001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84411002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84411003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84411099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84414001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84414099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84423001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84423002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84423099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84425002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431302', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431401', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431499', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431501', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431599', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84431903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433202', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433203', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433204', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433205', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433206', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433207', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433208', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433907', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84433908', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439907', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439908', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84439909', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84451901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84453001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84453099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84459001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84472001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84472099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84479001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84484901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84501201', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84501299', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84501901', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84509001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84509002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84509099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84512101', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84512199', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84512901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84512902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84512903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84518001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84518099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84519001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84519002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84519099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522104', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522105', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522905', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522906', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84522907', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84529002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84542001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84542099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84543001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84543099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84549001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84549099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552202', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84552299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84553001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84553002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84553099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84561001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84561099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84562001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84562099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84573001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84573004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84581102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84581902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84589101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84589199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84589901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84591001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84591099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84592101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84592199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84592901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84594001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84594099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84597001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84597002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84597099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84601101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84601199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84601901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602104', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84602904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84603101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84603199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84603901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84604001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84604002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84604099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84609001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84609002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84609003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84612001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84612099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84613001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84613099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84615001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84619002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84619004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84619005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622104', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622105', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84622904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84623102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84623902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84624101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84624102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84624103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84624199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84624903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84629901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84629902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84629903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84633001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84633002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84633003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84633099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84639001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84649001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659202', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659203', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659399', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659401', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659402', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659499', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84659903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84661001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84661002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84662001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84662099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84663001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84663002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84663099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84669301', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84669302', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84669402', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84671101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84671199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84671901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84672201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84678901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84679101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84679199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84679901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84679902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84682001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84682099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84690001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84690002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84690003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84690004', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84690099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84701001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84701002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84701099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84702901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84709001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84709002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84716001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84716002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84716003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84716099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84718001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84718002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84718003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84718099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729004', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729006', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729007', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729008', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729009', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729011', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84729015', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84731001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84731099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84733001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84733002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84733003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84734001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84734002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84734099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84735001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84735002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84735099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84741002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84742001', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84742002', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84742003', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84742005', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84742006', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84743901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84743902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748008', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748009', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84748010', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84749001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84749002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84749099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84769001', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84769099', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84772002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84778007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84779001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84779002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84779003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84779099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84781005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84791002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84791005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84791006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84791008', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84794001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84794099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798105', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798106', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798108', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798109', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798203', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798905', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798909', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798911', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798915', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798916', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798917', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798918', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798923', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798924', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84798925', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799015', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799017', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84799099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84803001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84803002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84803099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84804101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84804199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84804901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84805001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84805002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84805099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84807904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84811002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84812011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84813002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84813003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84814001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84814002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84814003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84819001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84819002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84819003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84819004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84819099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84821001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84821003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84822002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84829101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84829199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84829902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84829903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84831099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84833001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84833002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84833003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84833099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84834099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84835001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84835002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84835099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84839001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84839002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84839099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84849001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84849002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84862002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84862099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84869001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84869002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84869003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84869004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84871001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('84871099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011008', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011009', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85011099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85012001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85012002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85012003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85012004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85012099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85013402', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85013403', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85013404', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85014007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015202', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015203', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015205', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015302', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015303', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015306', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85015307', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85016402', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85022002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85030001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85030002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85030003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85030004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85030006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85042104', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043105', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043106', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043202', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043301', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85043399', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85044003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85044004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85044010', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85044012', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85045001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85045002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85045099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85049001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85049003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85049004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85049005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85049006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85059099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85061002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2013-12-13 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85061099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2013-12-13 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85072003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85081901', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85094001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098005', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098006', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098008', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098010', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098011', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85098012', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85099001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85111001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85111002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85112001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85112002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85112003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85112099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85113001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85113002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85113003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85113004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85113099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85114001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85114002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85114003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85114099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85115001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85115002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85115003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85115004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85115099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85119099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85121001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85121002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85121099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85129099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85143002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85143003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85143004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85143005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85143006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85144001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85144099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85149001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85149002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85149003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85149099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85152901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85158001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85158002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85158099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85161001', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85161099', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85162901', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85166002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85168001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85168002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85168003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85168099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169008', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85169010', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85171201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85171299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85171801', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176202', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176203', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176204', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176205', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176206', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176207', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176208', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176209', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176210', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176211', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176212', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176213', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176214', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176215', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176216', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176906', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176908', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176909', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176910', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176911', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176912', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176918', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85176920', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85177013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85181001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85181002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85181003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85181099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85182101', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85182199', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85182201', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85182299', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85182901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85183001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85183002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85184003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85184005', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85184006', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85189003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85193001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85193099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198111', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85198904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85211001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85211099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85229014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232906', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85232910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85234901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85235201', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85235202', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85255001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85255002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85255003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85255004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85255099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256009', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85256010', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85258001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85258002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85258003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85258004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85258099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85279101', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85279199', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85279901', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284905', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284908', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85284909', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85285101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85285199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85286101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85286901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85286902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85286903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85286904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85291099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299014', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299017', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299022', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85299023', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85308001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85311005', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85318002', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85319001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322202', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322203', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322302', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322303', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322304', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322305', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322399', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322401', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322402', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322403', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322499', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322501', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322503', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322504', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85322905', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85323001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85323002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85323003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85323004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85323099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85331001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85331002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85332901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85333101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85333199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85333901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85333902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85334099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85339001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85339002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85339099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85340001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85340002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85340003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85340099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85353099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85354002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359015', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359017', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359018', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359019', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359021', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85359022', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85361001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85361002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85361005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85363001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85363002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85363003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85363004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364104', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364105', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364106', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364107', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364108', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364109', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364110', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364111', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85364905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365015', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85365017', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85366101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85366102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85366103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85366199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85366901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369013', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369014', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369015', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369016', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369017', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369018', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369019', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369020', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369021', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369022', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369023', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369024', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369025', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369026', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85369027', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85371001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85371002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85372001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85389002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85389003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85389004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85391001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85391002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85391003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392905', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392906', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392907', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85392908', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85393201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85393202', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85393203', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85393299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85394901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85399099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401103', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401104', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401105', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85401299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85402001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85402099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85406001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85406099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85408903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409103', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409104', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409902', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85409904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85411099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85413099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85414001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85414002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-11-23 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85414003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-11-23 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85419001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85419099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423102', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423399', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85423901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85432099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437009', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437010', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437011', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437012', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437013', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437014', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437015', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85437016', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85441901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85443002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444201', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444202', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444203', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444204', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444902', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444903', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444904', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85444906', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85446001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85446099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85459001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85459002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85471001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85471002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85471003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85471004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85471005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85472001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85472002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85472003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85472099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479005', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479006', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479007', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479008', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479009', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479010', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479011', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85479012', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85489001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85489002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('85489003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86040001', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86040002', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86040099', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86069101', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86069199', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86071901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86071904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86071905', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86071906', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86072101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86072199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86079101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86079199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86080001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86080002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86080003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('86080099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019001', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019008', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2008-12-24 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87019099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87021001', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87021002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87021003', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87021004', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87029002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87029003', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87029004', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87029005', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87029007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87031001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87031002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87031099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87039001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87039003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-09-20 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87041001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87041099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042102', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042103', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042203', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042204', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042205', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87042206', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043103', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043202', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043203', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043204', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043205', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87043206', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87060002', '6', 'None', 'GENERAL', 'None', '20.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87071001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87071099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87079001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87082914', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87082915', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87082921', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083012', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083013', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87083014', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87084006', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87085011', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87085012', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87085017', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87085019', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87085021', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87087007', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089201', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089202', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089299', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089302', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089303', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089304', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089399', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089401', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089402', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089403', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089404', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089405', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089406', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089407', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089408', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089409', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089410', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089411', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089499', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089501', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089599', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089905', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089906', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089910', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089911', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089912', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089913', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87089914', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87091901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87091902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87111001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87111002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87111099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87112002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87112003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87112004', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87112099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87113001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87113002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87113003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87113099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87114003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87115001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87115002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-30 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87115099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87120001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87120002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87120003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87120004', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87120099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87162001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87162002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87162003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87162099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163101', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163102', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163199', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163901', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163902', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163905', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163906', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87163907', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87168001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87168002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87169001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('87169002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('88010001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('88010099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('89020001', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('89020002', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('89020099', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90011001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90011099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90013001', '9', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90014001', '9', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90014002', '9', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90014099', '9', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90015001', '9', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90015099', '9', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90019001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90039001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90039099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90061001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90065901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90065902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90066901', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90069101', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90069102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90069199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90089001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90089099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90138001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90138099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90148001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90148002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90148099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90149001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90149099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90158002', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90158006', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90158007', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2016-01-06 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90160001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90160099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90171002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90173001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90173099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90178001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90178002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90179001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90179099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181904', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181907', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181908', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181909', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90181910', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90183201', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90183901', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90183905', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90184901', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90184903', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189021', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189022', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189023', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189024', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189026', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189029', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90189030', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90191001', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90200001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211001', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211002', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211003', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211004', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211005', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90211099', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90212101', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90212199', '1', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90213903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90221401', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90221499', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90222101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90222199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90229001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90229002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90258002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90258003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90261099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90262001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90262002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90262005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90262006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90268001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90268002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90268099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90278001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90278002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90278003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90278099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90282001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90289001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90289002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90289099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90291001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90291002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90291004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90292099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90302001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90302099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303301', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303302', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303303', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303304', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303305', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303306', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90303399', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90304001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90304099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90308901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90308902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90308903', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90308904', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90308999', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90309001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90309002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90309003', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90309004', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90309099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90312001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90312099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90314901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90314902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90318003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90318004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90318005', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90318006', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90319002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90321002', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90328101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90328199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90329001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('90329099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91011901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91040001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91040002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91040003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91040099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91051101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91051199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91059101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91059199', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91059901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91061001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91061099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91069001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91111001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91111099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91122001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91122099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91131001', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91131099', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91132001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91132099', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91149001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('91149002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('92019002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('92059001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('92099901', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('92099902', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('92099903', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93011001', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93011099', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93020001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93020099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93052001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93052099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93062901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93063001', '11', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93063002', '11', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93063003', '11', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93069001', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('93069002', '6', 'None', 'GENERAL', 'None', '5.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94015101', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94019001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94031001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94031002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94031099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94032001', '6', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94032002', '6', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94032003', '6', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94032004', '6', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94032099', '6', 'None', 'GENERAL', 'None', '7.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94037001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94037002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94037099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94038101', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94042101', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94042199', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2017-10-05 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049004', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049005', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94049006', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2019-04-10 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94051001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94051002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94051003', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94051099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94052001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94052099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94055001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94055099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('94060001', '1', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95030019', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95030036', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95045001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95045002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2012-06-29 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95062901', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95069101', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95069102', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95069199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('95089001', '6', 'None', 'GENERAL', 'None', '10.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96062901', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96081001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96081099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96084001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96085001', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96085099', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089101', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089199', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089901', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089902', '1', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089904', '2', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96089905', '2', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96121001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96121002', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96138001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('96140002', '6', 'None', 'GENERAL', 'None', '15.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97040001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97040099', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97050001', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97050002', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97050003', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('97050004', '6', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010006', '1', 'None', 'GENERAL', 'None', '16.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010011', '8', 'None', 'GENERAL', 'None', '77.26', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010012', '8', 'None', 'GENERAL', 'None', '82.17', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010013', '8', 'None', 'GENERAL', 'None', '114.4', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010015', '6', 'None', 'GENERAL', 'None', '573.48', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010016', '6', 'None', 'GENERAL', 'None', '373.56', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010017', '6', 'None', 'GENERAL', 'None', '51.73', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99010018', '6', 'None', 'GENERAL', 'None', '51.73', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), + ('99020001', '1', 'None', 'GENERAL', 'None', '0.0', '0.0', '2007-06-18 00:00:00', 'False', 'False', 'False', 'False', 'True', '2020-12-27 00:00:00'), +] diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/__init__.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/__init__.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/tariff_fractions/__init__.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/__init__.py diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/dto.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/dto.py similarity index 96% rename from backend/api/v1/modules/a76/general_catalogs/tariff_fractions/dto.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/dto.py index 1a8f15c2..498d859a 100644 --- a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/dto.py +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/dto.py @@ -48,6 +48,9 @@ class TariffFractionResponseDTO(BaseModel): umt: Optional[str] = None adv_impo: Optional[str] = None adv_expo: Optional[str] = None + dof: Optional[str] = None + aplica_ieps: Optional[str] = None + um_code: Optional[str] = None model_config = ConfigDict(from_attributes=True) diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/models.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/models.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/tariff_fractions/models.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/models.py diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/routes.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/routes.py similarity index 54% rename from backend/api/v1/modules/a76/general_catalogs/tariff_fractions/routes.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/routes.py index 4e7bd2f3..da1c2881 100644 --- a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/routes.py +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/routes.py @@ -38,7 +38,11 @@ async def list_tariff_fractions( if search: filters["search"] = search - items, total = TariffFractionService.get_all( + # Updated to async call with Sitar integration + # WARNING: Using async def with blocking DB dependency (Session) run in threadpool by FastAPI. + # Service.get_all calls Sitar (async) or DB (sync). + # This should be fine. + items, total = await TariffFractionService.get_all( db, skip, page_size, filters ) @@ -55,7 +59,7 @@ async def list_tariff_fractions( "/{tariff_fraction_id}", response_model=TariffFractionResponseDTO, summary="Get Tariff Fraction by ID", - description="Get a specific tariff fraction by ID", + description="Get a specific tariff fraction by ID (Lookups in Local DB for legacy compatibility)", ) async def get_tariff_fraction( tariff_fraction_id: int, @@ -68,55 +72,3 @@ async def get_tariff_fraction( raise HTTPException(status_code=404, detail="Tariff fraction not found") return TariffFractionResponseDTO.model_validate(item) - -@router.post( - "/", - response_model=TariffFractionResponseDTO, - summary="Create Tariff Fraction", - description="Create a new tariff fraction (admin only)", - status_code=201, -) -async def create_tariff_fraction( - data: TariffFractionCreateDTO, - db: Session = Depends(get_core_db), - current_user: Dict[str, Any] = Depends(get_current_user), -): - item = TariffFractionService.create(db, data) - return TariffFractionResponseDTO.model_validate(item) - - -@router.put( - "/{tariff_fraction_id}", - response_model=TariffFractionResponseDTO, - summary="Update Tariff Fraction", - description="Update an existing tariff fraction (admin only)", -) -async def update_tariff_fraction( - tariff_fraction_id: int, - data: TariffFractionUpdateDTO, - db: Session = Depends(get_core_db), - current_user: Dict[str, Any] = Depends(get_current_user), -): - item = TariffFractionService.update(db, tariff_fraction_id, data) - if not item: - from fastapi import HTTPException - raise HTTPException(status_code=404, detail="Tariff fraction not found") - return TariffFractionResponseDTO.model_validate(item) - - -@router.delete( - "/{tariff_fraction_id}", - summary="Delete Tariff Fraction", - description="Delete a tariff fraction (admin only)", - status_code=204, -) -async def delete_tariff_fraction( - tariff_fraction_id: int, - db: Session = Depends(get_core_db), - current_user: Dict[str, Any] = Depends(get_current_user), -): - success = TariffFractionService.delete(db, tariff_fraction_id) - if not success: - from fastapi import HTTPException - raise HTTPException(status_code=404, detail="Tariff fraction not found") - diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/seed.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/seed.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/tariff_fractions/seed.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/seed.py diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/service.py b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/service.py new file mode 100644 index 00000000..fd719085 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/tariff_fractions/service.py @@ -0,0 +1,302 @@ +""" +Service para fracciones arancelarias +Catálogo de referencia global (no tenant-scoped) +""" + +from typing import List, Optional, Tuple, Dict, Any +from sqlalchemy.orm import Session +from sqlalchemy.exc import IntegrityError +from fastapi import HTTPException +import zlib +import logging + +from .models import TariffFraction +from .dto import TariffFractionCreateDTO, TariffFractionUpdateDTO +from api.v1.modules.sitar.fracciones.service import FraccionesService +from api.v1.modules.sitar.fracciones.schemas import FraccionesResponse + +logger = logging.getLogger(__name__) + + +class TariffFractionMapper: + """Helper to map Sitar responses to Local domain objects""" + + @staticmethod + def to_domain(fraccion: FraccionesResponse) -> TariffFraction: + # Generate ID: Use SYSID if available, else composite hash of code + nico + if fraccion.SYSID: + fake_id = fraccion.SYSID + else: + # Composite key for uniqueness if SYSID missing + unique_str = f"{fraccion.FRACCION}-{fraccion.NICO}" + fake_id = zlib.crc32(unique_str.encode('utf-8')) + + # UX Enhauncement: Sitar API returns empty strings for some fields. + # We fill them with fallbacks so the frontend table isn't 90% empty. + code_val = fraccion.FRACCION + + # Formatting Logic: if FRACCIONPUNTO is empty, try to format code_val + formatted_fraction = code_val + if fraccion.FRACCIONPUNTO: + formatted_fraction = fraccion.FRACCIONPUNTO + elif code_val and code_val.isdigit() and len(code_val) == 8: + # Standard 8 digit format: XX.XX.XX.XX + formatted_fraction = f"{code_val[:2]}.{code_val[2:4]}.{code_val[4:6]}.{code_val[6:]}" + elif code_val and code_val.isdigit() and len(code_val) == 6: + # 6 digit (subheading): XX.XX.XX + formatted_fraction = f"{code_val[:2]}.{code_val[2:4]}.{code_val[4:]}" + + fraction_val = formatted_fraction + description_val = fraccion.DESCRIPCION if fraccion.DESCRIPCION else "(Sin descripción)" + + tf = TariffFraction( + id=fake_id, + code=code_val, + fraction=fraction_val, + description=description_val, + nico=fraccion.NICO, + # MAP CHANGE: UMT now maps to Abbreviation (e.g., Pza, Kg) + umt=fraccion.UMABREVIACION, + adv_impo=fraccion.ADVIMPOTXT, + adv_expo=fraccion.ADVEXPOTXT + ) + # Dynamically attach non-model attributes for DTO + tf.dof = fraccion.DOF + tf.aplica_ieps = fraccion.APLICAIEPS + # MAP CHANGE: New field for the numeric code (e.g., 01, 06) + tf.um_code = fraccion.UMCLAVE + + return tf + + +class TariffFractionService: + """Service para gestionar fracciones arancelarias (catálogo global)""" + + @staticmethod + async def get_all( + db: Session, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[TariffFraction], int]: + """ + Obtiene fracciones arancelarias. + Estrategia: Sitar API -> Fallback Local DB + """ + + # 1. Try Sitar API + try: + sitar_service = FraccionesService.get_instance() + + # Map filters + sitar_fraccion = None + sitar_nico = None + has_filters = False + + if filters: + if filters.get("search"): + term = filters["search"] + # Heuristic: if search starts with digit (after removing dots), treat as code/fraccion/nico + # This covers "0101", "01.01", "020691A" + clean_term = term.replace(".", "") + if clean_term and clean_term[0].isdigit(): + sitar_fraccion = clean_term + has_filters = True + else: + # Attempt description search via API first + logger.info(f"Search term '{term}' identified as text. Attempting API description search.") + pass + + if filters.get("code"): + sitar_fraccion = filters["code"] + has_filters = True + if filters.get("fraction"): + sitar_fraccion = filters["fraction"] + has_filters = True + if filters.get("nico"): + sitar_nico = filters["nico"] + has_filters = True + + # Determine description filter + sitar_description = None + # Only use description if we didn't use it as code above + if filters and filters.get("search"): + clean_term = filters["search"].replace(".", "") + if not (clean_term and clean_term[0].isdigit()): + sitar_description = filters["search"] + has_filters = True + + # Note: Sitar search might not return total count. + # We fetch page items. Pagination might be tricky if Sitar doesn't return total. + # Assuming Sitar returns a list. + sitar_items = await sitar_service.search( + fraccion=sitar_fraccion, + nico=sitar_nico, + description=sitar_description, + nivel=5, # User requested filtering by level 5 + skip=skip, + limit=limit + ) + + # STRICT API USAGE: + # We do NOT fallback to local DB on empty list, as user requested strict API consumption. + # We also do NOT attempt enrichment as codes mismatch (API uses '010191A' vs Local '01012101'). + + # Map items + items = [TariffFractionMapper.to_domain(item) for item in sitar_items] + + # Estimate total (Sitar service doesn't return total currently) + # If we got full limit, assume there are more. + total = len(items) + skip + if len(items) == limit: + total += 1 # Indicate more pages + + return items, total + + except Exception as e: + logger.error(f"Error fetching from Sitar API: {e}") + # STRICT API USAGE: Propagate error, do NOT fallback to local DB. + raise e + + @staticmethod + async def _get_all_local_async( + db: Session, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[TariffFraction], int]: + """Lógica original de consulta local""" + query = db.query(TariffFraction) + + # Aplicar filtros + if filters: + # Si hay un filtro 'search', buscar en múltiples campos + if filters.get("search"): + search_term = f"%{filters['search']}%" + query = query.filter( + TariffFraction.code.ilike(search_term) | + TariffFraction.fraction.ilike(search_term) | + TariffFraction.description.ilike(search_term) | + TariffFraction.nico.ilike(search_term) | + TariffFraction.umt.ilike(search_term) + ) + else: + # Filtros individuales + if filters.get("code"): + query = query.filter(TariffFraction.code.ilike(f"%{filters['code']}%")) + if filters.get("fraction"): + query = query.filter(TariffFraction.fraction.ilike(f"%{filters['fraction']}%")) + if filters.get("description"): + query = query.filter(TariffFraction.description.ilike(f"%{filters['description']}%")) + if filters.get("nico"): + query = query.filter(TariffFraction.nico.ilike(f"%{filters['nico']}%")) + if filters.get("umt"): + query = query.filter(TariffFraction.umt.ilike(f"%{filters['umt']}%")) + + total = query.count() + items = query.offset(skip).limit(limit).all() + + return items, total + + @staticmethod + def get_by_id( + db: Session, + tariff_fraction_id: int, + ) -> Optional[TariffFraction]: + """ + Obtiene por ID. + Como Sitar no usa estos IDs, consultamos Local DB directamente para compatibilidad legacy. + Si se necesitara obtener detalle de Sitar, se requeriría otro identificador (Code). + """ + return ( + db.query(TariffFraction) + .filter(TariffFraction.id == tariff_fraction_id) + .first() + ) + + # WRITE OPERATIONS - DEPRECATED / LOCAL ONLY (Optional: Remove or Keep for Fallback Maintenance) + + @staticmethod + def get_by_code( + db: Session, + code: str, + ) -> Optional[TariffFraction]: + return ( + db.query(TariffFraction) + .filter(TariffFraction.code == code) + .first() + ) + + @staticmethod + def create( + db: Session, + tariff_fraction_data: TariffFractionCreateDTO, + ) -> TariffFraction: + try: + tariff_fraction = TariffFraction( + **tariff_fraction_data.model_dump(), + ) + db.add(tariff_fraction) + db.commit() + db.refresh(tariff_fraction) + return tariff_fraction + except IntegrityError as e: + db.rollback() + logger.error(f"Error creating tariff fraction: {e}") + raise HTTPException( + status_code=400, + detail="Tariff fraction with this code already exists", + ) + + @staticmethod + def update( + db: Session, + tariff_fraction_id: int, + tariff_fraction_data: TariffFractionUpdateDTO, + ) -> Optional[TariffFraction]: + tariff_fraction = TariffFractionService.get_by_id( + db, tariff_fraction_id + ) + + if not tariff_fraction: + return None + + try: + update_data = tariff_fraction_data.model_dump(exclude_unset=True) + for key, value in update_data.items(): + setattr(tariff_fraction, key, value) + + db.commit() + db.refresh(tariff_fraction) + return tariff_fraction + except IntegrityError as e: + db.rollback() + logger.error(f"Error updating tariff fraction: {e}") + raise HTTPException( + status_code=400, + detail="Error updating tariff fraction", + ) + + @staticmethod + def delete( + db: Session, + tariff_fraction_id: int, + ) -> bool: + tariff_fraction = TariffFractionService.get_by_id( + db, tariff_fraction_id + ) + + if not tariff_fraction: + return False + + try: + db.delete(tariff_fraction) + db.commit() + return True + except IntegrityError as e: + db.rollback() + logger.error(f"Error deleting tariff fraction: {e}") + raise HTTPException( + status_code=400, + detail="Cannot delete tariff fraction - may be in use", + ) diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/__init__.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/__init__.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/__init__.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/__init__.py diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/dto.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/dto.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/dto.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/dto.py diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/models.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/models.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/models.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/models.py diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/routes.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/routes.py similarity index 60% rename from backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/routes.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/routes.py index d3d85344..d5552c7e 100644 --- a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/routes.py +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/routes.py @@ -17,21 +17,8 @@ from .dto import ( ) from .service import USTariffFractionService -# Create base router with generic CRUD routes (disabled list because we'll create a custom one) -base_router = TenantCRUDRoutes( - service=USTariffFractionService, - create_schema=USTariffFractionCreateDTO, - update_schema=USTariffFractionUpdateDTO, - response_schema=USTariffFractionResponseDTO, - prefix="/us-tariff-fractions", - tags=["a76 / general catalogs / us tariff fractions"], - resource_name="USTariffFraction", - id_name="us_tariff_fraction_id", - enable_list=False, # Disable default list, we'll add custom one - enable_filters=False, - default_page_size=50, - max_page_size=10000, -) +# Create base router with generic CRUD routes - REMOVED strictly read-only from Sitar +# Writes are disabled at API level, but Service still supports fallback writes if needed internally router = APIRouter(prefix="/us-tariff-fractions", tags=["a76 / general catalogs / us tariff fractions"]) @@ -57,7 +44,8 @@ async def list_us_tariff_fractions( if search: filters["search"] = search - items, total = USTariffFractionService.get_all( + # Updated to async call with Sitar integration + items, total = await USTariffFractionService.get_all( db, tenant_id, company_id, skip, page_size, filters ) @@ -69,5 +57,23 @@ async def list_us_tariff_fractions( "pages": (total + page_size - 1) // page_size, } -# Include other CRUD routes from base router -router.include_router(base_router.router) + +@router.get( + "/{us_tariff_fraction_id}", + response_model=USTariffFractionResponseDTO, + summary="Get US Tariff Fraction by ID", + description="Get a specific US tariff fraction by ID (Lookups in Local DB for legacy compatibility)", +) +async def get_us_tariff_fraction( + us_tariff_fraction_id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + + item = USTariffFractionService.get_by_id(db, tenant_id, company_id, us_tariff_fraction_id) + if not item: + from fastapi import HTTPException + raise HTTPException(status_code=404, detail="US Tariff fraction not found") + return USTariffFractionResponseDTO.model_validate(item) diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/seed.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/seed.py similarity index 100% rename from backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/seed.py rename to backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/seed.py diff --git a/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/service.py b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/service.py new file mode 100644 index 00000000..877dfcc5 --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/fractions/us_tariff_fractions/service.py @@ -0,0 +1,232 @@ +""" +Service para fracciones arancelarias americanas +""" + +from typing import List, Optional, Tuple, Dict, Any +from sqlalchemy.orm import Session +from sqlalchemy.exc import IntegrityError +from fastapi import HTTPException +import zlib +import logging +import re +from decimal import Decimal + +from .models import USTariffFraction +from .dto import USTariffFractionCreateDTO, USTariffFractionUpdateDTO +from api.v1.modules.sitar.fracciones_usa.service import FraccionesUSAService +from api.v1.modules.sitar.fracciones_usa.schemas import FraccionesUSAResponse + +logger = logging.getLogger(__name__) + + +class USTariffFractionMapper: + """Helper to map Sitar USA responses to Local domain objects""" + + @staticmethod + def to_domain(fraccion: FraccionesUSAResponse, tenant_id: int, company_id: int) -> USTariffFraction: + # Generate a deterministic numeric ID based on the unique code + # We use CRC32 to get a consistent integer implementation-independent + fake_id = zlib.crc32((fraccion.FRACCION_SIN_PUNTO or "").encode('utf-8')) + + # Parse numeric values safely + ad_valorem = None + if fraccion.TARIFA1: + try: + # Extract numbers from string like "5.2%" or similar if present + # Assuming TARIFA1 might be clean number or percentage string + clean_val = re.sub(r'[^\d.]', '', str(fraccion.TARIFA1)) + if clean_val: + ad_valorem = Decimal(clean_val) + except: + pass + + fixed_cost = None + if fraccion.ESPECIFICO: + try: + clean_val = re.sub(r'[^\d.]', '', str(fraccion.ESPECIFICO)) + if clean_val: + fixed_cost = Decimal(clean_val) + except: + pass + + return USTariffFraction( + id=fake_id, # Updated to use fake_id instead of sitar consecutive if needed, or consistent hash + tenant_id=tenant_id, + company_id=company_id, + code=fraccion.FRACCION_SIN_PUNTO or "", + prefix=None, # Not mapped from Sitar response currently + type_code=None, + ad_valorem=ad_valorem, + fixed_cost=fixed_cost, + unit_of_measure=fraccion.UNIDADCANTIDAD, + description=fraccion.DESCRIPCION + ) + + +class USTariffFractionService: + """Service para gestionar fracciones arancelarias americanas""" + + @staticmethod + async def get_all( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[USTariffFraction], int]: + """ + Obtiene todas las fracciones arancelarias americanas con filtros opcionales. + Estrategia: Sitar API -> Fallback Local DB + """ + + # 1. Try Sitar API + try: + sitar_service = FraccionesUSAService.get_instance() + + sitar_fraccion = None + has_filters = False + + if filters and filters.get("search"): + term = filters["search"] + # Sitar only filters by fraction code + if term.replace(".", "").isdigit(): + sitar_fraccion = term + has_filters = True + + sitar_items = await sitar_service.search( + fraccion=sitar_fraccion, + skip=skip, + limit=limit + ) + + # If Sitar returns empty list AND we didn't have specific filters, attempt fallback + if not sitar_items and not has_filters: + logger.warning("Sitar return empty list for USA broad query. Attempting fallback to local DB.") + return USTariffFractionService._get_all_local(db, tenant_id, company_id, skip, limit, filters) + + # Map items + items = [USTariffFractionMapper.to_domain(item, tenant_id, company_id) for item in sitar_items] + + # Estimate total + total = len(items) + skip + if len(items) == limit: + total += 1 + + return items, total + + except Exception as e: + logger.error(f"Error fetching USA Fractions from Sitar API, falling back to local DB: {e}") + return USTariffFractionService._get_all_local(db, tenant_id, company_id, skip, limit, filters) + + @staticmethod + def _get_all_local( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[USTariffFraction], int]: + """Lógica original de consulta local""" + query = db.query(USTariffFraction).filter( + USTariffFraction.tenant_id == tenant_id, + USTariffFraction.company_id == company_id, + ) + + # Aplicar filtros + if filters: + # Si hay un filtro 'search', buscar en múltiples campos + if filters.get("search"): + search_term = f"%{filters['search']}%" + query = query.filter( + USTariffFraction.code.ilike(search_term) | + USTariffFraction.description.ilike(search_term) | + USTariffFraction.prefix.ilike(search_term) + ) + + total = query.count() + items = query.order_by(USTariffFraction.code).offset(skip).limit(limit).all() + + return items, total + + @staticmethod + def get_by_id( + db: Session, tenant_id: int, company_id: int, fraction_id: int + ) -> Optional[USTariffFraction]: + """ + Obtiene por ID. + Legacy: Consulta Local DB. + """ + return ( + db.query(USTariffFraction) + .filter( + USTariffFraction.id == fraction_id, + USTariffFraction.tenant_id == tenant_id, + USTariffFraction.company_id == company_id, + ) + .first() + ) + + # WRITE OPERATIONS - DEPRECATED / LOCAL ONLY + + @staticmethod + def create( + db: Session, + tenant_id: int, + company_id: int, + fraction_data: USTariffFractionCreateDTO, + ) -> USTariffFraction: + try: + db_fraction = USTariffFraction( + tenant_id=tenant_id, + company_id=company_id, + **fraction_data.model_dump(), + ) + db.add(db_fraction) + db.commit() + db.refresh(db_fraction) + return db_fraction + except IntegrityError as e: + db.rollback() + logger.error(f"Error creando fracción americana: {e}") + raise HTTPException( + status_code=400, + detail="Ya existe una fracción americana con este código", + ) + + @staticmethod + def update( + db: Session, + tenant_id: int, + company_id: int, + fraction_id: int, + fraction_data: USTariffFractionUpdateDTO, + ) -> Optional[USTariffFraction]: + db_fraction = USTariffFractionService.get_by_id( + db, tenant_id, company_id, fraction_id + ) + if not db_fraction: + return None + + update_data = fraction_data.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(db_fraction, field, value) + + db.commit() + db.refresh(db_fraction) + return db_fraction + + @staticmethod + def delete( + db: Session, tenant_id: int, company_id: int, fraction_id: int + ) -> bool: + db_fraction = USTariffFractionService.get_by_id( + db, tenant_id, company_id, fraction_id + ) + if not db_fraction: + return False + + db.delete(db_fraction) + db.commit() + return True diff --git a/backend/api/v1/modules/a76/general_catalogs/ports/service.py b/backend/api/v1/modules/a76/general_catalogs/ports/service.py index 4d4d9cc2..e10f3529 100644 --- a/backend/api/v1/modules/a76/general_catalogs/ports/service.py +++ b/backend/api/v1/modules/a76/general_catalogs/ports/service.py @@ -17,8 +17,7 @@ class PortService: filters: Optional[Dict[str, Any]] = None ) -> Tuple[List[Port], int]: query = db.query(Port).filter( - Port.tenant_id == tenant_id, - Port.company_id == company_id + Port.tenant_id == tenant_id ) if filters: @@ -38,8 +37,7 @@ class PortService: ) -> Optional[Port]: return db.query(Port).filter( Port.id == id, - Port.tenant_id == tenant_id, - Port.company_id == company_id + Port.tenant_id == tenant_id ).first() @staticmethod diff --git a/backend/api/v1/modules/a76/general_catalogs/router.py b/backend/api/v1/modules/a76/general_catalogs/router.py new file mode 100644 index 00000000..c6beaf5a --- /dev/null +++ b/backend/api/v1/modules/a76/general_catalogs/router.py @@ -0,0 +1,52 @@ +from fastapi import APIRouter +from .company import router as company_router +from .exchange_rate.routes import router as exchange_rate_router +from .identifiers.routes import router as identifiers_router +from .packages.routes import router as package_router +from .ports.routes import router as ports_router +from .fractions.tariff_fractions.routes import router as tariff_fractions_router +from .fractions.us_tariff_fractions.routes import router as us_tariff_fractions_router +from .depreciation_catalog.routes import router as depreciation_catalog_router +from .fda_catalog.routes import router as fda_catalog_router +from .seal.routes import router as seal_router +from .units_of_measure.routes import router as units_of_measure_router +from .concepts.routes import router as concepts_router +from .customs_broker_concepts.routes import router as customs_broker_concepts_router +from .classification_concepts.routes import router as classification_concepts_router +from .unit_conversions.routes import router as unit_conversions_router +from .equivalencies.routes import router as equivalencies_router +from .multi_currency_types.routes import router as multi_currency_types_router +from .inpc.routes import router as inpc_router +from .legends.routes import router as legends_router +from .signatures.routes import router as signatures_router +from .error_catalogs.routes import router as error_catalogs_router +from .doda.routes import router as doda_router +from .prevalidators.routes import router as prevalidators_router +from .electronic_notices.routes import router as electronic_notices_router + +router = APIRouter() + +router.include_router(company_router, tags=["a76 / company"]) +router.include_router(package_router) +router.include_router(ports_router) +router.include_router(tariff_fractions_router) +router.include_router(us_tariff_fractions_router) +router.include_router(depreciation_catalog_router) +router.include_router(fda_catalog_router) +router.include_router(seal_router, tags=["a76 / seal"]) +router.include_router(units_of_measure_router) +router.include_router(identifiers_router) +router.include_router(exchange_rate_router, tags=["a76 / exchange_rate"]) +router.include_router(concepts_router) +router.include_router(customs_broker_concepts_router) +router.include_router(classification_concepts_router) +router.include_router(unit_conversions_router) +router.include_router(equivalencies_router) +router.include_router(multi_currency_types_router) +router.include_router(inpc_router) +router.include_router(legends_router) +router.include_router(signatures_router) +router.include_router(error_catalogs_router) +router.include_router(doda_router) +router.include_router(prevalidators_router) +router.include_router(electronic_notices_router) \ No newline at end of file diff --git a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/service.py b/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/service.py deleted file mode 100644 index 3dd13594..00000000 --- a/backend/api/v1/modules/a76/general_catalogs/tariff_fractions/service.py +++ /dev/null @@ -1,166 +0,0 @@ -""" -Service para fracciones arancelarias -Catálogo de referencia global (no tenant-scoped) -""" - -from typing import List, Optional, Tuple, Dict, Any -from sqlalchemy.orm import Session -from sqlalchemy.exc import IntegrityError -from fastapi import HTTPException -import logging - -from .models import TariffFraction -from .dto import TariffFractionCreateDTO, TariffFractionUpdateDTO - -logger = logging.getLogger(__name__) - - -class TariffFractionService: - """Service para gestionar fracciones arancelarias (catálogo global)""" - - @staticmethod - def get_all( - db: Session, - skip: int = 0, - limit: int = 100, - filters: Optional[Dict[str, Any]] = None, - ) -> Tuple[List[TariffFraction], int]: - """Obtiene todas las fracciones arancelarias con filtros opcionales""" - - query = db.query(TariffFraction) - - # Aplicar filtros - if filters: - # Si hay un filtro 'search', buscar en múltiples campos - if filters.get("search"): - search_term = f"%{filters['search']}%" - query = query.filter( - TariffFraction.code.ilike(search_term) | - TariffFraction.fraction.ilike(search_term) | - TariffFraction.description.ilike(search_term) | - TariffFraction.nico.ilike(search_term) | - TariffFraction.umt.ilike(search_term) - ) - else: - # Filtros individuales - if filters.get("code"): - query = query.filter(TariffFraction.code.ilike(f"%{filters['code']}%")) - if filters.get("fraction"): - query = query.filter(TariffFraction.fraction.ilike(f"%{filters['fraction']}%")) - if filters.get("description"): - query = query.filter(TariffFraction.description.ilike(f"%{filters['description']}%")) - if filters.get("nico"): - query = query.filter(TariffFraction.nico.ilike(f"%{filters['nico']}%")) - if filters.get("umt"): - query = query.filter(TariffFraction.umt.ilike(f"%{filters['umt']}%")) - - total = query.count() - items = query.offset(skip).limit(limit).all() - - return items, total - - @staticmethod - def get_by_id( - db: Session, - tariff_fraction_id: int, - ) -> Optional[TariffFraction]: - """Obtiene una fracción arancelaria por ID""" - - return ( - db.query(TariffFraction) - .filter(TariffFraction.id == tariff_fraction_id) - .first() - ) - - @staticmethod - def get_by_code( - db: Session, - code: str, - ) -> Optional[TariffFraction]: - """Obtiene una fracción arancelaria por código""" - - return ( - db.query(TariffFraction) - .filter(TariffFraction.code == code) - .first() - ) - - @staticmethod - def create( - db: Session, - tariff_fraction_data: TariffFractionCreateDTO, - ) -> TariffFraction: - """Crea una nueva fracción arancelaria""" - - try: - tariff_fraction = TariffFraction( - **tariff_fraction_data.model_dump(), - ) - db.add(tariff_fraction) - db.commit() - db.refresh(tariff_fraction) - return tariff_fraction - except IntegrityError as e: - db.rollback() - logger.error(f"Error creating tariff fraction: {e}") - raise HTTPException( - status_code=400, - detail="Tariff fraction with this code already exists", - ) - - @staticmethod - def update( - db: Session, - tariff_fraction_id: int, - tariff_fraction_data: TariffFractionUpdateDTO, - ) -> Optional[TariffFraction]: - """Actualiza una fracción arancelaria existente""" - - tariff_fraction = TariffFractionService.get_by_id( - db, tariff_fraction_id - ) - - if not tariff_fraction: - return None - - try: - update_data = tariff_fraction_data.model_dump(exclude_unset=True) - for key, value in update_data.items(): - setattr(tariff_fraction, key, value) - - db.commit() - db.refresh(tariff_fraction) - return tariff_fraction - except IntegrityError as e: - db.rollback() - logger.error(f"Error updating tariff fraction: {e}") - raise HTTPException( - status_code=400, - detail="Error updating tariff fraction", - ) - - @staticmethod - def delete( - db: Session, - tariff_fraction_id: int, - ) -> bool: - """Elimina una fracción arancelaria""" - - tariff_fraction = TariffFractionService.get_by_id( - db, tariff_fraction_id - ) - - if not tariff_fraction: - return False - - try: - db.delete(tariff_fraction) - db.commit() - return True - except IntegrityError as e: - db.rollback() - logger.error(f"Error deleting tariff fraction: {e}") - raise HTTPException( - status_code=400, - detail="Cannot delete tariff fraction - may be in use", - ) diff --git a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/service.py b/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/service.py deleted file mode 100644 index 41815d68..00000000 --- a/backend/api/v1/modules/a76/general_catalogs/us_tariff_fractions/service.py +++ /dev/null @@ -1,129 +0,0 @@ -""" -Service para fracciones arancelarias americanas -""" - -from typing import List, Optional, Tuple, Dict, Any -from sqlalchemy.orm import Session -from sqlalchemy.exc import IntegrityError -from fastapi import HTTPException -import logging - -from .models import USTariffFraction -from .dto import USTariffFractionCreateDTO, USTariffFractionUpdateDTO - -logger = logging.getLogger(__name__) - - -class USTariffFractionService: - """Service para gestionar fracciones arancelarias americanas""" - - @staticmethod - def get_all( - db: Session, - tenant_id: int, - company_id: int, - skip: int = 0, - limit: int = 100, - filters: Optional[Dict[str, Any]] = None, - ) -> Tuple[List[USTariffFraction], int]: - """Obtiene todas las fracciones arancelarias americanas con filtros opcionales""" - - query = db.query(USTariffFraction).filter( - USTariffFraction.tenant_id == tenant_id, - USTariffFraction.company_id == company_id, - ) - - # Aplicar filtros - if filters: - # Si hay un filtro 'search', buscar en múltiples campos - if filters.get("search"): - search_term = f"%{filters['search']}%" - query = query.filter( - USTariffFraction.code.ilike(search_term) | - USTariffFraction.description.ilike(search_term) | - USTariffFraction.prefix.ilike(search_term) - ) - - total = query.count() - items = query.order_by(USTariffFraction.code).offset(skip).limit(limit).all() - - return items, total - - @staticmethod - def get_by_id( - db: Session, tenant_id: int, company_id: int, fraction_id: int - ) -> Optional[USTariffFraction]: - """Obtiene una fracción arancelaria americana por ID""" - return ( - db.query(USTariffFraction) - .filter( - USTariffFraction.id == fraction_id, - USTariffFraction.tenant_id == tenant_id, - USTariffFraction.company_id == company_id, - ) - .first() - ) - - @staticmethod - def create( - db: Session, - tenant_id: int, - company_id: int, - fraction_data: USTariffFractionCreateDTO, - ) -> USTariffFraction: - """Crea una nueva fracción arancelaria americana""" - try: - db_fraction = USTariffFraction( - tenant_id=tenant_id, - company_id=company_id, - **fraction_data.model_dump(), - ) - db.add(db_fraction) - db.commit() - db.refresh(db_fraction) - return db_fraction - except IntegrityError as e: - db.rollback() - logger.error(f"Error creando fracción americana: {e}") - raise HTTPException( - status_code=400, - detail="Ya existe una fracción americana con este código", - ) - - @staticmethod - def update( - db: Session, - tenant_id: int, - company_id: int, - fraction_id: int, - fraction_data: USTariffFractionUpdateDTO, - ) -> Optional[USTariffFraction]: - """Actualiza una fracción arancelaria americana existente""" - db_fraction = USTariffFractionService.get_by_id( - db, tenant_id, company_id, fraction_id - ) - if not db_fraction: - return None - - update_data = fraction_data.model_dump(exclude_unset=True) - for field, value in update_data.items(): - setattr(db_fraction, field, value) - - db.commit() - db.refresh(db_fraction) - return db_fraction - - @staticmethod - def delete( - db: Session, tenant_id: int, company_id: int, fraction_id: int - ) -> bool: - """Elimina una fracción arancelaria americana""" - db_fraction = USTariffFractionService.get_by_id( - db, tenant_id, company_id, fraction_id - ) - if not db_fraction: - return False - - db.delete(db_fraction) - db.commit() - return True diff --git a/backend/api/v1/modules/a76/imports/__init__.py b/backend/api/v1/modules/a76/imports/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/backend/api/v1/modules/a76/imports/routes.py b/backend/api/v1/modules/a76/imports/routes.py new file mode 100644 index 00000000..1ea76a74 --- /dev/null +++ b/backend/api/v1/modules/a76/imports/routes.py @@ -0,0 +1,118 @@ +from datetime import datetime +from uuid import uuid4 +import os +import json +import logging +from fastapi import APIRouter, UploadFile, File, Form, HTTPException, Depends, Query +from sqlalchemy.orm import Session +from typing import Optional, Literal, Dict, Any + +from core.celery_app import celery_app +from core.config import settings +from core.database import get_core_db +from core.security import get_current_user, validate_access_to_resource + +from .tasks import scan_file, insert_valid_rows +from .schemas import ImportJobResponse, ImportJobStatus, CommitRequest + +router = APIRouter() +logger = logging.getLogger(__name__) + +@router.post("/upload/{model_target}", response_model=ImportJobResponse) +async def upload_import_file( + model_target: Literal["invoice_header", "invoice_details"], + file: UploadFile = File(...), + footer_config: Optional[str] = Form(None), # JSON string with settings + company_id: int = Query(..., description="Company ID"), # Required for context + operation_type: Optional[str] = Query("imp"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """ + Step 1: Upload CSV, save to temp, trigger scan task. + """ + # 1. Validate Access & Get Tenant + try: + tenant_id = validate_access_to_resource(db, company_id, current_user) + except Exception as e: + logger.error(f"Access validation failed: {e}") + raise HTTPException(status_code=403, detail="Invalid company access") + + if not file.filename.endswith(".csv"): + raise HTTPException(status_code=400, detail="Only .csv files allowed") + + job_id = str(uuid4()) + + # Ensure directory exists (Safety check) + upload_dir = os.path.join(os.getcwd(), "uploads", "temp") + os.makedirs(upload_dir, exist_ok=True) + + file_path = os.path.join(upload_dir, f"{job_id}.csv") + meta_path = os.path.join(upload_dir, f"{job_id}.meta.json") + + try: + # Save CSV + contents = await file.read() + with open(file_path, "wb") as f: + f.write(contents) + + # Save Metadata (Context) + meta_data = { + "tenant_id": tenant_id, + "company_id": company_id, + "user_id": current_user.get("id"), + "footer_config": footer_config, + "operation_type": operation_type, + } + with open(meta_path, "w") as f: + json.dump(meta_data, f) + + except Exception as e: + logger.error(f"File save error: {e}") + raise HTTPException(status_code=500, detail=f"Failed to save file: {str(e)}") + + # Trigger Celery Task (Async) + # Use our job_id as the Celery task_id for easier tracking + scan_file.apply_async(args=[job_id, file_path, model_target, footer_config], task_id=job_id) + + return ImportJobResponse( + job_id=job_id, + status="queued", + message="File uploaded. Scanning started." + ) + +@router.get("/{job_id}/status") +async def get_import_status(job_id: str): + """ + Poll this endpoint to get % progress or final report. + """ + # In a real app, query Redis or DB. + # For MVP, we might mock or use Celery AsyncResult if backend shares Redis. + task_result = celery_app.AsyncResult(job_id) + + if task_result.state == 'PENDING': + return {"status": "processing", "progress": 0} + elif task_result.state == 'PROGRESS': + return { + "status": "processing", + "progress": task_result.info.get('current', 0), + "total": task_result.info.get('total', 0) + } + elif task_result.state == 'SUCCESS': + return task_result.result # Should return the report + else: + return {"status": task_result.state, "error": str(task_result.info)} + + +@router.post("/{job_id}/commit") +async def commit_import_job(job_id: str, body: CommitRequest): + """ + Step 2: User confirms import. Trigger bulk insert. + """ + task = insert_valid_rows.delay(job_id, body.model_target) + + return { + "status": "committing", + "message": "Bulk insert started.", + "commit_job_id": task.id + } diff --git a/backend/api/v1/modules/a76/imports/schemas.py b/backend/api/v1/modules/a76/imports/schemas.py new file mode 100644 index 00000000..63c0202a --- /dev/null +++ b/backend/api/v1/modules/a76/imports/schemas.py @@ -0,0 +1,20 @@ +from pydantic import BaseModel +from typing import Optional, Literal + +class ImportJobResponse(BaseModel): + job_id: str + status: str + message: str + +class CommitRequest(BaseModel): + model_target: Literal["invoice_header", "invoice_details"] + +class ImportJobStatus(BaseModel): + status: str + job_id: str + total_rows: Optional[int] = 0 + error_count: Optional[int] = 0 + valid_rows: Optional[int] = 0 + error: Optional[str] = None + inserted: Optional[int] = 0 + error_file: Optional[str] = None diff --git a/backend/api/v1/modules/a76/imports/tasks.py b/backend/api/v1/modules/a76/imports/tasks.py new file mode 100644 index 00000000..dfb82e74 --- /dev/null +++ b/backend/api/v1/modules/a76/imports/tasks.py @@ -0,0 +1,876 @@ +import os +from datetime import datetime +from decimal import Decimal +import csv +import json +import logging +import re +import unicodedata +from celery import shared_task +from typing import Dict, Any, Optional +from core.database import CoreSessionLocal +# Models are imported inside tasks to avoid circular dependencies and mapper initialization issues in the API process + +# We'll need schemas for validation +# from api.v1.modules.a76.invoices.schemas import InvoiceHeaderCreate +# But for Phase 1 we use a lighter check + +logger = logging.getLogger(__name__) + +class ForeignKeyValidator: + def __init__(self, session, tenant_id, company_id): + self.session = session + self.tenant_id = tenant_id + self.company_id = company_id + self.cache = {} # {(model_name, value): bool} + + def check_exists(self, model, value, field_name="id", is_public=False): + if value is None: + return True # Assume optional if None, or let DB handle not-null + + key = (model.__name__, value) + if key in self.cache: + return self.cache[key] + + query = self.session.query(getattr(model, field_name)).filter(getattr(model, field_name) == value) + if not is_public: + query = query.filter(model.tenant_id == self.tenant_id, model.company_id == self.company_id) + + exists = query.first() is not None + self.cache[key] = exists + return exists + +@shared_task(bind=True) +def scan_file(self, job_id: str, file_path: str, model_target: str, config: str = None): + """ + Pass 1: Read CSV, Validate types, Write Errors to JSONL. + """ + logger.info(f"Starting scan for job {job_id} target {model_target}") + + # 1. Setup Error Log + error_path = file_path.replace("temp", "errors").replace(".csv", ".jsonl") + os.makedirs(os.path.dirname(error_path), exist_ok=True) + + total_rows = 0 + error_count = 0 + processed_rows = 0 + + # 2. Count Total (Quick Pass) or just estimate + # For better progress, we can get file line count first + try: + with open(file_path, 'r', encoding='utf-8-sig') as f: + total_rows = sum(1 for _ in f) - 1 # Minus header + except Exception as e: + return {"status": "failed", "error": f"Cannot read file: {e}"} + + footer_config = parse_footer_config(config) + date_format = footer_config.get("dateFormat") + + # Validate and set default date_format if not provided + if not date_format: + date_format = "yyyy-mm-dd" # Default to ISO format + logger.info(f"No date_format specified in config, using default: {date_format}") + + try: + with open(file_path, 'r', encoding='utf-8-sig') as f_in, \ + open(error_path, 'w', encoding='utf-8') as f_err: + + # Detect Delimiter + sample = f_in.read(2048) + f_in.seek(0) + try: + dialect = csv.Sniffer().sniff(sample, delimiters=",;\t") + except: + dialect = 'excel' + + reader = csv.DictReader(f_in, dialect=dialect) + + for i, row in enumerate(reader, start=1): + # Check for Progress Update + if i % 1000 == 0: + self.update_state(state='PROGRESS', meta={ + 'current': i, + 'total': total_rows, + 'errors': error_count + }) + + # Validation (Phase 1: Minimal) + row_norm = normalize_row(row) + errors = validate_row_phase_1(row_norm, model_target, i, date_format) + + if errors: + error_count += 1 + # Write simple JSON error + f_err.write(json.dumps(errors) + "\n") + + processed_rows += 1 + + except Exception as e: + logger.error(f"Scan failed: {e}") + return {"status": "failed", "error": str(e)} + + # 4. Result + return { + "status": "waiting_confirmation", + "job_id": job_id, + "total_rows": processed_rows, + "error_count": error_count, + "valid_rows": processed_rows - error_count, + "error_file": error_path + } + +def validate_row_phase_1( + row: Dict[str, Any], + target: str, + line_num: int, + date_format: Optional[str], +) -> Dict[str, Any]: + """ + Minimal validation: Unique IDs and Dates. + Target: 'invoice_header' or 'invoice_details' + """ + errors = {} + + # A. Invoice Header + if target == 'invoice_header': + # 1. Unique ID + if not row.get('NUMERO FACTURA') and not row.get('NUM FACTURA') and not row.get('ID'): + return {"line": line_num, "col": "NUMERO FACTURA", "msg": "Requerido"} + + # 2. Date Format + date_str = row.get('FECHA FACTURA') + if date_str: + if not is_valid_date(date_str, date_format): + expected = display_date_format(date_format) + return { + "line": line_num, + "col": "FECHA FACTURA", + "msg": f"Formato inválido ({expected})", + } + else: + return {"line": line_num, "col": "FECHA FACTURA", "msg": "Requerido"} + + # B. Invoice Details (Parts) + elif target == 'invoice_details': + # 1. Line Number + if not row.get('LINEA'): + return {"line": line_num, "col": "LINEA", "msg": "Requerido"} + + # 2. Parent Link (Invoice Number) + if not (row.get('NUMERO FACTURA') or row.get('NUM FACTURA') or row.get('FACTURA')): + return {"line": line_num, "col": "NUMERO FACTURA", "msg": "Requerido"} + + # 2. Parent Link (Simplified for now, we assume parent exists or is in same batch) + # In a real scenario, we'd check if the invoice exists. + pass + + return errors if errors else None + +def parse_footer_config(config: Optional[str]) -> Dict[str, Any]: + if not config: + return {} + try: + if isinstance(config, str): + return json.loads(config) + if isinstance(config, dict): + return config + except Exception: + return {} + return {} + + +def display_date_format(date_format: Optional[str]) -> str: + if not date_format: + return "YYYY-MM-DD" + return date_format.upper() + + +def parse_date(date_text: Optional[str], date_format: Optional[str]) -> Optional[datetime.date]: + if not date_text: + return None + candidates = [] + fmt_map = { + "dd/mm/yyyy": "%d/%m/%Y", + "mm/dd/yyyy": "%m/%d/%Y", + "yyyy-mm-dd": "%Y-%m-%d", + } + if date_format and date_format in fmt_map: + candidates.append(fmt_map[date_format]) + candidates.extend(["%Y-%m-%d", "%d/%m/%Y", "%m/%d/%Y"]) + for fmt in candidates: + try: + return datetime.strptime(str(date_text).strip(), fmt).date() + except ValueError: + continue + return None + + +def is_valid_date(date_text: Optional[str], date_format: Optional[str]) -> bool: + return parse_date(date_text, date_format) is not None + + +def normalize_header(name: Optional[str]) -> str: + if not name: + return "" + name = unicodedata.normalize("NFKD", str(name)).upper() + name = "".join(ch for ch in name if not unicodedata.combining(ch)) + name = re.sub(r"[^A-Z0-9]+", " ", name) + return re.sub(r"\s+", " ", name).strip() + + +def normalize_row(row: Dict[str, Any]) -> Dict[str, Any]: + return {normalize_header(k): v for k, v in row.items()} + + +def parse_int(value: Any) -> Optional[int]: + if value is None: + return None + text = str(value).strip() + if not text: + return None + try: + return int(text) + except ValueError: + return None + + +def parse_decimal(value: Any) -> Optional[Decimal]: + if value is None: + return None + text = str(value).strip() + if not text: + return None + text = text.replace(",", "") + try: + return Decimal(text) + except Exception: + return None + + +def parse_currency(value: Optional[str], currency_type: Optional[str]): + from api.v1.modules.a76.invoices.models import Currency + if value: + normalized = normalize_header(value) + if normalized in {"MN", "M N", "NACIONAL", "LOCAL", "PESOS", "PESO"}: + return Currency.LOCAL + if normalized in {"ME", "M E", "EXTRANJERA", "EXTRANJERO", "FOREIGN", "USD", "DOLAR", "DOLARES"}: + return Currency.FOREIGN + if "MANUAL" in normalized: + return Currency.MANUAL + if currency_type and str(currency_type).strip().upper() == "MXN": + return Currency.LOCAL + if currency_type: + return Currency.FOREIGN + return Currency.MANUAL + + +def parse_weight_unit(value: Optional[str]): + from api.v1.modules.a76.invoices.models import WeightUnit + if not value: + return None + normalized = normalize_header(value) + if normalized in {"KG", "KGS", "KILOS", "KILOGRAMOS"}: + return WeightUnit.KGS + if normalized in {"LB", "LBS", "LIBRAS"}: + return WeightUnit.LBS + return None + + +def resolve_tenant_fk_id( + session: CoreSessionLocal, + model, + value: Optional[int], + tenant_id: int, + company_id: int, + cache: Dict[int, Optional[int]], +) -> Optional[int]: + if value is None: + return None + if value in cache: + return cache[value] + exists = ( + session.query(model.id) + .filter( + model.id == value, + model.tenant_id == tenant_id, + model.company_id == company_id, + ) + .scalar() + ) + cache[value] = value if exists is not None else None + return cache[value] + + +def resolve_public_code( + session: CoreSessionLocal, + model, + column, + value: Optional[str], + cache: Dict[str, Optional[str]], +) -> Optional[str]: + if not value: + return None + normalized = str(value).strip().upper() + if not normalized: + return None + if normalized in cache: + return cache[normalized] + exists = session.query(column).filter(column == normalized).scalar() + cache[normalized] = normalized if exists is not None else None + return cache[normalized] + +@shared_task(bind=True) +def insert_valid_rows(self, job_id: str, model_target: str): + """ + Pass 2: Re-read CSV, Skip Errors, Bulk Insert. + """ + logger.info(f"Starting Commit for {job_id} target {model_target}") + + try: + from api.v1.modules.a76.invoices.models import ( + InvoiceHeader, + InvoiceComplianceMx, + InvoiceFinancials, + InvoiceLogistics, + InvoiceSalesDetails, + OperationType, + WeightUnit, + ) + from api.v1.modules.a76.clients_and_providers.models import ClientProvider + from api.v1.modules.a76.customs_brokers.models import CustomsBroker + from api.v1.modules.public.reference_data.currency_types.models import CurrencyType + from api.v1.modules.public.reference_data.pedimento_regimens.models import RegimenPedimento + from api.v1.modules.public.reference_data.code_pedimento_regimens.models import CodePedimentoRegimen + from api.v1.modules.public.reference_data.pedimento_codes.models import PedimentoCode + from api.v1.modules.public.reference_data.invoice_types.models import InvoiceType + from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection + + from api.v1.modules.a76.items.models import Item + from api.v1.modules.a76.items.line_items.models import LineItem + from api.v1.modules.a76.items.line_financials.models import LineFinancial + from api.v1.modules.a76.items.line_quantities.models import LineQuantity + from api.v1.modules.a76.items.line_customs.models import LineCustom + from api.v1.modules.a76.items.line_descriptions.models import LineDescription + from api.v1.modules.a76.parts.models import Part + + upload_dir = os.path.join(os.getcwd(), "uploads", "temp") + file_path = os.path.join(upload_dir, f"{job_id}.csv") + error_path = file_path.replace("temp", "errors").replace(".csv", ".jsonl") + + # 1. Load Error Line Numbers + error_lines = set() + if os.path.exists(error_path): + with open(error_path, 'r', encoding='utf-8') as f: + for line in f: + try: + err = json.loads(line) + error_lines.add(err['line']) + except: pass + + # Load Metadata (Context) + meta_path = file_path.replace("temp", "temp").replace(".csv", ".meta.json") + tenant_id = None + company_id = None + footer_config = {} + + if os.path.exists(meta_path): + try: + with open(meta_path, 'r') as f: + meta = json.load(f) + tenant_id = meta.get('tenant_id') + company_id = meta.get('company_id') + operation_type_raw = meta.get('operation_type', 'imp') + footer_config = parse_footer_config(meta.get('footer_config')) + except: pass + + if not tenant_id or not company_id: + return {"status": "failed", "error": "Missing context (tenant/company)"} + + # 2. Re-read and Map + # Initialize counters outside the session block so they're accessible later + headers_to_insert = [] + details_to_insert = [] + skipped_invalid = 0 + skipped_missing_invoice = 0 + skipped_missing_fk = 0 + skipped_fk_details = [] + inserted_count = 0 + response = None # Will be set inside the session block + + date_format = footer_config.get("dateFormat") + + # Validate and set default date_format if not provided + if not date_format: + date_format = "yyyy-mm-dd" # Default to ISO format + logger.info(f"No date_format specified in config, using default: {date_format}") + else: + logger.info(f"Using date_format from config: {date_format}") + + # Default types from config or fallback + op_type_value = OperationType(meta.get('operation_type', 'imp').lower()) + inv_type_value = footer_config.get('invoice_type', 'TEM') + + logger.info(f"Processing CSV with operation_type={op_type_value}, invoice_type={inv_type_value}, date_format={date_format}") + + with CoreSessionLocal() as session: + invoice_id_cache = {} + cleared_invoices = set() # Track invoices where we've already cleared items in this job + provider_cache: Dict[int, Optional[int]] = {} + sold_to_cache: Dict[int, Optional[int]] = {} + shipped_to_cache: Dict[int, Optional[int]] = {} + broker_cache: Dict[int, Optional[int]] = {} + regimen_cache: Dict[str, Optional[str]] = {} + currency_type_cache: Dict[str, Optional[str]] = {} + customs_section_cache: Dict[str, Optional[str]] = {} + part_cache: Dict[str, Optional[int]] = {} + + validator = ForeignKeyValidator(session, tenant_id, company_id) + + with open(file_path, 'r', encoding='utf-8-sig') as f: + # Detect Delimiter + sample = f.read(2048) + f.seek(0) + try: + dialect = csv.Sniffer().sniff(sample, delimiters=",;\t") + except: + dialect = 'excel' + + reader = csv.DictReader(f, dialect=dialect) + + for i, row in enumerate(reader, start=1): + if i in error_lines: + continue + + row_norm = normalize_row(row) + + # Mapping Logic + if model_target == 'invoice_header': + invoice_number = (row_norm.get('NUMERO FACTURA') or row_norm.get('NUM FACTURA') or row_norm.get('FACTURA') or '').strip() + invoice_date = parse_date(row_norm.get('FECHA FACTURA') or row_norm.get('FECHA'), date_format) + + if not invoice_number or not invoice_date: + skipped_invalid += 1 + logger.debug(f"Row {i}: Skipped - missing invoice_number or invalid invoice_date. " + f"Invoice: {invoice_number}, Date: {row_norm.get('FECHA FACTURA') or row_norm.get('FECHA')}") + continue + + # --- NEW: Foreign Key Validations --- + # 1. Invoice Type (Public) + if not validator.check_exists(InvoiceType, inv_type_value, field_name="key", is_public=True): + skipped_missing_fk += 1 + reason = f"Tipo de factura '{inv_type_value}' no existe" + skipped_fk_details.append({"line": i, "invoice": invoice_number, "reason": reason}) + logger.warning(f"Row {i} (Invoice {invoice_number}): {reason}") + continue + + # 2. Client/Provider (Tenant) + provider_id = parse_int(row_norm.get('CLAVE PROVEEDOR')) + if provider_id and not validator.check_exists(ClientProvider, provider_id): + skipped_missing_fk += 1 + reason = f"Proveedor ID '{provider_id}' no existe" + skipped_fk_details.append({"line": i, "invoice": invoice_number, "reason": reason}) + logger.warning(f"Row {i} (Invoice {invoice_number}): {reason}") + continue + + # 3. Customs Broker (Tenant) + broker_id = parse_int(row_norm.get('AGENTE ADUANAL')) + if broker_id and not validator.check_exists(CustomsBroker, broker_id): + skipped_missing_fk += 1 + reason = f"Agente Aduanal ID '{broker_id}' no existe" + skipped_fk_details.append({"line": i, "invoice": invoice_number, "reason": reason}) + logger.warning(f"Row {i} (Invoice {invoice_number}): {reason}") + continue + + # --- 4. Check for Existing Invoice (Upsert Logic) --- + existing_header = None + if invoice_number: + existing_header = ( + session.query(InvoiceHeader) + .filter( + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id, + InvoiceHeader.invoice_number == invoice_number, + InvoiceHeader.invoice_type == inv_type_value + ) + .first() + ) + + if existing_header: + # UPDATE existing header + header = existing_header + header.invoice_date = invoice_date + header.operation_type = op_type_value + header.is_updated = True # Mark as updated + header.updated_date = datetime.utcnow() + header.document_type = resolve_public_code( + session, + RegimenPedimento, + RegimenPedimento.code, + (row_norm.get('REGIMEN') or row_norm.get('CLAVEDOCUMENTO')), + regimen_cache, + ) + header.project_number = (row_norm.get('NUM PROYECTO') or row_norm.get('NUMPROYECTO') or None) + header.purchase_order = (row_norm.get('ORDEN COMPRA') or row_norm.get('ORDENCOMPRA') or None) + header.alternate_invoice = (row_norm.get('FACTURA ALTERNA') or None) + header.invoice_ref = (row_norm.get('FACTURA EXPO REF') or row_norm.get('FACTURAEXPOREF') or None) + header.emission_date = parse_date(row_norm.get('FECHA EMISION'), date_format) + header.observation_es = (row_norm.get('OBSERVACIONES E') or None) + header.observation_en = (row_norm.get('OBSERVACIONES I') or None) + + logger.info(f"Row {i}: Updating existing invoice {invoice_number}") + + # Clean up related data that will be re-inserted/updated + # Note: compliance, financials, logistics are 1-to-1 relationships and will be updated by assignment below + # but we might want to be explicit if ORM doesn't handle replace well. + # SQLAlchemy relationship assignment usually handles 1-to-1 updates correctly. + + else: + # CREATE new header + header = InvoiceHeader( + invoice_number=invoice_number, + invoice_date=invoice_date, + operation_type=op_type_value, + is_updated=False, + system="CSV", + capture_date=datetime.utcnow(), + invoice_type=inv_type_value, + document_type=resolve_public_code( + session, + RegimenPedimento, + RegimenPedimento.code, + (row_norm.get('REGIMEN') or row_norm.get('CLAVEDOCUMENTO')), + regimen_cache, + ), + project_number=(row_norm.get('NUM PROYECTO') or row_norm.get('NUMPROYECTO') or None), + purchase_order=(row_norm.get('ORDEN COMPRA') or row_norm.get('ORDENCOMPRA') or None), + alternate_invoice=(row_norm.get('FACTURA ALTERNA') or None), + invoice_ref=(row_norm.get('FACTURA EXPO REF') or row_norm.get('FACTURAEXPOREF') or None), + emission_date=parse_date(row_norm.get('FECHA EMISION'), date_format), + observation_es=(row_norm.get('OBSERVACIONES E') or None), + observation_en=(row_norm.get('OBSERVACIONES I') or None), + tenant_id=tenant_id, + company_id=company_id, + ) + + compliance = InvoiceComplianceMx( + remesa=parse_int(row_norm.get('REMESA')), + aduana=resolve_public_code( + session, + CustomsSection, + CustomsSection.customs_code, + row_norm.get('ADUANA DE CRUCE'), + customs_section_cache, + ), + provider_id=resolve_tenant_fk_id( + session, + ClientProvider, + parse_int(row_norm.get('CLAVE PROVEEDOR')), + tenant_id, + company_id, + provider_cache, + ), + sold_to_id=resolve_tenant_fk_id( + session, + ClientProvider, + parse_int(row_norm.get('CLAVE VENDIDO A')), + tenant_id, + company_id, + sold_to_cache, + ), + shipped_to_id=resolve_tenant_fk_id( + session, + ClientProvider, + parse_int(row_norm.get('CLAVE ENVIADO A')), + tenant_id, + company_id, + shipped_to_cache, + ), + customs_broker_id=resolve_tenant_fk_id( + session, + CustomsBroker, + parse_int(row_norm.get('AGENTE ADUANAL')), + tenant_id, + company_id, + broker_cache, + ), + edocument=(row_norm.get('E DOCUMENT') or None), + vucem_operation_num=(row_norm.get('NUM OPERACION') or None), + tenant_id=tenant_id, + company_id=company_id, + ) + + financials_currency_type = resolve_public_code( + session, + CurrencyType, + CurrencyType.code, + row_norm.get('CLAVE MONEDA'), + currency_type_cache, + ) + financials = InvoiceFinancials( + currency=parse_currency(row_norm.get('TIPO MONEDA'), financials_currency_type), + currency_type=financials_currency_type, + exchange_rate=parse_decimal(row_norm.get('TIPO DE CAMBIO')), + freight=parse_decimal(row_norm.get('FLETES')), + insurance_value=parse_decimal(row_norm.get('VALOR SEGUROS')), + insurance=parse_decimal(row_norm.get('SEGUROS')), + packaging=parse_decimal(row_norm.get('EMBALAJES')), + other_increments=parse_decimal(row_norm.get('OTROS INCREMENTABLES')), + tenant_id=tenant_id, + company_id=company_id, + ) + + weight_type = parse_weight_unit(row_norm.get('TIPO PESO')) + logistics = None + if weight_type or row_norm.get('TIPO TRANSPORTE') or row_norm.get('NUMERO TRANSPORTE'): + logistics = InvoiceLogistics( + carrier_id=(row_norm.get('CLAVE TRANSPORTISTA') or None), + driver_name=(row_norm.get('NOMBRE CONDUCTOR') or None), + transport_type=str(row_norm.get('TIPO TRANSPORTE') or "none").lower(), + transport_num=(row_norm.get('NUMERO TRANSPORTE') or None), + weight_type=weight_type or WeightUnit.KGS, + seal_number=(row_norm.get('PRECINTO') or None), + incoterm=(row_norm.get('CLAVE INCOTERM') or None), + entry_exit_date=parse_date(row_norm.get('FECHA EMISION'), date_format), + tenant_id=tenant_id, + company_id=company_id, + ) + + header.compliance_mx = compliance + header.financials = financials + if logistics: + header.logistics = logistics + + headers_to_insert.append(header) + + elif model_target == 'invoice_details': + invoice_number = (row_norm.get('NUMERO FACTURA') or row_norm.get('NUM FACTURA') or '').strip() + if not invoice_number: + skipped_invalid += 1 + continue + + if invoice_number in invoice_id_cache: + invoice_id = invoice_id_cache[invoice_number] + else: + invoice_id = ( + session.query(InvoiceHeader.id) + .filter( + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id, + InvoiceHeader.invoice_number == invoice_number, + ) + .scalar() + ) + invoice_id_cache[invoice_number] = invoice_id + + if not invoice_id: + logger.warning( + "Invoice not found for details row %s (invoice_number=%s)", + i, + invoice_number, + ) + skipped_missing_invoice += 1 + continue + + # --- Prevent Duplicates: Clear existing items for this invoice (Once per job) --- + if invoice_id not in cleared_invoices: + logger.info(f"Clearing existing details for Invoice {invoice_number} (ID: {invoice_id}) to prevent duplicates") + + # 1. Delete Items (Cascades to LineItem, LineFinancial, etc. if DB configured, check models) + # Checking Item model, we usually need to be careful. + # Assuming Cascade delete is set up on FKs or we rely on ORM cascade if using relationships. + # Here we use bulk delete. + session.query(Item).filter(Item.invoice_id == invoice_id).delete(synchronize_session=False) + + # 2. Delete InvoiceSalesDetails + session.query(InvoiceSalesDetails).filter(InvoiceSalesDetails.invoice_id == invoice_id).delete(synchronize_session=False) + + cleared_invoices.add(invoice_id) + + # --- NEW LOGIC: Expanded Anexo 76 Structure --- + + # A. Find/Cache Part + part_num = (row_norm.get('NUMPARTE') or row_norm.get('NUMERO PARTE') or '').strip() + part_id = None + if part_num: + part_id = part_cache.get(part_num) + if part_id is None: + p = session.query(Part.id).filter( + Part.part_number == part_num, + Part.tenant_id == tenant_id, + Part.company_id == company_id + ).first() + if p: + part_id = p.id + part_cache[part_num] = part_id + + line_num_val = (row_norm.get('LINEA') or row_norm.get('RENGLON') or row_norm.get('PARTIDA')) + line_num = parse_int(line_num_val) or (len(details_to_insert) + 1) + + # 1. Parent Item + item = Item( + invoice_id=invoice_id, + tenant_id=tenant_id, + company_id=company_id, + item_type="N", # Default to Normal + system_origin="CSV" + ) + session.add(item) + session.flush() # Need item.id + + # 2. Main Line + line = LineItem( + item_id=item.id, + line_number=line_num, + part_number=part_id, + tenant_id=tenant_id, + company_id=company_id + ) + session.add(line) + session.flush() # Need line.id + + # 3. Financial Data + price = parse_decimal(row_norm.get('PRECIO UNITARIO') or row_norm.get('PRECIOUNITARIO')) + val_com = parse_decimal(row_norm.get('VALOR COMERCIAL') or row_norm.get('VALORCOMERCIAL')) + qty = parse_decimal(row_norm.get('CANTIDAD')) + + session.add(LineFinancial( + item_line_id=line.id, + unit_price=price, + commercial_value=val_com or (price * qty if price and qty else None), + )) + + # 4. Quantities + if qty: + session.add(LineQuantity( + item_line_id=line.id, + quantity=qty, + )) + + # 5. Customs/Fraction + origin = row_norm.get('PAIS ORIGEN') or row_norm.get('PAISORIGEN') + fraction = row_norm.get('FRACCION') + if origin or fraction: + session.add(LineCustom( + item_line_id=line.id, + fraction=fraction, + origin_country=origin, + )) + + # 6. Description + desc = row_norm.get('DESCRIPCION') + if desc: + session.add(LineDescription( + item_line_id=line.id, + description_spanish=desc, + )) + + # 7. Legacy Sales Details (For specific audit/UI fields) + detail = InvoiceSalesDetails( + invoice_id=invoice_id, + line_number=line_num, + sales_order=(row_norm.get('ORDEN DE COMPRA') or row_norm.get('ORDENCOMPRA') or None), + line_bundles=parse_int(row_norm.get('CANTIDAD BULTOS') or row_norm.get('CANTIDADBULTOS')), + tenant_id=tenant_id, + company_id=company_id, + ) + session.add(detail) + details_to_insert.append(item) # Use as counter/ref + + # 3. Bulk Insert (ORM Transaction) + try: + if model_target == 'invoice_header': + if headers_to_insert: + logger.info(f"Attempting to commit {len(headers_to_insert)} headers") + session.add_all(headers_to_insert) + session.commit() + inserted_count = len(headers_to_insert) + logger.info(f"Headers commit successful. Inserted: {inserted_count}") + else: + logger.warning(f"No headers to insert for job {job_id}") + else: + if details_to_insert: + logger.info(f"Attempting to commit {len(details_to_insert)} items and related data") + session.commit() # Everything was already added with session.add() + inserted_count = len(details_to_insert) + logger.info(f"Details commit successful. Inserted: {inserted_count}") + else: + logger.warning(f"No details to insert for job {job_id}") + + except Exception as db_err: + session.rollback() + logger.error(f"DB Error during {model_target} commit: {db_err}") + import traceback + logger.error(traceback.format_exc()) + return {"status": "failed", "error": str(db_err)} + + # 4. Determine final status and prepare response (inside session block to access variables) + total_skipped = skipped_invalid + skipped_missing_fk + skipped_missing_invoice + + # Log summary + logger.info(f"Job {job_id} completed. Inserted: {inserted_count}, Skipped: {total_skipped} " + f"(invalid: {skipped_invalid}, missing_fk: {skipped_missing_fk}, missing_invoice: {skipped_missing_invoice})") + + # Prepare response based on results + if inserted_count == 0: + if total_skipped > 0: + logger.warning(f"No valid records to insert for job {job_id}. All {total_skipped} records were rejected.") + response = { + "status": "warning", + "inserted": 0, + "skipped_invalid": skipped_invalid, + "skipped_missing_invoice": skipped_missing_invoice, + "skipped_missing_fk": skipped_missing_fk, + "skipped_details": skipped_fk_details, + "message": f"No se insertaron registros. {total_skipped} fueron rechazados." + } + else: + logger.error(f"No valid records found in CSV for job {job_id}") + response = { + "status": "failed", + "error": "No hay registros válidos en el archivo CSV", + "inserted": 0, + "skipped_invalid": skipped_invalid, + "skipped_missing_invoice": skipped_missing_invoice, + "skipped_missing_fk": skipped_missing_fk, + "skipped_details": skipped_fk_details + } + else: + # Success case - at least some records were inserted + response = { + "status": "finished", + "inserted": inserted_count, + "skipped_invalid": skipped_invalid, + "skipped_missing_invoice": skipped_missing_invoice, + "skipped_missing_fk": skipped_missing_fk, + "skipped_details": skipped_fk_details + } + + except Exception as e: + logger.error(f"Task failed: {e}") + import traceback + logger.error(traceback.format_exc()) + return {"status": "failed", "error": str(e)} + + # 5. Cleanup + try: + if os.path.exists(file_path): + os.remove(file_path) + if os.path.exists(error_path): + os.remove(error_path) + except: + logger.warning("Failed to cleanup temp files") + + # Ensure response is defined (fallback in case of unexpected errors) + if response is None: + logger.error(f"Unexpected error: response not set for job {job_id}") + response = { + "status": "failed", + "error": "Error inesperado durante el procesamiento", + "inserted": 0, + "skipped_invalid": skipped_invalid, + "skipped_missing_invoice": skipped_missing_invoice, + "skipped_missing_fk": skipped_missing_fk, + "skipped_details": skipped_fk_details + } + + return response diff --git a/backend/api/v1/modules/a76/invoice_settings/dto.py b/backend/api/v1/modules/a76/invoice_settings/dto.py new file mode 100644 index 00000000..d330bf29 --- /dev/null +++ b/backend/api/v1/modules/a76/invoice_settings/dto.py @@ -0,0 +1,22 @@ +from typing import Any, Dict, Optional +from pydantic import BaseModel, ConfigDict +from enum import Enum + +from .models import OperationType + +class InvoiceSettingsBase(BaseModel): + invoice_type: str + operation_type: OperationType + settings: Dict[str, Any] + +class InvoiceSettingsRequest(InvoiceSettingsBase): + """Schema for creating or updating invoice settings""" + pass + +class InvoiceSettingsResponse(InvoiceSettingsBase): + """Schema for returning invoice settings""" + id: int + tenant_id: int + company_id: int + + model_config = ConfigDict(from_attributes=True) diff --git a/backend/api/v1/modules/a76/invoice_settings/models.py b/backend/api/v1/modules/a76/invoice_settings/models.py new file mode 100644 index 00000000..c9751664 --- /dev/null +++ b/backend/api/v1/modules/a76/invoice_settings/models.py @@ -0,0 +1,47 @@ +from typing import Optional +from sqlalchemy import BigInteger, ForeignKey, String, UniqueConstraint +from sqlalchemy.dialects.postgresql import JSONB +from sqlalchemy.orm import Mapped, mapped_column +from core.database import Base +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin +import enum + +class OperationType(str, enum.Enum): + IMP = "imp" # Importación + EXP = "exp" # Exportación + SM_IN = "sm_in" # Entrada SM + SM_OUT = "sm_out" # Salida SM + CTM_SEND = "ctm_send" # Envío CTM + CTM_RECEIVE = "ctm_receive" # Recibo CTM + +class InvoiceSettings(Base, TenantScopedMixin, TimestampMixin): + __tablename__ = "invoice_settings" + __table_args__ = ( + UniqueConstraint( + "tenant_id", + "company_id", + "invoice_type", + "operation_type", + name="uq_invoice_settings_tenant_company_type_op" + ), + {"schema": "a76"}, + ) + + id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True) + + # Configuration Scope + invoice_type: Mapped[str] = mapped_column( + ForeignKey("public.invoice_types.key"), + nullable=False + ) + + operation_type: Mapped[OperationType] = mapped_column( + String(11), + nullable=False + ) + + # The actual settings payload + settings: Mapped[dict] = mapped_column(JSONB, nullable=False, default={}) + + def __repr__(self): + return f"" diff --git a/backend/api/v1/modules/a76/invoice_settings/routes.py b/backend/api/v1/modules/a76/invoice_settings/routes.py new file mode 100644 index 00000000..9a6f83c3 --- /dev/null +++ b/backend/api/v1/modules/a76/invoice_settings/routes.py @@ -0,0 +1,75 @@ +from typing import List, Dict, Any +from fastapi import APIRouter, Depends, HTTPException, Query +from sqlalchemy.orm import Session +from core.database import get_core_db +from core.security import get_current_user, validate_access_to_resource +from api.v1.modules.a76.invoice_settings import services +from api.v1.modules.a76.invoice_settings.dto import InvoiceSettingsRequest, InvoiceSettingsResponse, OperationType + +router = APIRouter( + prefix="/a76/invoice-settings", + tags=["a76/invoice-settings"] +) + +@router.get("/{invoice_type}", response_model=InvoiceSettingsResponse) +def get_invoice_settings( + invoice_type: str, + operation_type: OperationType = Query(...), + company_id: int = Query(...), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """Get settings for a specific invoice type and operation""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + + settings = services.get_settings( + db, + tenant_id, + company_id, + invoice_type, + operation_type + ) + + if not settings: + # Return empty default if not found, to simplify frontend logic + return InvoiceSettingsResponse( + invoice_type=invoice_type, + operation_type=operation_type, + settings={}, + id=0, + tenant_id=tenant_id, + company_id=company_id + ) + return InvoiceSettingsResponse.model_validate(settings) + +@router.get("/", response_model=List[InvoiceSettingsResponse]) +def list_invoice_settings( + company_id: int = Query(...), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """List all configured settings for validation or overview""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + + return services.list_settings( + db, + tenant_id, + company_id + ) + +@router.put("/", response_model=InvoiceSettingsResponse) +def save_invoice_settings( + settings_data: InvoiceSettingsRequest, + company_id: int = Query(...), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """Create or update invoice settings""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + + return services.upsert_settings( + db, + tenant_id, + company_id, + settings_data + ) diff --git a/backend/api/v1/modules/a76/invoice_settings/services.py b/backend/api/v1/modules/a76/invoice_settings/services.py new file mode 100644 index 00000000..996fcac7 --- /dev/null +++ b/backend/api/v1/modules/a76/invoice_settings/services.py @@ -0,0 +1,70 @@ +from typing import List, Optional +from sqlalchemy.orm import Session +from sqlalchemy import select +from fastapi import HTTPException +from api.v1.modules.a76.invoice_settings.models import InvoiceSettings +from api.v1.modules.a76.invoice_settings.dto import InvoiceSettingsRequest, OperationType + +def get_settings( + db: Session, + tenant_id: int, + company_id: int, + invoice_type: str, + operation_type: OperationType +) -> Optional[InvoiceSettings]: + """Retrieve settings for a specific context""" + stmt = select(InvoiceSettings).where( + InvoiceSettings.tenant_id == tenant_id, + InvoiceSettings.company_id == company_id, + InvoiceSettings.invoice_type == invoice_type, + InvoiceSettings.operation_type == operation_type.value + ) + return db.execute(stmt).scalar_one_or_none() + +def list_settings( + db: Session, + tenant_id: int, + company_id: int +) -> List[InvoiceSettings]: + """List all settings for a company""" + stmt = select(InvoiceSettings).where( + InvoiceSettings.tenant_id == tenant_id, + InvoiceSettings.company_id == company_id + ) + return db.execute(stmt).scalars().all() + +def upsert_settings( + db: Session, + tenant_id: int, + company_id: int, + settings_data: InvoiceSettingsRequest +) -> InvoiceSettings: + """Create or update settings""" + # Check if exists + existing = get_settings( + db, + tenant_id, + company_id, + settings_data.invoice_type, + settings_data.operation_type + ) + + if existing: + existing.settings = settings_data.settings + db.commit() + db.refresh(existing) + return existing + + # Create new + new_settings = InvoiceSettings( + tenant_id=tenant_id, + company_id=company_id, + invoice_type=settings_data.invoice_type, + operation_type=settings_data.operation_type.value, + settings=settings_data.settings + ) + + db.add(new_settings) + db.commit() + db.refresh(new_settings) + return new_settings diff --git a/backend/api/v1/modules/a76/invoices/catalog_service.py b/backend/api/v1/modules/a76/invoices/catalog_service.py new file mode 100644 index 00000000..9ad64b0b --- /dev/null +++ b/backend/api/v1/modules/a76/invoices/catalog_service.py @@ -0,0 +1,217 @@ + +from typing import Dict, Any, List, Optional +from sqlalchemy.orm import Session + +# Import Reference Data Models +from api.v1.modules.public.reference_data.invoice_types.models import InvoiceType +from api.v1.modules.public.reference_data.currency_types.models import CurrencyType +from api.v1.modules.public.reference_data.transport_types.models import TransportType +from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection +from api.v1.modules.public.reference_data.code_pedimento_regimens.models import CodePedimentoRegimen +from api.v1.modules.public.reference_data.incoterms.models import Incoterm +from api.v1.modules.public.reference_data.transport_modes.models import TransportMode + +# Import A76 Services +from api.v1.modules.a76.customs_brokers.services import CustomsBrokerService +from api.v1.modules.a76.clients_and_providers.service import ClientProviderService +from api.v1.modules.a76.transportation.transporters.services import TransporterService +from api.v1.modules.a76.transportation.vehicles.services import VehicleService +from api.v1.modules.a76.transportation.drivers.services import DriverService +from api.v1.modules.a76.transportation.trailers.services import TrailerService +from api.v1.modules.a76.general_catalogs.seal.services import SealService +from api.v1.modules.a76.pedmientos.services.pedimentos import PedimentosService + +# Import DTOs for mapping +from api.v1.modules.public.reference_data.invoice_types.dto import InvoiceTypeDTO +from api.v1.modules.a76.customs_brokers.dto import CustomsBrokerResponseDTO +from api.v1.modules.a76.clients_and_providers.dto import ClientProviderResponseDTO +from api.v1.modules.public.reference_data.currency_types.dto import CurrencyTypeDTO +from api.v1.modules.public.reference_data.transport_types.dto import TransportTypeDTO +from api.v1.modules.public.reference_data.customs_sections.dto import CustomsSectionDTO +from api.v1.modules.public.reference_data.code_pedimento_regimens.dto import CodePedimentoRegimenDTO +from api.v1.modules.public.reference_data.incoterms.dto import IncotermDTO +from api.v1.modules.public.reference_data.transport_modes.dto import TransportModeDTO + +# Additional DTOs +from api.v1.modules.a76.transportation.transporters.dto import TransporterResponseDTO +from api.v1.modules.a76.transportation.vehicles.dto import VehicleResponseDTO +from api.v1.modules.a76.transportation.drivers.dto import DriverResponseDTO +from api.v1.modules.a76.transportation.trailers.dto import TrailerResponseDTO +from api.v1.modules.a76.general_catalogs.seal.dto import SealResponseDTO +from api.v1.modules.a76.pedmientos.dtos.pedimentos import PedimentosResponse + +from .schemas import InvoiceCatalogsResponse, InvoiceCreationResponse, InvoiceEditionResponse + +class InvoiceCatalogService: + """Service to fetch consolidated catalogs for Invoice views""" + + @staticmethod + def get_catalogs(db: Session, tenant_id: int, company_id: int) -> InvoiceCatalogsResponse: + """Fetch all catalogs""" + + response = InvoiceCatalogsResponse() + + # Helper to fetch reference data (no company_id needed) + def fetch_ref_data(): + response.invoice_types = [ + InvoiceTypeDTO.model_validate(obj) for obj in db.query(InvoiceType).all() + ] + response.currency_types = [ + CurrencyTypeDTO.model_validate(obj) for obj in db.query(CurrencyType).all() + ] + response.transport_types = [ + TransportTypeDTO.model_validate(obj) for obj in db.query(TransportType).all() + ] + response.customs_sections = [ + CustomsSectionDTO.model_validate(obj) for obj in db.query(CustomsSection).all() + ] + response.code_pedimento_regimens = [ + CodePedimentoRegimenDTO.model_validate(obj) for obj in db.query(CodePedimentoRegimen).all() + ] + response.incoterms = [ + IncotermDTO.model_validate(obj) for obj in db.query(Incoterm).all() + ] + response.transport_modes = [ + TransportModeDTO.model_validate(obj) for obj in db.query(TransportMode).all() + ] + + # Helper to fetch tenant/company specific data + def fetch_tenant_data(): + # Customs Brokers + try: + brokers, _ = CustomsBrokerService.get_all(db, tenant_id, company_id, limit=1000) + response.customs_brokers = [ + CustomsBrokerResponseDTO.model_validate(obj) for obj in brokers + ] + except Exception as e: + print(f"Error fetching customs brokers: {e}") + + # Clients and Providers + try: + # Fetch all clients/providers + # Note: get_all returns list[ClientProvider] + all_cps, _ = ClientProviderService.get_all( + db, tenant_id, company_id, limit=2000 + ) + + # Helper to safely check client type (handles string or Enum) + def is_type(obj, types): + val = obj.client_or_provider + # If it's an enum, get its value, otherwise use as string + val_str = val.value if hasattr(val, 'value') else str(val) + return val_str in types + + response.clients = [ + ClientProviderResponseDTO.model_validate(obj) for obj in all_cps + if is_type(obj, ['client', 'both']) + ] + response.providers = [ + ClientProviderResponseDTO.model_validate(obj) for obj in all_cps + if is_type(obj, ['provider', 'both']) + ] + except Exception as e: + print(f"Error fetching clients/providers: {e}") + + + + # Transporters + try: + transporters, _ = TransporterService.get_all(db, tenant_id, company_id, limit=1000) + response.transporters = [ + TransporterResponseDTO.model_validate(t) for t in transporters + ] + except Exception as e: + print(f"Error fetching transporters: {e}") + + # Vehicles + try: + vehicles, _ = VehicleService.get_all(db, tenant_id, company_id, limit=1000) + response.vehicles = [ + VehicleResponseDTO.model_validate(v) for v in vehicles + ] + except Exception as e: + print(f"Error fetching vehicles: {e}") + + # Drivers + try: + drivers, _ = DriverService.get_all(db, tenant_id, company_id, limit=1000) + response.drivers = [ + DriverResponseDTO.model_validate(d) for d in drivers + ] + except Exception as e: + print(f"Error fetching drivers: {e}") + + # Trailers + try: + trailers, _ = TrailerService.get_all(db, tenant_id, company_id, limit=1000) + response.trailers = [ + TrailerResponseDTO.model_validate(t) for t in trailers + ] + except Exception as e: + print(f"Error fetching trailers: {e}") + + # Seals + try: + seals, _ = SealService.get_all(db, tenant_id, company_id, limit=1000) + response.seals = [ + SealResponseDTO.model_validate(s) for s in seals + ] + except Exception as e: + print(f"Error fetching seals: {e}") + + # Pedimentos + try: + # Fetch recent pedimentos (e.g. last 100) or filtered if necessary + pedimentos, _ = PedimentosService.get_all(db, tenant_id, company_id, limit=100) + response.pedimentos = [ + # Use dict for now if PedimentosResponse fails due to complexity or just map fields manually if needed + # But PedimentosResponse has from_attributes=True + # Note: PedimentosResponse structure is complex with nested relations. + # If Pedimentos model is fully loaded (eager load in service), this should work. + # However, to be safe against recursion or huge payload, we might want a lighter DTO. + # Re-using PedimentosResponse for now but be cautious of payload size. + PedimentosResponse.model_validate(p) for p in pedimentos + ] + except Exception as e: + print(f"Error fetching pedimentos: {e}") + + try: + fetch_ref_data() + fetch_tenant_data() + except Exception as e: + print(f"Error fetching catalogs: {e}") + # In production, we might want to log this properly and potentially return partial data + # For now, re-raising might be safer to debug, but for resiliency we could suppress. + # Let's log and re-raise to ensure frontend knows something went wrong during dev. + import traceback + traceback.print_exc() + raise e + + return response + + @staticmethod + def get_creation_data(db: Session, tenant_id: int, company_id: int) -> InvoiceCreationResponse: + catalogs = InvoiceCatalogService.get_catalogs(db, tenant_id, company_id) + return InvoiceCreationResponse( + **catalogs.model_dump(), + is_create=True, + filters={} + ) + + @staticmethod + def get_edition_data(db: Session, invoice_id: int, tenant_id: int, company_id: int) -> Optional[InvoiceEditionResponse]: + catalogs = InvoiceCatalogService.get_catalogs(db, tenant_id, company_id) + + from .services import InvoiceService + invoice = InvoiceService.get_by_id(db, invoice_id, tenant_id, company_id) + + if not invoice: + return None + + return InvoiceEditionResponse( + **catalogs.model_dump(), + is_create=False, + invoice=invoice, + invoice_id=invoice_id, + filters={} + ) diff --git a/backend/api/v1/modules/a76/invoices/common/common_validators.py b/backend/api/v1/modules/a76/invoices/common/common_validators.py index d0c0bbf8..72a5abdf 100644 --- a/backend/api/v1/modules/a76/invoices/common/common_validators.py +++ b/backend/api/v1/modules/a76/invoices/common/common_validators.py @@ -1,3 +1,4 @@ +from typing import Optional from core.exceptions import ErrorCollector from .. import models from sqlalchemy.orm import Session @@ -8,21 +9,80 @@ def invoice_exists( invoice_number: str, tenant_id: int, company_id: int, - errors: ErrorCollector -) -> bool: - invoice_exists = ( - db.query(models.InvoiceHeader.id) + errors: Optional[ErrorCollector], +): + invoice = ( + db.query(models.InvoiceHeader) .filter( models.InvoiceHeader.invoice_number == invoice_number, models.InvoiceHeader.tenant_id == tenant_id, models.InvoiceHeader.company_id == company_id, ) - .first() + .first() ) - - if invoice_exists: - errors.add_duplicate_error( + + if invoice: + if errors: + errors.add_duplicate_error( "invoice_number", invoice_number, f"Ya existe una factura con el número '{invoice_number}'", - ) \ No newline at end of file + ) + return invoice + return None + +def invoice_exists_by_id( + db: Session, + invoice_id: str, + tenant_id: int, + company_id: int, + errors: Optional[ErrorCollector], +): + invoice = ( + db.query(models.InvoiceHeader) + .filter( + models.InvoiceHeader.id == invoice_id, + models.InvoiceHeader.tenant_id == tenant_id, + models.InvoiceHeader.company_id == company_id, + ) + .first() + ) + + if invoice: + if errors: + errors.add_duplicate_error( + "invoice_id", + invoice_id, + f"Ya existe una factura con el número '{invoice_id}'", + ) + return invoice + return None + + +def invoice_updated( + db: Session, + invoice_id: str, + tenant_id: int, + company_id: int, + errors: ErrorCollector, +) -> bool: + is_updated = ( + db.query(models.InvoiceHeader.is_updated) + .filter( + models.InvoiceHeader.id == invoice_id, + models.InvoiceHeader.tenant_id == tenant_id, + models.InvoiceHeader.company_id == company_id, + ) + .scalar() + ) + + if is_updated: + errors.add_error( + field="invoice_number", + message=f"La factura con el número '{invoice_id}' ya ha sido actualizada y no se puede modificar.", + solution="Capturar otro número de Factura de Importación Temporal o Desactualizar la factura.", + code="INVOICE_UPDATED", + value=invoice_id, + ) + return True + return False diff --git a/backend/api/v1/modules/a76/invoices/imports/temporary/validators/common.py b/backend/api/v1/modules/a76/invoices/imports/temporary/validators/common.py index afba527a..90386af6 100644 --- a/backend/api/v1/modules/a76/invoices/imports/temporary/validators/common.py +++ b/backend/api/v1/modules/a76/invoices/imports/temporary/validators/common.py @@ -109,9 +109,11 @@ def validate_common( code="NOT_FOUND", value=invoice.compliance_mx.pedimento_id, ) + return # Stop here if pedimento not found if not invoice.compliance_mx.is_regime_change: - if not pedimento.operation_type == "imp": + # Validar que el pedimento sea de importación (hardcoded restriction) + if pedimento.operation_type != "imp": errors.add_error( field="compliance_mx.pedimento_id", message="El Pedimento seleccionado no corresponde a una Importación.", @@ -120,7 +122,10 @@ def validate_common( value=pedimento.operation_type, ) else: - if pedimento.regime in ["EXD", "ETE", "ETR"]: + # Validar regímenes incompatibles + export_only_regimes = ["EXD", "ETE", "ETR"] + + if pedimento.regime in export_only_regimes: errors.add_error( field="compliance_mx.pedimento_id", message="El Pedimento seleccionado corresponde a una Exportación, no a una Importación.", @@ -128,7 +133,10 @@ def validate_common( code="INVALID_REGIME", value=pedimento.regime, ) - else: + + # Validar que el tipo de documento coincida con el régimen del pedimento + # NOTA: Solo validamos si no hay errores previos y si document_type está presente + if not errors.has_errors() and invoice.document_type: if invoice.document_type.upper().strip() != pedimento.regime: errors.add_error( field="document_type", @@ -140,43 +148,42 @@ def validate_common( value=invoice.document_type, ) else: - if pedimento.operation_type != 2: + # Cambio de Régimen - Generalmente es de Importación Temporal a Definitiva (IMD) + # En el código legacy se comparaba pedimento.operation_type != 2. + # Si asumimos que 2 era Importación en el sistema anterior: + if pedimento.operation_type != "imp": errors.add_error( field="compliance_mx.pedimento_id", - message="El Pedimento seleccionado no corresponde a una Importacion Definitiva.", - solution=["Selecciona un Pedimento de Importacion Definitiva"], + message="El Pedimento seleccionado no corresponde a una Importación (requerido para Cambio de Régimen).", + solution=["Selecciona un Pedimento de Importación"], code="INVALID_OPERATION_TYPE", value=pedimento.operation_type, ) else: - if pedimento.regime != "IMD": + if pedimento.regime != "IMD" and invoice.document_type == "IMD": + # Si el destino es IMD, validamos que el pedimento original sea de importación + # (aunque usualmente el pedimento que se asocia aquí es el nuevo, el de IMD) + pass + + if invoice.document_type.upper().strip() != pedimento.regime: + errors.add_error( + field="document_type", + message=f"El Tipo de Documento '{invoice.document_type}' no coincide con el Régimen '{pedimento.regime}' del Pedimento seleccionado.", + solution=[ + "Ajusta el Tipo de Documento o selecciona otro Pedimento" + ], + code="REGIME_MISMATCH", + value=invoice.document_type, + ) + + if pedimento.pedimento_code not in ["A1", "A3"]: errors.add_error( field="compliance_mx.pedimento_id", - message=f"El Pedimento {pedimento.customs_office}-{pedimento.license}-{pedimento.pedimento_number} no corresponde a una Importacion Definitiva.", - solution=["Selecciona un Pedimento de Importacion Definitiva"], - code="INVALID_REGIME", - value=pedimento.regime, + message=f"El Pedimento seleccionado no es de tipo A1 o A3 requerido para Cambio de Régimen.", + solution=["Selecciona un Pedimento de tipo A1 o A3"], + code="INVALID_PEDEMENTO_CODE", + value=pedimento.pedimento_code, ) - else: - if invoice.document_type.upper().strip() != pedimento.regime: - errors.add_error( - field="document_type", - message=f"El Tipo de Documento '{invoice.document_type}' no coincide con el Régimen '{pedimento.regime}' del Pedimento seleccionado.", - solution=[ - "Ajusta el Tipo de Documento o selecciona otro Pedimento" - ], - code="REGIME_MISMATCH", - value=invoice.document_type, - ) - else: - if pedimento.pedimento_code not in ["A1", "A3"]: - errors.add_error( - field="compliance_mx.pedimento_id", - message=f"El Pedimento seleccionado no es de tipo A1 o A3 requerido para Cambio de Régimen.", - solution=["Selecciona un Pedimento de tipo A1 o A3"], - code="INVALID_PEDEMENTO_CODE", - value=pedimento.pedimento_code, - ) if pedimento.pedimento_type == "consolidated": # Convertir invoice_date a date si es datetime para poder comparar @@ -207,22 +214,24 @@ def validate_common( value=invoice.invoice_date, ) - if not invoice.compliance_mx.remesa: - errors.add_error( - field="compliance_mx.remesa", - message="El campo Remesa es obligatorio cuando se asocia un Pedimento.", - solution=["Proporciona un valor para Remesa"], - code="REQUIRED_FIELD", - value=invoice.compliance_mx.remesa, - ) - elif invoice.compliance_mx.remesa == 0: - errors.add_error( - field="compliance_mx.remesa", - message="El campo Remesa no puede ser cero cuando se asocia un Pedimento.", - solution=["Proporciona un valor válido para Remesa"], - code="INVALID_VALUE", - value=invoice.compliance_mx.remesa, - ) + # Remesa check + if pedimento.pedimento_type == "consolidated": + if not invoice.compliance_mx.remesa: + errors.add_error( + field="compliance_mx.remesa", + message="El campo Remesa es obligatorio cuando se asocia un Pedimento consolidado.", + solution=["Proporciona un valor para Remesa"], + code="REQUIRED_FIELD", + value=invoice.compliance_mx.remesa, + ) + elif invoice.compliance_mx.remesa == 0: + errors.add_error( + field="compliance_mx.remesa", + message="El campo Remesa no puede ser cero cuando se asocia un Pedimento.", + solution=["Proporciona un valor válido para Remesa"], + code="INVALID_VALUE", + value=invoice.compliance_mx.remesa, + ) duplicated_remesa = ( db.query(InvoiceComplianceMx) @@ -242,57 +251,32 @@ def validate_common( code="DUPLICATE_VALUE", value=invoice.compliance_mx.remesa, ) + + # Financials checks (if provided) + if invoice.financials: + if not invoice.financials.exchange_rate or invoice.financials.exchange_rate <= 0: + exchange_rate_exists = ( + db.query(ExchangeRate) + .filter( + func.date(ExchangeRate.date) == invoice.invoice_date, + ExchangeRate.tenant_id == tenant_id, + ExchangeRate.company_id == company_id, + ) + .first() + ) + if not exchange_rate_exists: + errors.add_error( + field="financials.exchange_rate", + message=f"No existe un Tipo de Cambio registrado para la fecha {invoice.invoice_date}.", + solution=["Registra el Tipo de Cambio en el catálogo correspondiente"], + code="EXCHANGE_RATE_NOT_FOUND", + value=invoice.financials.exchange_rate, + ) + else: + invoice.financials.exchange_rate = exchange_rate_exists.value else: - if not invoice.compliance_mx.is_pedimento_pending: - errors.add_error( - field="compliance_mx.pedimento_id", - message="El campo Pedimento es obligatorio cuando no se indica que el Pedimento está pendiente.", - solution=[ - "Proporciona un ID de Pedimento", - "Marca el campo Pedimento Pendiente", - ], - code="REQUIRED_FIELD", - value=invoice.compliance_mx.pedimento_id, - ) - - if invoice.compliance_mx.remesa and not invoice.compliance_mx.pedimento_id: - errors.add_error( - field="compliance_mx.pedimento_id", - message="El campo Pedimento es obligatorio cuando se proporciona Remesa.", - solution=["Proporciona un ID de Pedimento"], - code="REQUIRED_FIELD", - value=invoice.compliance_mx.pedimento_id, - ) - - if len(invoice.invoice_number) > 100: - errors.add_error( - field="invoice_number", - message="El número de factura excede la longitud máxima de 100 caracteres.", - solution=["Acorta el número de factura a 100 caracteres o menos"], - code="MAX_LENGTH_EXCEEDED", - value=invoice.invoice_number, - ) - - if not invoice.financials.exchange_rate or invoice.financials.exchange_rate <= 0: - exchange_rate_exists = ( - db.query(ExchangeRate) - .filter( - func.date(ExchangeRate.date) == invoice.invoice_date, - ExchangeRate.tenant_id == tenant_id, - ExchangeRate.company_id == company_id, - ) - .first() - ) - if not exchange_rate_exists: - errors.add_error( - field="financials.exchange_rate", - message=f"No existe un Tipo de Cambio registrado para la fecha {invoice.invoice_date}.", - solution=["Registra el Tipo de Cambio en el catálogo correspondiente"], - code="EXCHANGE_RATE_NOT_FOUND", - value=invoice.financials.exchange_rate, - ) - else: - invoice.financials.exchange_rate = exchange_rate_exists.value + # If financials missing, we might want to error if it's required for this operation + pass if invoice.compliance_mx.is_regime_change: if invoice.document_type in ["EXD", "ETE", "ETR"]: @@ -395,62 +379,47 @@ def validate_common( value=invoice.compliance_mx.customs_broker_id, ) - # Validar transportista solo si se proporciona - if invoice.logistics.carrier_id: - carrier_exists = ( - db.query(ClientProvider) - .filter( - ClientProvider.id == invoice.logistics.carrier_id, - ClientProvider.tenant_id == tenant_id, - ClientProvider.company_id == company_id, - ) - .first() - ) - if not carrier_exists: + if invoice.logistics: + if invoice.logistics.transport_num and not invoice.logistics.transport_num: + # logic ... + pass + + if invoice.logistics.transport_type not in [t.value for t in TransportType]: errors.add_error( - field="logistics.carrier_id", - message="El Transportista no existe en el Catálogo de Clientes y Proveedores.", - solution=["Verifica el ID del Transportista", "Revisa el catálogo"], - code="NOT_FOUND", - value=invoice.logistics.carrier_id, - ) - - if invoice.logistics.transport_type not in [t.value for t in TransportType]: - errors.add_error( - field="logistics.transport_type", - message="El Tipo de Transporte proporcionado no es válido.", - solution=[ - f"Selecciona un Tipo de Transporte válido: {[t.value for t in TransportType]}" - ], - code="INVALID_TRANSPORT_TYPE", - value=invoice.logistics.transport_type, - ) - else: - if ( - invoice.logistics.transport_type == "none" - and invoice.logistics.transport_num - ): - errors.add_error( - field="logistics.transport_num", - message="El Número de Transporte no debe proporcionarse cuando el Tipo de Transporte es 'none'.", + field="logistics.transport_type", + message="El Tipo de Transporte proporcionado no es válido.", solution=[ - "Elimina el Número de Transporte o selecciona un Tipo de Transporte válido" + f"Selecciona un Tipo de Transporte válido: {[t.value for t in TransportType]}" ], - code="INVALID_VALUE", - value=invoice.logistics.transport_num, + code="INVALID_TRANSPORT_TYPE", + value=invoice.logistics.transport_type, ) else: if ( - not invoice.logistics.transport_num - and invoice.logistics.transport_type != "none" + invoice.logistics.transport_type == "none" + and invoice.logistics.transport_num ): errors.add_error( field="logistics.transport_num", - message="El Número de Transporte es obligatorio cuando se proporciona un Tipo de Transporte distinto de 'none'.", - solution=["Proporciona un Número de Transporte válido"], - code="REQUIRED_FIELD", + message="El Número de Transporte no debe proporcionarse cuando el Tipo de Transporte es 'none'.", + solution=[ + "Elimina el Número de Transporte o selecciona un Tipo de Transporte válido" + ], + code="INVALID_VALUE", value=invoice.logistics.transport_num, ) + else: + if ( + not invoice.logistics.transport_num + and invoice.logistics.transport_type != "none" + ): + errors.add_error( + field="logistics.transport_num", + message="El Número de Transporte es obligatorio cuando se proporciona un Tipo de Transporte distinto de 'none'.", + solution=["Proporciona un Número de Transporte válido"], + code="REQUIRED_FIELD", + value=invoice.logistics.transport_num, + ) invoice.financials.currency = invoice.financials.currency or "foreign" diff --git a/backend/api/v1/modules/a76/invoices/imports/temporary/validators/create.py b/backend/api/v1/modules/a76/invoices/imports/temporary/validators/create.py index 56800ff5..79a6f0cb 100644 --- a/backend/api/v1/modules/a76/invoices/imports/temporary/validators/create.py +++ b/backend/api/v1/modules/a76/invoices/imports/temporary/validators/create.py @@ -14,7 +14,7 @@ def validate_create(db: Session, invoice: InvoiceHeaderCreate, tenant_id: int, c if not invoice.invoice_type: errors.add_required_error("invoice_type") - if not invoice.document_type: + if not invoice.document_type and invoice.invoice_type != "MEX": errors.add_required_error("document_type") if not invoice.invoice_number: @@ -54,34 +54,38 @@ def validate_create(db: Session, invoice: InvoiceHeaderCreate, tenant_id: int, c """Se retorna por que fallaron las validaciones generales""" return - if not invoice.compliance_mx.pedimento_id: - invoice.compliance_mx.remesa = None - - if not invoice.financials.exchange_rate: - invoice.financials.exchange_rate = db.query(ExchangeRate.value).filter(ExchangeRate.date == invoice.invoice_date).scalar() + if invoice.compliance_mx: + if not invoice.compliance_mx.pedimento_id: + invoice.compliance_mx.remesa = None + if invoice.financials: + if not invoice.financials.exchange_rate: + invoice.financials.exchange_rate = db.query(ExchangeRate.value).filter(ExchangeRate.date == invoice.invoice_date).scalar() + invoice.document_type = (invoice.document_type or "").upper() - if not invoice.logistics.transport_type: - invoice.logistics.transport_type = "none" - - if invoice.logistics.transport_type == "none" and invoice.logistics.transport_num: - invoice.logistics.transport_num = None - - if not invoice.financials.currency: - invoice.financials.currency = "foreign" - - if invoice.financials.currency == "local": - invoice.financials.currency_type = "MXN" - elif invoice.financials.currency_type == "foreign": - invoice.financials.currency = "USD" - elif invoice.financials.currency_type == "manual": - invoice.financials.currency_type = invoice.financials.currency_type.upper() - - invoice.logistics.incoterm = (invoice.logistics.incoterm or "").upper() - - if not invoice.logistics.weight_type: - invoice.logistics.weight_type = "kgs" + if invoice.logistics: + if not invoice.logistics.transport_type: + invoice.logistics.transport_type = "none" + + if invoice.logistics.transport_type == "none" and invoice.logistics.transport_num: + invoice.logistics.transport_num = None + + invoice.logistics.incoterm = (invoice.logistics.incoterm or "").upper() + + if not invoice.logistics.weight_type: + invoice.logistics.weight_type = "kgs" + + if invoice.financials: + if not invoice.financials.currency: + invoice.financials.currency = "foreign" + + if invoice.financials.currency == "local": + invoice.financials.currency_type = "MXN" + elif invoice.financials.currency == "foreign": + invoice.financials.currency_type = "USD" + elif invoice.financials.currency == "manual": + invoice.financials.currency_type = (invoice.financials.currency_type or "").upper() diff --git a/backend/api/v1/modules/a76/invoices/imports/temporary/validators/update.py b/backend/api/v1/modules/a76/invoices/imports/temporary/validators/update.py index da4cc970..9c254a9b 100644 --- a/backend/api/v1/modules/a76/invoices/imports/temporary/validators/update.py +++ b/backend/api/v1/modules/a76/invoices/imports/temporary/validators/update.py @@ -58,13 +58,13 @@ def validate_update( # Columna A: Pedimento (si no viene en CSV, usar el existente) if invoice_data.compliance_mx.pedimento_id: - invoice_data.compliance_mx.pedimento_id = clean_str(invoice_data.compliance_mx.pedimento_id) + invoice_data.compliance_mx.pedimento_id = invoice_data.compliance_mx.pedimento_id else: invoice_data.compliance_mx.pedimento_id = existing_invoice.compliance_mx.pedimento_id if existing_invoice.compliance_mx else None # Columna B: Remesa if invoice_data.compliance_mx.remesa: - invoice_data.compliance_mx.remesa = clean_str(invoice_data.compliance_mx.remesa) + invoice_data.compliance_mx.remesa = invoice_data.compliance_mx.remesa else: invoice_data.compliance_mx.remesa = existing_invoice.compliance_mx.remesa if existing_invoice.compliance_mx else None @@ -224,9 +224,10 @@ def validate_update( else: invoice_data.compliance_mx.aduana = existing_invoice.compliance_mx.aduana if existing_invoice.compliance_mx else None - # Validar que aduana sea obligatorio - if not invoice_data.compliance_mx or not invoice_data.compliance_mx.aduana: - errors.add_required_error("aduana") + # Validar que aduana sea obligatorio (excepto para MEX) + if existing_invoice.invoice_type != "MEX": + if not invoice_data.compliance_mx or not invoice_data.compliance_mx.aduana: + errors.add_required_error("aduana") # Columna AC: Sección de Despacho / Puerto de Entrada (Opcional) if invoice_data.compliance_mx and invoice_data.compliance_mx.port_of_entry: diff --git a/backend/api/v1/modules/a76/invoices/models.py b/backend/api/v1/modules/a76/invoices/models.py index 8e6f35d5..f3f9e0c7 100644 --- a/backend/api/v1/modules/a76/invoices/models.py +++ b/backend/api/v1/modules/a76/invoices/models.py @@ -58,7 +58,7 @@ class TransportType(str, Enum): PLATES = "licence plates" TRUCK = "truck" VESSEL = "vessel" - BARGE = "rail barge" + BARGE = "rail_barge" CONTAINER = "container" AIRPLANE = "airplane" GONDOLA = "gondola" @@ -82,9 +82,10 @@ class InvoiceHeader(Base, TenantScopedMixin, TimestampMixin): invoice_type: Mapped[str] = mapped_column( ForeignKey("public.invoice_types.key") ) # TIPOFACTURA / TIPODOC - document_type: Mapped[str] = mapped_column( - ForeignKey("public.pedimento_regimens.code") - ) # CLAVEDOCUMENTO / Clave de documento + document_type: Mapped[Optional[str]] = mapped_column( + ForeignKey("public.pedimento_regimens.code"), nullable=True + ) + # CLAVEDOCUMENTO / Clave de documento invoice_number: Mapped[str] = mapped_column( String(100) ) # FACTURAIMPO/FACTURAEXPO/FACTURAREMISION/FACTURAENVIO/FACTURASALIDA @@ -299,6 +300,9 @@ class InvoiceComplianceMx(Base, TenantScopedMixin, TimestampMixin): act_value: Mapped[Optional[str]] = mapped_column( String(5) ) # ACTVALOR / Actualizar valor + rule_3121_parties_ii: Mapped[Optional[bool]] = mapped_column( + Boolean, default=False, server_default="false" + ) # REGLA3121PARTESII / Regla 3.1.21 Partes II is_pedimento_pending: Mapped[Optional[bool]] = mapped_column( Boolean, default=False, server_default="false" ) # PED_PENDIENTE_ASIGNAR (Mapear 1 -> True, 0 -> False) @@ -375,7 +379,7 @@ class InvoiceComplianceMx(Base, TenantScopedMixin, TimestampMixin): String(1) ) # RAZONEXPORTACION / Razón de exportación signature_key: Mapped[Optional[str]] = mapped_column( - String(10) + String(100) ) # CLAVEFIRMA / Clave de firma # SM specific @@ -488,6 +492,9 @@ class InvoiceFinancials(Base, TenantScopedMixin, TimestampMixin): other_increments: Mapped[Optional[float]] = mapped_column( Numeric(19, 8), default=0, server_default="0" ) # OTROSINCREMENTA / Otros incrementables + other_deductibles: Mapped[Optional[float]] = mapped_column( + Numeric(19, 8), default=0, server_default="0" + ) # OTROSDEDUCIBLES / Otros deducibles total_increments_mn: Mapped[Optional[float]] = mapped_column( Numeric(23, 8), default=0, server_default="0" ) # TOTALINCREMMN / Total incrementables MN diff --git a/backend/api/v1/modules/a76/invoices/routes.py b/backend/api/v1/modules/a76/invoices/routes.py index ceb430d9..bf95bf9f 100644 --- a/backend/api/v1/modules/a76/invoices/routes.py +++ b/backend/api/v1/modules/a76/invoices/routes.py @@ -6,10 +6,36 @@ from fastapi import APIRouter, Depends, HTTPException, Query, Path from sqlalchemy.orm import Session from . import schemas, services +from .catalog_service import InvoiceCatalogService # Create main router router = APIRouter() +@router.get("/invoices/creation-data", response_model=schemas.InvoiceCreationResponse) +def get_creation_data( + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """Get consolidated data for creating a new invoice""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + return InvoiceCatalogService.get_creation_data(db, tenant_id, company_id) + +@router.get("/invoices/{invoice_id}/edition-data", response_model=schemas.InvoiceEditionResponse) +def get_edition_data( + invoice_id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """Get consolidated data for editing an existing invoice""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + data = InvoiceCatalogService.get_edition_data(db, invoice_id, tenant_id, company_id) + if not data: + raise HTTPException(status_code=404, detail="Invoice not found") + return data + + # Create CRUD routes for Invoice Header using TenantCRUDRoutes invoice_crud = TenantCRUDRoutes( service=services.InvoiceService, @@ -21,7 +47,7 @@ invoice_crud = TenantCRUDRoutes( resource_name="Invoice", id_name="invoice_id", id_type=int, - enable_list=True, # Enable list endpoint with pagination + enable_list=False, # Disable auto-list to override with custom filter enable_filters=True, # Enable filters for status, operation_type, etc. list_permissions=[], get_permissions=[], @@ -36,6 +62,53 @@ invoice_crud = TenantCRUDRoutes( router.include_router(invoice_crud.router) +@router.get("/invoices/", response_model=schemas.InvoiceHeaderListResponse) +def list_invoices( + company_id: int = Query(..., description="Company ID"), + page: int = Query(1, ge=1, description="Page number"), + page_size: int = Query(50, ge=1, le=200, description="Items per page"), + search: str = Query(None, description="Search by invoice number"), + status: bool = Query(None, description="Filter by status"), + operation_type: schemas.OperationType = Query(None, description="Filter by operation type"), + invoice_type: str = Query(None, description="Filter by invoice type"), + manifest_number: str = Query(None, description="Filter by manifest number"), + pedimento: str = Query(None, description="Filter by pedimento"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """ + List invoices with optional filters, including manifest_number. + """ + print(f"DEBUG: list_invoices called with manifest_number={manifest_number}") + tenant_id = validate_access_to_resource(db, company_id, current_user) + print(f"DEBUG: tenant_id={tenant_id}, company_id={company_id}") + + skip = (page - 1) * page_size + filters = { + "invoice_number": search, + "status": status, + "operation_type": operation_type, + "invoice_type": invoice_type, + "manifest_number": manifest_number, + "pedimento": pedimento, + } + + # Remove None values + filters = {k: v for k, v in filters.items() if v is not None} + + items, total = services.InvoiceService.get_all( + db, tenant_id, company_id, skip=skip, limit=page_size, filters=filters + ) + print(f"DEBUG: InvoiceService returned {len(items)} items, total={total}") + + return { + "items": items, + "total": total, + "page": page, + "page_size": page_size + } + + # Additional nested routes for child resources # --- Logistics Routes --- diff --git a/backend/api/v1/modules/a76/invoices/schemas.py b/backend/api/v1/modules/a76/invoices/schemas.py index 37ac73b2..f117377e 100644 --- a/backend/api/v1/modules/a76/invoices/schemas.py +++ b/backend/api/v1/modules/a76/invoices/schemas.py @@ -1,7 +1,7 @@ from typing import Literal, Optional, List from datetime import datetime, date from decimal import Decimal -from pydantic import BaseModel, Field +from pydantic import BaseModel, Field, field_validator from .models import ( DestinationOriginCove, OperationType, @@ -22,8 +22,8 @@ class InvoiceHeaderBase(BaseModel): invoice_type: Optional[str] = Field( None, max_length=5, description="Invoice type key" ) - document_type: str = Field( - ..., max_length=3, description="Document type (Regimen Aduanero)" + document_type: Optional[str] = Field( + None, max_length=3, description="Document type (Regimen Aduanero)" ) invoice_number: Optional[str] = Field( None, max_length=100, description="Invoice number" @@ -113,13 +113,13 @@ class InvoiceComplianceMxBase(BaseModel): manifest_number: Optional[str] = Field( None, max_length=15, description="Manifest number" ) - provider_header: str = Field(None, max_length=20, description="Provider header") - provider_id: int = Field(None, description="Provider ID") - sold_to_header: str = Field(None, max_length=20, description="Sold to header") - sold_to_id: int = Field(None, description="Sold to ID") - shipped_to_header: str = Field(None, max_length=20, description="Shipped to header") - shipped_to_id: int = Field(None, description="Shipped to ID") - shipped_by_header: Optional[int] = Field( + provider_header: Optional[str] = Field(None, max_length=20, description="Provider header") + provider_id: Optional[int] = Field(None, description="Provider ID") + sold_to_header: Optional[str] = Field(None, max_length=20, description="Sold to header") + sold_to_id: Optional[int] = Field(None, description="Sold to ID") + shipped_to_header: Optional[str] = Field(None, max_length=20, description="Shipped to header") + shipped_to_id: Optional[int] = Field(None, description="Shipped to ID") + shipped_by_header: Optional[str] = Field( None, max_length=20, description="Shipped by header" ) shipped_by_id: Optional[int] = Field(None, description="Shipped by ID") @@ -139,6 +139,9 @@ class InvoiceComplianceMxBase(BaseModel): which_exchange_rate: Optional[str] = Field( None, max_length=5, description="Which exchange rate" ) + rule_3121_parties_ii: Optional[bool] = Field( + False, description="Is Rule 3.1.21 Parties II" + ) value_method: Optional[str] = Field(None, max_length=2, description="Value method") act_value: Optional[str] = Field(None, max_length=5, description="Act value") is_pedimento_pending: Optional[bool] = Field(False, description="Is pedimento pending") @@ -187,7 +190,7 @@ class InvoiceComplianceMxBase(BaseModel): None, max_length=1, description="Reason for export" ) signature_key: Optional[str] = Field( - None, max_length=10, description="Signature key" + None, max_length=100, description="Signature key" ) sem_id: Optional[int] = Field(None, description="SEM ID") @@ -248,6 +251,7 @@ class InvoiceFinancialsBase(BaseModel): insurance_value: Optional[Decimal] = Field(None, description="Insurance value") packaging: Optional[Decimal] = Field(None, description="Packaging") other_increments: Optional[Decimal] = Field(None, description="Other increments") + other_deductibles: Optional[Decimal] = Field(None, description="Other deductibles") total_increments_mn: Optional[Decimal] = Field( None, description="Total increments in MXN" ) @@ -318,6 +322,13 @@ class InvoiceLogisticsBase(BaseModel): weight_type: WeightUnit = Field( default="kgs", max_length=3, description="Weight type" ) + + @field_validator("weight_type", mode="before") + @classmethod + def normalize_weight_type(cls, v): + if isinstance(v, str): + return v.lower() + return v container_types: Optional[str] = Field( None, max_length=500, description="Container types" ) @@ -426,10 +437,11 @@ class InvoiceHeaderCreate(InvoiceHeaderBase): # --- Update Schemas --- + class InvoiceComplianceMxUpdate(InvoiceComplianceMxBase): """Schema for updating Compliance MX""" - pass + is_pedimento_pending: Optional[bool] = None class InvoiceFinancialsUpdate(InvoiceFinancialsBase): @@ -460,6 +472,10 @@ class InvoiceHeaderUpdate(InvoiceHeaderBase): """Schema for updating Invoice Header with nested relations""" id: int + document_type: Optional[str] = None + invoice_date: Optional[date] = None + operation_type: Optional[OperationType] = None + compliance_mx: Optional[InvoiceComplianceMxUpdate] = None financials: Optional[InvoiceFinancialsUpdate] = None logistics: Optional[InvoiceLogisticsUpdate] = None @@ -546,3 +562,67 @@ class InvoiceHeaderResponse(InvoiceHeaderBase): class Config: from_attributes = True + + +class InvoiceHeaderListResponse(BaseModel): + items: List[InvoiceHeaderResponse] + total: int + page: int + +# --- Consolidated Response Schemas --- + +# Import necessary DTOs from other modules +from api.v1.modules.public.reference_data.invoice_types.dto import InvoiceTypeDTO +from api.v1.modules.a76.customs_brokers.dto import CustomsBrokerResponseDTO +from api.v1.modules.a76.clients_and_providers.dto import ClientProviderResponseDTO +from api.v1.modules.public.reference_data.currency_types.dto import CurrencyTypeDTO +from api.v1.modules.public.reference_data.transport_types.dto import TransportTypeDTO +from api.v1.modules.public.reference_data.customs_sections.dto import CustomsSectionDTO +from api.v1.modules.public.reference_data.incoterms.dto import IncotermDTO +from api.v1.modules.public.reference_data.transport_modes.dto import TransportModeDTO +from api.v1.modules.public.reference_data.code_pedimento_regimens.dto import CodePedimentoRegimenDTO + +# TODO: Check if these paths are correct or need adjustment based on actual file locations +# Using Any for now for potentially complex or unverified paths to avoid immediate ImportErrors +# Detailed verification is needed for: +# - TransporterDTO +# - VehicleDTO +# - DriverDTO +# - TrailerDTO +# - SealResponseDTO +# - PedimentoDTO + +class InvoiceCatalogsResponse(BaseModel): + """Consolidated response for all catalogs needed in Invoice Create/Edit views""" + invoice_types: List[InvoiceTypeDTO] = [] + customs_brokers: List[CustomsBrokerResponseDTO] = [] + clients: List[ClientProviderResponseDTO] = [] + providers: List[ClientProviderResponseDTO] = [] + currency_types: List[CurrencyTypeDTO] = [] + transport_types: List[TransportTypeDTO] = [] + transporters: List[dict] = [] # Placeholder, refine with actual DTO + vehicles: List[dict] = [] # Placeholder, refine with actual DTO + drivers: List[dict] = [] # Placeholder, refine with actual DTO + trailers: List[dict] = [] # Placeholder, refine with actual DTO + customs_sections: List[CustomsSectionDTO] = [] + code_pedimento_regimens: List[CodePedimentoRegimenDTO] = [] + seals: List[dict] = [] # Placeholder, refine with actual DTO + incoterms: List[IncotermDTO] = [] + pedimentos: List[dict] = [] # Placeholder, refine with actual DTO + transport_modes: List[TransportModeDTO] = [] + default_settings: Optional[dict] = None + +class InvoiceCreationResponse(InvoiceCatalogsResponse): + """Response for Invoice Creation View""" + is_create: bool = True + invoice: Optional[dict] = None # Should be null for creation + invoice_id: Optional[int] = None + filters: Optional[dict] = None # Pre-filled filters if any + +class InvoiceEditionResponse(InvoiceCatalogsResponse): + """Response for Invoice Edition View""" + is_create: bool = False + invoice: InvoiceHeaderResponse + invoice_id: int + filters: Optional[dict] = None + diff --git a/backend/api/v1/modules/a76/invoices/services.py b/backend/api/v1/modules/a76/invoices/services.py index 7042cca8..f3b0681b 100644 --- a/backend/api/v1/modules/a76/invoices/services.py +++ b/backend/api/v1/modules/a76/invoices/services.py @@ -73,6 +73,16 @@ class InvoiceService: ): query = query.filter(models.InvoiceHeader.operation_type != "REPAR") + if filters.get("manifest_number"): + # Avoid duplicate joins if pedimento filter was also applied (though rare in this context) + # For safety, we can just use the relationship attribute directly if mapped, + # but explicit join is clearer given the previous pattern. + # Assuming SQLAlchemy handles the join overlap or we just accept it for now. + # To be safe and consistent with previous 'pedimento' block: + query = query.join(models.InvoiceComplianceMx).filter( + models.InvoiceComplianceMx.manifest_number.ilike(f"%{filters['manifest_number']}%") + ) + total = query.count() items = query.offset(skip).limit(limit).all() return items, total @@ -118,6 +128,10 @@ class InvoiceService: invoice_dict = clean_dict(raw_invoice_dict) invoice_dict["tenant_id"] = tenant_id invoice_dict["company_id"] = company_id + + # Ensure document_type respects DB constraints for MEX invoices (bypass clean_dict) + if invoice_dict.get("invoice_type") == "MEX" and not invoice_dict.get("document_type"): + invoice_dict["document_type"] = None new_invoice = models.InvoiceHeader(**invoice_dict) @@ -291,6 +305,23 @@ class InvoiceService: new_financials = models.InvoiceFinancials(**financials_dict) db.add(new_financials) + # Update logistics if provided + if invoice_data.logistics is not None: + if invoice.logistics: + for key, value in invoice_data.logistics.model_dump( + exclude_unset=True + ).items(): + if value == "": + value = None + setattr(invoice.logistics, key, value) + else: + logistics_dict = invoice_data.logistics.model_dump() + logistics_dict["invoice_id"] = invoice.id + logistics_dict["tenant_id"] = tenant_id + logistics_dict["company_id"] = company_id + new_logistics = models.InvoiceLogistics(**logistics_dict) + db.add(new_logistics) + db.commit() db.refresh(invoice) return invoice diff --git a/backend/api/v1/modules/a76/item_presets/dto.py b/backend/api/v1/modules/a76/item_presets/dto.py new file mode 100644 index 00000000..e37655c9 --- /dev/null +++ b/backend/api/v1/modules/a76/item_presets/dto.py @@ -0,0 +1,25 @@ +from typing import Any, Dict, List, Optional +from pydantic import BaseModel, ConfigDict + +class ItemPresetBase(BaseModel): + name: str + description: Optional[str] = None + items: List[Dict[str, Any]] + +class ItemPresetCreate(ItemPresetBase): + """Schema for creating a new item preset""" + pass + +class ItemPresetUpdate(BaseModel): + """Schema for updating an existing item preset""" + name: Optional[str] = None + description: Optional[str] = None + items: Optional[List[Dict[str, Any]]] = None + +class ItemPresetResponse(ItemPresetBase): + """Schema for returning an item preset""" + id: int + tenant_id: int + company_id: int + + model_config = ConfigDict(from_attributes=True) diff --git a/backend/api/v1/modules/a76/item_presets/models.py b/backend/api/v1/modules/a76/item_presets/models.py new file mode 100644 index 00000000..a63dcd4b --- /dev/null +++ b/backend/api/v1/modules/a76/item_presets/models.py @@ -0,0 +1,18 @@ +from typing import Any, Dict, List +from sqlalchemy import String, Integer, JSON +from sqlalchemy.orm import Mapped, mapped_column +from core.database import Base +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin + + +class ItemPreset(Base, TenantScopedMixin, TimestampMixin): + __tablename__ = "item_presets" + __table_args__ = {"schema": "a76"} + + id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) + name: Mapped[str] = mapped_column(String(100), nullable=False) + description: Mapped[str | None] = mapped_column(String(500), nullable=True) + items: Mapped[List[Dict[str, Any]]] = mapped_column(JSON, nullable=False, default=[]) + + def __repr__(self): + return f"" diff --git a/backend/api/v1/modules/a76/item_presets/routes.py b/backend/api/v1/modules/a76/item_presets/routes.py new file mode 100644 index 00000000..0c5b356b --- /dev/null +++ b/backend/api/v1/modules/a76/item_presets/routes.py @@ -0,0 +1,72 @@ +from typing import List, Any, Dict +from fastapi import APIRouter, Depends, Query, HTTPException +from sqlalchemy.orm import Session +from core.database import get_core_db +from core.security import get_current_user, validate_access_to_resource +from . import services, dto + +router = APIRouter() + +@router.get("/", response_model=List[dto.ItemPresetResponse]) +def list_item_presets( + company_id: int = Query(...), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """List all item presets for a company""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + return services.get_presets(db, tenant_id, company_id) + +@router.post("/", response_model=dto.ItemPresetResponse) +def create_item_preset( + data: dto.ItemPresetCreate, + company_id: int = Query(...), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """Create a new item preset""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + return services.create_preset(db, tenant_id, company_id, data) + +@router.get("/{preset_id}", response_model=dto.ItemPresetResponse) +def get_item_preset( + preset_id: int, + company_id: int = Query(...), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """Get a specific item preset""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + preset = services.get_preset_by_id(db, preset_id, tenant_id, company_id) + if not preset: + raise HTTPException(status_code=404, detail="Item preset not found") + return preset + +@router.put("/{preset_id}", response_model=dto.ItemPresetResponse) +def update_item_preset( + preset_id: int, + data: dto.ItemPresetUpdate, + company_id: int = Query(...), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """Update an item preset""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + preset = services.update_preset(db, preset_id, tenant_id, company_id, data) + if not preset: + raise HTTPException(status_code=404, detail="Item preset not found") + return preset + +@router.delete("/{preset_id}") +def delete_item_preset( + preset_id: int, + company_id: int = Query(...), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """Delete an item preset""" + tenant_id = validate_access_to_resource(db, company_id, current_user) + success = services.delete_preset(db, preset_id, tenant_id, company_id) + if not success: + raise HTTPException(status_code=404, detail="Item preset not found") + return {"status": "success", "message": "Preset deleted"} diff --git a/backend/api/v1/modules/a76/item_presets/services.py b/backend/api/v1/modules/a76/item_presets/services.py new file mode 100644 index 00000000..85274c1a --- /dev/null +++ b/backend/api/v1/modules/a76/item_presets/services.py @@ -0,0 +1,63 @@ +from typing import List, Optional +from sqlalchemy.orm import Session +from .models import ItemPreset +from .dto import ItemPresetCreate, ItemPresetUpdate + +def get_presets(db: Session, tenant_id: int, company_id: int) -> List[ItemPreset]: + """Get all presets for a specific company and tenant""" + return db.query(ItemPreset).filter( + ItemPreset.tenant_id == tenant_id, + ItemPreset.company_id == company_id + ).all() + +def get_preset_by_id(db: Session, preset_id: int, tenant_id: int, company_id: int) -> Optional[ItemPreset]: + """Get a specific preset by ID""" + return db.query(ItemPreset).filter( + ItemPreset.id == preset_id, + ItemPreset.tenant_id == tenant_id, + ItemPreset.company_id == company_id + ).first() + +def create_preset(db: Session, tenant_id: int, company_id: int, data: ItemPresetCreate) -> ItemPreset: + """Create a new item preset""" + new_preset = ItemPreset( + tenant_id=tenant_id, + company_id=company_id, + name=data.name, + description=data.description, + items=data.items + ) + db.add(new_preset) + db.commit() + db.refresh(new_preset) + return new_preset + +def update_preset( + db: Session, + preset_id: int, + tenant_id: int, + company_id: int, + data: ItemPresetUpdate +) -> Optional[ItemPreset]: + """Update an existing item preset""" + preset = get_preset_by_id(db, preset_id, tenant_id, company_id) + if not preset: + return None + + update_data = data.model_dump(exclude_unset=True) + for key, value in update_data.items(): + setattr(preset, key, value) + + db.commit() + db.refresh(preset) + return preset + +def delete_preset(db: Session, preset_id: int, tenant_id: int, company_id: int) -> bool: + """Delete an item preset""" + preset = get_preset_by_id(db, preset_id, tenant_id, company_id) + if not preset: + return False + + db.delete(preset) + db.commit() + return True diff --git a/backend/api/v1/modules/a76/items/common/common_validators.py b/backend/api/v1/modules/a76/items/common/common_validators.py new file mode 100644 index 00000000..06e0b449 --- /dev/null +++ b/backend/api/v1/modules/a76/items/common/common_validators.py @@ -0,0 +1,33 @@ +from sqlalchemy import func +from core.exceptions import ErrorCollector +from ..line_items import models +from sqlalchemy.orm import Session + + +def item_exists(db: Session, item_line: int, tenant_id: int, company_id: int): + item_exists = ( + db.query(models.LineItem) + .filter( + models.LineItem.line_number == item_line, + models.LineItem.tenant_id == tenant_id, + models.LineItem.company_id == company_id, + ) + .first() + ) + + return item_exists + + +def count_items(db: Session, invoice_id: int, tenant_id: int, company_id: int): + count = ( + db.query(func.count()) + .select_from(models.Item) + .filter( + models.Item.invoice_id == invoice_id, + models.Item.tenant_id == tenant_id, + models.Item.company_id == company_id, + ) + .scalar() + ) + + return count diff --git a/backend/api/v1/modules/a76/items/common/fractions.py b/backend/api/v1/modules/a76/items/common/fractions.py new file mode 100644 index 00000000..8f4fc501 --- /dev/null +++ b/backend/api/v1/modules/a76/items/common/fractions.py @@ -0,0 +1,155 @@ +import asyncio +from datetime import datetime +from typing import Optional, Tuple + +from api.v1.modules.a76.general_catalogs.company.models import Company +from api.v1.modules.a76.general_catalogs.fractions.historical_tariff_fractions.models import HistoricalTariffFraction +from api.v1.modules.sitar.tlcs import TLCSService +from api.v1.modules.sitar.prosec import ProsecService +from api.v1.modules.sitar.fracciones import FraccionesService +from sqlalchemy.orm import Session +from sqlalchemy import exists +from core.exceptions import ErrorCollector + +def search_historical_fraction(db: Session, fraction: str, country: str, fraction_type: str, sector: str, invoice_date: Optional[datetime], errors: Optional[ErrorCollector]) -> Tuple[Optional[str], float]: + """Search for historical fraction data + This corresponds to BUSCA_FRACCION_HISTORICA in original Clarion code + + Returns: + Tuple of (rate_im, adv_impo) + """ + # Placeholder for historical search + historical_exists = db.query(exists().where(HistoricalTariffFraction.historical_fraction == fraction)).scalar() + if not historical_exists: + errors.add_error( + field=f"fraction, country, fraction_type, sector", + message=f"La fraccion {fraction}, con pais {country}, con preferencia {fraction_type} y sector {sector} no existe.", + solution=["Revisar que si exista la preferencia para esta fracción en caso de ser historico, registrarlo en el catálogo de fracciones historicas."], + code="HISTORICAL_FRACTION_NOT_FOUND", + ) + else: + historical_exists = db.query(HistoricalTariffFraction).filter( + HistoricalTariffFraction.historical_fraction == fraction, + HistoricalTariffFraction.country == country, + HistoricalTariffFraction.fraction_type == fraction_type, + HistoricalTariffFraction.sector == sector, + HistoricalTariffFraction.publication_date <= invoice_date, + ).first() + + return historical_exists.import_tax_rate, historical_exists.import_tax_rate + + +def search_fraction_preference( + db: Session, + country: str, + fraccion: str, + fraction_type: str, + sector: Optional[str] = None, + invoice_date: Optional[datetime] = None, + errors: Optional[ErrorCollector] = None +) -> Tuple[Optional[str], float]: + """Search fraction preference and return rate_im and adv_impo + + Args: + country: Country code + fraction_type: Type of fraction (e.g., 'TLCS', 'PROSEC') + company: Company object with configuration + fraccion: Tariff fraction code to search + sector: Sector code (required for PROSEC searches) + + Returns: + Tuple of (rate_im, adv_impo) where: + - rate_im: Tax rate as string (e.g., "EXE", "5.0%") + - adv_impo: Numeric ad valorem rate + """ + rate_im = None + adv_impo = 0.0 + fraccion_8 = fraccion[:8] + + country_group = "USA" if country == "MEX" else country + + """" TLCS Search """ + if fraction_type.upper() == "TLCS": + try: + # Get TLCS service instance + tlcs_service = TLCSService.get_instance() + + # Fetch TLCS data using the service + tlcs_data = asyncio.run( + tlcs_service.search(fraccion=fraccion_8, pais=country_group, limit=100) + ) + + if not tlcs_data: + rate_im, adv_impo = search_historical_fraction(db=db, fraction=fraccion_8, country=country, fraction_type=fraction_type, sector=sector, invoice_date=invoice_date, errors=errors) + else: + first_record = tlcs_data[0] + rate_im = first_record.TASATXT + adv_impo = float(first_record.TASA1NUM or 0.0) + + except Exception as e: + print(f"Error fetching Fracciones data from SITAR API: {e}") + + """ ALADI Search """ + if fraction_type.upper() == "ALADI": + rate_im, adv_impo = search_historical_fraction(db=db, fraction=fraccion_8, country=country, fraction_type=fraction_type, sector=sector, invoice_date=invoice_date, errors=errors) + + """ PROSEC Search """ + if fraction_type.upper() == "PROSEC": + try: + # Búsqueda en API de PROSEC (TARIFA_AS..sProsec) + prosec_service = ProsecService.get_instance() + + # Buscar primero con ARTICULO = '4to' + prosec_data = asyncio.run( + prosec_service.search( + fraccion=fraccion_8, sector=sector, articulo="4to", limit=100 + ) + ) + + # Si no se encuentra con '4to', buscar con '5to' + if not prosec_data: + prosec_data = asyncio.run( + prosec_service.search( + fraccion=fraccion_8, sector=sector, articulo="5to", limit=100 + ) + ) + + if not prosec_data: + rate_im, adv_impo = search_historical_fraction(db=db, fraction=fraccion_8, country=country, fraction_type=fraction_type, sector=sector, invoice_date=invoice_date, errors=errors) + else: + first_record = prosec_data[0] + rate_im = first_record.TASATXT + adv_impo = float(first_record.TASANUM or 0.0) + + except Exception as e: + print(f"Error fetching Fracciones data from SITAR API: {e}") + + """ General search fallback """ + if fraction_type.upper() == "GENERAL": + # Búsqueda en API de Fracciones (sFracciones) + try: + fracciones_service = FraccionesService.get_instance() + + # Extraer fracción (primeros 8 caracteres) e nico (caracteres 9-10) + nico = fraccion[8:10] if len(fraccion) >= 10 else None + + # Buscar por fracción e histórico + fracciones_data = asyncio.run( + fracciones_service.search( + fraccion=fraccion_8, nico=nico, limit=100 + ) + ) + + if not fracciones_data: + rate_im, adv_impo = search_historical_fraction(db=db, fraction=fraccion_8, country=country, fraction_type=fraction_type, sector=sector, invoice_date=invoice_date, errors=errors) + else: + # Se encontraron registros, tomar el primero + first_record = fracciones_data[0] + rate_im = first_record.ADVIMPOTXT # AdvImpoTxt + adv_impo = float(first_record.ADVIMPONUM or 0.0) + + + except Exception as e: + print(f"Error fetching Fracciones data from SITAR API: {e}") + + return rate_im, adv_impo diff --git a/backend/api/v1/modules/a76/items/imports/temporary/validators/common.py b/backend/api/v1/modules/a76/items/imports/temporary/validators/common.py index d7db7a63..3cbe5958 100644 --- a/backend/api/v1/modules/a76/items/imports/temporary/validators/common.py +++ b/backend/api/v1/modules/a76/items/imports/temporary/validators/common.py @@ -1,158 +1,344 @@ -""" -Funciones helper compartidas para validaciones de items. -""" +from sqlalchemy import exists from sqlalchemy.orm import Session +from api.v1.modules.a76.invoices.common.common_validators import invoice_exists_by_id from core.exceptions import ErrorCollector -from typing import Optional +from sqlalchemy import func + +from ....common.fractions import search_fraction_preference +from ....common.common_validators import item_exists +from ....models import Item +from ....line_items.models import LineItem +from ....line_customs.models import FractionType, LineCustom +from api.v1.modules.a76.items.schemas import LineItemCreate +from api.v1.modules.a76.invoices.models import InvoiceHeader +from api.v1.modules.a76.classes.models import Class +from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure +from api.v1.modules.a76.general_catalogs.packages.models import Package +from api.v1.modules.public.reference_data.countries.models import Country +from api.v1.modules.public.reference_data.sectors.models import Sector +from api.v1.modules.public.reference_data.valuation_methods.models import ( + ValuationMethod, +) +from api.v1.modules.a76.parts.models import Part +from api.v1.modules.a76.general_catalogs.company.models import Company -def validate_catalog_reference( +def validate_common( db: Session, - model_class, - id_value: Optional[int], - field_name: str, + line: LineItemCreate, + invoice_id: int, # Para creación, se pasa directamente; para update, se consulta del item tenant_id: int, - company_id: Optional[int], + company_id: int, errors: ErrorCollector, - error_message: str = None -) -> bool: - """ - Valida que una referencia a catálogo exista en la base de datos. - - Args: - db: Sesión de base de datos - model_class: Clase del modelo SQLAlchemy a consultar - id_value: ID a validar - field_name: Nombre del campo para el error - tenant_id: ID del tenant - company_id: ID de la compañía (opcional) - errors: Colector de errores - error_message: Mensaje personalizado de error - - Returns: - True si existe, False si no - """ - if not id_value: - return False - - query = db.query(model_class).filter( - model_class.id == id_value, - model_class.tenant_id == tenant_id + line_number: int, +): + # Para updates, line.item_id existe; para creates, es None + item_header = None + if line.item_id: + item_header = db.query(Item).filter(Item.id == line.item_id).first() + if item_header: + invoice_id = item_header.invoice_id + + invoice: InvoiceHeader = invoice_exists_by_id( + db, invoice_id, tenant_id, company_id, errors ) - - # Agregar filtro de company_id si el modelo lo tiene y se proporciona - if company_id and hasattr(model_class, 'company_id'): - query = query.filter(model_class.company_id == company_id) - - exists = query.first() is not None - - if not exists: - msg = error_message or f"El valor {id_value} no existe en el catálogo" + line_item: LineItem = item_exists(db, line.line_number, tenant_id, company_id) + + fecha_factura = invoice.invoice_date if invoice else None + fraction = None + + class_ = db.query(Class).filter(Class.id == line.class_id).first() + if not class_: errors.add_error( - field=field_name, - message=msg, - solution="Selecciona un valor válido del catálogo", - code="NOT_FOUND" + field=f"line[{line_number}].class_id", + message="La clase especificada no existe.", + solution=["Darla de alta en el catalogo de clases."], + code="CLASS_NOT_FOUND", ) - - return exists - - -def validate_positive_value( - value: Optional[float], - field_name: str, - errors: ErrorCollector, - required: bool = True, - allow_zero: bool = False -) -> bool: - """ - Valida que un valor numérico sea positivo. - - Args: - value: Valor a validar - field_name: Nombre del campo para el error - errors: Colector de errores - required: Si el campo es obligatorio - allow_zero: Si se permite el valor cero - - Returns: - True si es válido, False si no - """ - if value is None: - if required: + else: + if not line.unit_of_measure and not class_.unit_of_measure: errors.add_error( - field=field_name, - message=f"El campo {field_name} es obligatorio", - solution="Proporciona un valor válido", - code="REQUIRED" + field=f"line[{line_number}].unit_of_measure", + message="La unidad de medida es obligatoria para la clase especificada.", + solution=["Proporciona una unidad de medida valida."], + code="UNIT_OF_MEASURE_REQUIRED", ) - return False - return True - - if allow_zero and value == 0: - return True - - if value <= 0: + + if not line.customs.fraction: + if not line_item: + if not class_.fraction: + errors.add_error( + field=f"line[{line_number}].customs.fraction", + message="La fracción arancelaria es obligatoria para la clase especificada.", + solution=["Proporciona una fracción arancelaria valida."], + code="FRACTION_REQUIRED", + ) + else: + fraction = class_.fraction + else: + if not line.customs.fraction: + if not class_.fraction: + errors.add_error( + field=f"line[{line_number}].customs.fraction", + message="La fracción arancelaria es obligatoria para la clase especificada.", + solution=["Proporciona una fracción arancelaria valida."], + code="FRACTION_REQUIRED", + ) + else: + fraction = class_.fraction + else: + if line_item: + fraction = line.customs.fraction + + if not line.description.description_spanish and not class_.description_es: + errors.add_error( + field=f"line[{line_number}].description.description_spanish", + message="La descripción en español es obligatoria para la clase especificada.", + solution=["Proporciona una descripción en español valida."], + code="DESCRIPTION_SPANISH_REQUIRED", + ) + + if not line.description.description_english and not class_.description_en: + errors.add_error( + field=f"line[{line_number}].description.description_english", + message="La descripción en inglés es obligatoria para la clase especificada.", + solution=["Proporciona una descripción en inglés valida."], + code="DESCRIPTION_ENGLISH_REQUIRED", + ) + + if line.quantity.quantity and line.quantity.quantity <= 0: errors.add_error( - field=field_name, - message=f"El campo {field_name} debe ser mayor a cero", - solution="Proporciona un valor positivo", - code="INVALID_VALUE" + field=f"line[{line_number}].quantity.quantity", + message="La cantidad debe ser mayor a cero.", + solution=["Proporciona una cantidad valida."], + code="QUANTITY_MUST_BE_GREATER_THAN_ZERO", ) - return False - - return True - -def normalize_yes_no_value(value: Optional[str]) -> Optional[str]: - """ - Normaliza valores SI/NO a formato estándar. - - Args: - value: Valor a normalizar (SI, NO, S, N) - - Returns: - 'SI' o 'NO', o None si el valor es None - """ - if not value: - return None - - val = value.upper().strip() - if val in ['SI', 'S']: - return 'SI' - elif val in ['NO', 'N']: - return 'NO' - - return value # Retornar original si no coincide - - -def validate_string_not_empty( - value: Optional[str], - field_name: str, - errors: ErrorCollector, - required: bool = True -) -> bool: - """ - Valida que un string no esté vacío. - - Args: - value: Valor a validar - field_name: Nombre del campo para el error - errors: Colector de errores - required: Si el campo es obligatorio - - Returns: - True si es válido, False si no - """ - if value is None or (isinstance(value, str) and not value.strip()): - if required: - errors.add_error( - field=field_name, - message=f"El campo {field_name} no puede estar vacío", - solution="Proporciona un valor válido", - code="REQUIRED" + if line.unit_of_measure: + um = ( + db.query(func.count(UnitOfMeasure.id)) + .filter( + UnitOfMeasure.id == line.unit_of_measure, + UnitOfMeasure.tenant_id == tenant_id, + UnitOfMeasure.company_id == company_id, + ) + .scalar() + ) + if um == 0: + errors.add_error( + field=f"line[{line_number}].unit_of_measure", + message="La unidad de medida especificada no existe.", + solution=["Proporciona una unidad de medida valida."], + code="UNIT_OF_MEASURE_NOT_FOUND", + ) + + if line.quantity.package_id: + package = ( + db.query(func.count(Package.id)) + .filter( + Package.id == line.quantity.package_id, + Package.tenant_id == tenant_id, + Package.company_id == company_id, + ) + .scalar() + ) + if package == 0: + errors.add_error( + field=f"line[{line_number}].quantity.package_id", + message="El paquete especificado no existe.", + solution=["Proporciona un paquete valido."], + code="PACKAGE_NOT_FOUND", + ) + if not line.quantity.package_quantity: + errors.add_error( + field=f"line[{line_number}].quantity.package_quantity", + message="La cantidad de paquetes es obligatoria cuando se proporciona el paquete.", + solution=["Proporciona una cantidad de paquetes valida."], + code="PACKAGE_QUANTITY_REQUIRED", + ) + if line.quantity.package_quantity <= 0: + errors.add_error( + field=f"line[{line_number}].quantity.package_quantity", + message="La cantidad de paquetes debe ser mayor a cero.", + solution=["Proporciona una cantidad de paquetes valida."], + code="PACKAGE_QUANTITY_MUST_BE_GREATER_THAN_ZERO", + ) + else: + if (line.quantity.package_quantity or line.quantity.package_quantity > 0) and not line.quantity.package_id: + errors.add_error( + field=f"line[{line_number}].quantity.package_id", + message="El paquete es obligatorio cuando se proporciona la cantidad de paquetes.", + solution=["Proporciona un paquete valido."], + code="PACKAGE_ID_REQUIRED", + ) + + country = None + fraction_type = None + sector = None + if fraction: + fraction = line.customs.fraction if line.customs.fraction else fraction + + country = line.customs.origin_country + if line_item and line_item.customs: + country = ( + line_item.customs.origin_country + if line_item.customs.origin_country + else country + ) + + fraction_type = line.customs.fraction_type.upper() + if line_item and line_item.customs: + fraction_type = ( + line_item.customs.fraction_type + if line_item.customs.fraction_type + else fraction_type + ) + + sector = line.customs.sector + if line_item and line_item.customs: + sector = line_item.customs.sector if line_item.customs.sector else sector + + country_m3 = db.query(Country.m3_key).filter(Country.m3_key == country).scalar() + if not country_m3: + country_m3 = ( + db.query(Country.m3_key).filter(Country.ame_key == country).scalar() + ) + + country = country_m3 + if not country: + errors.add_error( + field=f"line[{line_number}].customs.origin_country", + message="El país de origen especificado no existe.", + solution=["Proporciona un país de origen valido."], + code="ORIGIN_COUNTRY_NOT_FOUND", + ) + else: + if fraction_type.strip().upper() not in vars(FractionType).values(): + valid_types = [ + v + for k, v in vars(FractionType).items() + if not k.startswith("_") and isinstance(v, str) + ] + errors.add_error( + field=f"line[{line_number}].customs.fraction_type", + message="El tipo de fracción especificado no es válido.", + solution=[ + f"Proporciona un tipo de fracción válido. Valores permitidos: {', '.join(valid_types)}" + ], + code="FRACTION_TYPE_INVALID", + value=fraction_type, + ) + else: + if fraction_type.strip().upper() == FractionType.PROSEC and not sector: + errors.add_error( + field=f"line[{line_number}].customs.sector", + message="El sector es obligatorio cuando el tipo de fracción es 'PROSEC'.", + solution=["Proporciona un sector valido."], + code="SECTOR_REQUIRED_FOR_PROSEC", + ) + elif fraction_type.strip().upper() != FractionType.PROSEC and sector: + errors.add_error( + field=f"line[{line_number}].customs.sector", + message="El sector solo es aplicable cuando el tipo de fracción es 'PROSEC'.", + solution=[ + "Elimina el sector o cambia el tipo de fracción a 'PROSEC'." + ], + code="SECTOR_ONLY_FOR_PROSEC", + ) + elif fraction_type.strip().upper() == FractionType.PROSEC and sector: + sector_db: Sector = ( + db.query(Sector).filter(Sector.key == sector).scalar() + ) + if sector_db: + errors.add_error( + field=f"line[{line_number}].customs.sector", + message="El sector especificado no existe.", + solution=["Proporciona un sector valido."], + code="SECTOR_NOT_FOUND", + ) + else: + if not sector_db.authorized: + errors.add_error( + field=f"line[{line_number}].customs.sector", + message="El sector especificado no está autorizado.", + solution=["Proporciona un sector autorizado."], + code="SECTOR_NOT_AUTHORIZED", + ) + + company_db = db.query(Company).filter(Company.id == company_id).first() + if not company_db.prosec: + errors.add_error( + field=f"line[{line_number}].customs.sector", + message=" La empresa no cuenta con autorización PROSEC.", + solution=[ + "Accese a los datos de la empresa y selecione la opción Pertenece al Programa de Promoción Sectorial y capture el número de permiso PROSEC." + ], + code="COMPANY_NOT_AUTHORIZED_FOR_PROSEC", + ) + + if fraction: + search_fraction_preference( + db=db, + country=country, + fraccion=fraction, + fraction_type=fraction_type, + sector=sector, + invoice_date=fecha_factura, + errors=errors, + ) + + if line.customs.american_fraction: + american_fraction_exists = db.query( + exists().where( + LineCustom.american_fraction == line.customs.american_fraction + ) + ).scalar() + if not american_fraction_exists: + errors.add_error( + field=f"line[{line_number}].customs.american_fraction", + message="La fracción americana especificada no existe.", + solution=["Proporciona una fracción americana valida."], + code="AMERICAN_FRACTION_NOT_FOUND", + ) + + if item_header and item_header.order: + if len(item_header.order) > 20: + errors.add_error( + field=f"item.order", + message="El campo orden no debe exceder los 20 caracteres.", + solution=["Proporciona un valor valido para el campo orden."], + code="ORDER_EXCEEDS_MAX_LENGTH", + ) + + unit_of_measure = line.unit_of_measure or ( + class_.unit_of_measure if class_ else None + ) + if unit_of_measure == "PZA" and line.quantity.quantity % 1 != 0: + errors.add_error( + field=f"line[{line_number}].quantity.quantity", + message="La cantidad debe ser un número entero cuando la unidad de medida es PZA.", + solution=["Proporciona una cantidad entera."], + code="QUANTITY_MUST_BE_INTEGER_FOR_PIECES", + ) + + if line.valuation_method: + valuation_method_exists = db.query( + exists().where(ValuationMethod.key == line.valuation_method) + ).scalar() + if not valuation_method_exists: + errors.add_error( + field=f"line[{line_number}].valuation_method", + message="El método de valoración especificado no existe.", + solution=["Proporciona un método de valoración valido."], + code="VALUATION_METHOD_NOT_FOUND", + ) + + if line.part_number_id: + part_exists = db.query(exists().where(Part.id == line.part_number_id)).scalar() + if not part_exists: + errors.add_error( + field=f"line[{line_number}].part_number_id", + message="El número de parte especificado no existe.", + solution=["Proporciona un número de parte valido."], + code="PART_NUMBER_NOT_FOUND", ) - return False - return True - - return True diff --git a/backend/api/v1/modules/a76/items/imports/temporary/validators/create.py b/backend/api/v1/modules/a76/items/imports/temporary/validators/create.py index b14a9746..66024a5e 100644 --- a/backend/api/v1/modules/a76/items/imports/temporary/validators/create.py +++ b/backend/api/v1/modules/a76/items/imports/temporary/validators/create.py @@ -1,135 +1,354 @@ -""" -Validaciones para creación de items vía API. -""" - +from decimal import Decimal +from sqlalchemy import func, exists from sqlalchemy.orm import Session +from ....common.common_validators import count_items from core.exceptions import ErrorCollector -from api.v1.modules.a76.items.line_items.schemas import LineItemCreate -from .common import validate_string_not_empty, validate_positive_value + +from ....line_items.models import LineItem +from ....line_financials.models import LineFinancial +from ....line_financials.schemas import LineFinancialCreate +from ....line_quantities.models import LineQuantity +from ....line_quantities.schemas import LineQuantityCreate +from ....line_customs.models import LineCustom +from ....line_customs.schemas import LineCustomCreate +from ....line_descriptions.models import LineDescription +from ....line_descriptions.schemas import LineDescriptionCreate +from ....line_references.models import LineReference +from api.v1.modules.a24.fa.fa_item_lines.models import FaLineItem +from ....models import Item +from api.v1.modules.a76.invoices.models import InvoiceHeader +from api.v1.modules.a76.classes.models import Class +from api.v1.modules.a76.general_catalogs.packages.models import Package +from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import ( + USTariffFraction, +) +from .common import validate_common def validate_create( db: Session, - line: LineItemCreate, + line, # LineItemCreate schema (Pydantic) + invoice_id: int, # Passed from service tenant_id: int, company_id: int, errors: ErrorCollector, -) -> None: + line_number: int, +): """ - Validaciones para crear LineItems vía API (actualmente en uso). + Validates and calculates fields for a new line item before DB creation. + Works with Pydantic schemas, modifying them in-place. Args: - db: Sesión de base de datos - line: Datos del line item - tenant_id: ID del tenant - company_id: ID de la compañía - errors: Colector de errores + line: LineItemCreate schema with nested data (financial, quantity, customs, etc.) + invoice_id: ID of the invoice this line belongs to + fa_data: FaLineItemCreateDTO or None (None for INV system) """ - # 1. Validar line_number - if not line.line_number: - errors.add_error( - field="line_number", - message="El número de línea es obligatorio", - solution="Proporciona un número de línea válido", - code="REQUIRED", - ) - - # 2. Validar class_id - if not line.class_id: - errors.add_error( - field="class_id", - message="Clase (ID) es obligatorio", - solution="Selecciona una clasificación válida del catálogo", - code="REQUIRED", - ) - - # 4. Validar unit_of_measure - if not line.unit_of_measure: - errors.add_error( - field="unit_of_measure", - message="U.M. es obligatorio", - solution="Proporciona una unidad de medida válida", - code="REQUIRED", - ) - - # 5. Validar quantity.quantity - if not line.quantity: - errors.add_error( - field="quantity", - message="Quantity es obligatorio", - solution="Proporciona una cantidad válida", - code="REQUIRED", - ) - else: - # Validar con nombre amigable - if line.quantity.quantity is None or line.quantity.quantity <= 0: - errors.add_error( - field="quantity.quantity", - message="Quantity debe ser mayor a cero", - solution="Proporciona una cantidad válida", - code=( - "INVALID_VALUE" - if line.quantity.quantity is not None - else "REQUIRED" - ), - ) - - # 6. Validar financial.unit_cost + # Inicializar nested schemas si no existen (para poder validar y modificar) if not line.financial: - errors.add_error( - field="financial", - message="Unit Cost es obligatorio", - solution="Proporciona el costo unitario del item", - code="REQUIRED", - ) - else: - has_cost = ( - line.financial.unit_cost_usd - or line.financial.unit_cost_mxn - or line.financial.unit_cost_capture - ) - if not has_cost: - errors.add_error( - field="financial.unit_cost", - message="Unit Cost es obligatorio", - solution="Proporciona al menos un costo unitario (USD, MXN o captura)", - code="REQUIRED", + line.financial = LineFinancialCreate() + if not line.quantity: + line.quantity = LineQuantityCreate() + if not line.customs: + line.customs = LineCustomCreate() + if not line.description: + line.description = LineDescriptionCreate() + + # Access fa_data safely + fa_data = getattr(line, "fa_data", None) + + # Required field validations + if not line.class_id: + errors.add_required_error(field=f"line[{line_number}].class_id") + + if not line.quantity.quantity or line.quantity.quantity <= 0: + errors.add_required_error(field=f"line[{line_number}].quantity.quantity") + + # TODO: Añadir validacion SSisGen:CalcularCostoUnitarioEnBaseAValorTotalScaf <-- de la tabla de preferencias de el sistema + # if SSisGen:CalcularCostoUnitarioEnBaseAValorTotalScaf == False: + if fa_data and not fa_data.is_subitem: + if ( + not line.financial.unit_cost_capture + or line.financial.unit_cost_capture <= 0 + ): + errors.add_required_error( + field=f"line[{line_number}].financial.unit_cost_capture" ) - # 7. Validar description.description_spanish - if line.description: + if not line.quantity.net_weight or line.quantity.net_weight <= 0: + errors.add_required_error(field=f"line[{line_number}].quantity.net_weight") + + if not line.customs.origin_country: + errors.add_required_error(field=f"line[{line_number}].customs.origin_country") + + if not line.customs.fraction_type: + errors.add_required_error(field=f"line[{line_number}].customs.fraction_type") + + # FA-specific validations + if fa_data: if ( - not line.description.description_spanish - or not line.description.description_spanish.strip() + fa_data.is_subitem and fa_data.contains_subitems + ) and not fa_data.subitem_number: + errors.add_required_error( + field=f"line[{line_number}].fa_data.subitem_number" + ) + + # Validar que si es un subitem, existe un item principal correspondiente + if ( + fa_data.is_subitem + and fa_data.subitem_number + and fa_data.subitem_number != 0 + ): + principal_item_exists = db.query( + exists().where( + (LineItem.id == FaLineItem.id) + & (LineItem.item_id == Item.id) + & (Item.invoice_id == invoice_id) + & (LineItem.line_number == line_number) + & (FaLineItem.is_subitem == False) + & (FaLineItem.contains_subitems == True) + & (LineItem.tenant_id == tenant_id) + & (LineItem.company_id == company_id) + ) + ).scalar() + + if not principal_item_exists: + errors.add_error( + field=f"line[{line_number}]", + message=f"No existe un item principal registrado para esta linea {line_number} con subitem {fa_data.subitem_number}", + solution=[ + "Registrar el item principal correspondiente a esta linea antes de registrar subitems." + ], + code="SUBITEM_WITHOUT_PRINCIPAL_ITEM", + ) + + if fa_data.is_subitem and ( + fa_data.subitem_number == 0 or not fa_data.subitem_number ): errors.add_error( - field="description.description_spanish", - message="Description in Spanish es obligatorio", - solution="Proporciona una descripción del item en español", - code="REQUIRED", + field=f"line[{line_number}]", + message=f"El número de subitem no puede ser 0 si la línea es un subitem.", + solution=["Asignar un número de subitem mayor a 0 para esta línea."], + code="SUBITEM_NUMBER_INVALID", ) - else: - errors.add_error( - field="description.description_spanish", - message="Description in Spanish es obligatorio", - solution="Proporciona una descripción del item en español", - code="REQUIRED", + + validate_common(db, line, invoice_id, tenant_id, company_id, errors, line_number) + + if not errors.has_errors(): + # Obtener la factura para acceder a tipo de cambio, moneda y peso + invoice: InvoiceHeader = ( + db.query(InvoiceHeader) + .filter( + InvoiceHeader.id == invoice_id, + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id, + ) + .first() ) - - # 8. Validar customs.origin_country - if not line.customs or not line.customs.origin_country: - errors.add_error( - field="customs.origin_country", - message="País de Origen es obligatorio", - solution="Selecciona el país de origen del item", - code="REQUIRED" + + if not invoice or not invoice.financials or not invoice.logistics: + errors.add_error( + field=f"line[{line_number}]", + message="No se pudo obtener información de la factura", + solution=[ + "Verificar que la factura existe y tiene datos financieros y logísticos" + ], + code="INVOICE_DATA_MISSING", + ) + return + + # Obtener la clase para valores por defecto + class_info: Class = ( + db.query(Class) + .filter( + Class.id == line.class_id, + Class.tenant_id == tenant_id, + Class.company_id == company_id, + ) + .first() ) - - # 9. Validar customs.fraction_type - if not line.customs or not line.customs.fraction_type: - errors.add_error( - field="customs.fraction_type", - message="Tipo de Tarifa es obligatorio", - solution="Selecciona el tipo de tarifa (GENERAL, PROSEC, ALADI, TLCS)", - code="REQUIRED" - ) \ No newline at end of file + + # ========================================== + # ASIGNAR TIPO DE CAMBIO + # ========================================== + exchange_rate = invoice.financials.exchange_rate or Decimal("1.0") + + # ========================================== + # ASIGNAR UNIDAD DE MEDIDA + # ========================================== + # Si no se proporcionó unidad de medida, usar la de la clase + if not line.unit_of_measure and class_info: + line.unit_of_measure = class_info.unit_of_measure + + # ========================================== + # ASIGNAR TIPOS DE MONEDA Y CALCULAR COSTOS + # ========================================== + currency_type = invoice.financials.currency_type + unit_cost_capture = line.financial.unit_cost_capture or Decimal("0") + + # Calcular costos según tipo de moneda + if currency_type == "USD" or currency_type == "ME": # Moneda Extranjera (ME) + line.financial.unit_cost_capture = unit_cost_capture + line.financial.unit_cost_usd = unit_cost_capture + line.financial.unit_cost_mxn = unit_cost_capture * exchange_rate + elif currency_type == "MXN" or currency_type == "MN": # Moneda Nacional (MN) + line.financial.unit_cost_capture = unit_cost_capture + line.financial.unit_cost_usd = ( + unit_cost_capture / exchange_rate if exchange_rate else Decimal("0") + ) + line.financial.unit_cost_mxn = unit_cost_capture + # Si es otro tipo de moneda, dejamos el costo como está + + # ========================================== + # VALIDAR Y CONVERTIR PESOS NETOS + # ========================================== + invoice_weight_type = invoice.logistics.weight_type # 'kgs' o 'lbs' + quantity = line.quantity.quantity or Decimal("0") + net_weight_input = line.quantity.net_weight or Decimal("0") + + # Determinar si la unidad de medida es de peso + unit_is_kgs = line.unit_of_measure and line.unit_of_measure == "24" #KGS + unit_is_lbs = line.unit_of_measure and line.unit_of_measure == "25" #LBS + + # Calcular peso neto en kilogramos (estándar interno) + if unit_is_kgs: + if invoice_weight_type == "KGS": + line.quantity.net_weight = quantity + else: # invoice en libras + line.quantity.net_weight = quantity * Decimal("2.204624") + elif unit_is_lbs: + if invoice_weight_type == "KGS": + line.quantity.net_weight = quantity / Decimal("2.204624") + else: # invoice en libras + line.quantity.net_weight = quantity + else: + # Otra unidad de medida - usar peso capturado y convertir si es necesario + if invoice_weight_type == "KGS": + # El peso capturado está en kilos + line.quantity.net_weight = net_weight_input + else: + # El peso capturado está en libras, convertir a kilos + line.quantity.net_weight = net_weight_input / Decimal("2.204624") + + # ========================================== + # CALCULAR PESO BRUTO + # ========================================== + gross_weight_input = line.quantity.gross_weight + package_quantity = line.quantity.package_quantity or 0 + package_weight_unit = Decimal("0") + + # Obtener peso unitario del bulto si existe + if line.quantity.package_id: + package: Package = ( + db.query(Package) + .filter( + Package.id == line.quantity.package_id, + Package.tenant_id == tenant_id, + Package.company_id == company_id, + ) + .first() + ) + if package and package.weight_unit: + package_weight_unit = package.weight_unit + + # Si no se proporcionó peso bruto, calcularlo + if not gross_weight_input or gross_weight_input == 0: + if invoice_weight_type == "KGS": + line.quantity.gross_weight = line.quantity.net_weight + ( + package_weight_unit * package_quantity + ) + else: # libras + line.quantity.gross_weight = line.quantity.net_weight + ( + (package_weight_unit * Decimal("2.204624")) * package_quantity + ) + else: + # Convertir peso bruto capturado según tipo de factura + if invoice_weight_type == "KGS": + line.quantity.gross_weight = gross_weight_input + else: # libras + line.quantity.gross_weight = gross_weight_input / Decimal("2.204624") + + # ========================================== + # VALIDAR PESO BRUTO < PESO NETO + # ========================================== + if line.quantity.gross_weight < line.quantity.net_weight: + line.quantity.gross_weight = line.quantity.net_weight + ( + package_weight_unit * package_quantity + ) + + # ========================================== + # ASIGNAR DESCRIPCIÓN DE BULTOS + # ========================================== + if package_quantity and package_quantity > 0 and line.quantity.package_id: + package: Package = ( + db.query(Package) + .filter( + Package.id == line.quantity.package_id, + Package.tenant_id == tenant_id, + Package.company_id == company_id, + ) + .first() + ) + if package: + line.description.package_description = package.description_es + else: + line.quantity.package_quantity = 0 + line.quantity.package_id = None + line.description.package_description = None + + # ========================================== + # ASIGNAR FRACCIÓN AMERICANA POR DEFECTO + # ========================================== + if not line.customs.american_fraction and class_info and class_info.us_fraction: + line.customs.american_fraction = class_info.us_fraction + + # Buscar el advalorem de la fracción americana + if line.customs.american_fraction: + us_fraction: USTariffFraction = ( + db.query(USTariffFraction) + .filter( + USTariffFraction.code == line.customs.american_fraction, + USTariffFraction.tenant_id == tenant_id, + USTariffFraction.company_id == company_id, + ) + .first() + ) + + if us_fraction: + # Si el tipo es 'ME' (Moneda Extranjera), usar costo fijo + # De lo contrario, usar ad valorem + if us_fraction.type_code == "foreign": + line.customs.advalorem_american = us_fraction.fixed_cost + else: + line.customs.advalorem_american = us_fraction.ad_valorem + + # ========================================== + # ASIGNAR DESCRIPCIONES POR DEFECTO + # ========================================== + if not line.description.description_spanish and class_info: + line.description.description_spanish = class_info.description_es + + if not line.description.description_english and class_info: + line.description.description_english = class_info.description_en + + # ========================================== + # NORMALIZAR CAMPOS DE TEXTO + # ========================================== + # Convertir a mayúsculas campos que lo requieran + if line.description.brand: + line.description.brand = line.description.brand.upper().strip() + + if line.description.model: + line.description.model = line.description.model.upper().strip() + + # ========================================== + # ASIGNAR VALORES POR DEFECTO DE IMPUESTOS + # ========================================== + # Si no se especificó pago de impuesto, tomar de preferencias del sistema (SisImp) + # TODO: Implementar lectura de preferencias del sistema + # Por ahora dejamos None si no se proporcionó + + # Si no se especificó forma de pago, tomar de preferencias del sistema + # TODO: Implementar lectura de preferencias del sistema + + # Si no se especificó método de valoración, tomar de preferencias del sistema + # TODO: Implementar lectura de preferencias del sistema diff --git a/backend/api/v1/modules/a76/items/imports/temporary/validators/update.py b/backend/api/v1/modules/a76/items/imports/temporary/validators/update.py index 78b044aa..eec6f443 100644 --- a/backend/api/v1/modules/a76/items/imports/temporary/validators/update.py +++ b/backend/api/v1/modules/a76/items/imports/temporary/validators/update.py @@ -1,246 +1,202 @@ -""" -Validaciones para actualización de items vía API. -""" - +from decimal import Decimal from sqlalchemy.orm import Session +from api.v1.modules.a76.invoices.common.common_validators import invoice_exists from core.exceptions import ErrorCollector -from api.v1.modules.a76.items.line_items.schemas import LineItemUpdate -from .common import validate_string_not_empty, validate_positive_value + +from ....line_items.models import LineItem +from ....models import Item +from api.v1.modules.a76.invoices.models import InvoiceHeader +from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import ( + USTariffFraction, +) +from .common import validate_common def validate_update( db: Session, - line: LineItemUpdate, + line: LineItem, + existing_line: LineItem, + invoice_id: int, # Passed from service tenant_id: int, company_id: int, errors: ErrorCollector, - invoice_id: int = None, -) -> None: + line_number: int, +): """ - Validaciones para actualizar LineItems vía API. - Incluye todas las validaciones de negocio de Clarion. - - Args: - db: Sesión de base de datos - line: Datos del line item a actualizar - tenant_id: ID del tenant - company_id: ID de la compañía - errors: Colector de errores - invoice_id: ID de la factura asociada (opcional, para validar subpartidas) + Validar y procesar actualización parcial de línea de importación temporal. + Si un campo no se proporciona, se mantiene el valor existente. """ - # 1. Validar line_number si se proporciona - if line.line_number is not None and not line.line_number: - errors.add_error( - field="line_number", - message="El número de línea no puede estar vacío", - solution="Proporciona un número de línea válido", - code="REQUIRED", + validate_common(db, line, invoice_id, tenant_id, company_id, errors, line_number) + + if not errors.has_errors(): + # Obtener la factura para acceder a tipo de cambio, moneda y peso + invoice: InvoiceHeader = ( + db.query(InvoiceHeader) + .filter( + InvoiceHeader.id == invoice_id, + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id + ) + .first() ) - # 2. Validar class_id si se proporciona - if line.class_id is not None and not line.class_id: - errors.add_error( - field="class_id", - message="Clase (ID) no puede estar vacío", - solution="Selecciona una clasificación válida del catálogo", - code="REQUIRED", - ) + if not invoice or not invoice.financials or not invoice.logistics: + errors.add_error( + field=f"line[{line_number}]", + message="No se pudo obtener información de la factura", + solution=[ + "Verificar que la factura existe y tiene datos financieros y logísticos" + ], + code="INVOICE_DATA_MISSING", + ) + return - # 4. Validar unit_of_measure si se proporciona - if line.unit_of_measure is not None and not line.unit_of_measure: - errors.add_error( - field="unit_of_measure", - message="U.M. no puede estar vacío", - solution="Proporciona una unidad de medida válida", - code="REQUIRED", - ) + # ========================================== + # ACTUALIZACIÓN PARCIAL DE CAMPOS + # Si no se proporciona, mantener valor existente + # ========================================== - # 5. Validar cantidad si se proporciona - if line.quantity: - # Si se proporciona el objeto quantity, validar que quantity.quantity sea válido - if line.quantity.quantity is not None: - if line.quantity.quantity <= 0: - errors.add_error( - field="quantity.quantity", - message="Quantity debe ser mayor a cero", - solution="Proporciona una cantidad válida", - code="INVALID_VALUE", - ) + # Tipo de cambio de la factura + exchange_rate = invoice.financials.exchange_rate or Decimal("1.0") + + # Unidad de medida + if not line.unit_of_measure: + line.unit_of_measure = existing_line.unit_of_measure + + # Costo unitario + if line.financial.unit_cost_capture is None: + line.financial.unit_cost_capture = existing_line.financial.unit_cost_capture + + # Convertir peso neto si se proporcionó + invoice_weight_type = invoice.logistics.weight_type + if line.quantity.net_weight is not None: + # Se proporcionó nuevo peso neto, convertir según tipo + net_weight_input = line.quantity.net_weight + + if invoice_weight_type == "KGS": + line.quantity.net_weight = net_weight_input + else: # libras, convertir a kilos + line.quantity.net_weight = net_weight_input / Decimal("2.204624") else: - # Si se proporciona quantity pero quantity.quantity es None, es requerido - errors.add_error( - field="quantity.quantity", - message="Quantity es obligatorio", - solution="Proporciona una cantidad mayor a 0", - code="REQUIRED", - ) + # Mantener peso existente + line.quantity.net_weight = existing_line.quantity.net_weight - # 6. Validar peso neto si se proporciona - if line.quantity and line.quantity.net_weight is not None: - if line.quantity.net_weight <= 0: - errors.add_error( - field="quantity.net_weight", - message="Net Weight debe ser mayor a cero", - solution="Proporciona un peso neto válido", - code="INVALID_VALUE", - ) + # Convertir peso bruto si se proporcionó + if line.quantity.gross_weight is not None: + gross_weight_input = line.quantity.gross_weight - # 7. Validar costo unitario si se proporciona financial (excepto subpartidas) - if line.financial: - is_subitem = line.fa_data and line.fa_data.is_subitem if line.fa_data else False + if invoice_weight_type == "KGS": + line.quantity.gross_weight = gross_weight_input + else: # libras, convertir a kilos + line.quantity.gross_weight = gross_weight_input / Decimal("2.204624") + else: + # Mantener peso existente + line.quantity.gross_weight = existing_line.quantity.gross_weight - if not is_subitem: - has_cost = ( - line.financial.unit_cost_usd - or line.financial.unit_cost_mxn - or line.financial.unit_cost_capture - ) - if not has_cost: - errors.add_error( - field="financial.unit_cost", - message="Unit Cost es obligatorio", - solution="Proporciona al menos un costo unitario (USD, MXN o captura)", - code="REQUIRED", - ) - # Validar que sean positivos - if line.financial.unit_cost_usd is not None: - if line.financial.unit_cost_usd <= 0: - errors.add_error( - field="financial.unit_cost_usd", - message="Unit Cost (USD) debe ser mayor a cero", - solution="Proporciona un costo unitario válido", - code="INVALID_VALUE", - ) - if line.financial.unit_cost_mxn is not None: - if line.financial.unit_cost_mxn <= 0: - errors.add_error( - field="financial.unit_cost_mxn", - message="Unit Cost (MXN) debe ser mayor a cero", - solution="Proporciona un costo unitario válido", - code="INVALID_VALUE", - ) - if line.financial.unit_cost_capture is not None: - if line.financial.unit_cost_capture <= 0: - errors.add_error( - field="financial.unit_cost_capture", - message="Unit Cost (Captura) debe ser mayor a cero", - solution="Proporciona un costo unitario válido", - code="INVALID_VALUE", - ) + # Cantidad de bultos + if line.quantity.package_quantity is None: + line.quantity.package_quantity = existing_line.quantity.package_quantity - # 8. Validar datos aduanales si se proporcionan - if line.customs: - # Validar país de origen (OBLIGATORIO) - if line.customs.origin_country is not None: - if not line.customs.origin_country: - errors.add_error( - field="customs.origin_country", - message="País de Origen es obligatorio", - solution="Selecciona el país de origen del item", - code="REQUIRED" - ) - - # Validar tipo de tarifa (OBLIGATORIO) - if line.customs.fraction_type is not None: - if not line.customs.fraction_type: - errors.add_error( - field="customs.fraction_type", - message="Tipo de Tarifa es obligatorio", - solution="Selecciona el tipo de tarifa (GENERAL, PROSEC, ALADI, TLCS)", - code="REQUIRED" - ) - - # Validar preferencia arancelaria - if line.customs.preference is not None and not line.customs.preference: - errors.add_error( - field="customs.preference", - message="La preferencia arancelaria no puede estar vacía", - solution="Selecciona la preferencia arancelaria", - code="REQUIRED", - ) + # Clave de bultos + if not line.quantity.package_id: + line.quantity.package_id = existing_line.quantity.package_id - # Validar formato de pago de impuestos - if line.customs.tax_paid: - val_tax = line.customs.tax_paid.upper() - if val_tax not in ["SI", "NO", "S", "N"]: - errors.add_error( - field="customs.tax_paid", - message="El valor de pago de impuesto debe ser SI/NO o S/N", - solution="Proporciona un valor válido: SI, NO, S o N", - code="INVALID_VALUE", - ) + # País de origen + if not line.customs.origin_country: + line.customs.origin_country = existing_line.customs.origin_country - # Validar forma de pago si existe - if line.customs.payment_form: - from api.v1.modules.a76.general_catalogs.forms_of_payment.models import ( - PaymentForm, - ) + # Fracción arancelaria + if not line.customs.fraction: + line.customs.fraction = existing_line.customs.fraction - payment = ( - db.query(PaymentForm) + # Tipo de fracción + if not line.customs.fraction_type: + line.customs.fraction_type = existing_line.customs.fraction_type + + # Sector + if not line.customs.sector: + line.customs.sector = existing_line.customs.sector + + # Fracción americana y su advalorem + if line.customs.american_fraction: + # Se proporcionó nueva fracción americana, buscar su advalorem + us_fraction: USTariffFraction = ( + db.query(USTariffFraction) .filter( - PaymentForm.code == line.customs.payment_form, - PaymentForm.tenant_id == tenant_id, + USTariffFraction.code == line.customs.american_fraction, + USTariffFraction.tenant_id == tenant_id, + USTariffFraction.company_id == company_id, ) .first() ) - if not payment: - errors.add_error( - field="customs.payment_form", - message=f"La forma de pago '{line.customs.payment_form}' no es válida", - solution="Selecciona una forma de pago válida del catálogo", - code="INVALID_VALUE", - ) - - # 9. Validar descripción en español (OBLIGATORIA) - if line.description and hasattr(line.description, 'description_spanish'): - if line.description.description_spanish is not None: - if not line.description.description_spanish.strip(): - errors.add_error( - field="description.description_spanish", - message="Descripción en Español es obligatoria", - solution="Proporciona una descripción del item en español", - code="REQUIRED" - ) - - # 10. Validar subpartidas si se actualizan - if line.fa_data and line.fa_data.is_subitem: - # Es subpartida, debe tener partida principal - if not line.fa_data.main_line_id: - errors.add_error( - field="fa_data.main_line_id", - message="La subpartida debe tener asignada una partida principal", - solution="Selecciona la partida principal de esta subpartida", - code="REQUIRED", - ) - elif invoice_id: - # Validar que la partida principal exista en la misma factura - from api.v1.modules.a76.items.line_items.models import LineItem - from api.v1.modules.a76.items.models import Item + if us_fraction: + if us_fraction.type_code == "ME": + line.customs.advalorem_american = us_fraction.fixed_cost + else: + line.customs.advalorem_american = us_fraction.ad_valorem + else: + # Mantener fracción americana existente + line.customs.american_fraction = existing_line.customs.american_fraction + line.customs.advalorem_american = existing_line.customs.advalorem_american - parent = ( - db.query(LineItem) - .join(LineItem.item) - .filter( - LineItem.line_number == line.fa_data.main_line_id, - Item.invoice_id == invoice_id, - LineItem.company_id == company_id, - ) - .first() + # Orden de compra + if not line.reference.purchase_order: + line.reference.purchase_order = existing_line.reference.purchase_order + + # Descripciones + if not line.description.description_spanish: + line.description.description_spanish = ( + existing_line.description.description_spanish ) - if not parent: - errors.add_error( - field="fa_data.main_line_id", - message=f"La partida principal {line.fa_data.main_line_id} no existe en esta factura", - solution="Verifica el número de la partida principal", - code="NOT_FOUND", - ) - elif parent.fa_data and parent.fa_data.is_subitem: - errors.add_error( - field="fa_data.main_line_id", - message="La partida principal no puede ser otra subpartida", - solution="Selecciona una partida normal como principal", - code="INVALID_VALUE", - ) + if not line.description.description_english: + line.description.description_english = ( + existing_line.description.description_english + ) + + if not line.description.extra_description: + line.description.extra_description = ( + existing_line.description.extra_description + ) + + # Marca y modelo + if line.description.brand: + line.description.brand = line.description.brand.upper().strip() + else: + line.description.brand = existing_line.description.brand + + if line.description.model: + line.description.model = line.description.model.upper().strip() + else: + line.description.model = existing_line.description.model + + # Subpartidas (si aplica) + # TODO: Implementar lógica de subpartidas si Loc:LevantarSubpartidas = 'S' + + + # Número de parte + if not line.part_number: + line.part_number = existing_line.part_number + + # Pago de impuesto + if line.tax_payment is None: + line.tax_payment = existing_line.tax_payment + + # Forma de pago + if not line.payment_method: + line.payment_method = existing_line.payment_method + + # Método de valoración + if not line.valuation_method: + if existing_line.valuation_method: + line.valuation_method = existing_line.valuation_method + # else: TODO: Tomar de SisImp:MetValor (preferencias del sistema) + + # Número de entrada + if not line.description.entry_number: + line.description.entry_number = existing_line.description.entry_number + + # Lote + if not line.description.lot: + line.description.lot = existing_line.description.lot diff --git a/backend/api/v1/modules/a76/items/line_customs/models.py b/backend/api/v1/modules/a76/items/line_customs/models.py index f3c99acc..2b400ed2 100644 --- a/backend/api/v1/modules/a76/items/line_customs/models.py +++ b/backend/api/v1/modules/a76/items/line_customs/models.py @@ -6,6 +6,13 @@ from core.database import Base if TYPE_CHECKING: from ..line_items.models import LineItem + +class FractionType: + """Enumeration for fraction types""" + GENERAL = "GENERAL" + PROSEC = "PROSEC" + ALADI = "ALADI" + TLCS = "TLCS" class LineCustom(Base): """ @@ -22,7 +29,7 @@ class LineCustom(Base): # Tariff/Customs Classifications fraction: Mapped[Optional[str]] = mapped_column(String(10)) # FRACCION / FRACCIONIMPO / FRACCIONEXPO - fraction_type: Mapped[Optional[str]] = mapped_column(String(7)) # TIPOFRACCION / TIPOFRACCIONIMPO / TIPOFRACCIONEXPO + fraction_type: Mapped[Optional[FractionType]] = mapped_column(String(7)) # TIPOFRACCION / TIPOFRACCIONIMPO / TIPOFRACCIONEXPO american_fraction: Mapped[Optional[str]] = mapped_column(String(16)) # FRACCIONAMERICANA alternate_fraction: Mapped[Optional[str]] = mapped_column(String(10)) # FRACCIONALTERNA reference_fraction: Mapped[Optional[str]] = mapped_column(String(10)) # FRACCIONREFERENCIA diff --git a/backend/api/v1/modules/a76/items/line_descriptions/models.py b/backend/api/v1/modules/a76/items/line_descriptions/models.py index 39e09560..d8c7ecbf 100644 --- a/backend/api/v1/modules/a76/items/line_descriptions/models.py +++ b/backend/api/v1/modules/a76/items/line_descriptions/models.py @@ -24,7 +24,8 @@ class LineDescription(Base): description_english: Mapped[Optional[str]] = mapped_column(String(4999)) # DESCRIPCIONI extra_description: Mapped[Optional[str]] = mapped_column(Text) # DESCRIPCIONEEXTRA part_description: Mapped[Optional[str]] = mapped_column(String(500)) # DESCRIPCIONPARTE - class_description: Mapped[Optional[str]] = mapped_column(String(500)) # DESCRIPCIONCLASE + class_description: Mapped[Optional[str]] = mapped_column(String(500)) # DESCRIPCIONCLASE + package_description: Mapped[Optional[str]] = mapped_column(String(500)) # DESCRIPCIONBULTO # Product attributes brand: Mapped[Optional[str]] = mapped_column(String(50)) # MARCA diff --git a/backend/api/v1/modules/a76/items/line_descriptions/schemas.py b/backend/api/v1/modules/a76/items/line_descriptions/schemas.py index 56965c36..8a65d68e 100644 --- a/backend/api/v1/modules/a76/items/line_descriptions/schemas.py +++ b/backend/api/v1/modules/a76/items/line_descriptions/schemas.py @@ -13,6 +13,7 @@ class LineDescriptionBase(BaseModel): extra_description: Optional[str] = Field(None, description="Extra description (DESCRIPCIONEEXTRA)") part_description: Optional[str] = Field(None, max_length=500, description="Part description (DESCRIPCIONPARTE)") class_description: Optional[str] = Field(None, max_length=500, description="Class description (DESCRIPCIONCLASE)") + package_description: Optional[str] = Field(None, max_length=500, description="Package description (DESCRIPCIONBULTO)") # Product attributes brand: Optional[str] = Field(None, max_length=50, description="Brand (MARCA)") diff --git a/backend/api/v1/modules/a76/items/line_items/models.py b/backend/api/v1/modules/a76/items/line_items/models.py index a7603d11..5192f46f 100644 --- a/backend/api/v1/modules/a76/items/line_items/models.py +++ b/backend/api/v1/modules/a76/items/line_items/models.py @@ -193,3 +193,8 @@ class LineItem(Base, TenantScopedMixin, TimestampMixin): cascade="all, delete-orphan", uselist=False, ) + part_info: Mapped[Optional["api.v1.modules.a76.parts.models.Part"]] = relationship( + "api.v1.modules.a76.parts.models.Part", + foreign_keys=[part_number], + viewonly=True, + ) diff --git a/backend/api/v1/modules/a76/items/line_items/schemas.py b/backend/api/v1/modules/a76/items/line_items/schemas.py index 5c23910a..86e0b168 100644 --- a/backend/api/v1/modules/a76/items/line_items/schemas.py +++ b/backend/api/v1/modules/a76/items/line_items/schemas.py @@ -46,14 +46,21 @@ class LineItemBase(BaseModel): model_config = ConfigDict(populate_by_name=True) + item_id: int = Field(..., description="ID of the parent item") line_number: int = Field(..., description="Line number") # Part identification part_number_id: Optional[int] = Field( - None, description="Part number", alias="part_number", serialization_alias="part_number_id" + None, + description="Part number", + alias="part_number", + serialization_alias="part_number_id", ) component_part_number_id: Optional[int] = Field( - None, description="Component part number", alias="component_part_number", serialization_alias="component_part_number_id" + None, + description="Component part number", + alias="component_part_number", + serialization_alias="component_part_number_id", ) class_id: Optional[int] = Field(None, description="Class code") @@ -181,6 +188,12 @@ class LineItemBase(BaseModel): class LineItemCreate(LineItemBase): """Schema for creating line item with all nested data""" + # Override base fields - estos se asignan automáticamente en el service + item_id: Optional[int] = Field( + None, description="ID of the parent item (auto-assigned)" + ) + line_number: Optional[int] = Field(None, description="Line number (auto-assigned)") + financial: Optional[LineFinancialCreate] = Field( None, description="Financial data for this line" ) @@ -204,6 +217,8 @@ class LineItemCreate(LineItemBase): class LineItemUpdate(LineItemBase): """Schema for updating line item with all nested data""" + # Override base fields - todos opcionales en updates + item_id: Optional[int] = Field(None, description="ID of the parent item") line_number: Optional[int] = Field(None, description="Line number") financial: Optional[LineFinancialUpdate] = Field( None, description="Financial data for this line" diff --git a/backend/api/v1/modules/a76/items/models.py b/backend/api/v1/modules/a76/items/models.py index 6cb67175..53e75cfd 100644 --- a/backend/api/v1/modules/a76/items/models.py +++ b/backend/api/v1/modules/a76/items/models.py @@ -52,6 +52,8 @@ class Item(Base, TenantScopedMixin, TimestampMixin): # Relationships (one-to-many) lines: Mapped[List["LineItem"]] = relationship( "LineItem", back_populates="item", cascade="all, delete-orphan") + + invoice: Mapped["InvoiceHeader"] = relationship("InvoiceHeader") # ============================================================================ # SUPPORTING TABLES diff --git a/backend/api/v1/modules/a76/items/service.py b/backend/api/v1/modules/a76/items/service.py index 2efe582a..63d1d25e 100644 --- a/backend/api/v1/modules/a76/items/service.py +++ b/backend/api/v1/modules/a76/items/service.py @@ -16,6 +16,10 @@ from sqlalchemy import and_, or_ from sqlalchemy.exc import IntegrityError from sqlalchemy.orm import Session, joinedload +from api.v1.modules.a76.invoices.common.common_validators import ( + invoice_exists_by_id, + invoice_updated, +) from core.exceptions import ErrorCollector from .imports.temporary.validators.create import validate_create from .imports.temporary.validators.update import validate_update @@ -32,8 +36,6 @@ from .line_references.models import LineReference from api.v1.modules.a24.fa.fa_item_lines.models import FaLineItem from .models import Item from api.v1.modules.a76.invoices.models import InvoiceHeader -from api.v1.modules.a76.general_catalogs.company.models import Company - logger = logging.getLogger(__name__) @@ -43,6 +45,101 @@ class ItemService: Service for managing Items and related entities with tenant/company isolation """ + @staticmethod + def _get_next_line_number(db: Session, invoice_id: int) -> int: + """Calculate the next line_number for a given invoice based on database.""" + from sqlalchemy import func + + max_line = ( + db.query(func.max(LineItem.line_number)) + .join(Item, LineItem.item_id == Item.id) + .filter(Item.invoice_id == invoice_id) + .scalar() + ) + + return 1 if max_line is None else max_line + 1 + + @staticmethod + def _renumber_all_invoice_lines(db: Session, invoice_id: int) -> None: + """Renumber all line_items for a given invoice to be consecutive (1, 2, 3, ...).""" + items = db.query(Item).filter(Item.invoice_id == invoice_id).all() + all_lines = [line for item in items for line in item.lines] + all_lines.sort(key=lambda x: x.line_number if x.line_number else 0) + + for idx, line in enumerate(all_lines, start=1): + line.line_number = idx + + @staticmethod + def _lock_invoice( + db: Session, + invoice_id: int, + tenant_id: int, + company_id: int, + errors: ErrorCollector, + ) -> Optional[InvoiceHeader]: + """Lock invoice to prevent concurrent modifications. Returns locked invoice or adds error.""" + try: + invoice = ( + db.query(InvoiceHeader) + .filter( + InvoiceHeader.id == invoice_id, + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id, + ) + .with_for_update() + .first() + ) + + if not invoice: + errors.add_error( + field="invoice_id", + message="La factura no existe o no se pudo bloquear", + code="LOCK_FAILED", + value=str(invoice_id), + ) + return invoice + except Exception as e: + logger.error(f"Error locking invoice {invoice_id}: {e}") + errors.add_error( + field="invoice_id", + message="Error al intentar bloquear la factura", + code="LOCK_ERROR", + ) + return None + + @staticmethod + def _create_line_nested_data( + db: Session, line: LineItem, line_data, tenant_id: int, company_id: int + ) -> None: + """Create all nested data for a line item.""" + nested_models = [ + (line_data.financial, LineFinancial), + (line_data.quantity, LineQuantity), + (line_data.customs, LineCustom), + (line_data.description, LineDescription), + (line_data.reference, LineReference), + ] + + for data, model_class in nested_models: + if data: + nested_dict = ( + data.model_dump(exclude_unset=True) + if hasattr(data, "model_dump") + else data.model_dump() + ) + nested_dict["item_line_id"] = line.id + db.add(model_class(**nested_dict)) + + # FA data uses line.id as primary key + if line_data.fa_data: + fa_dict = line_data.fa_data.model_dump( + exclude_unset=True, exclude={"line_item_id"} + ) + fa_dict.update( + {"id": line.id, "tenant_id": tenant_id, "company_id": company_id} + ) + db.add(FaLineItem(**fa_dict)) + @staticmethod def get_by_id( db: Session, item_id: int, tenant_id: int, company_id: int @@ -108,7 +205,7 @@ class ItemService: search_term = f"%{filters['search']}%" query = query.filter( or_( - Item.invoice_number.ilike(search_term), + Item.invoice_id.ilike(search_term), Item.reference_number.ilike(search_term), Item.order.ilike(search_term), Item.guide_number.ilike(search_term), @@ -163,78 +260,62 @@ class ItemService: errors = ErrorCollector() # Validar que la factura exista y no esté actualizada (si viene invoice_id) - invoice = None - if item_data.invoice_id: - invoice = ( - db.query(InvoiceHeader) - .filter( - InvoiceHeader.id == item_data.invoice_id, - InvoiceHeader.tenant_id == tenant_id, - InvoiceHeader.company_id == company_id, - ) - .first() - ) + if not item_data.invoice_id: + errors.add_required_error(field="invoice_id") + errors.raise_if_errors("Error al crear el item") - if not invoice: - errors.add_error( - field="invoice_id", - message="La factura especificada no existe", - code="NOT_FOUND", - value=str(item_data.invoice_id), - ) + if not invoice_exists_by_id( + db, item_data.invoice_id, tenant_id, company_id, errors + ): + errors.raise_if_errors("Error al crear el item") + if not invoice_updated(db, item_data.invoice_id, tenant_id, company_id, errors): + errors.raise_if_errors("Error al crear el item") + + # Lock invoice and pre-calculate line_numbers + if not ItemService._lock_invoice( + db, item_data.invoice_id, tenant_id, company_id, errors + ): + errors.raise_if_errors("Error al crear el item") + + line_numbers = [] + if item_data.lines: + starting_line = ItemService._get_next_line_number(db, item_data.invoice_id) + line_numbers = [starting_line + i for i in range(len(item_data.lines))] # Validar cada line item que se va a crear if item_data.lines: for idx, line_data in enumerate(item_data.lines): - # Convertir a LineItemCreate para validar - line_create = LineItemCreate(**line_data.model_dump()) + line_number = line_numbers[idx] # Usar el line_number calculado - validate_create(db, line_create, tenant_id, company_id, errors) + validate_create( + db, + line_data, # Schema Pydantic completo + item_data.invoice_id, # invoice_id + tenant_id, + company_id, + errors, + line_number, + ) # Validaciones adicionales específicas del negocio + if line_data.fa_data and line_data.fa_data.is_subitem is None: + errors.add_required_error( + field=f"lines[{line_number}].fa_data.is_subitem" + ) + + if line_data.fa_data and line_data.fa_data.subitem_number is None: + errors.add_required_error( + field=f"lines[{line_number}].fa_data.subitem_number" + ) # Validar apóstrofes en número de parte if line_data.part_number_id and "'" in str(line_data.part_number_id): errors.add_error( - field=f"lines[{idx}].part_number", + field=f"lines[{line_number}].part_number", message=f"Advertencia: El Número de Parte contiene apóstrofes y serán omitidos", code="WARNING_APOSTROPHE", ) - # Validar tipo de partida - if hasattr(line_data, "item_type"): - tipo_partida = line_data.item_type - if tipo_partida and tipo_partida not in ["N", "S"]: - errors.add_error( - field=f"lines[{idx}].item_type", - message=f"Tipo de partida debe ser 'N' (Normal) o 'S' (Subpartida), recibido: '{tipo_partida}'", - code="INVALID_ITEM_TYPE", - value=str(tipo_partida), - ) - - # Si es subpartida (S), debe tener partida principal - if tipo_partida == "S": - if ( - not hasattr(line_data, "main_line_id") - or not line_data.main_line_id - ): - errors.add_error( - field=f"lines[{idx}].main_line_id", - message="Las subpartidas (tipo 'S') deben tener una partida principal", - code="MISSING_MAIN_LINE", - ) - - # Validar que el line_number sea consecutivo (si se especifica) - if hasattr(line_data, "line_number") and line_data.line_number: - expected_line = idx + 1 - if line_data.line_number != expected_line: - errors.add_error( - field=f"lines[{idx}].line_number", - message=f"Número de línea esperado: {expected_line}, recibido: {line_data.line_number}", - code="INVALID_LINE_SEQUENCE", - value=str(line_data.line_number), - ) - # Si hay errores, lanzar excepción ANTES de intentar crear errors.raise_if_errors("Error al crear el item") @@ -254,14 +335,6 @@ class ItemService: # Create line items if provided for idx, line_data in enumerate(lines_data): - # Extract nested data from line - financial_data = line_data.financial - quantity_data = line_data.quantity - customs_data = line_data.customs - description_data = line_data.description - reference_data = line_data.reference - fa_data = line_data.fa_data - line_dict = line_data.model_dump( exclude={ "financial", @@ -272,66 +345,35 @@ class ItemService: "fa_data", } ) - line_dict["item_id"] = db_item.id - line_dict["tenant_id"] = tenant_id - line_dict["company_id"] = company_id + line_dict.update( + { + "item_id": db_item.id, + "tenant_id": tenant_id, + "company_id": company_id, + "line_number": ( + line_numbers[idx] + if line_numbers + else ItemService._get_next_line_number( + db, item_data.invoice_id + ) + ), + } + ) # Map schema field names to model field names - if "part_number_id" in line_dict: - line_dict["part_number"] = line_dict.pop("part_number_id") - if "component_part_number_id" in line_dict: - line_dict["component_part_number"] = line_dict.pop("component_part_number_id") + line_dict["part_number"] = line_dict.pop("part_number_id", None) + line_dict["component_part_number"] = line_dict.pop( + "component_part_number_id", None + ) - # Create line item db_line = LineItem(**line_dict) db.add(db_line) - db.flush() # Get the line ID + db.flush() - # Create financial data if provided - if financial_data: - financial_dict = financial_data.model_dump() - financial_dict["item_line_id"] = db_line.id - db_financial = LineFinancial(**financial_dict) - db.add(db_financial) - - # Create quantity data if provided - if quantity_data: - quantity_dict = quantity_data.model_dump() - quantity_dict["item_line_id"] = db_line.id - db_quantity = LineQuantity(**quantity_dict) - db.add(db_quantity) - - # Create customs data if provided - if customs_data: - customs_dict = customs_data.model_dump() - customs_dict["item_line_id"] = db_line.id - db_customs = LineCustom(**customs_dict) - db.add(db_customs) - - # Create description data if provided - if description_data: - description_dict = description_data.model_dump() - description_dict["item_line_id"] = db_line.id - db_description = LineDescription(**description_dict) - db.add(db_description) - - # Create reference data if provided - if reference_data: - reference_dict = reference_data.model_dump() - reference_dict["item_line_id"] = db_line.id - db_reference = LineReference(**reference_dict) - db.add(db_reference) - - # Create FA data if provided - if fa_data: - fa_dict = fa_data.model_dump( - exclude={"line_item_id"} - ) # Exclude line_item_id from DTO - fa_dict["id"] = db_line.id # FA table uses same ID as line item - fa_dict["tenant_id"] = tenant_id - fa_dict["company_id"] = company_id - db_fa = FaLineItem(**fa_dict) - db.add(db_fa) + # Create all nested data + ItemService._create_line_nested_data( + db, db_line, line_data, tenant_id, company_id + ) db.commit() db.refresh(db_item) @@ -367,39 +409,25 @@ class ItemService: # Validaciones con ErrorCollector errors = ErrorCollector() - # Si se está actualizando el invoice_id, validar la factura - invoice = None - if item_data.invoice_id: - invoice = ( - db.query(InvoiceHeader) - .filter( - InvoiceHeader.id == item_data.invoice_id, - InvoiceHeader.tenant_id == tenant_id, - InvoiceHeader.company_id == company_id, - ) - .first() - ) + # Lock invoice + invoice_id_to_lock = ( + item_data.invoice_id if item_data.invoice_id else db_item.invoice_id + ) + if not ItemService._lock_invoice( + db, invoice_id_to_lock, tenant_id, company_id, errors + ): + errors.raise_if_errors("Error al actualizar el item") - if not invoice: - errors.add_error( - field="invoice_id", - message="La factura especificada no existe", - code="NOT_FOUND", - value=str(item_data.invoice_id), - ) - else: - # Si no se está actualizando invoice_id, obtener la factura actual por invoice_id - from api.v1.modules.a76.invoices.models import InvoiceHeader - - invoice = ( - db.query(InvoiceHeader) - .filter(InvoiceHeader.id == db_item.invoice_id) - .first() - ) + # Pre-calcular line_numbers para cada línea (en update, las líneas se renumeran desde 1) + line_numbers = [] + if item_data.lines: + line_numbers = [i + 1 for i in range(len(item_data.lines))] # Validar cada line item que se va a actualizar if item_data.lines: for idx, line_data in enumerate(item_data.lines): + line_number = line_numbers[idx] # Usar el line_number calculado + # Si el line tiene ID, es actualización; si no, es creación if hasattr(line_data, "id") and line_data.id: # Buscar el line item existente @@ -408,13 +436,28 @@ class ItemService: None, ) if existing_line: - # Convertir a LineItemUpdate para validar - line_update = LineItemUpdate(**line_data.model_dump()) - validate_update(db, line_update, tenant_id, company_id, errors) + # Validar update con línea existente + validate_update( + db, + line_data, # Schema de update + existing_line, # LineItem existente en DB + invoice_id_to_lock, # invoice_id + tenant_id, + company_id, + errors, + line_number, + ) else: # Es un nuevo line item, validar como creación - line_create = LineItemCreate(**line_data.model_dump()) - validate_create(db, line_create, tenant_id, company_id, errors) + validate_create( + db, + line_data, # Schema Pydantic completo + invoice_id_to_lock, # invoice_id + tenant_id, + company_id, + errors, + line_number, + ) # Validaciones adicionales específicas del negocio # (Aplican tanto para crear como actualizar) @@ -422,7 +465,7 @@ class ItemService: # Validar apóstrofes en número de parte if line_data.part_number_id and "'" in str(line_data.part_number_id): errors.add_error( - field=f"lines[{idx}].part_number", + field=f"lines[{line_number}].part_number", message=f"Advertencia: El Número de Parte contiene apóstrofes y serán omitidos", solution=None, code="WARNING_APOSTROPHE", @@ -433,7 +476,7 @@ class ItemService: tipo_partida = line_data.item_type if tipo_partida and tipo_partida not in ["N", "S"]: errors.add_error( - field=f"lines[{idx}].item_type", + field=f"lines[{line_number}].item_type", message=f"Tipo de partida debe ser 'N' (Normal) o 'S' (Subpartida), recibido: '{tipo_partida}'", solution=None, code="INVALID_ITEM_TYPE", @@ -447,24 +490,12 @@ class ItemService: or not line_data.main_line_id ): errors.add_error( - field=f"lines[{idx}].main_line_id", + field=f"lines[{line_number}].main_line_id", message="Las subpartidas (tipo 'S') deben tener una partida principal", solution=None, code="MISSING_MAIN_LINE", ) - # Validar que el line_number sea consecutivo (si se especifica) - if hasattr(line_data, "line_number") and line_data.line_number: - expected_line = idx + 1 - if line_data.line_number != expected_line: - errors.add_error( - field=f"lines[{idx}].line_number", - message=f"Número de línea esperado: {expected_line}, recibido: {line_data.line_number}", - solution=None, - code="INVALID_LINE_SEQUENCE", - value=str(line_data.line_number), - ) - # Si hay errores, lanzar excepción ANTES de actualizar errors.raise_if_errors("Error al actualizar el item") @@ -486,15 +517,7 @@ class ItemService: db.flush() # Create new lines - for line_data in lines_data: - # Extract nested data from line - financial_data = line_data.financial - quantity_data = line_data.quantity - customs_data = line_data.customs - description_data = line_data.description - reference_data = line_data.reference - fa_data = line_data.fa_data - + for idx, line_data in enumerate(lines_data): line_dict = line_data.model_dump( exclude={ "financial", @@ -506,57 +529,32 @@ class ItemService: }, exclude_unset=True, ) - line_dict["item_id"] = db_item.id - line_dict["tenant_id"] = tenant_id - line_dict["company_id"] = company_id + line_dict.update( + { + "item_id": db_item.id, + "tenant_id": tenant_id, + "company_id": company_id, + "line_number": idx + 1, + } + ) # Map schema field names to model field names - if "part_number_id" in line_dict: - line_dict["part_number"] = line_dict.pop("part_number_id") - if "component_part_number_id" in line_dict: - line_dict["component_part_number"] = line_dict.pop("component_part_number_id") + line_dict["part_number"] = line_dict.pop("part_number_id", None) + line_dict["component_part_number"] = line_dict.pop( + "component_part_number_id", None + ) db_line = LineItem(**line_dict) db.add(db_line) db.flush() - # Create nested data if provided - if financial_data is not None: - financial_dict = financial_data.model_dump(exclude_unset=True) - financial_dict["item_line_id"] = db_line.id - db.add(LineFinancial(**financial_dict)) + # Create all nested data + ItemService._create_line_nested_data( + db, db_line, line_data, tenant_id, company_id + ) - if quantity_data is not None: - quantity_dict = quantity_data.model_dump(exclude_unset=True) - quantity_dict["item_line_id"] = db_line.id - db.add(LineQuantity(**quantity_dict)) - - if customs_data is not None: - customs_dict = customs_data.model_dump(exclude_unset=True) - customs_dict["item_line_id"] = db_line.id - db.add(LineCustom(**customs_dict)) - - if description_data is not None: - description_dict = description_data.model_dump( - exclude_unset=True - ) - description_dict["item_line_id"] = db_line.id - db.add(LineDescription(**description_dict)) - - if reference_data is not None: - reference_dict = reference_data.model_dump(exclude_unset=True) - reference_dict["item_line_id"] = db_line.id - db.add(LineReference(**reference_dict)) - - # Create FA data if provided - if fa_data is not None: - fa_dict = fa_data.model_dump( - exclude_unset=True, exclude={"line_item_id"} - ) - fa_dict["id"] = db_line.id # FA table uses same ID as line item - fa_dict["tenant_id"] = tenant_id - fa_dict["company_id"] = company_id - db.add(FaLineItem(**fa_dict)) + # Renumber all lines for this invoice to ensure consecutive numbering + ItemService._renumber_all_invoice_lines(db, db_item.invoice_id) db.commit() db.refresh(db_item) @@ -582,7 +580,20 @@ class ItemService: if not db_item: return False + invoice_id = db_item.invoice_id + errors = ErrorCollector() + + # Lock the invoice + if not ItemService._lock_invoice( + db, invoice_id, tenant_id, company_id, errors + ): + raise HTTPException( + status_code=404, detail="Invoice not found or could not be locked" + ) + db.delete(db_item) + db.flush() + ItemService._renumber_all_invoice_lines(db, invoice_id) db.commit() return True diff --git a/backend/api/v1/modules/a76/manifests/__init__.py b/backend/api/v1/modules/a76/manifests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/backend/api/v1/modules/a76/manifests/concept_manifestation/__init__.py b/backend/api/v1/modules/a76/manifests/concept_manifestation/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/backend/api/v1/modules/a76/manifests/concept_manifestation/dtos.py b/backend/api/v1/modules/a76/manifests/concept_manifestation/dtos.py new file mode 100644 index 00000000..5c88df41 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/concept_manifestation/dtos.py @@ -0,0 +1,48 @@ +from decimal import Decimal +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class ConceptManifestationBaseDTO(BaseModel): + value_manifestation_id: int = Field(..., description="Value Manifestation ID") + line_number: int = Field(..., description="Line number") + attachment_type: Optional[str] = Field(None, max_length=10, description="Attachment type") + number: Optional[str] = Field(None, max_length=10, description="Number") + merchandise_provider: Optional[str] = Field(None, max_length=100, description="Merchandise provider") + invoice_document: Optional[str] = Field(None, max_length=200, description="Invoice document") + amount: Optional[Decimal] = Field(None, description="Amount") + currency: Optional[str] = Field(None, max_length=3, description="Currency") + concept_load: Optional[str] = Field(None, max_length=200, description="Concept load") + + +class ConceptManifestationCreateDTO(ConceptManifestationBaseDTO): + pass + + +class ConceptManifestationUpdateDTO(BaseModel): + attachment_type: Optional[str] = Field(None, max_length=10, description="Attachment type") + number: Optional[str] = Field(None, max_length=10, description="Number") + merchandise_provider: Optional[str] = Field(None, max_length=100, description="Merchandise provider") + invoice_document: Optional[str] = Field(None, max_length=200, description="Invoice document") + amount: Optional[Decimal] = Field(None, description="Amount") + currency: Optional[str] = Field(None, max_length=3, description="Currency") + concept_load: Optional[str] = Field(None, max_length=200, description="Concept load") + + +class ConceptManifestationResponseDTO(ConceptManifestationBaseDTO): + tenant_id: int + company_id: int + + class Config: + from_attributes = True + + +class ConceptManifestationListDTO(BaseModel): + items: List[ConceptManifestationResponseDTO] + total: int + page: int + page_size: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/a76/manifests/concept_manifestation/models.py b/backend/api/v1/modules/a76/manifests/concept_manifestation/models.py new file mode 100644 index 00000000..0242102f --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/concept_manifestation/models.py @@ -0,0 +1,45 @@ +from decimal import Decimal +from typing import TYPE_CHECKING, Optional + +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin +from core.database import Base +from sqlalchemy import ( + ForeignKeyConstraint, + Index, + Integer, + Numeric, + PrimaryKeyConstraint, + String, +) +from sqlalchemy.orm import Mapped, mapped_column, relationship + +if TYPE_CHECKING: + from api.v1.modules.a76.manifests.value_manifestation.models import ValueManifestation + +class ConceptManifestation(Base, TenantScopedMixin, TimestampMixin): + __tablename__ = "concept_manifestations" + __table_args__ = ( + PrimaryKeyConstraint("value_manifestation_id", "line_number", name="concept_manifestations_pkey"), + ForeignKeyConstraint( + ["value_manifestation_id"], + ["a76.value_manifestations.id"], + name="fk_concept_manifestation_value_manifestation" + ), + Index("idx_concept_manifestations_value_manifestation_id", "value_manifestation_id"), + {"schema": "a76"}, + ) + + value_manifestation_id: Mapped[int] = mapped_column(Integer) + line_number: Mapped[int] = mapped_column(Integer) + attachment_type: Mapped[Optional[str]] = mapped_column(String(10), nullable=True) + number: Mapped[Optional[str]] = mapped_column(String(10), nullable=True) + merchandise_provider: Mapped[Optional[str]] = mapped_column(String(100), nullable=True) + invoice_document: Mapped[Optional[str]] = mapped_column(String(200), nullable=True) + amount: Mapped[Optional[Decimal]] = mapped_column(Numeric(19, 9), nullable=True) + currency: Mapped[Optional[str]] = mapped_column(String(3), nullable=True) + concept_load: Mapped[Optional[str]] = mapped_column(String(200), nullable=True) + + value_manifestation: Mapped["ValueManifestation"] = relationship( + "ValueManifestation", + backref="concepts" + ) diff --git a/backend/api/v1/modules/a76/manifests/concept_manifestation/routes.py b/backend/api/v1/modules/a76/manifests/concept_manifestation/routes.py new file mode 100644 index 00000000..e45543e6 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/concept_manifestation/routes.py @@ -0,0 +1,112 @@ +from typing import Optional + +from fastapi import APIRouter, Depends, Query, HTTPException +from sqlalchemy.orm import Session + +from core.database import get_core_db +from core.security import get_current_user, validate_access_to_resource +from .dtos import ( + ConceptManifestationCreateDTO, + ConceptManifestationUpdateDTO, + ConceptManifestationResponseDTO, + ConceptManifestationListDTO, +) +from .service import ConceptManifestationService + +router = APIRouter(prefix="/concept-manifestations") + + +@router.get("/", response_model=ConceptManifestationListDTO) +async def list_concept_manifestations( + company_id: int = Query(..., description="Company ID"), + value_manifestation_id: Optional[int] = Query( + None, description="Filter by Value Manifestation ID" + ), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + filters = {} + if value_manifestation_id: + filters["value_manifestation_id"] = value_manifestation_id + + items, total = ConceptManifestationService.get_all( + db, tenant_id, company_id, skip=skip, limit=limit, filters=filters + ) + return { + "items": [ConceptManifestationResponseDTO.model_validate(item) for item in items], + "total": total, + "page": (skip // limit) + 1, + "page_size": limit, + } + + +@router.post("/", response_model=ConceptManifestationResponseDTO) +async def create_concept_manifestation( + data: ConceptManifestationCreateDTO, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + return ConceptManifestationService.create(db, data, tenant_id, company_id) + + +@router.get( + "/{value_manifestation_id}/{line_number}", + response_model=ConceptManifestationResponseDTO, +) +async def get_concept_manifestation( + value_manifestation_id: int, + line_number: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + item = ConceptManifestationService.get_by_id( + db, value_manifestation_id, line_number, tenant_id, company_id + ) + if not item: + raise HTTPException(status_code=404, detail="Concept Manifestation not found") + return item + + +@router.patch( + "/{value_manifestation_id}/{line_number}", + response_model=ConceptManifestationResponseDTO, +) +async def update_concept_manifestation( + value_manifestation_id: int, + line_number: int, + data: ConceptManifestationUpdateDTO, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + item = ConceptManifestationService.update( + db, value_manifestation_id, line_number, tenant_id, company_id, data + ) + if not item: + raise HTTPException(status_code=404, detail="Concept Manifestation not found") + return item + + +@router.delete("/{value_manifestation_id}/{line_number}", response_model=bool) +async def delete_concept_manifestation( + value_manifestation_id: int, + line_number: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + success = ConceptManifestationService.delete( + db, value_manifestation_id, line_number, tenant_id, company_id + ) + if not success: + raise HTTPException(status_code=404, detail="Concept Manifestation not found") + return success diff --git a/backend/api/v1/modules/a76/manifests/concept_manifestation/service.py b/backend/api/v1/modules/a76/manifests/concept_manifestation/service.py new file mode 100644 index 00000000..b0ee853a --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/concept_manifestation/service.py @@ -0,0 +1,143 @@ +import logging +from typing import List, Optional, Dict, Any, Tuple + +from fastapi import HTTPException +from sqlalchemy import or_ +from sqlalchemy.orm import Session + +from .models import ConceptManifestation +from .dtos import ( + ConceptManifestationCreateDTO, + ConceptManifestationUpdateDTO, +) + +logger = logging.getLogger(__name__) + + +class ConceptManifestationService: + @staticmethod + def get_all( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[ConceptManifestation], int]: + query = db.query(ConceptManifestation).filter( + ConceptManifestation.tenant_id == tenant_id, + ConceptManifestation.company_id == company_id, + ) + + if filters: + if filters.get("value_manifestation_id"): + query = query.filter( + ConceptManifestation.value_manifestation_id == filters["value_manifestation_id"] + ) + + total = query.count() + items = query.offset(skip).limit(limit).all() + + return items, total + + @staticmethod + def get_by_id( + db: Session, + value_manifestation_id: int, + line_number: int, + tenant_id: int, + company_id: int, + ) -> Optional[ConceptManifestation]: + return ( + db.query(ConceptManifestation) + .filter( + ConceptManifestation.value_manifestation_id == value_manifestation_id, + ConceptManifestation.line_number == line_number, + ConceptManifestation.tenant_id == tenant_id, + ConceptManifestation.company_id == company_id, + ) + .first() + ) + + @staticmethod + def create( + db: Session, + data: ConceptManifestationCreateDTO, + tenant_id: int, + company_id: int, + ) -> ConceptManifestation: + try: + db_item = ConceptManifestation( + **data.model_dump(exclude_unset=True), + tenant_id=tenant_id, + company_id=company_id, + ) + db.add(db_item) + db.commit() + db.refresh(db_item) + return db_item + except Exception as e: + db.rollback() + logger.error(f"Error creating concept manifestation: {str(e)}") + raise HTTPException( + status_code=500, detail="Error creating concept manifestation" + ) + + @staticmethod + def update( + db: Session, + value_manifestation_id: int, + line_number: int, + tenant_id: int, + company_id: int, + data: ConceptManifestationUpdateDTO, + ) -> Optional[ConceptManifestation]: + item = ConceptManifestationService.get_by_id( + db, value_manifestation_id, line_number, tenant_id, company_id + ) + if not item: + return None + + try: + update_data = data.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(item, field, value) + + db.commit() + db.refresh(item) + return item + except Exception as e: + db.rollback() + logger.error( + f"Error updating concept manifestation {value_manifestation_id}-{line_number}: {str(e)}" + ) + raise HTTPException( + status_code=500, detail="Error updating concept manifestation" + ) + + @staticmethod + def delete( + db: Session, + value_manifestation_id: int, + line_number: int, + tenant_id: int, + company_id: int, + ) -> bool: + item = ConceptManifestationService.get_by_id( + db, value_manifestation_id, line_number, tenant_id, company_id + ) + if not item: + return False + + try: + db.delete(item) + db.commit() + return True + except Exception as e: + db.rollback() + logger.error( + f"Error deleting concept manifestation {value_manifestation_id}-{line_number}: {str(e)}" + ) + raise HTTPException( + status_code=500, detail="Error deleting concept manifestation" + ) diff --git a/backend/api/v1/modules/a76/manifests/driver/__init__.py b/backend/api/v1/modules/a76/manifests/driver/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/backend/api/v1/modules/a76/manifests/driver/dtos.py b/backend/api/v1/modules/a76/manifests/driver/dtos.py new file mode 100644 index 00000000..c93256b8 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/driver/dtos.py @@ -0,0 +1,42 @@ +from typing import List, Optional +from pydantic import BaseModel, Field + + +class ManifestDriverBaseDTO(BaseModel): + manifest_number: str = Field(..., max_length=15, description="Manifest number") + driver_name: str = Field(..., max_length=80, description="Driver name") + driver_type: Optional[str] = Field(None, max_length=1, description="Driver type") + address_1: Optional[str] = Field(None, max_length=100, description="Address line 1") + address_2: Optional[str] = Field(None, max_length=100, description="Address line 2") + city: Optional[str] = Field(None, max_length=30, description="City") + state: Optional[str] = Field(None, max_length=30, description="State") + postal_code: Optional[str] = Field(None, max_length=15, description="Postal code") + country: Optional[str] = Field(None, max_length=3, description="Country") + + +class ManifestDriverCreateDTO(ManifestDriverBaseDTO): + pass + + +class ManifestDriverUpdateDTO(ManifestDriverBaseDTO): + # Overriding to make PKs optional for update if needed, but usually PKs are in URL + manifest_number: Optional[str] = Field(None, max_length=15) + driver_name: Optional[str] = Field(None, max_length=80) + + +class ManifestDriverResponseDTO(ManifestDriverBaseDTO): + tenant_id: int + company_id: int + + class Config: + from_attributes = True + + +class ManifestDriverListDTO(BaseModel): + items: List[ManifestDriverResponseDTO] + total: int + page: int + page_size: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/a76/manifests/driver/models.py b/backend/api/v1/modules/a76/manifests/driver/models.py new file mode 100644 index 00000000..67fbed47 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/driver/models.py @@ -0,0 +1,30 @@ +from typing import Optional + +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin +from core.database import Base +from sqlalchemy import ( + Index, + Integer, + PrimaryKeyConstraint, + String, +) +from sqlalchemy.orm import Mapped, mapped_column + + +class ManifestDriver(Base, TenantScopedMixin, TimestampMixin): + __tablename__ = "manifest_drivers" + __table_args__ = ( + PrimaryKeyConstraint("manifest_number", "driver_name", name="manifest_drivers_pkey"), + Index("idx_manifest_drivers_manifest_number", "manifest_number"), + {"schema": "a76"}, + ) + + manifest_number: Mapped[str] = mapped_column(String(15)) + driver_name: Mapped[str] = mapped_column(String(80)) + driver_type: Mapped[Optional[str]] = mapped_column(String(1), nullable=True) + address_1: Mapped[Optional[str]] = mapped_column(String(100), nullable=True) + address_2: Mapped[Optional[str]] = mapped_column(String(100), nullable=True) + city: Mapped[Optional[str]] = mapped_column(String(30), nullable=True) + state: Mapped[Optional[str]] = mapped_column(String(30), nullable=True) + postal_code: Mapped[Optional[str]] = mapped_column(String(15), nullable=True) + country: Mapped[Optional[str]] = mapped_column(String(3), nullable=True) diff --git a/backend/api/v1/modules/a76/manifests/driver/routes.py b/backend/api/v1/modules/a76/manifests/driver/routes.py new file mode 100644 index 00000000..f7e86a7f --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/driver/routes.py @@ -0,0 +1,98 @@ +from typing import List, Optional, Dict, Any + +from fastapi import APIRouter, Depends, Query, HTTPException +from sqlalchemy.orm import Session + +from core.database import get_core_db +from core.security import get_current_user, validate_access_to_resource +from .dtos import ( + ManifestDriverCreateDTO, + ManifestDriverUpdateDTO, + ManifestDriverResponseDTO, + ManifestDriverListDTO, +) +from .service import ManifestDriverService + +router = APIRouter(prefix="/manifest-drivers") + + +@router.get("/", response_model=ManifestDriverListDTO) +async def list_manifest_drivers( + company_id: int = Query(..., description="Company ID"), + manifest_number: Optional[str] = Query(None, description="Filter by Manifest Number"), + search: Optional[str] = Query(None, description="Search term"), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + filters = {"manifest_number": manifest_number, "search": search} + items, total = ManifestDriverService.get_all( + db, tenant_id, company_id, skip=skip, limit=limit, filters=filters + ) + return { + "items": [ManifestDriverResponseDTO.model_validate(item) for item in items], + "total": total, + "page": (skip // limit) + 1, + "page_size": limit, + } + + +@router.post("/", response_model=ManifestDriverResponseDTO) +async def create_manifest_driver( + data: ManifestDriverCreateDTO, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + return ManifestDriverService.create(db, data, tenant_id, company_id) + + +@router.get("/{manifest_number}/{driver_name}", response_model=ManifestDriverResponseDTO) +async def get_manifest_driver( + manifest_number: str, + driver_name: str, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + item = ManifestDriverService.get_by_pk(db, manifest_number, driver_name, tenant_id, company_id) + if not item: + raise HTTPException(status_code=404, detail="Manifest Driver not found") + return item + + +@router.patch("/{manifest_number}/{driver_name}", response_model=ManifestDriverResponseDTO) +async def update_manifest_driver( + manifest_number: str, + driver_name: str, + data: ManifestDriverUpdateDTO, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + item = ManifestDriverService.update( + db, manifest_number, driver_name, tenant_id, company_id, data + ) + if not item: + raise HTTPException(status_code=404, detail="Manifest Driver not found") + return item + + +@router.delete("/{manifest_number}/{driver_name}", response_model=bool) +async def delete_manifest_driver( + manifest_number: str, + driver_name: str, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + success = ManifestDriverService.delete(db, manifest_number, driver_name, tenant_id, company_id) + if not success: + raise HTTPException(status_code=404, detail="Manifest Driver not found") + return success diff --git a/backend/api/v1/modules/a76/manifests/driver/service.py b/backend/api/v1/modules/a76/manifests/driver/service.py new file mode 100644 index 00000000..8f3529a4 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/driver/service.py @@ -0,0 +1,124 @@ +import logging +from typing import List, Optional, Dict, Any, Tuple + +from fastapi import HTTPException +from sqlalchemy import or_ +from sqlalchemy.orm import Session + +from .models import ManifestDriver +from .dtos import ManifestDriverCreateDTO, ManifestDriverUpdateDTO + +logger = logging.getLogger(__name__) + + +class ManifestDriverService: + @staticmethod + def get_all( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[ManifestDriver], int]: + query = db.query(ManifestDriver).filter( + ManifestDriver.tenant_id == tenant_id, + ManifestDriver.company_id == company_id, + ) + + if filters: + if filters.get("search"): + search_pattern = f"%{filters['search']}%" + query = query.filter( + or_( + ManifestDriver.manifest_number.ilike(search_pattern), + ManifestDriver.driver_name.ilike(search_pattern), + ) + ) + if filters.get("manifest_number"): + query = query.filter(ManifestDriver.manifest_number == filters["manifest_number"]) + + total = query.count() + items = query.offset(skip).limit(limit).all() + + return items, total + + @staticmethod + def get_by_pk( + db: Session, manifest_number: str, driver_name: str, tenant_id: int, company_id: int + ) -> Optional[ManifestDriver]: + return ( + db.query(ManifestDriver) + .filter( + ManifestDriver.manifest_number == manifest_number, + ManifestDriver.driver_name == driver_name, + ManifestDriver.tenant_id == tenant_id, + ManifestDriver.company_id == company_id, + ) + .first() + ) + + @staticmethod + def create( + db: Session, + data: ManifestDriverCreateDTO, + tenant_id: int, + company_id: int, + ) -> ManifestDriver: + try: + db_item = ManifestDriver( + **data.model_dump(exclude_unset=True), + tenant_id=tenant_id, + company_id=company_id, + ) + db.add(db_item) + db.commit() + db.refresh(db_item) + return db_item + except Exception as e: + db.rollback() + logger.error(f"Error creating manifest driver: {str(e)}") + raise HTTPException(status_code=500, detail="Error creating manifest driver") + + @staticmethod + def update( + db: Session, + manifest_number: str, + driver_name: str, + tenant_id: int, + company_id: int, + data: ManifestDriverUpdateDTO, + ) -> Optional[ManifestDriver]: + item = ManifestDriverService.get_by_pk(db, manifest_number, driver_name, tenant_id, company_id) + if not item: + return None + + try: + update_data = data.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(item, field, value) + + db.commit() + db.refresh(item) + return item + except Exception as e: + db.rollback() + logger.error(f"Error updating manifest driver: {str(e)}") + raise HTTPException(status_code=500, detail="Error updating manifest driver") + + @staticmethod + def delete( + db: Session, manifest_number: str, driver_name: str, tenant_id: int, company_id: int + ) -> bool: + item = ManifestDriverService.get_by_pk(db, manifest_number, driver_name, tenant_id, company_id) + if not item: + return False + + try: + db.delete(item) + db.commit() + return True + except Exception as e: + db.rollback() + logger.error(f"Error deleting manifest driver: {str(e)}") + raise HTTPException(status_code=500, detail="Error deleting manifest driver") diff --git a/backend/api/v1/modules/a76/manifests/manifest/debug_db.py b/backend/api/v1/modules/a76/manifests/manifest/debug_db.py new file mode 100644 index 00000000..e191fd3c --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/manifest/debug_db.py @@ -0,0 +1,41 @@ + +import sys +import os +from sqlalchemy import text, inspect + +# Assume we run this from backend/ with PYTHONPATH=. +from core.database import CoreSessionLocal, core_engine as engine + +def check_table(): + inspector = inspect(engine) + schemas = inspector.get_schema_names() + print(f"Schemas found: {schemas}") + + if 'a76' not in schemas: + print("Schema 'a76' does not exist!") + # return # Proceed anyway to check if table exists in public or other schemas? + + # Check for table in a76 schema + try: + table_names = inspector.get_table_names(schema='a76') + print(f"Tables in 'a76': {table_names}") + + if 'manifests' in table_names: + print("Table 'a76.manifests' exists.") + columns = [c['name'] for c in inspector.get_columns('manifests', schema='a76')] + print(f"Columns: {columns}") + + # Try a simple count + try: + with CoreSessionLocal() as db: + result = db.execute(text("SELECT count(*) FROM a76.manifests")) + print(f"Count result: {result.scalar()}") + except Exception as e: + print(f"Error querying table: {e}") + else: + print("Table 'a76.manifests' DOES NOT exist in schema 'a76'.") + except Exception as e: + print(f"Error inspecting schema 'a76': {e}") + +if __name__ == "__main__": + check_table() diff --git a/backend/api/v1/modules/a76/manifests/manifest/dtos.py b/backend/api/v1/modules/a76/manifests/manifest/dtos.py new file mode 100644 index 00000000..ae4675a1 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/manifest/dtos.py @@ -0,0 +1,66 @@ +from decimal import Decimal +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class ManifestBaseDTO(BaseModel): + manifest_number: Optional[str] = Field(None, max_length=15, description="Manifest number") + importer_details: Optional[str] = Field(None, max_length=60, description="Importer details") + person_in_charge: Optional[str] = Field(None, max_length=60, description="Person in charge") + consigned_to: Optional[str] = Field(None, max_length=8, description="Consigned to") + sent_by: Optional[str] = Field(None, max_length=8, description="Sent by") + foreign_exit_port: Optional[str] = Field(None, max_length=6, description="Foreign exit port") + foreign_exit_port_loc: Optional[str] = Field(None, max_length=4, description="Foreign exit port location") + destination_port: Optional[str] = Field(None, max_length=6, description="Destination port") + destination_port_loc: Optional[str] = Field(None, max_length=4, description="Destination port location") + entry_port: Optional[str] = Field(None, max_length=6, description="Entry port") + entry_port_loc: Optional[str] = Field(None, max_length=4, description="Entry port location") + entry_date: Optional[int] = Field(None, description="Entry date") + net_weight: Optional[Decimal] = Field(None, description="Net weight") + gross_weight: Optional[Decimal] = Field(None, description="Gross weight") + total_value: Optional[Decimal] = Field(None, description="Total value") + description: Optional[str] = Field(None, max_length=2500, description="Description") + broker_code: Optional[str] = Field(None, max_length=5, description="Broker code") + carrier_code: Optional[str] = Field(None, max_length=5, description="Carrier code") + payment_invoice_number: Optional[str] = Field(None, max_length=5, description="Payment invoice number") + seal_number: Optional[str] = Field(None, max_length=30, description="Seal number") + entry_hour: Optional[int] = Field(None, description="Entry hour") + hazardous_material: Optional[str] = Field(None, max_length=2, description="Hazardous material") + transport_mode: Optional[str] = Field(None, max_length=2, description="Transport mode") + transport_code: Optional[str] = Field(None, max_length=14, description="Transport code") + trailer_number: Optional[str] = Field(None, max_length=20, description="Trailer number") + status: Optional[str] = Field(None, max_length=14, description="Status") + status_description: Optional[str] = Field(None, max_length=1000, description="Status description") + manifest_type: Optional[str] = Field(None, max_length=3, description="Manifest type") + + +class ManifestCreateDTO(ManifestBaseDTO): + pass + + +class ManifestUpdateDTO(ManifestBaseDTO): + pass + + +class ManifestResponseDTO(ManifestBaseDTO): + id: int + tenant_id: int + company_id: int + + class Config: + from_attributes = True + + +class ManifestListDTO(BaseModel): + items: List[ManifestResponseDTO] + total: int + page: int + page_size: int + + class Config: + from_attributes = True + + +class InvoiceManifestUpdateDTO(BaseModel): + manifest_number: Optional[str] = Field(None, max_length=15, description="Manifest number") diff --git a/backend/api/v1/modules/a76/manifests/manifest/models.py b/backend/api/v1/modules/a76/manifests/manifest/models.py new file mode 100644 index 00000000..2f97d550 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/manifest/models.py @@ -0,0 +1,52 @@ +from decimal import Decimal +from typing import Optional + +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin +from core.database import Base +from sqlalchemy import ( + Index, + Integer, + Numeric, + PrimaryKeyConstraint, + String, + Text, +) +from sqlalchemy.orm import Mapped, mapped_column + +class Manifest(Base, TenantScopedMixin, TimestampMixin): + __tablename__ = "manifests" + __table_args__ = ( + Index("idx_manifests_manifest_number", "manifest_number"), + {"schema": "a76"}, + ) + + id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) + + manifest_number: Mapped[str] = mapped_column(String(15), nullable=True) + importer_details: Mapped[Optional[str]] = mapped_column(String(60), nullable=True) + person_in_charge: Mapped[Optional[str]] = mapped_column(String(60), nullable=True) + consigned_to: Mapped[Optional[str]] = mapped_column(String(8), nullable=True) + sent_by: Mapped[Optional[str]] = mapped_column(String(8), nullable=True) + foreign_exit_port: Mapped[Optional[str]] = mapped_column(String(6), nullable=True) + foreign_exit_port_loc: Mapped[Optional[str]] = mapped_column(String(4), nullable=True) + destination_port: Mapped[Optional[str]] = mapped_column(String(6), nullable=True) + destination_port_loc: Mapped[Optional[str]] = mapped_column(String(4), nullable=True) + entry_port: Mapped[Optional[str]] = mapped_column(String(6), nullable=True) + entry_port_loc: Mapped[Optional[str]] = mapped_column(String(4), nullable=True) + entry_date: Mapped[Optional[int]] = mapped_column(Integer, nullable=True) + net_weight: Mapped[Optional[Decimal]] = mapped_column(Numeric(19, 8), nullable=True) + gross_weight: Mapped[Optional[Decimal]] = mapped_column(Numeric(19, 8), nullable=True) + total_value: Mapped[Optional[Decimal]] = mapped_column(Numeric(19, 8), nullable=True) + description: Mapped[Optional[str]] = mapped_column(String(2500), nullable=True) + broker_code: Mapped[Optional[str]] = mapped_column(String(5), nullable=True) + carrier_code: Mapped[Optional[str]] = mapped_column(String(5), nullable=True) + payment_invoice_number: Mapped[Optional[str]] = mapped_column(String(5), nullable=True) + seal_number: Mapped[Optional[str]] = mapped_column(String(30), nullable=True) + entry_hour: Mapped[Optional[int]] = mapped_column(Integer, nullable=True) + hazardous_material: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + transport_mode: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + transport_code: Mapped[Optional[str]] = mapped_column(String(14), nullable=True) + trailer_number: Mapped[Optional[str]] = mapped_column(String(20), nullable=True) + status: Mapped[Optional[str]] = mapped_column(String(14), nullable=True) + status_description: Mapped[Optional[str]] = mapped_column(String(1000), nullable=True) + manifest_type: Mapped[Optional[str]] = mapped_column(String(3), nullable=True) diff --git a/backend/api/v1/modules/a76/manifests/manifest/routes.py b/backend/api/v1/modules/a76/manifests/manifest/routes.py new file mode 100644 index 00000000..f6590c62 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/manifest/routes.py @@ -0,0 +1,127 @@ +from typing import List, Optional, Dict, Any + +from fastapi import APIRouter, Depends, Query, HTTPException +from sqlalchemy.orm import Session + +from core.database import get_core_db +from core.security import get_current_user, validate_access_to_resource +from .dtos import ( + ManifestCreateDTO, + ManifestUpdateDTO, + ManifestResponseDTO, + ManifestListDTO, + InvoiceManifestUpdateDTO, +) +from .service import ManifestService + +router = APIRouter(prefix="/manifests") + + +@router.get("/", response_model=ManifestListDTO) +async def list_manifests( + company_id: int = Query(..., description="Company ID"), + search: Optional[str] = Query(None, description="Search term"), + manifest_number: Optional[str] = Query(None, description="Manifest number"), + start_date: Optional[int] = Query(None, description="Start date (YYYYMMDD)"), + end_date: Optional[int] = Query(None, description="End date (YYYYMMDD)"), + skip: int = Query(0, ge=0, description="Skip"), + limit: int = Query(50, ge=1, le=100, description="Limit"), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + """ + List all manifests for a company with pagination and filters + """ + tenant_id = validate_access_to_resource(db, company_id, current_user) + filters = { + "search": search, + "manifest_number": manifest_number, + "start_date": start_date, + "end_date": end_date, + } + items, total = ManifestService.get_all( + db, tenant_id, company_id, skip=skip, limit=limit, filters=filters + ) + return { + "items": [ManifestResponseDTO.model_validate(item) for item in items], + "total": total, + "page": (skip // limit) + 1, + "page_size": limit, + } + + +@router.post("/", response_model=ManifestResponseDTO) +async def create_manifest( + manifest_data: ManifestCreateDTO, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + return ManifestService.create(db, manifest_data, tenant_id, company_id) + + +@router.get("/{manifest_id}", response_model=ManifestResponseDTO) +async def get_manifest( + manifest_id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + manifest = ManifestService.get_by_id(db, manifest_id, tenant_id, company_id) + if not manifest: + raise HTTPException(status_code=404, detail="Manifest not found") + return manifest + + +@router.patch("/{manifest_id}", response_model=ManifestResponseDTO) +async def update_manifest( + manifest_id: int, + manifest_data: ManifestUpdateDTO, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + manifest = ManifestService.update( + db, manifest_id, tenant_id, company_id, manifest_data + ) + if not manifest: + raise HTTPException(status_code=404, detail="Manifest not found") + return manifest + + +@router.delete("/{manifest_id}", response_model=bool) +async def delete_manifest( + manifest_id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + success = ManifestService.delete(db, manifest_id, tenant_id, company_id) + if not success: + raise HTTPException(status_code=404, detail="Manifest not found") + return success + + +@router.patch("/invoices/{invoice_id}/compliance", response_model=bool) +async def update_invoice_manifest( + invoice_id: int, + data: InvoiceManifestUpdateDTO, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + """ + Dedicated endpoint to update manifest_number for an invoice. + Safely bypasses all core invoice update validations. + """ + tenant_id = validate_access_to_resource(db, company_id, current_user) + success = ManifestService.update_invoice_manifest( + db, invoice_id, tenant_id, company_id, data.manifest_number + ) + if not success: + raise HTTPException(status_code=404, detail="Invoice not found") + return success diff --git a/backend/api/v1/modules/a76/manifests/manifest/service.py b/backend/api/v1/modules/a76/manifests/manifest/service.py new file mode 100644 index 00000000..b0045ce9 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/manifest/service.py @@ -0,0 +1,192 @@ +import logging +from typing import List, Optional, Dict, Any, Tuple + +from fastapi import HTTPException +from sqlalchemy import or_ +from sqlalchemy.orm import Session + +from .models import Manifest +from .dtos import ManifestCreateDTO, ManifestUpdateDTO, ManifestResponseDTO + +logger = logging.getLogger(__name__) + + +class ManifestService: + @staticmethod + def get_all( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[Manifest], int]: + query = db.query(Manifest).filter( + Manifest.tenant_id == tenant_id, + Manifest.company_id == company_id, + ) + + if filters: + if filters.get("search"): + search_pattern = f"%{filters['search']}%" + query = query.filter( + or_( + Manifest.manifest_number.ilike(search_pattern), + Manifest.description.ilike(search_pattern), + ) + ) + + if filters.get("manifest_number"): + query = query.filter( + Manifest.manifest_number.ilike(f"%{filters['manifest_number']}%") + ) + + if filters.get("start_date"): + query = query.filter(Manifest.entry_date >= filters["start_date"]) + + if filters.get("end_date"): + query = query.filter(Manifest.entry_date <= filters["end_date"]) + + total = query.count() + items = query.offset(skip).limit(limit).all() + + return items, total + + @staticmethod + def get_by_id( + db: Session, manifest_id: int, tenant_id: int, company_id: int + ) -> Optional[Manifest]: + return ( + db.query(Manifest) + .filter( + Manifest.id == manifest_id, + Manifest.tenant_id == tenant_id, + Manifest.company_id == company_id, + ) + .first() + ) + + @staticmethod + def create( + db: Session, + manifest_data: ManifestCreateDTO, + tenant_id: int, + company_id: int, + ) -> Manifest: + try: + db_manifest = Manifest( + **manifest_data.model_dump(exclude_unset=True), + tenant_id=tenant_id, + company_id=company_id, + ) + db.add(db_manifest) + db.commit() + db.refresh(db_manifest) + return db_manifest + except Exception as e: + db.rollback() + logger.error(f"Error creating manifest: {str(e)}") + raise HTTPException(status_code=500, detail="Error creating manifest") + + @staticmethod + def update( + db: Session, + manifest_id: int, + tenant_id: int, + company_id: int, + manifest_data: ManifestUpdateDTO, + ) -> Optional[Manifest]: + manifest = ManifestService.get_by_id(db, manifest_id, tenant_id, company_id) + if not manifest: + return None + + try: + update_data = manifest_data.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(manifest, field, value) + + db.commit() + db.refresh(manifest) + return manifest + except Exception as e: + db.rollback() + logger.error(f"Error updating manifest {manifest_id}: {str(e)}") + raise HTTPException(status_code=500, detail="Error updating manifest") + + @staticmethod + def delete( + db: Session, manifest_id: int, tenant_id: int, company_id: int + ) -> bool: + manifest = ManifestService.get_by_id(db, manifest_id, tenant_id, company_id) + if not manifest: + return False + + try: + db.delete(manifest) + db.commit() + return True + except Exception as e: + db.rollback() + logger.error(f"Error deleting manifest {manifest_id}: {str(e)}") + raise HTTPException(status_code=500, detail="Error deleting manifest") + + @staticmethod + def update_invoice_manifest( + db: Session, + invoice_id: int, + tenant_id: int, + company_id: int, + manifest_number: Optional[str], + ) -> bool: + """ + Update ONLY the manifest_number of an invoice. + Creates compliance_mx record if it doesn't exist. + """ + # Import models here to avoid circular dependencies if any + from api.v1.modules.a76.invoices.models import ( + InvoiceHeader, + InvoiceComplianceMx, + ) + + invoice = ( + db.query(InvoiceHeader) + .filter( + InvoiceHeader.id == invoice_id, + InvoiceHeader.tenant_id == tenant_id, + InvoiceHeader.company_id == company_id, + ) + .first() + ) + + if not invoice: + return False + + try: + if invoice.compliance_mx: + invoice.compliance_mx.manifest_number = manifest_number + else: + # Create new compliance record with defaults for required fields + new_compliance = InvoiceComplianceMx( + invoice_id=invoice.id, + tenant_id=tenant_id, + company_id=company_id, + manifest_number=manifest_number, + # Required fields defaults + is_pedimento_pending=False, + is_regime_change=False, + is_owner_of_goods=False, + generate_balances=False, + is_mixed=False, + ) + db.add(new_compliance) + + db.commit() + return True + except Exception as e: + db.rollback() + logger.error( + f"Error linking invoice {invoice_id} to manifest {manifest_number}: {str(e)}" + ) + raise HTTPException( + status_code=500, detail="Error linking invoice to manifest" + ) diff --git a/backend/api/v1/modules/a76/manifests/manifiesto_anexo/__init__.py b/backend/api/v1/modules/a76/manifests/manifiesto_anexo/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/backend/api/v1/modules/a76/manifests/manifiesto_anexo/dtos.py b/backend/api/v1/modules/a76/manifests/manifiesto_anexo/dtos.py new file mode 100644 index 00000000..51eb2a37 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/manifiesto_anexo/dtos.py @@ -0,0 +1,37 @@ +from typing import List, Optional +from pydantic import BaseModel, Field + + +class ManifestAnexoBaseDTO(BaseModel): + consecutive: int = Field(..., description="Consecutive number") + line_number: int = Field(..., description="Line number") + attachment_type: Optional[str] = Field(None, max_length=10, description="Attachment type") + number: Optional[str] = Field(None, max_length=10, description="Attachment number") + attached_doc: Optional[str] = Field(None, max_length=200, description="Attached document path/name") + + +class ManifestAnexoCreateDTO(ManifestAnexoBaseDTO): + pass + + +class ManifestAnexoUpdateDTO(ManifestAnexoBaseDTO): + consecutive: Optional[int] = Field(None) + line_number: Optional[int] = Field(None) + + +class ManifestAnexoResponseDTO(ManifestAnexoBaseDTO): + tenant_id: int + company_id: int + + class Config: + from_attributes = True + + +class ManifestAnexoListDTO(BaseModel): + items: List[ManifestAnexoResponseDTO] + total: int + page: int + page_size: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/a76/manifests/manifiesto_anexo/models.py b/backend/api/v1/modules/a76/manifests/manifiesto_anexo/models.py new file mode 100644 index 00000000..1c8f509d --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/manifiesto_anexo/models.py @@ -0,0 +1,26 @@ +from typing import Optional + +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin +from core.database import Base +from sqlalchemy import ( + Index, + Integer, + PrimaryKeyConstraint, + String, +) +from sqlalchemy.orm import Mapped, mapped_column + + +class ManifestAnexo(Base, TenantScopedMixin, TimestampMixin): + __tablename__ = "manifest_anexos" + __table_args__ = ( + PrimaryKeyConstraint("consecutive", "line_number", name="manifest_anexos_pkey"), + Index("idx_manifest_anexos_consecutive", "consecutive"), + {"schema": "a76"}, + ) + + consecutive: Mapped[int] = mapped_column(Integer) + line_number: Mapped[int] = mapped_column(Integer) + attachment_type: Mapped[Optional[str]] = mapped_column(String(10), nullable=True) + number: Mapped[Optional[str]] = mapped_column(String(10), nullable=True) + attached_doc: Mapped[Optional[str]] = mapped_column(String(200), nullable=True) diff --git a/backend/api/v1/modules/a76/manifests/manifiesto_anexo/routes.py b/backend/api/v1/modules/a76/manifests/manifiesto_anexo/routes.py new file mode 100644 index 00000000..6c43bff4 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/manifiesto_anexo/routes.py @@ -0,0 +1,98 @@ +from typing import List, Optional, Dict, Any + +from fastapi import APIRouter, Depends, Query, HTTPException +from sqlalchemy.orm import Session + +from core.database import get_core_db +from core.security import get_current_user, validate_access_to_resource +from .dtos import ( + ManifestAnexoCreateDTO, + ManifestAnexoUpdateDTO, + ManifestAnexoResponseDTO, + ManifestAnexoListDTO, +) +from .service import ManifestAnexoService + +router = APIRouter(prefix="/manifest-anexos") + + +@router.get("/", response_model=ManifestAnexoListDTO) +async def list_manifest_anexos( + company_id: int = Query(..., description="Company ID"), + consecutive: Optional[int] = Query(None, description="Filter by Consecutive"), + search: Optional[str] = Query(None, description="Search term"), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + db: Session = Depends(get_core_db), + current_user: Dict[str, Any] = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + filters = {"consecutive": consecutive, "search": search} + items, total = ManifestAnexoService.get_all( + db, tenant_id, company_id, skip=skip, limit=limit, filters=filters + ) + return { + "items": [ManifestAnexoResponseDTO.model_validate(item) for item in items], + "total": total, + "page": (skip // limit) + 1, + "page_size": limit, + } + + +@router.post("/", response_model=ManifestAnexoResponseDTO) +async def create_manifest_anexo( + data: ManifestAnexoCreateDTO, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + return ManifestAnexoService.create(db, data, tenant_id, company_id) + + +@router.get("/{consecutive}/{line_number}", response_model=ManifestAnexoResponseDTO) +async def get_manifest_anexo( + consecutive: int, + line_number: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + item = ManifestAnexoService.get_by_pk(db, consecutive, line_number, tenant_id, company_id) + if not item: + raise HTTPException(status_code=404, detail="Manifest Anexo not found") + return item + + +@router.patch("/{consecutive}/{line_number}", response_model=ManifestAnexoResponseDTO) +async def update_manifest_anexo( + consecutive: int, + line_number: int, + data: ManifestAnexoUpdateDTO, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + item = ManifestAnexoService.update( + db, consecutive, line_number, tenant_id, company_id, data + ) + if not item: + raise HTTPException(status_code=404, detail="Manifest Anexo not found") + return item + + +@router.delete("/{consecutive}/{line_number}", response_model=bool) +async def delete_manifest_anexo( + consecutive: int, + line_number: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user), +): + tenant_id = validate_access_to_resource(db, company_id, current_user) + success = ManifestAnexoService.delete(db, consecutive, line_number, tenant_id, company_id) + if not success: + raise HTTPException(status_code=404, detail="Manifest Anexo not found") + return success diff --git a/backend/api/v1/modules/a76/manifests/manifiesto_anexo/service.py b/backend/api/v1/modules/a76/manifests/manifiesto_anexo/service.py new file mode 100644 index 00000000..11cd7bf1 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/manifiesto_anexo/service.py @@ -0,0 +1,124 @@ +import logging +from typing import List, Optional, Dict, Any, Tuple + +from fastapi import HTTPException +from sqlalchemy import or_ +from sqlalchemy.orm import Session + +from .models import ManifestAnexo +from .dtos import ManifestAnexoCreateDTO, ManifestAnexoUpdateDTO + +logger = logging.getLogger(__name__) + + +class ManifestAnexoService: + @staticmethod + def get_all( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[ManifestAnexo], int]: + query = db.query(ManifestAnexo).filter( + ManifestAnexo.tenant_id == tenant_id, + ManifestAnexo.company_id == company_id, + ) + + if filters: + if filters.get("consecutive"): + query = query.filter(ManifestAnexo.consecutive == filters["consecutive"]) + if filters.get("search"): + search_pattern = f"%{filters['search']}%" + query = query.filter( + or_( + ManifestAnexo.number.ilike(search_pattern), + ManifestAnexo.attached_doc.ilike(search_pattern), + ) + ) + + total = query.count() + items = query.offset(skip).limit(limit).all() + + return items, total + + @staticmethod + def get_by_pk( + db: Session, consecutive: int, line_number: int, tenant_id: int, company_id: int + ) -> Optional[ManifestAnexo]: + return ( + db.query(ManifestAnexo) + .filter( + ManifestAnexo.consecutive == consecutive, + ManifestAnexo.line_number == line_number, + ManifestAnexo.tenant_id == tenant_id, + ManifestAnexo.company_id == company_id, + ) + .first() + ) + + @staticmethod + def create( + db: Session, + data: ManifestAnexoCreateDTO, + tenant_id: int, + company_id: int, + ) -> ManifestAnexo: + try: + db_item = ManifestAnexo( + **data.model_dump(exclude_unset=True), + tenant_id=tenant_id, + company_id=company_id, + ) + db.add(db_item) + db.commit() + db.refresh(db_item) + return db_item + except Exception as e: + db.rollback() + logger.error(f"Error creating manifest anexo: {str(e)}") + raise HTTPException(status_code=500, detail="Error creating manifest anexo") + + @staticmethod + def update( + db: Session, + consecutive: int, + line_number: int, + tenant_id: int, + company_id: int, + data: ManifestAnexoUpdateDTO, + ) -> Optional[ManifestAnexo]: + item = ManifestAnexoService.get_by_pk(db, consecutive, line_number, tenant_id, company_id) + if not item: + return None + + try: + update_data = data.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(item, field, value) + + db.commit() + db.refresh(item) + return item + except Exception as e: + db.rollback() + logger.error(f"Error updating manifest anexo: {str(e)}") + raise HTTPException(status_code=500, detail="Error updating manifest anexo") + + @staticmethod + def delete( + db: Session, consecutive: int, line_number: int, tenant_id: int, company_id: int + ) -> bool: + item = ManifestAnexoService.get_by_pk(db, consecutive, line_number, tenant_id, company_id) + if not item: + return False + + try: + db.delete(item) + db.commit() + return True + except Exception as e: + db.rollback() + logger.error(f"Error deleting manifest anexo: {str(e)}") + raise HTTPException(status_code=500, detail="Error deleting manifest anexo") diff --git a/backend/api/v1/modules/a76/manifests/value_manifestation/__init__.py b/backend/api/v1/modules/a76/manifests/value_manifestation/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/backend/api/v1/modules/a76/manifests/value_manifestation/dtos.py b/backend/api/v1/modules/a76/manifests/value_manifestation/dtos.py new file mode 100644 index 00000000..37f998ad --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/value_manifestation/dtos.py @@ -0,0 +1,75 @@ +from decimal import Decimal +from typing import List, Optional + +from pydantic import BaseModel, Field + + +class ValueManifestationBaseDTO(BaseModel): + manifestation_number: Optional[str] = Field(None, max_length=100, description="Manifestation number") + pedimento: Optional[str] = Field(None, max_length=15, description="Pedimento") + periodicity: Optional[str] = Field(None, max_length=10, description="Periodicity") + semester: Optional[int] = Field(None, description="Semester") + year: Optional[str] = Field(None, max_length=4, description="Year") + pedimento_type: Optional[str] = Field(None, max_length=3, description="Pedimento type") + aa_code: Optional[str] = Field(None, max_length=5, description="AA code") + patent: Optional[str] = Field(None, max_length=4, description="Patent") + first_name: Optional[str] = Field(None, max_length=80, description="First name") + last_name_paternal: Optional[str] = Field(None, max_length=80, description="Last name paternal") + last_name_maternal: Optional[str] = Field(None, max_length=80, description="Last name maternal") + methods_count: Optional[int] = Field(None, description="Methods count") + merchandise_value_method: Optional[str] = Field(None, max_length=10, description="Merchandise value method") + transaction_value: Optional[int] = Field(None, description="Transaction value") + identical_merchandise_value: Optional[int] = Field(None, description="Identical merchandise value") + similar_merchandise_value: Optional[int] = Field(None, description="Similar merchandise value") + unit_sale_price_value: Optional[int] = Field(None, description="Unit sale price value") + reconstructed_value: Optional[int] = Field(None, description="Reconstructed value") + article_78_value: Optional[int] = Field(None, description="Article 78 value") + provisional_value_declaration: Optional[int] = Field(None, description="Provisional value declaration") + has_attachments: Optional[int] = Field(None, description="Has attachments") + attachment_pages_number: Optional[str] = Field(None, max_length=100, description="Attachment pages number") + transaction_value_paid_price: Optional[Decimal] = Field(None, description="Transaction value paid price") + price_pre_invoice: Optional[int] = Field(None, description="Price pre invoice") + price_other_docs: Optional[int] = Field(None, description="Price other docs") + concept_article_66: Optional[int] = Field(None, description="Concept article 66") + concept_article_66_breakdown: Optional[int] = Field(None, description="Concept article 66 breakdown") + attachment_article_66: Optional[str] = Field(None, max_length=2, description="Attachment article 66") + prepaid_merchandise_article_65: Optional[str] = Field(None, max_length=2, description="Prepaid merchandise article 65") + attachment_article_65: Optional[str] = Field(None, max_length=2, description="Attachment article 65") + tax_base_no_sale: Optional[str] = Field(None, max_length=2, description="Tax base no sale") + exists_circumstances_article_67_71: Optional[str] = Field(None, max_length=2, description="Exists circumstances article 67 71") + customs_value_attachment: Optional[str] = Field(None, max_length=2, description="Customs value attachment") + provisional_value_determination: Optional[str] = Field(None, max_length=2, description="Provisional value determination") + merchandise_value_proof_attachment: Optional[str] = Field(None, max_length=2, description="Merchandise value proof attachment") + legal_rep_rfc: Optional[str] = Field(None, max_length=30, description="Legal rep RFC") + legal_representative: Optional[str] = Field(None, max_length=100, description="Legal representative") + date: Optional[int] = Field(None, description="Date") + selected_invoice: Optional[str] = Field(None, max_length=20, description="Selected invoice") + invoice_option: Optional[str] = Field(None, max_length=3, description="Invoice option") + importer_to_use: Optional[str] = Field(None, max_length=8, description="Importer to use") + + +class ValueManifestationCreateDTO(ValueManifestationBaseDTO): + pass + + +class ValueManifestationUpdateDTO(ValueManifestationBaseDTO): + pass + + +class ValueManifestationResponseDTO(ValueManifestationBaseDTO): + id: int + tenant_id: int + company_id: int + + class Config: + from_attributes = True + + +class ValueManifestationListDTO(BaseModel): + items: List[ValueManifestationResponseDTO] + total: int + page: int + page_size: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/a76/manifests/value_manifestation/models.py b/backend/api/v1/modules/a76/manifests/value_manifestation/models.py new file mode 100644 index 00000000..ae252145 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/value_manifestation/models.py @@ -0,0 +1,66 @@ +from decimal import Decimal +from typing import Optional + +from api.v1.common.base_models import TenantScopedMixin, TimestampMixin +from core.database import Base +from sqlalchemy import ( + Index, + Integer, + Numeric, + PrimaryKeyConstraint, + SmallInteger, + String, +) +from sqlalchemy.orm import Mapped, mapped_column + + +class ValueManifestation(Base, TenantScopedMixin, TimestampMixin): + __tablename__ = "value_manifestations" + __table_args__ = ( + Index("idx_value_manifestations_manifestation_number", "manifestation_number"), + {"schema": "a76"}, + ) + + id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) + + manifestation_number: Mapped[Optional[str]] = mapped_column(String(100), nullable=True) + pedimento: Mapped[Optional[str]] = mapped_column(String(15), nullable=True) + periodicity: Mapped[Optional[str]] = mapped_column(String(10), nullable=True) + semester: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + year: Mapped[Optional[str]] = mapped_column(String(4), nullable=True) + pedimento_type: Mapped[Optional[str]] = mapped_column(String(3), nullable=True) + aa_code: Mapped[Optional[str]] = mapped_column(String(5), nullable=True) + patent: Mapped[Optional[str]] = mapped_column(String(4), nullable=True) + first_name: Mapped[Optional[str]] = mapped_column(String(80), nullable=True) + last_name_paternal: Mapped[Optional[str]] = mapped_column(String(80), nullable=True) + last_name_maternal: Mapped[Optional[str]] = mapped_column(String(80), nullable=True) + methods_count: Mapped[Optional[int]] = mapped_column(Integer, nullable=True) + merchandise_value_method: Mapped[Optional[str]] = mapped_column(String(10), nullable=True) + transaction_value: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + identical_merchandise_value: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + similar_merchandise_value: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + unit_sale_price_value: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + reconstructed_value: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + article_78_value: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + provisional_value_declaration: Mapped[Optional[int]] = mapped_column(Integer, nullable=True) + has_attachments: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + attachment_pages_number: Mapped[Optional[str]] = mapped_column(String(100), nullable=True) + transaction_value_paid_price: Mapped[Optional[Decimal]] = mapped_column(Numeric(19, 8), nullable=True) + price_pre_invoice: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + price_other_docs: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + concept_article_66: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + concept_article_66_breakdown: Mapped[Optional[int]] = mapped_column(SmallInteger, nullable=True) + attachment_article_66: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + prepaid_merchandise_article_65: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + attachment_article_65: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + tax_base_no_sale: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + exists_circumstances_article_67_71: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + customs_value_attachment: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + provisional_value_determination: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + merchandise_value_proof_attachment: Mapped[Optional[str]] = mapped_column(String(2), nullable=True) + legal_rep_rfc: Mapped[Optional[str]] = mapped_column(String(30), nullable=True) + legal_representative: Mapped[Optional[str]] = mapped_column(String(100), nullable=True) + date: Mapped[Optional[int]] = mapped_column(Integer, nullable=True) + selected_invoice: Mapped[Optional[str]] = mapped_column(String(20), nullable=True) + invoice_option: Mapped[Optional[str]] = mapped_column(String(3), nullable=True) + importer_to_use: Mapped[Optional[str]] = mapped_column(String(8), nullable=True) diff --git a/backend/api/v1/modules/a76/manifests/value_manifestation/service.py b/backend/api/v1/modules/a76/manifests/value_manifestation/service.py new file mode 100644 index 00000000..7b867837 --- /dev/null +++ b/backend/api/v1/modules/a76/manifests/value_manifestation/service.py @@ -0,0 +1,136 @@ +import logging +from typing import List, Optional, Dict, Any, Tuple + +from fastapi import HTTPException +from sqlalchemy import or_ +from sqlalchemy.orm import Session + +from .models import ValueManifestation +from .dtos import ( + ValueManifestationCreateDTO, + ValueManifestationUpdateDTO, +) + +logger = logging.getLogger(__name__) + + +class ValueManifestationService: + @staticmethod + def get_all( + db: Session, + tenant_id: int, + company_id: int, + skip: int = 0, + limit: int = 100, + filters: Optional[Dict[str, Any]] = None, + ) -> Tuple[List[ValueManifestation], int]: + query = db.query(ValueManifestation).filter( + ValueManifestation.tenant_id == tenant_id, + ValueManifestation.company_id == company_id, + ) + + if filters: + if filters.get("search"): + search_pattern = f"%{filters['search']}%" + query = query.filter( + or_( + ValueManifestation.manifestation_number.ilike(search_pattern), + ValueManifestation.pedimento.ilike(search_pattern), + ) + ) + + total = query.count() + items = query.offset(skip).limit(limit).all() + + return items, total + + @staticmethod + def get_by_id( + db: Session, + value_manifestation_id: int, + tenant_id: int, + company_id: int, + ) -> Optional[ValueManifestation]: + return ( + db.query(ValueManifestation) + .filter( + ValueManifestation.id == value_manifestation_id, + ValueManifestation.tenant_id == tenant_id, + ValueManifestation.company_id == company_id, + ) + .first() + ) + + @staticmethod + def create( + db: Session, + data: ValueManifestationCreateDTO, + tenant_id: int, + company_id: int, + ) -> ValueManifestation: + try: + db_item = ValueManifestation( + **data.model_dump(exclude_unset=True), + tenant_id=tenant_id, + company_id=company_id, + ) + db.add(db_item) + db.commit() + db.refresh(db_item) + return db_item + except Exception as e: + db.rollback() + logger.error(f"Error creating value manifestation: {str(e)}") + raise HTTPException( + status_code=500, detail="Error creating value manifestation" + ) + + @staticmethod + def update( + db: Session, + value_manifestation_id: int, + tenant_id: int, + company_id: int, + data: ValueManifestationUpdateDTO, + ) -> Optional[ValueManifestation]: + item = ValueManifestationService.get_by_id( + db, value_manifestation_id, tenant_id, company_id + ) + if not item: + return None + + try: + update_data = data.model_dump(exclude_unset=True) + for field, value in update_data.items(): + setattr(item, field, value) + + db.commit() + db.refresh(item) + return item + except Exception as e: + db.rollback() + logger.error(f"Error updating value manifestation {value_manifestation_id}: {str(e)}") + raise HTTPException( + status_code=500, detail="Error updating value manifestation" + ) + + @staticmethod + def delete( + db: Session, value_manifestation_id: int, tenant_id: int, company_id: int + ) -> bool: + item = ValueManifestationService.get_by_id( + db, value_manifestation_id, tenant_id, company_id + ) + if not item: + return False + + try: + db.delete(item) + db.commit() + return True + except Exception as e: + db.rollback() + logger.error(f"Error deleting value manifestation {value_manifestation_id}: {str(e)}") + raise HTTPException( + status_code=500, detail="Error deleting value manifestation" + ) diff --git a/backend/api/v1/modules/a76/pedmientos/catalog_service.py b/backend/api/v1/modules/a76/pedmientos/catalog_service.py new file mode 100644 index 00000000..13b4a01e --- /dev/null +++ b/backend/api/v1/modules/a76/pedmientos/catalog_service.py @@ -0,0 +1,124 @@ + +from typing import List +from sqlalchemy.orm import Session + +# Import Reference Data Models +from api.v1.modules.public.reference_data.pedimento_codes.models import PedimentoCode +from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection +from api.v1.modules.public.reference_data.code_pedimento_regimens.models import CodePedimentoRegimen + +# Import A76 Services +from api.v1.modules.a76.customs_brokers.services import CustomsBrokerService +from api.v1.modules.a76.clients_and_providers.service import ClientProviderService + +# Import DTOs for mapping +from api.v1.modules.public.reference_data.pedimento_codes.dto import PedimentoCodeDTO +from api.v1.modules.public.reference_data.customs_sections.dto import CustomsSectionDTO +from api.v1.modules.public.reference_data.code_pedimento_regimens.dto import CodePedimentoRegimenDTO +from api.v1.modules.a76.customs_brokers.dto import CustomsBrokerResponseDTO +from api.v1.modules.a76.clients_and_providers.dto import ClientProviderResponseDTO +from .dtos.pedimentos import PedimentosResponse + +from .schemas import PedimentoCatalogsResponse, PedimentoCreationResponse, PedimentoEditionResponse + +class PedimentoCatalogService: + """Service to fetch consolidated catalogs for Pedimento views""" + + @staticmethod + def get_catalogs(db: Session, tenant_id: int, company_id: int) -> PedimentoCatalogsResponse: + """Fetch all catalogs with graceful degradation""" + + response = PedimentoCatalogsResponse() + + # Helper to fetch reference data (no company_id needed) + def fetch_ref_data(): + try: + response.pedimento_codes = [ + PedimentoCodeDTO.model_validate(obj) for obj in db.query(PedimentoCode).limit(100).all() + ] + except Exception as e: + print(f"Error fetching pedimento_codes: {e}") + + try: + response.customs_sections = [ + CustomsSectionDTO.model_validate(obj) for obj in db.query(CustomsSection).limit(100).all() + ] + except Exception as e: + print(f"Error fetching customs_sections: {e}") + + try: + response.code_pedimento_regimens = [ + CodePedimentoRegimenDTO.model_validate(obj) for obj in db.query(CodePedimentoRegimen).limit(100).all() + ] + except Exception as e: + print(f"Error fetching code_pedimento_regimens: {e}") + + # Helper to fetch tenant/company specific data + def fetch_tenant_data(): + # Customs Brokers + try: + brokers, _ = CustomsBrokerService.get_all(db, tenant_id, company_id, limit=1000) + response.customs_brokers = [ + CustomsBrokerResponseDTO.model_validate(obj) for obj in brokers + ] + except Exception as e: + print(f"Error fetching customs brokers: {e}") + + # Clients (only clients, not providers) + try: + all_cps, _ = ClientProviderService.get_all( + db, tenant_id, company_id, limit=1000 + ) + + # Helper to safely check client type (handles string or Enum) + def is_type(obj, types): + val = obj.client_or_provider + # If it's an enum, get its value, otherwise use as string + val_str = val.value if hasattr(val, 'value') else str(val) + return val_str in types + + response.clients = [ + ClientProviderResponseDTO.model_validate(obj) for obj in all_cps + if is_type(obj, ['client', 'both']) + ] + except Exception as e: + print(f"Error fetching clients: {e}") + + try: + fetch_ref_data() + fetch_tenant_data() + except Exception as e: + print(f"Error fetching catalogs: {e}") + import traceback + traceback.print_exc() + raise e + + return response + + @staticmethod + def get_creation_data(db: Session, tenant_id: int, company_id: int) -> PedimentoCreationResponse: + catalogs = PedimentoCatalogService.get_catalogs(db, tenant_id, company_id) + return PedimentoCreationResponse( + **catalogs.model_dump(), + is_create=True + ) + + @staticmethod + def get_edition_data(db: Session, pedimento_id: int, tenant_id: int, company_id: int) -> PedimentoEditionResponse: + catalogs = PedimentoCatalogService.get_catalogs(db, tenant_id, company_id) + + from .services.pedimentos import PedimentosService + pedimento = PedimentosService.get_by_id(db, pedimento_id, tenant_id, company_id) + + if not pedimento: + return None + + # Convert SQLAlchemy object to Pydantic DTO + pedimento_dto = PedimentosResponse.model_validate(pedimento) + + return PedimentoEditionResponse( + **catalogs.model_dump(), + is_create=False, + pedimento=pedimento_dto, + pedimento_id=pedimento_id + ) diff --git a/backend/api/v1/modules/a76/pedmientos/routes/pedimentos.py b/backend/api/v1/modules/a76/pedmientos/routes/pedimentos.py index fbc8f887..b912cf39 100644 --- a/backend/api/v1/modules/a76/pedmientos/routes/pedimentos.py +++ b/backend/api/v1/modules/a76/pedmientos/routes/pedimentos.py @@ -2,13 +2,76 @@ Routes for Pedimentos CRUD operations """ +from fastapi import APIRouter, Depends, HTTPException, Query +from sqlalchemy.orm import Session + from api.v1.common.tenant_crud_routes import TenantCRUDRoutes +from core.database import get_core_db +from core.security import get_current_user from ..dtos.pedimentos import PedimentosCreate, PedimentosResponse, PedimentosUpdate from ..services.pedimentos import PedimentosService +from ..catalog_service import PedimentoCatalogService +from ..schemas import PedimentoCreationResponse, PedimentoEditionResponse -# Create router with generic CRUD routes -router = TenantCRUDRoutes( +# Create a new router for custom endpoints +router = APIRouter() + +# Add consolidated catalog endpoints FIRST (before generic CRUD routes) +# This ensures they have priority over the generic /{id} route +@router.get("/creation-data", response_model=PedimentoCreationResponse, tags=["a76 / pedimentos"]) +async def get_creation_data( + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user) +): + """ + Get all catalogs needed for creating a new pedimento. + Consolidates multiple catalog calls into a single endpoint. + """ + tenant_id = current_user["tenant_id"] + + try: + return PedimentoCatalogService.get_creation_data(db, tenant_id, company_id) + except Exception as e: + print(f"Error fetching creation data: {e}") + import traceback + traceback.print_exc() + raise HTTPException(status_code=500, detail="Error fetching creation data") + + +@router.get("/{pedimento_id}/edition-data", response_model=PedimentoEditionResponse, tags=["a76 / pedimentos"]) +async def get_edition_data( + pedimento_id: int, + company_id: int = Query(..., description="Company ID"), + db: Session = Depends(get_core_db), + current_user: dict = Depends(get_current_user) +): + """ + Get all catalogs and pedimento data needed for editing an existing pedimento. + Consolidates multiple catalog calls + pedimento fetch into a single endpoint. + """ + tenant_id = current_user["tenant_id"] + + try: + result = PedimentoCatalogService.get_edition_data(db, pedimento_id, tenant_id, company_id) + + if result is None: + raise HTTPException(status_code=404, detail="Pedimento not found") + + return result + except HTTPException: + raise + except Exception as e: + print(f"Error fetching edition data: {e}") + import traceback + traceback.print_exc() + raise HTTPException(status_code=500, detail="Error fetching edition data") + + +# Now include generic CRUD routes +# These will be registered AFTER the custom endpoints above +crud_router = TenantCRUDRoutes( service=PedimentosService, create_schema=PedimentosCreate, update_schema=PedimentosUpdate, @@ -22,3 +85,6 @@ router = TenantCRUDRoutes( default_page_size=50, max_page_size=100, ).router + +# Include the CRUD routes into our main router +router.include_router(crud_router) diff --git a/backend/api/v1/modules/a76/pedmientos/schemas.py b/backend/api/v1/modules/a76/pedmientos/schemas.py new file mode 100644 index 00000000..aeec5ee3 --- /dev/null +++ b/backend/api/v1/modules/a76/pedmientos/schemas.py @@ -0,0 +1,38 @@ +""" +Consolidated schemas for Pedimento catalog responses +""" + +from typing import List, Optional +from pydantic import BaseModel + +# Import DTOs for catalog items +from api.v1.modules.public.reference_data.pedimento_codes.dto import PedimentoCodeDTO +from api.v1.modules.public.reference_data.customs_sections.dto import CustomsSectionDTO +from api.v1.modules.public.reference_data.code_pedimento_regimens.dto import CodePedimentoRegimenDTO +from api.v1.modules.a76.customs_brokers.dto import CustomsBrokerResponseDTO +from api.v1.modules.a76.clients_and_providers.dto import ClientProviderResponseDTO +from .dtos.pedimentos import PedimentosResponse + + +class PedimentoCatalogsResponse(BaseModel): + """Base response containing all catalogs needed for pedimento views""" + + pedimento_codes: List[PedimentoCodeDTO] = [] + customs_sections: List[CustomsSectionDTO] = [] + code_pedimento_regimens: List[CodePedimentoRegimenDTO] = [] + customs_brokers: List[CustomsBrokerResponseDTO] = [] + clients: List[ClientProviderResponseDTO] = [] + + +class PedimentoCreationResponse(PedimentoCatalogsResponse): + """Response for creating a new pedimento (catalogs only)""" + + is_create: bool = True + + +class PedimentoEditionResponse(PedimentoCatalogsResponse): + """Response for editing an existing pedimento (catalogs + pedimento data)""" + + is_create: bool = False + pedimento: Optional[PedimentosResponse] = None + pedimento_id: Optional[int] = None diff --git a/backend/api/v1/modules/a76/reports/exportacion/aviso_consolidado/task.py b/backend/api/v1/modules/a76/reports/exportacion/aviso_consolidado/task.py index 651919d4..291d5a4e 100644 --- a/backend/api/v1/modules/a76/reports/exportacion/aviso_consolidado/task.py +++ b/backend/api/v1/modules/a76/reports/exportacion/aviso_consolidado/task.py @@ -1,4 +1,3 @@ - import base64 import logging from core.celery_app import celery_app @@ -47,4 +46,4 @@ def generar_pdf_aviso_consolidado_exp_async(self, invoice_id: int, company_id: i return {"status": "error", "message": str(e)} finally: - db.close() + db.close() \ No newline at end of file diff --git a/backend/api/v1/modules/a76/reports/exportacion/descargo/routes.py b/backend/api/v1/modules/a76/reports/exportacion/descargo/routes.py new file mode 100644 index 00000000..2a3878f3 --- /dev/null +++ b/backend/api/v1/modules/a76/reports/exportacion/descargo/routes.py @@ -0,0 +1,77 @@ + +from fastapi import APIRouter, Depends, BackgroundTasks, HTTPException +from fastapi.responses import JSONResponse, Response +from sqlalchemy.orm import Session +from typing import Dict, Any + +from core.database import get_core_db as get_db +from core.security import get_current_user +from .service import FIFOAssignmentService +from .task import generate_descarga_pdf_task # FORCE RELOAD +from celery.result import AsyncResult + +router = APIRouter() + +@router.post("/fifo-assign/{invoice_id}") +def run_fifo_assignment( + invoice_id: int, + db: Session = Depends(get_db), + current_user: Any = Depends(get_current_user), +): + """ + Executes FIFO (PEPS) calculation for an Export Invoice. + Returns the calculated discharges in JSON format. + """ + service = FIFOAssignmentService() + try: + discharges = service.calculate_fifo(db, invoice_id) + return { + "invoice_id": invoice_id, + "total_discharges": len(discharges), + "discharges": discharges + } + except Exception as e: + raise HTTPException( + status_code=500, + detail=f"Error calculating FIFO: {str(e)}" + ) + +@router.post("/{invoice_id}/download-async") +async def trigger_descarga_generation( + invoice_id: int, + company_id: int, + current_user: Any = Depends(get_current_user) +): + """ + Inicia la generación del reporte de Descarga PEPS en segundo plano (Celery). + Retorna el task_id para polling. + """ + try: + # Lanza la tarea de Celery + task = generate_descarga_pdf_task.delay(invoice_id, company_id) + return {"task_id": task.id, "status": "processing"} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + +@router.get("/tasks/{task_id}") +async def get_task_status(task_id: str, current_user: Any = Depends(get_current_user)): + """ + Consulta el estado de la tarea de Celery. + """ + task_result = AsyncResult(task_id) + + response = { + "task_id": task_id, + "state": task_result.state, + "result": None, + "info": None + } + + if task_result.state == 'FAILURE': + response["result"] = str(task_result.result) + elif task_result.state == 'SUCCESS': + response["result"] = task_result.result + elif task_result.state == 'PROCESSING': + response["info"] = task_result.info + + return response diff --git a/backend/api/v1/modules/a76/reports/exportacion/descargo/service.py b/backend/api/v1/modules/a76/reports/exportacion/descargo/service.py new file mode 100644 index 00000000..57a8d479 --- /dev/null +++ b/backend/api/v1/modules/a76/reports/exportacion/descargo/service.py @@ -0,0 +1,400 @@ + +import shutil +import base64 +import pdfkit +from pathlib import Path +from typing import Tuple, List, Callable, Optional, Dict, Any +from jinja2 import Environment, FileSystemLoader, select_autoescape +from fastapi import HTTPException +from sqlalchemy.orm import Session +from pydantic import BaseModel +from decimal import Decimal +from datetime import datetime + + +# --- MODELOS (Imported from system for Header info) --- +from api.v1.modules.a76.invoices.models import InvoiceHeader, InvoiceComplianceMx +from api.v1.modules.a76.general_catalogs.company.models import Company +from api.v1.modules.a76.items.line_items.models import LineItem +from api.v1.modules.a76.items.line_quantities.models import LineQuantity +from api.v1.modules.a76.parts.models import Part +from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.pedmientos.models.pedimentos import Pedimentos +from api.v1.modules.a76.pedmientos.models.pedimento_dates import PedimentoDates +from api.v1.modules.core.tenants.models import Tenant +from api.v1.modules.a76.general_catalogs.exchange_rate.models import ExchangeRate +from sqlalchemy.orm import joinedload, load_only + +# --- FIFO SERVICE (Internalized) --- +from api.v1.modules.a76.items.series.models import Serie + +class FIFOAssignmentService: + """ + Service for calculating FIFO (PEPS) assignments in real-time. + Does not persist to database, returns calculated discharge objects. + """ + + def calculate_fifo(self, db: Session, invoice_id: int) -> List[Dict[str, Any]]: + """ + Calculates the FIFO trail for all lines in an export invoice. + Returns a list of calculated discharges. + """ + # 1. Get Export Lines + export_lines = db.query(LineItem).join(Item).filter( + Item.invoice_id == invoice_id + ).options( + joinedload(LineItem.quantity), + joinedload(LineItem.description), + joinedload(LineItem.customs), + joinedload(LineItem.unit_of_measure_info), + joinedload(LineItem.part_info) + ).all() + + results = [] + self._log(f"Starting FIFO for Invoice {invoice_id}. Export Lines: {len(export_lines)}") + + for exp_line in export_lines: + qty_needed = float(exp_line.quantity.quantity) if exp_line.quantity and exp_line.quantity.quantity is not None else 0.0 + if qty_needed <= 0: + continue + + part_number = exp_line.part_number + if not part_number: + self._log(f"Skipping line {exp_line.id}, no part number") + continue + + self._log(f"Processing Exp Line {exp_line.id}, Part: {part_number}, Qty Needed: {qty_needed}") + + # --- SERIES EXPO LOOKUP --- + series_desc = "" + series_count = db.query(Serie).filter(Serie.line_item_id == exp_line.id).count() + if series_count > 0: + series_list = db.query(Serie).filter(Serie.line_item_id == exp_line.id).all() + parts_str = [] + for idx, s in enumerate(series_list, 1): + line_parts = [f"{idx}) Serie: {s.serial_numbers or ''}", f"Modelo: {s.model or ''}", f"Parte: {exp_line.part_info.part_number if exp_line.part_info else ''}", f"Num ID Expo: {s.number_id or ''}", f"SubModelo: {s.sub_model or ''}"] + parts_str.append(", ".join([p for p in line_parts if p])) + if parts_str: + series_desc = "\nSeries:\n" + "\n".join(parts_str) + + # 2. Find Import Candidates (FIFO order by payment date) + # Use outerjoin for pedimento dates to avoid filtering out candidates with missing dates + candidates = db.query(LineItem).join(Item).join(InvoiceHeader)\ + .join(InvoiceComplianceMx).join(InvoiceComplianceMx.pedimento).outerjoin(Pedimentos.pedimento_dates)\ + .filter( + LineItem.part_number == part_number, + InvoiceHeader.operation_type == 'imp', # Assuming 'imp' is the value for Import based on Enum + ).order_by( + PedimentoDates.payment_date.asc() + ).options( + joinedload(LineItem.quantity), + joinedload(LineItem.customs), + joinedload(LineItem.financial), + joinedload(LineItem.item).joinedload(Item.invoice).joinedload(InvoiceHeader.compliance_mx).joinedload(InvoiceComplianceMx.pedimento).joinedload(Pedimentos.pedimento_dates) + ).all() + + self._log(f"Found {len(candidates)} candidates for {part_number}") + + for imp_line in candidates: + if qty_needed <= 0: + break + + imp_qty_total = float(imp_line.quantity.quantity) if imp_line.quantity and imp_line.quantity.quantity is not None else 0.0 + if imp_qty_total <= 0: + continue + + take = min(qty_needed, imp_qty_total) + ratio = take / imp_qty_total if imp_qty_total > 0 else 0 + + # Calculate Proportions + imp_weight = float(imp_line.quantity.net_weight) if imp_line.quantity and imp_line.quantity.net_weight is not None else 0.0 + # imp_val_mn = float(imp_line.customs.customs_value) if imp_line.customs and imp_line.customs.customs_value is not None else 0.0 + imp_val_me = float(imp_line.financial.customs_value_usd) if imp_line.financial and imp_line.financial.customs_value_usd is not None else 0.0 + imp_igi = float(imp_line.customs.igi_amount) if imp_line.customs and imp_line.customs.igi_amount is not None else 0.0 + + imp_inv = imp_line.item.invoice + ped = imp_inv.compliance_mx.pedimento if imp_inv and imp_inv.compliance_mx else None + + # --- EXCHANGE RATE VALIDATION --- + payment_date = ped.pedimento_dates.payment_date if ped and ped.pedimento_dates else None + exchange_rate_val = 1.0 + validation_error = None + + if payment_date: + er_obj = db.query(ExchangeRate).filter(ExchangeRate.date == payment_date).first() + if er_obj: + exchange_rate_val = float(er_obj.value) + else: + # Try previous day if strict match fails (mimicking SisGen:UtilizarFechaPagoPedDeUnDiaAnterior logic broadly or just flagging) + # For now, flag it. + validation_error = f"Tipo de Cambio no encontrado para fecha {payment_date}" + + # Calculate Valor MN based on Clarion logic: (CantDesc * ValorImpoME / CantImpo) * TC + # which simplifies to: Ratio * ValorImpoME * TC + val_mn_calc = (imp_val_me * ratio) * exchange_rate_val + + discharge = { + "export_line_id": exp_line.id, + "import_line_id": imp_line.id, + "quantity": take, + "net_weight": imp_weight * ratio, + "value_mxn": val_mn_calc, + "value_usd": imp_val_me * ratio, + "igi_amount": imp_igi * ratio, + "import_invoice": imp_inv.invoice_number if imp_inv else "N/A", + "pedimento": ped.pedimento_number if ped else "N/A", + "pedimento_clave": ped.pedimento_code if ped else "", + "pedimento_date": payment_date.isoformat() if payment_date else None, + "series_desc": series_desc, + "validation_error": validation_error + } + + self._log(f"MATCH: Taking {take} from Imp Line {imp_line.id}") + results.append(discharge) + qty_needed -= take + + return results + + def _log(self, msg): + try: + with open("/tmp/fifo_debug.log", "a") as f: + f.write(f"{datetime.now()}: {msg}\n") + except: pass + + +# --- SCHEMAS FOR TEMPLATE CONTEXT --- + +class DischargeItemSchema(BaseModel): + # Column 1: Pedimento Info + pedimento_numero: str + pedimento_clave: str + pedimento_fecha_pago: str + + # Column 2: Import Invoice + factura_impo: str + + # Column 3: Part Info + numero_parte: str + descripcion: str + fraccion: str + origen_pref_sector: str # e.g. "CHN-GENERAL" + + # Metrics + cantidad: str + unidad_medida: str + peso_neto: str + + # Values + valor_mn: str + valor_me: str + valor_igi: str + + # Flags + se_pago: str # "0.0" or "Yes"? Image says "0.0" in column "Se Pago"? No, "Se Pago" might be a flag, image key implies payment. + # Image: "Se Pago" column has "0.0"? No, look closer. + # "Value/Monto IGI USD/Dolares" has "0.0". + # "Se Pago" column seems empty or has '1'? + # Wait, looking at image: + # Col: "Se Pago", Row: "0.0"? No that's IGI. + # Let's assume Se Pago is a boolean/string. + # Last col: "Linea Expo". + + linea_expo: str + + # Errors + error_msg: Optional[str] = None + + # Helper for Jinja (if methods not allowed in pydantic models in template) + def __init__(self, **data): + super().__init__(**data) + +class DischargeContext(BaseModel): + items: List[DischargeItemSchema] + invoice_number: str + company_name: str + company_address: str + company_rfc: str + company_immex: str + + # Totals + total_cantidad: str + total_peso: str + total_valor_mn: str + total_valor_me: str + total_igi: str + +class DescargaReportService: + def formatear_numero(self, valor, decimales: int = 2): + if valor is None: return "0.00" + try: + return "{:,.{}f}".format(float(valor), decimales) + except: return "0.00" + + def __init__(self): + self.template_dir = Path(__file__).parent / "templates" + self.jinja_env = Environment( + loader=FileSystemLoader(self.template_dir), + autoescape=select_autoescape(['html', 'xml']) + ) + self.template = self.jinja_env.get_template('descarga.html') + + def _get_wkhtmltopdf_config(self): + path = shutil.which("wkhtmltopdf") or "/usr/local/bin/wkhtmltopdf" or "/usr/bin/wkhtmltopdf" + if not Path(path).exists(): + raise RuntimeError("wkhtmltopdf no encontrado.") + return pdfkit.configuration(wkhtmltopdf=path) + + def obtener_datos(self, db: Session, invoice_id: int, company_id: int, progress_callback: Optional[Callable] = None) -> DischargeContext: + try: + if progress_callback: progress_callback(10, "Buscando factura...") + + # --- 1. Obtener Cabeceras (Igual que antes) --- + header = db.query(InvoiceHeader).filter(InvoiceHeader.id == invoice_id).first() + if not header: + raise HTTPException(status_code=404, detail="Factura no encontrada") + + tenant = db.query(Tenant).filter(Tenant.id == header.tenant_id).first() + company = db.query(Company).filter(Company.id == header.company_id).first() + + # --- 2. Obtener Líneas de Exportación (Lo que necesitamos cubrir) --- + if progress_callback: progress_callback(20, "Obteniendo items a exportar...") + + export_lines = db.query(LineItem).filter( + LineItem.item_id == Item.id, + Item.invoice_id == invoice_id + ).options( + joinedload(LineItem.quantity), + joinedload(LineItem.customs), + joinedload(LineItem.description), + joinedload(LineItem.unit_of_measure_info), + joinedload(LineItem.part_info) + ).join(Item).all() + + items_reporte = [] + + # --- 3. EL ALGORITMO PEPS EN VIVO --- + if progress_callback: progress_callback(40, "Calculando PEPS en tiempo real...") + + fifo_service = FIFOAssignmentService() + discharges = fifo_service.calculate_fifo(db, invoice_id) + + print(f"DEBUG: Calculated {len(discharges)} discharges.") # FORCE PRINT + + # Create map for faster/safer lookup + exp_map = {l.id: l for l in export_lines} + + for d in discharges: + exp_id = d["export_line_id"] + exp_line = exp_map.get(exp_id) + + if not exp_line: + print(f"DEBUG: Skipping discharge, Exp Line {exp_id} not found in map keys: {list(exp_map.keys())}") + continue + + print(f"DEBUG: Adding item to report: Imp {d['import_line_id']} -> Exp {exp_id}") + + desc_final = exp_line.description.description_spanish if exp_line.description else "S/D" + items_reporte.append(DischargeItemSchema( + pedimento_numero=d["pedimento"], + pedimento_clave=d["pedimento_clave"], + pedimento_fecha_pago=d["pedimento_date"].split("T")[0] if d["pedimento_date"] else "", + + factura_impo=d["import_invoice"], + + numero_parte=exp_line.part_info.part_number if exp_line.part_info else "", + descripcion=desc_final, + fraccion=exp_line.customs.fraction if exp_line.customs else "", + origen_pref_sector=f"{exp_line.customs.origin_country or ''} - {exp_line.customs.sector or ''}" if exp_line.customs else "", + + cantidad=self.formatear_numero(d["quantity"], 3), + unidad_medida=exp_line.unit_of_measure_info.code if exp_line.unit_of_measure_info else "PZA", + + peso_neto=self.formatear_numero(d["net_weight"], 3), + valor_mn=self.formatear_numero(d["value_mxn"]), + valor_me=self.formatear_numero(d["value_usd"]), + valor_igi=self.formatear_numero(d["igi_amount"]), + + se_pago="", + linea_expo=str(exp_line.line_number), + error_msg=d.get("validation_error") + )) + + print(f"DEBUG: Final Report Items Count: {len(items_reporte)}") + + # --- 4. Totales y Finalización (Igual que antes) --- + addr_str = "DIRECCION NO REGISTRADA" + immex_val = "" + + if company: + # Address Logic + if company.addresses: + # Prefer 'main' address, otherwise take the first one + main_addr = next((a for a in company.addresses if a.address_type == 'main'), company.addresses[0]) + + parts = [] + if main_addr.street: parts.append(main_addr.street) + if main_addr.exterior_number: parts.append(f"No. {main_addr.exterior_number}") + if main_addr.neighborhood: parts.append(main_addr.neighborhood) + if main_addr.city: parts.append(main_addr.city) + if main_addr.state: parts.append(main_addr.state) + if main_addr.postal_code: parts.append(f"CP {main_addr.postal_code}") + + if parts: + addr_str = ", ".join(parts) + + # IMMEX Logic + if company.program and "IMMEX" in company.program and company.program_number: + immex_val = company.program_number + + # Recalcular totales basados en la lista generada + t_cant = sum(float(i.cantidad.replace(",","")) for i in items_reporte) + t_peso = sum(float(i.peso_neto.replace(",","")) for i in items_reporte) + t_mn = sum(float(i.valor_mn.replace(",","")) for i in items_reporte) + t_me = sum(float(i.valor_me.replace(",","")) for i in items_reporte) + t_igi = sum(float(i.valor_igi.replace(",","")) for i in items_reporte) + + return DischargeContext( + items=items_reporte, + invoice_number=header.invoice_number or "SIN FOLIO", + company_name=company.name if company else (tenant.name if tenant else "EMPRESA DESCONOCIDA"), + company_address=addr_str, + company_rfc=company.rfc if company else "", + company_immex=immex_val, + total_cantidad=self.formatear_numero(t_cant, 3), + total_peso=self.formatear_numero(t_peso, 3), + total_valor_mn=self.formatear_numero(t_mn), + total_valor_me=self.formatear_numero(t_me), + total_igi=self.formatear_numero(t_igi) + ) + + except Exception as e: + print(f"Error Service Discharge Report: {e}") + raise HTTPException(status_code=500, detail=f"Error: {str(e)}") + + def generar_pdf(self, db: Session, invoice_id: int, company_id: int, progress_callback: Optional[Callable] = None) -> Tuple[bytes, str, str]: + if progress_callback: progress_callback(5, "Iniciando servicio de reporte...") + + datos = self.obtener_datos(db, invoice_id, company_id, progress_callback) + + if progress_callback: progress_callback(80, "Renderizando plantilla...") + + context = datos.model_dump() + html_content = self.template.render(**context) + nombre = f"Descarga_{datos.invoice_number}.pdf" + + if progress_callback: progress_callback(90, "Generando PDF final...") + + options = { + 'page-size': 'Letter', + 'orientation': 'Landscape', # Correct argument for wkhtmltopdf + 'margin-top': '0.5in', + 'margin-right': '0.5in', + 'margin-bottom': '0.5in', + 'margin-left': '0.5in', + 'encoding': "UTF-8" + } + + pdf = pdfkit.from_string(html_content, False, options=options, configuration=self._get_wkhtmltopdf_config()) + + if progress_callback: progress_callback(100, "Completado") + return pdf, nombre, "application/pdf" diff --git a/backend/api/v1/modules/a76/reports/exportacion/descargo/task.py b/backend/api/v1/modules/a76/reports/exportacion/descargo/task.py new file mode 100644 index 00000000..3ed57fbb --- /dev/null +++ b/backend/api/v1/modules/a76/reports/exportacion/descargo/task.py @@ -0,0 +1,49 @@ + +from celery import shared_task +from sqlalchemy.orm import Session +from core.database import CoreSessionLocal as SessionLocal +from .service import DescargaReportService # FORCE RELOAD 2 +import base64 +import traceback + +@shared_task(bind=True, name="generate_descarga_pdf_task") +def generate_descarga_pdf_task(self, invoice_id: int, company_id: int): + """ + Tarea de Celery para generar el PDF del Reporte de Descarga + """ + db: Session = SessionLocal() + try: + service = DescargaReportService() + + def update_progress(percent, message): + self.update_state( + state='PROCESSING', + meta={'current': percent, 'total': 100, 'status': message} + ) + + pdf_bytes, filename, content_type = service.generar_pdf( + db=db, + invoice_id=invoice_id, + company_id=company_id, + progress_callback=update_progress + ) + + # Retornar el PDF en base64 para que el front lo descargue + pdf_b64 = base64.b64encode(pdf_bytes).decode('utf-8') + + return { + "status": "success", + "file_name": filename, + "content": pdf_b64, + "media_type": content_type, + "message": "Reporte generado correctamente" + } + + except Exception as e: + self.update_state( + state='FAILURE', + meta={'exc_type': type(e).__name__, 'exc_message': str(e)} + ) + raise e + finally: + db.close() diff --git a/backend/api/v1/modules/a76/reports/exportacion/descargo/templates/descarga.html b/backend/api/v1/modules/a76/reports/exportacion/descargo/templates/descarga.html new file mode 100644 index 00000000..177847ba --- /dev/null +++ b/backend/api/v1/modules/a76/reports/exportacion/descargo/templates/descarga.html @@ -0,0 +1,184 @@ + + + + + + Descarga de Factura {{ invoice_number }} + + + + + + + + + + + + +
+ DESCARGA DE LA FACTURA: {{ invoice_number }} + + {{ company_name }}
+ {{ company_address }}
+ R.F.C.: {{ company_rfc }}, IMMEX: {{ company_immex }} +
+ Page/Página: Of/de +
+ +
La factura se descargo de:
+ + + + + + + + + + + + + + + + + + + + {% for item in items %} + + + + + + + + + + + + + + {% endfor %} + + + + + + + + + + + + + + + + + + + + + + + + + + +
No. Pedimento
Fecha de Pago
Import Invoice/
Factura de Impo.
Part Number/No. de Parte
Description/Descripción
Fracción
(Origen-Prefer.-Sector)
Quantity/
Cantidad U.M.
Net Weight/
Peso Neto (KGS)
Value/Valor M.N.
MXP/Pesos
Value/Valor M.E.
USD/Dolares
Value/Monto IGI
USD/Dolares
Se
Pagó
Linea Expo
Expo Line
+
{{ item.pedimento_numero }}
+ + + + + +
{{ + item.pedimento_clave }}{{ + item.pedimento_fecha_pago }}
+
{{ item.factura_impo }} + {{ item.numero_parte }}
+ {{ item.descripcion }} +
+ {{ item.fraccion }}
+ {{ item.origen_pref_sector }} +
+ {{ item.cantidad }} {{ item.unidad_medida }} + {{ item.peso_neto }}{{ item.valor_mn }}{{ item.valor_me }}{{ item.valor_igi }}{{ item.se_pago }}{{ item.linea_expo }}
Totales de los Comp. Temporales:{{ total_cantidad }}{{ total_peso }}{{ total_valor_mn }}{{ total_valor_me }}{{ total_igi }}
TOTALES:{{ total_cantidad }}{{ total_peso }}{{ total_valor_mn }}{{ total_valor_me }}{{ total_igi }}
+ + + + \ No newline at end of file diff --git a/backend/api/v1/modules/a76/reports/importacion/consolidados/mex/service.py b/backend/api/v1/modules/a76/reports/importacion/consolidados/mex/service.py index 4836c0ad..e8826ffe 100644 --- a/backend/api/v1/modules/a76/reports/importacion/consolidados/mex/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/consolidados/mex/service.py @@ -36,7 +36,7 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- MODELO DE UNIDADES DE MEDIDA --- from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure @@ -50,6 +50,10 @@ from .schemas import ( FacturaImportacionCompleta, ) +from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import ( + USTariffFraction, +) + class ConsolidadoImportacionMexService: def __init__(self): @@ -61,7 +65,7 @@ class ConsolidadoImportacionMexService: self.template = self.jinja_env.get_template("cons_mex_ver.html") def _get_wkhtmltopdf_config(self): - path = shutil.which("wkhtmltopdf") or "/usr/local/bin/wkhtmltopdf" + path = shutil.which("wkhtmltopdf") or "/usr/local/bin/wkhtmltopdf" or "/usr/bin/wkhtmltopdf" if not Path(path).exists(): raise RuntimeError("wkhtmltopdf no encontrado.") return pdfkit.configuration(wkhtmltopdf=path) @@ -521,11 +525,7 @@ class ConsolidadoImportacionMexService: .filter(InvoiceHeader.id.in_(target_invoice_ids)) .all() ) - invoice_map = {inv.id: inv for inv in invoices_list} - - from api.v1.modules.a76.general_catalogs.us_tariff_fractions.models import ( - USTariffFraction, - ) + invoice_map = {inv.id: inv for inv in invoices_list} for line in lines: qty = ( diff --git a/backend/api/v1/modules/a76/reports/importacion/consolidados/temporary/mex/service.py b/backend/api/v1/modules/a76/reports/importacion/consolidados/temporary/mex/service.py index 5cff09b4..8dde918d 100644 --- a/backend/api/v1/modules/a76/reports/importacion/consolidados/temporary/mex/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/consolidados/temporary/mex/service.py @@ -30,10 +30,10 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- SCHEMAS --- -from .schemas import ( +from ...mex.schemas import ( ClienteSchema, PartidaSchema, TotalesSchema, FacturaSchema, FacturaImportacionCompleta ) @@ -345,7 +345,7 @@ class ConsolidadoImportacionMexService: invoices_list = db.query(InvoiceHeader).filter(InvoiceHeader.id.in_(target_invoice_ids)).all() invoice_map = {inv.id: inv for inv in invoices_list} - from api.v1.modules.a76.general_catalogs.us_tariff_fractions.models import USTariffFraction + from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import USTariffFraction for line in lines: qty = db.query(LineQuantity).filter(LineQuantity.item_line_id == line.id).first() diff --git a/backend/api/v1/modules/a76/reports/importacion/facturas/mex/service.py b/backend/api/v1/modules/a76/reports/importacion/facturas/mex/service.py index a7163ed1..03966737 100644 --- a/backend/api/v1/modules/a76/reports/importacion/facturas/mex/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/facturas/mex/service.py @@ -32,7 +32,7 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- MODELO DE UNIDADES DE MEDIDA --- from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure @@ -97,7 +97,7 @@ class FacturaImportacionMexService: return title def _get_wkhtmltopdf_config(self): - path = shutil.which("wkhtmltopdf") or "/usr/local/bin/wkhtmltopdf" + path = shutil.which("wkhtmltopdf") or "/usr/local/bin/wkhtmltopdf" or "/usr/bin/wkhtmltopdf" if not Path(path).exists(): raise RuntimeError("wkhtmltopdf no encontrado.") return pdfkit.configuration(wkhtmltopdf=path) diff --git a/backend/api/v1/modules/a76/reports/importacion/facturas/temporary/mex/service.py b/backend/api/v1/modules/a76/reports/importacion/facturas/temporary/mex/service.py index 200a3942..69f49a02 100644 --- a/backend/api/v1/modules/a76/reports/importacion/facturas/temporary/mex/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/facturas/temporary/mex/service.py @@ -30,10 +30,10 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- SCHEMAS --- -from .schemas import ( +from ...mex.schemas import ( ClienteSchema, PartidaSchema, TotalesSchema, FacturaSchema, FacturaImportacionCompleta ) diff --git a/backend/api/v1/modules/a76/reports/importacion/facturas/usa/service.py b/backend/api/v1/modules/a76/reports/importacion/facturas/usa/service.py index 98eb0284..53f83249 100644 --- a/backend/api/v1/modules/a76/reports/importacion/facturas/usa/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/facturas/usa/service.py @@ -30,7 +30,7 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- SCHEMAS --- # Reuse schemas from neighbor package as they fit the same data structure diff --git a/backend/api/v1/modules/a76/reports/importacion/packing_list/service.py b/backend/api/v1/modules/a76/reports/importacion/packing_list/service.py index 55e1a1dc..afdc6160 100644 --- a/backend/api/v1/modules/a76/reports/importacion/packing_list/service.py +++ b/backend/api/v1/modules/a76/reports/importacion/packing_list/service.py @@ -31,7 +31,7 @@ from api.v1.modules.a76.transportation.trailers.models import Trailer from api.v1.modules.a76.transportation.drivers.models import Driver # --- MODELO DE FRACCIONES --- -from api.v1.modules.a76.general_catalogs.tariff_fractions.models import TariffFraction +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import TariffFraction # --- SCHEMAS --- from .schemas import ( diff --git a/backend/api/v1/modules/a76/router.py b/backend/api/v1/modules/a76/router.py index 7b89d8b8..196c11dc 100644 --- a/backend/api/v1/modules/a76/router.py +++ b/backend/api/v1/modules/a76/router.py @@ -8,41 +8,23 @@ from fastapi import APIRouter from .customs_brokers.routes import router as customs_broker_router # Importar routers de módulos +from .general_catalogs.router import router as general_catalogs_router from .invoices.routes import router as invoices_router from .items.routes import router as items_router from .classes import router as classes_router +from .classes import router as classes_router from .clients_and_providers import router as client_and_provider_router +from .imports.routes import router as imports_router +from .invoice_settings.routes import router as invoice_settings_router +from .item_presets.routes import router as item_presets_router from .general_catalogs.company import router as company_router from .country_rule_oct.routes import router as country_rule_oct_router from .transportation.drivers.routes import router as drivers_router from .doc_types_dig.routes import router as doc_types_dig_router -from .general_catalogs.exchange_rate.routes import router as exchange_rate_router -from .general_catalogs.identifiers.routes import router as identifiers_router from .fraction_rule_octave.routes import router as fraction_rule_octave_router -from .general_catalogs.packages.routes import router as package_router -from .general_catalogs.ports.routes import router as ports_router -from .general_catalogs.tariff_fractions.routes import router as tariff_fractions_router -from .general_catalogs.us_tariff_fractions.routes import router as us_tariff_fractions_router -from .general_catalogs.depreciation_catalog.routes import router as depreciation_catalog_router -from .general_catalogs.fda_catalog.routes import router as fda_catalog_router from .parts import router as parts_router from .pedmientos.router import router as pedimentos_router from .permission_rule_oct.routes import router as permission_rule_oct_router -from .general_catalogs.seal.routes import router as seal_router -from .general_catalogs.units_of_measure.routes import router as units_of_measure_router -from .general_catalogs.concepts.routes import router as concepts_router -from .general_catalogs.customs_broker_concepts.routes import router as customs_broker_concepts_router -from .general_catalogs.classification_concepts.routes import router as classification_concepts_router -from .general_catalogs.unit_conversions.routes import router as unit_conversions_router -from .general_catalogs.equivalencies.routes import router as equivalencies_router -from .general_catalogs.multi_currency_types.routes import router as multi_currency_types_router -from .general_catalogs.inpc.routes import router as inpc_router -from .general_catalogs.legends.routes import router as legends_router -from .general_catalogs.signatures.routes import router as signatures_router -from .general_catalogs.error_catalogs.routes import router as error_catalogs_router -from .general_catalogs.doda.routes import router as doda_router -from .general_catalogs.prevalidators.routes import router as prevalidators_router -from .general_catalogs.electronic_notices.routes import router as electronic_notices_router from .transportation.trailers.routes import router as trailers_router from .transportation.transporters.routes import router as transporters_router from .transportation.vehicles.routes import router as vehicles_router @@ -54,67 +36,36 @@ from .reports.importacion.consolidados.routes import router as consolidated_repo from .reports.importacion.packing_list.routes import router as packing_list_router from .reports.exportacion.aviso_consolidado.routes import router as aviso_consolidado_export_router from .reports.movements.invoices.routes import router as movement_invoices_router +from .reports.exportacion.descargo.routes import router as discharge_reports_router +from .manifests.manifest.routes import router as manifests_router +from .manifests.driver.routes import router as manifest_drivers_router +from .manifests.manifiesto_anexo.routes import router as manifest_anexos_router # Router principal router = APIRouter() # Registrar módulos +router.include_router(general_catalogs_router, prefix="/a76", tags=["a76 / general_catalogs"]) router.include_router(invoices_router, prefix="/a76", tags=["a76 / invoices"]) router.include_router(items_router, prefix="/a76", tags=["a76 / items"]) +router.include_router(imports_router, prefix="/a76/imports", tags=["a76 / imports"]) +router.include_router(invoice_settings_router) +router.include_router(item_presets_router, prefix="/a76/item-presets", tags=["a76 / item_presets"]) router.include_router(pedimentos_router, prefix="/a76") -router.include_router( - client_and_provider_router, prefix="/a76", tags=["a76 / clients_and_providers"] -) -router.include_router(company_router, prefix="/a76", tags=["a76 / company"]) -router.include_router(classes_router, prefix="/a76", tags=["a76 / classes"]) +router.include_router(client_and_provider_router, prefix="/a76", tags=["a76 / clients_and_providers"]) +router.include_router(classes_router, prefix="/a76/classes", tags=["a76 / classes"]) router.include_router(parts_router, prefix="/a76", tags=["a76 / parts"]) -router.include_router( - permission_rule_oct_router, prefix="/a76", tags=["a76 / permission_rule_oct"] -) -router.include_router(package_router, prefix="/a76") -router.include_router(ports_router, prefix="/a76") -router.include_router(tariff_fractions_router, prefix="/a76") -router.include_router(us_tariff_fractions_router, prefix="/a76") -router.include_router(depreciation_catalog_router, prefix="/a76") -router.include_router(fda_catalog_router, prefix="/a76") -router.include_router(seal_router, prefix="/a76", tags=["a76 / seal"]) -router.include_router(units_of_measure_router, prefix="/a76") -router.include_router( - fraction_rule_octave_router, prefix="/a76", tags=["a76 / fraction_rule_octave"] -) -router.include_router(identifiers_router, prefix="/a76") -router.include_router( - country_rule_oct_router, prefix="/a76", tags=["a76 / country_rule_oct"] -) -router.include_router(exchange_rate_router, prefix="/a76", - tags=["a76 / exchange_rate"]) +router.include_router(permission_rule_oct_router, prefix="/a76", tags=["a76 / permission_rule_oct"]) +router.include_router(fraction_rule_octave_router, prefix="/a76", tags=["a76 / fraction_rule_octave"]) +router.include_router(country_rule_oct_router, prefix="/a76", tags=["a76 / country_rule_oct"]) router.include_router(trailers_router, prefix="/a76/transportation", tags=["a76 / trailers"]) -router.include_router( - customs_broker_router, prefix="/a76", tags=["a76 / customs_broker"] -) +router.include_router(customs_broker_router, prefix="/a76", tags=["a76 / customs_broker"]) router.include_router(doc_types_dig_router, prefix="/a76", tags=["a76 / document_types_digitization"]) router.include_router(drivers_router, prefix="/a76", tags=["a76 / drivers"]) -router.include_router(transporters_router, prefix="/a76", - tags=["a76 / transporters"]) +router.include_router(transporters_router, prefix="/a76", tags=["a76 / transporters"]) router.include_router(vehicles_router, prefix="/a76/transportation", tags=["a76 / vehicles"]) -# Registrar catálogos generales adicionales -router.include_router(concepts_router, prefix="/a76") -router.include_router(customs_broker_concepts_router, prefix="/a76") -router.include_router(classification_concepts_router, prefix="/a76") -router.include_router(unit_conversions_router, prefix="/a76") -router.include_router(equivalencies_router, prefix="/a76") -router.include_router(multi_currency_types_router, prefix="/a76") -router.include_router(inpc_router, prefix="/a76") -router.include_router(legends_router, prefix="/a76") -router.include_router(signatures_router, prefix="/a76") -router.include_router(error_catalogs_router, prefix="/a76") -router.include_router(doda_router, prefix="/a76") -router.include_router(prevalidators_router, prefix="/a76") -router.include_router(electronic_notices_router, prefix="/a76") - - # Registrar router de tipos de material públicos router.include_router( material_types_router, @@ -147,8 +98,37 @@ router.include_router( tags=["a76 / reports"] ) +router.include_router( router.include_router( movement_invoices_router, prefix="/a76/reports/movements/invoices", tags=["a76 / reports"] -) \ No newline at end of file +) + +router.include_router( + discharge_reports_router, + prefix="/a76/reports/exportacion/descargo", + tags=["a76 / reports"] +) + +router.include_router( + manifests_router, + prefix="/a76", + tags=["a76 / manifests"] +) + +router.include_router( + manifest_drivers_router, + prefix="/a76", + tags=["a76 / manifests"] +) + +router.include_router( + manifest_anexos_router, + prefix="/a76", + tags=["a76 / manifests"] +) + +# Registrar router de bitácora +from .audit_log.router import router as audit_log_router +router.include_router(audit_log_router, prefix="/a76/audit-log", tags=["Audit Log"]) diff --git a/backend/api/v1/modules/core/auth/dto.py b/backend/api/v1/modules/core/auth/dto.py index e3ef9969..d103647d 100644 --- a/backend/api/v1/modules/core/auth/dto.py +++ b/backend/api/v1/modules/core/auth/dto.py @@ -76,6 +76,7 @@ class LogoutRequestDTO(BaseModel): """DTO para solicitud de logout""" refresh_token: str = Field(..., description="Refresh token para invalidar") + username: Optional[str] = Field(None, description="Nombre de usuario para auditoría") class RegisterRequestDTO(BaseModel): diff --git a/backend/api/v1/modules/core/auth/routes.py b/backend/api/v1/modules/core/auth/routes.py index 1d327aee..949855b8 100644 --- a/backend/api/v1/modules/core/auth/routes.py +++ b/backend/api/v1/modules/core/auth/routes.py @@ -4,7 +4,7 @@ Endpoints API para autenticación from core.database import get_core_db from core.security import get_current_user -from fastapi import APIRouter, Depends, HTTPException, Response +from fastapi import APIRouter, Depends, HTTPException, Response, Request from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer from sqlalchemy.orm import Session @@ -50,17 +50,27 @@ async def register( @router.post("/login", response_model=TokenResponseDTO) -async def login(login_data: LoginRequestDTO, db: Session = Depends(get_core_db)): +async def login( + login_data: LoginRequestDTO, + request: Request, # Inject Request + db: Session = Depends(get_core_db) +): """ Autentica usuario con Keycloak y retorna tokens JWT - + El usuario debe proporcionar: - username: Usuario o email - password: Contraseña - tenant_slug: Slug del tenant al que pertenece """ service = AuthService(db) - return service.login(login_data) + import logging + logger = logging.getLogger(__name__) + return service.login( + login_data=login_data, + ip_address=request.client.host, + user_agent=request.headers.get("user-agent") + ) @router.post("/refresh", response_model=TokenResponseDTO) @@ -89,12 +99,23 @@ async def get_current_user_info( @router.post("/logout") async def logout( logout_data: LogoutRequestDTO, + request: Request, # Inject request for IP/User-Agent db: Session = Depends(get_core_db), - current_user: dict = Depends(get_current_user), + # Make current_user optional to avoid 401 on expired tokens + # We will try to use it if available, otherwise use DTO + # Note: Depends(get_current_user) raises HTTPException if invalid, so we cannot make it optional easily without changing dependency. + # Instead, we will rely on DTO username since user explicitly asked for this simplified flow. + # But if we want to support both, we can't use strict dependency here if we expect it to work on expired tokens. + # So we remove the strict dependency for now as per "simplified" request. ): """ Cierra sesión invalidando el refresh token """ + # Extract info for logging (optional, but harmless to keep providing context if needed, + # but strictly speaking we can revert to just calling service) + # The original file likely didn't have IP extraction here unless I added it. + # I'll keep it simple. + service = AuthService(db) return service.logout(logout_data) diff --git a/backend/api/v1/modules/core/auth/service.py b/backend/api/v1/modules/core/auth/service.py index 96153be7..952b64e5 100644 --- a/backend/api/v1/modules/core/auth/service.py +++ b/backend/api/v1/modules/core/auth/service.py @@ -3,6 +3,7 @@ Servicio de autenticación con Keycloak """ import logging +from datetime import datetime from api.v1.modules.core.tenants.service import TenantService from api.v1.modules.core.user_tenant.service import UserTenantService @@ -37,12 +38,19 @@ class AuthService: client_secret_key=settings.KEYCLOAK_CLIENT_SECRET, ) - def login(self, login_data: LoginRequestDTO) -> TokenResponseDTO: + def login( + self, + login_data: LoginRequestDTO, + ip_address: str = None, + user_agent: str = None + ) -> TokenResponseDTO: """ Autentica usuario y obtiene tokens Args: login_data: Credenciales de login + ip_address: Dirección IP del cliente + user_agent: User Agent del cliente Returns: TokenResponseDTO con access_token y refresh_token @@ -135,13 +143,25 @@ class AuthService: logger.warning(f"Error pre-updating user attributes: {str(e)}") # PASO 2: Ahora autenticamos al usuario - # Si los Protocol Mappers están configurados, el token incluirá - # automáticamente los atributos tenant_id y tenant_slug actualizados token_response = keycloak_client.token( username=login_data.username, password=login_data.password, grant_type=["password"], ) + + + # AUDIT LOG: Login Success + try: + from api.v1.modules.a76.audit_log.services.service import AuditService + + AuditService.log_login( + db=self.db, + username=login_data.username, + ip_address=ip_address, + user_agent=user_agent + ) + except Exception as e: + logger.error(f"Failed to audit login: {e}") return TokenResponseDTO( access_token=token_response["access_token"], @@ -196,7 +216,7 @@ class AuthService: Args: access_token: Access token JWT - + Returns: UserInfoResponseDTO con información del usuario """ @@ -242,7 +262,6 @@ class AuthService: try: self.keycloak_openid.logout(logout_data.refresh_token) return {"message": "Logged out successfully"} - except KeycloakError as e: logger.warning(f"Logout failed: {str(e)}") # No lanzamos error aquí, el logout puede fallar si el token ya expiró diff --git a/backend/api/v1/modules/public/reference_data/invoice_types/seed.py b/backend/api/v1/modules/public/reference_data/invoice_types/seed.py index 151163dd..1b42742a 100644 --- a/backend/api/v1/modules/public/reference_data/invoice_types/seed.py +++ b/backend/api/v1/modules/public/reference_data/invoice_types/seed.py @@ -28,6 +28,13 @@ seed = [ "both", "imp", ), + ( + "REP", + "REPARACION", + "REPARACION DE ACTIVOS FIJOS", + "fixed asset", + "imp", + ), # === TIPOS DE EXPORTACION === ("DONAC", "DONACION", "", "both", "exp"), diff --git a/backend/api/v1/modules/public/reference_data/router.py b/backend/api/v1/modules/public/reference_data/router.py index 6d5756f1..6200d14a 100644 --- a/backend/api/v1/modules/public/reference_data/router.py +++ b/backend/api/v1/modules/public/reference_data/router.py @@ -30,89 +30,89 @@ router = APIRouter() # Registrar módulos router.include_router( pedimento_codes_router, - prefix="/refrence_data", - tags=["public / refrence_data / pedimento_codes"], + prefix="/reference_data", + tags=["public / reference_data / pedimento_codes"], ) router.include_router( payment_methods_router, - prefix="/refrence_data", - tags=["public / refrence_data / payment_methods"], + prefix="/reference_data", + tags=["public / reference_data / payment_methods"], ) router.include_router( containers_router, - prefix="/refrence_data", - tags=["public / refrence_data / containers"], + prefix="/reference_data", + tags=["public / reference_data / containers"], ) router.include_router( countries_router, - prefix="/refrence_data", - tags=["public / refrence_data / countries"], + prefix="/reference_data", + tags=["public / reference_data / countries"], ) router.include_router( material_types_router, - prefix="/refrence_data", - tags=["public / refrence_data / material_types"], + prefix="/reference_data", + tags=["public / reference_data / material_types"], ) router.include_router( currency_types_router, - prefix="/refrence_data", - tags=["public / refrence_data / currency_types"], + prefix="/reference_data", + tags=["public / reference_data / currency_types"], ) router.include_router( - states_router, prefix="/refrence_data", tags=["public / refrence_data / states"] + states_router, prefix="/reference_data", tags=["public / reference_data / states"] ) router.include_router( trailer_types_router, - prefix="/refrence_data", - tags=["public / refrence_data / trailer_types"], + prefix="/reference_data", + tags=["public / reference_data / trailer_types"], ) router.include_router( transport_types_router, - prefix="/refrence_data", - tags=["public / refrence_data / transport_types"], + prefix="/reference_data", + tags=["public / reference_data / transport_types"], ) router.include_router( customs_warehouses_router, - prefix="/refrence_data", - tags=["public / refrence_data / customs_warehouses"], + prefix="/reference_data", + tags=["public / reference_data / customs_warehouses"], ) router.include_router( valuation_methods_router, - prefix="/refrence_data", - tags=["public / refrence_data / valuation_methods"], + prefix="/reference_data", + tags=["public / reference_data / valuation_methods"], ) router.include_router( sectors_router, - prefix="/refrence_data", - tags=["public / public / refrence_data / sectors"], + prefix="/reference_data", + tags=["public / public / reference_data / sectors"], ) router.include_router( transport_modes_router, - prefix="/refrence_data", - tags=["public / refrence_data / transport_modes"], + prefix="/reference_data", + tags=["public / reference_data / transport_modes"], ) router.include_router( customs_sections_router, - prefix="/refrence_data", - tags=["public / refrence_data / customs_sections"], + prefix="/reference_data", + tags=["public / reference_data / customs_sections"], ) router.include_router( invoice_types_router, - prefix="/refrence_data", - tags=["public / refrence_data / invoice_types"], + prefix="/reference_data", + tags=["public / reference_data / invoice_types"], ) router.include_router( code_pedimento_regimens_router, - prefix="/refrence_data", - tags=["public / refrence_data / code_pedimento_regimens"], + prefix="/reference_data", + tags=["public / reference_data / code_pedimento_regimens"], ) router.include_router( pedimento_regimens_router, - prefix="/refrence_data", - tags=["public / refrence_data / pedimento_regimens"], + prefix="/reference_data", + tags=["public / reference_data / pedimento_regimens"], ) router.include_router( incoterms_router, - prefix="/refrence_data", - tags=["public / refrence_data / incoterms"], + prefix="/reference_data", + tags=["public / reference_data / incoterms"], ) diff --git a/backend/api/v1/modules/public/reference_data/sectors/models.py b/backend/api/v1/modules/public/reference_data/sectors/models.py index f87fa0ef..6c581cf1 100644 --- a/backend/api/v1/modules/public/reference_data/sectors/models.py +++ b/backend/api/v1/modules/public/reference_data/sectors/models.py @@ -1,5 +1,5 @@ from core.database import Base -from sqlalchemy import PrimaryKeyConstraint, SmallInteger, String +from sqlalchemy import Boolean, PrimaryKeyConstraint, SmallInteger, String from sqlalchemy.orm import Mapped, mapped_column @@ -15,9 +15,9 @@ class Sector(Base): description: Mapped[str] = mapped_column( String(150), nullable=False ) # descripción oficial (en español) - authorized: Mapped[SmallInteger] = mapped_column( - SmallInteger - ) # 1 = autorizado, 0 = no autorizado + authorized: Mapped[bool] = mapped_column( + Boolean + ) # True = autorizado, False = no autorizado def __repr__(self): return f"" diff --git a/backend/api/v1/modules/sitar/README.md b/backend/api/v1/modules/sitar/README.md new file mode 100644 index 00000000..53a9aa0f --- /dev/null +++ b/backend/api/v1/modules/sitar/README.md @@ -0,0 +1,320 @@ +# SITAR API Module + +Módulo reorganizado para integración con la API externa de SITAR (Sistema de Información de Aranceles). + +## Estructura + +Cada recurso ahora tiene su propia carpeta con separación de responsabilidades: + +``` +backend/api/v1/modules/sitar/ +├── common/ # Servicio base compartido +│ ├── __init__.py +│ └── base_service.py # SitarAPIBaseService con autenticación +├── tlcs/ # TLCS (Tratados de Libre Comercio) +│ ├── __init__.py +│ ├── schemas.py # TLCSResponse +│ ├── service.py # TLCSService +│ └── router.py # Endpoints FastAPI +├── fracciones/ # Fracciones arancelarias mexicanas +├── fracciones_usa/ # Fracciones USA +├── regulaciones/ # Regulaciones y restricciones +├── prosec/ # PROSEC +├── precios_estimados/ # Precios estimados +├── fundamentos_tlc/ # Fundamentos TLC +├── aladi2/ # ALADI2 +├── cuotas2/ # Cuotas compensatorias +├── cupos/ # Cupos de importación +├── fracciones_anteriores/ # Historial de fracciones +├── informacion_general/ # Información general +├── ieps/ # IEPS +├── noms/ # Normas Oficiales Mexicanas +├── rcg2/ # Reglas de Carácter General +├── reit/ # REIT +├── requisito_previo/ # Requisitos previos +├── vehiculos_marcas/ # Marcas de vehículos +├── vehiculos_modelos/ # Modelos de vehículos +├── __init__.py # Exporta todos los servicios +└── main_router.py # Router principal con todos los endpoints +``` + +## Uso del Servicio + +### Desde cualquier parte del código + +Cada recurso tiene su propio servicio **singleton** que maneja automáticamente la autenticación: + +```python +from api.v1.modules.sitar.tlcs import TLCSService +from api.v1.modules.sitar.fracciones import FraccionesService + +# Obtener instancia singleton +tlcs_service = TLCSService.get_instance() + +# Buscar TLCS (async) +tlcs_data = await tlcs_service.search( + fraccion="84716001", + pais="USA", + limit=100 +) + +# Procesar resultados +for tlcs in tlcs_data: + print(f"Tasa: {tlcs.TASATXT}, País: {tlcs.PAIS}") +``` + +### Desde código síncrono + +Si estás en contexto síncrono, usa `asyncio.run()`: + +```python +import asyncio +from api.v1.modules.sitar.tlcs import TLCSService + +tlcs_service = TLCSService.get_instance() +tlcs_data = asyncio.run(tlcs_service.search(fraccion="84716001", pais="USA")) +``` + +## Métodos Disponibles + +### TLCS (Tratados de Libre Comercio) + +- `search_tlcs(fraccion, pais, nico, skip, limit)` - Buscar TLCS +- `get_tlcs_by_id(sysid, fraccion)` - Obtener TLCS por ID + +### Fracciones Arancelarias + +- `search_fracciones(fraccion, nico, skip, limit)` - Buscar fracciones mexicanas +- `get_fraccion_by_id(sysid)` - Obtener fracción por ID +- `search_fracciones_usa(fraccion, skip, limit)` - Buscar fracciones USA +- `get_fraccion_usa_by_id(consecutivo)` - Obtener fracción USA por ID +- `search_fracciones_anteriores(fraccion_actual, fraccion_anterior, skip, limit)` - Buscar historial de fracciones +- `get_fracciones_anteriores_by_id(sysid)` - Obtener historial por ID + +### Regulaciones y Restricciones + +- `search_regulaciones(fraccion, nico, skip, limit)` - Buscar regulaciones +- `get_regulacion_by_id(sysid)` - Obtener regulación por ID +- `search_noms(fraccion, pais, nico, skip, limit)` - Buscar Normas Oficiales Mexicanas +- `get_noms_by_id(sysid)` - Obtener NOM por ID +- `search_requisito_previo(fraccion, nico, skip, limit)` - Buscar requisitos previos +- `get_requisito_previo_by_id(sysid)` - Obtener requisito previo por ID + +### PROSEC y Programas de Promoción + +- `search_prosec(fraccion, nico, skip, limit)` - Buscar PROSEC +- `get_prosec_by_id(sysid)` - Obtener PROSEC por ID +- `search_reit(fraccion, nico, skip, limit)` - Buscar REIT +- `get_reit_by_id(sysid)` - Obtener REIT por ID + +### Precios e Impuestos + +- `search_precios_estimados(fraccion, nico, skip, limit)` - Buscar precios estimados +- `get_precio_estimado_by_id(sysid)` - Obtener precio estimado por ID +- `search_ieps(fraccion, nico, skip, limit)` - Buscar IEPS +- `get_ieps_by_id(consecutivo)` - Obtener IEPS por ID + +### Fundamentos y Acuerdos + +- `search_fundamentos_tlc(fraccion, nico, tipat_only, skip, limit)` - Buscar fundamentos TLC +- `get_fundamento_tlc_by_id(sysid)` - Obtener fundamento por ID +- `search_aladi2(fraccion, pais, nico, skip, limit)` - Buscar ALADI2 +- `get_aladi2_by_id(sysid)` - Obtener ALADI2 por ID + +### Cuotas y Cupos + +- `search_cuotas2(fraccion, pais, nico, skip, limit)` - Buscar cuotas compensatorias +- `get_cuotas2_by_id(sysid)` - Obtener cuota por ID +- `search_cupos(fraccion, nico, skip, limit)` - Buscar cupos de importación +- `get_cupos_by_id(sysid)` - Obtener cupo por ID + +### Reglas de Carácter General + +- `search_rcg2(fraccion, nico, skip, limit)` - Buscar RCG2 +- `get_rcg2_by_id(sysid)` - Obtener RCG2 por ID + +### Información General + +- `search_informacion_general(fraccion, nico, skip, limit)` - Buscar información general +- `get_informacion_general_by_id(sysid)` - Obtener información general por ID + +### Vehículos + +- `search_vehiculos_marcas(fraccion, marca, skip, limit)` - Buscar marcas de vehículos +- `get_vehiculos_marcas_by_id(sysid)` - Obtener marca por ID +- `search_vehiculos_modelos(fraccion, marca, modelo, skip, limit)` - Buscar modelos de vehículos +- `get_vehiculos_modelos_by_id(sysid)` - Obtener modelo por ID + +## Configuración + +Requiere las siguientes variables de entorno: + +```bash +SITAR_API_URL=https://api.sitar.example.com +SITAR_API_USER=your_username +SITAR_API_PASSWORD=your_password +``` + +## Servicios Disponibles + +Cada módulo sigue el mismo patrón con métodos `search()` y `get_by_id()`: + +### TLCS - `TLCSService` + +```python +from api.v1.modules.sitar.tlcs import TLCSService +service = TLCSService.get_instance() +await service.search(fraccion="84716001", pais="USA", nico=None, skip=0, limit=100) +await service.get_by_id(sysid=123, fraccion="84716001") +``` + +### Fracciones - `FraccionesService` + +```python +from api.v1.modules.sitar.fracciones import FraccionesService +service = FraccionesService.get_instance() +await service.search(fraccion="84716001", nico=None, skip=0, limit=100) +await service.get_by_id(sysid=123) +``` + +### Fracciones USA - `FraccionesUSAService` + +```python +from api.v1.modules.sitar.fracciones_usa import FraccionesUSAService +service = FraccionesUSAService.get_instance() +await service.search(fraccion="84716001", skip=0, limit=100) +await service.get_by_id(consecutivo=123) +``` + +### Otros servicios disponibles: + +- **RegulacionesService** - Regulaciones y restricciones +- **ProsecService** - PROSEC (Programa de Promoción Sectorial) +- **PreciosEstimadosService** - Precios estimados +- **FundamentosTLCService** - Fundamentos de tratados de libre comercio +- **Aladi2Service** - ALADI2 (Asociación Latinoamericana de Integración) +- **Cuotas2Service** - Cuotas compensatorias +- **CuposService** - Cupos de importación +- **FraccionesAnterioresService** - Historial de fracciones +- **InformacionGeneralService** - Información general de fracciones +- **IepsService** - IEPS (Impuesto Especial sobre Producción y Servicios) +- **NomsService** - Normas Oficiales Mexicanas +- **Rcg2Service** - Reglas de Carácter General +- **ReitService** - Registro de Empresas de Industria Terminal +- **RequisitoPrevioService** - Requisitos previos +- **VehiculosMarcasService** - Marcas de vehículos +- **VehiculosModelosService** - Modelos de vehículos + +```### Desde endpoints asíncronos + +```python +from fastapi import APIRouter, HTTPException +from api.v1.modules.sitar.tlcs import TLCSService + +router = APIRouter() + +@router.get("/tariff/{fraccion}") +async def get_tariff_info(fraccion: str, country: str = "USA"): + """Endpoint que consulta información arancelaria""" + try: + tlcs_service = TLCSService.get_instance() + data = await tlcs_service.search(fraccion=fraccion, pais=country) + return {"success": True, "data": data} + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) +``` +## Arquitectura + +### Servicio Base Compartido + +Todos los servicios heredan de `SitarAPIBaseService` que maneja: + +- Autenticación con token caching +- Renovación automática de tokens +- Manejo de errores HTTP +- Timeout configurable + +### Singleton Pattern + +Cada servicio usa el patrón singleton para: + +- Compartir la conexión HTTP +- Reutilizar tokens de autenticación +- Evitar múltiples instancias + +### Separación de Responsabilidades + +- **schemas.py**: Modelos Pydantic para validación de datos +- **service.py**: Lógica de negocio y llamadas a API +- **router.py**: Endpoints FastAPI (opcional) +- **__init__.py**: Exportaciones públicas + +## Notas Importantes + +1. **Autenticación**: El token se cachea y renueva automáticamente +2. **Timeouts**: Configurado a 10 segundos por defecto +3. **Límites**: Máximo 1000 registros por consulta +4. **Errores**: Todos los servicios lanzan excepciones httpx en caso de error +5. **Async/Sync**: Los servicios son async, usa `asyncio.run()` en código síncrono + +``` + +Esto expondrá endpoints como: +- `GET /api/v1/sitar/tlcs/` - Buscar TLCS +- `GET /api/v1/sitar/fracciones/` - Buscar fracciones +- etc. + +## Ejemplo Completo + +```python +from api.v1.modules.sitar import SitarAPIService + +async def get_tariff_info(fraccion: str, country: str): + """Obtener información arancelaria completa""" + sitar = SitarAPIService.get_instance() + + try: + # Buscar TLCS + tlcs = await sitar.search_tlcs(fraccion=fraccion, pais=country) + + if tlcs: + first_tlcs = tlcs[0] + return { + "rate": first_tlcs.TASATXT, + "adv_impo": float(first_tlcs.TASA1NUM or 0.0), + "country": first_tlcs.PAIS + } + + # Si no hay TLCS, buscar fracción general + fracciones = await sitar.search_fracciones(fraccion=fraccion) + + if fracciones: + first_frac = fracciones[0] + return { + "rate": first_frac.ADVIMPOTXT, + "adv_impo": float(first_frac.ADVIMPONUM or 0.0), + "description": first_frac.DESCRIPCION + } + + return None + + except Exception as e: + print(f"Error: {e}") + return None +``` +## Manejo de Errores + +El servicio lanza excepciones `httpx.HTTPError` en caso de error: + +```python +import httpx + +try: + tlcs = await sitar.search_tlcs(fraccion="invalid") +except httpx.HTTPStatusError as e: + print(f"HTTP Error: {e.response.status_code}") +except httpx.RequestError as e: + print(f"Request Error: {e}") +except Exception as e: + print(f"General Error: {e}") +``` diff --git a/backend/api/v1/modules/sitar/__init__.py b/backend/api/v1/modules/sitar/__init__.py new file mode 100644 index 00000000..ebea325b --- /dev/null +++ b/backend/api/v1/modules/sitar/__init__.py @@ -0,0 +1,90 @@ +""" +SITAR API Module + +Módulo reorganizado para integración con la API externa de SITAR. +Cada recurso tiene su propia carpeta con schemas, service y router. + +Estructura: + backend/api/v1/modules/sitar/ + ├── common/ # Base service compartido + ├── tlcs/ # TLCS (Tratados de Libre Comercio) + ├── fracciones/ # Fracciones arancelarias mexicanas + ├── fracciones_usa/ # Fracciones arancelarias USA + ├── regulaciones/ # Regulaciones y restricciones + ├── prosec/ # PROSEC + ├── precios_estimados/ # Precios estimados + ├── fundamentos_tlc/ # Fundamentos TLC + ├── aladi2/ # ALADI2 + ├── cuotas2/ # Cuotas compensatorias + ├── cupos/ # Cupos de importación + ├── fracciones_anteriores/ # Historial de fracciones + ├── informacion_general/ # Información general + ├── ieps/ # IEPS + ├── noms/ # Normas Oficiales Mexicanas + ├── rcg2/ # Reglas de Carácter General + ├── reit/ # REIT + ├── requisito_previo/ # Requisitos previos + ├── vehiculos_marcas/ # Marcas de vehículos + └── vehiculos_modelos/ # Modelos de vehículos + +Uso: + # Importar servicios específicos + from api.v1.modules.sitar.tlcs import TLCSService + from api.v1.modules.sitar.fracciones import FraccionesService + + # Usar servicios + tlcs_service = TLCSService.get_instance() + data = await tlcs_service.search(fraccion="84716001") + + # Importar routers para FastAPI + from api.v1.modules.sitar.tlcs import router as tlcs_router + from api.v1.modules.sitar.fracciones import router as fracciones_router + + app.include_router(tlcs_router, prefix="/api/v1/sitar/tlcs", tags=["sitar-tlcs"]) +""" + +from .common import SitarAPIBaseService + +# Import all services for convenient access +from .tlcs import TLCSService +from .fracciones import FraccionesService +from .fracciones_usa import FraccionesUSAService +from .regulaciones import RegulacionesService +from .prosec import ProsecService +from .precios_estimados import PreciosEstimadosService +from .fundamentos_tlc import FundamentosTLCService +from .aladi2 import Aladi2Service +from .cuotas2 import Cuotas2Service +from .cupos import CuposService +from .fracciones_anteriores import FraccionesAnterioresService +from .informacion_general import InformacionGeneralService +from .ieps import IepsService +from .noms import NomsService +from .rcg2 import Rcg2Service +from .reit import ReitService +from .requisito_previo import RequisitoPrevioService +from .vehiculos_marcas import VehiculosMarcasService +from .vehiculos_modelos import VehiculosModelosService + +__all__ = [ + "SitarAPIBaseService", + "TLCSService", + "FraccionesService", + "FraccionesUSAService", + "RegulacionesService", + "ProsecService", + "PreciosEstimadosService", + "FundamentosTLCService", + "Aladi2Service", + "Cuotas2Service", + "CuposService", + "FraccionesAnterioresService", + "InformacionGeneralService", + "IepsService", + "NomsService", + "Rcg2Service", + "ReitService", + "RequisitoPrevioService", + "VehiculosMarcasService", + "VehiculosModelosService", +] diff --git a/backend/api/v1/modules/sitar/aladi2/__init__.py b/backend/api/v1/modules/sitar/aladi2/__init__.py new file mode 100644 index 00000000..2dfbf48c --- /dev/null +++ b/backend/api/v1/modules/sitar/aladi2/__init__.py @@ -0,0 +1,7 @@ +"""Aladi2 Module""" + +from .schemas import Aladi2Response +from .service import Aladi2Service +from .router import router + +__all__ = ["Aladi2Response", "Aladi2Service", "router"] diff --git a/backend/api/v1/modules/sitar/aladi2/router.py b/backend/api/v1/modules/sitar/aladi2/router.py new file mode 100644 index 00000000..8e3b625d --- /dev/null +++ b/backend/api/v1/modules/sitar/aladi2/router.py @@ -0,0 +1,37 @@ +"""Aladi2 Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query +from fastapi import Depends + +from core.security import get_current_user +from .service import Aladi2Service +from .schemas import Aladi2Response + +router = APIRouter() + + +@router.get("/", response_model=List[Aladi2Response]) +async def search( + fraccion: Optional[str] = Query(None), + pais: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = Aladi2Service.get_instance() + return await service.search( + fraccion=fraccion, pais=pais, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=Aladi2Response) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await Aladi2Service.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/aladi2/schemas.py b/backend/api/v1/modules/sitar/aladi2/schemas.py new file mode 100644 index 00000000..511ba5a8 --- /dev/null +++ b/backend/api/v1/modules/sitar/aladi2/schemas.py @@ -0,0 +1,24 @@ +"""ALADI2 Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class Aladi2Response(BaseModel): + """ALADI2 (Asociación Latinoamericana de Integración)""" + + FRACCION: Optional[str] = Field(None, max_length=10) + ACUERDO: Optional[str] = Field(None, max_length=49) + PAIS: Optional[str] = Field(None, max_length=3) + TASATXT: Optional[str] = Field(None, max_length=19) + TASANUM: Optional[str] = None + TASACALCULADA: Optional[str] = Field(None, max_length=19) + TIPOTASA: Optional[int] = None + DOF: Optional[str] = Field(None, max_length=8) + NOTAS: Optional[str] = Field(None, max_length=499) + OBSERVACIONES: Optional[str] = None + NICO: Optional[str] = Field(None, max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/aladi2/service.py b/backend/api/v1/modules/sitar/aladi2/service.py new file mode 100644 index 00000000..dccf24b7 --- /dev/null +++ b/backend/api/v1/modules/sitar/aladi2/service.py @@ -0,0 +1,37 @@ +"""Aladi2 Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import Aladi2Response + + +class Aladi2Service(SitarAPIBaseService): + _instance: Optional["Aladi2Service"] = None + + @classmethod + def get_instance(cls) -> "Aladi2Service": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + pais: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[Aladi2Response]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if pais: + params["pais"] = pais + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/aladi2/", params=params) + return [Aladi2Response(**item) for item in data] + + async def get_by_id(self, sysid: int) -> Aladi2Response: + data = await self._make_request("GET", f"/api/v1/aladi2/{sysid}") + return Aladi2Response(**data) diff --git a/backend/api/v1/modules/sitar/common/__init__.py b/backend/api/v1/modules/sitar/common/__init__.py new file mode 100644 index 00000000..974c7610 --- /dev/null +++ b/backend/api/v1/modules/sitar/common/__init__.py @@ -0,0 +1,5 @@ +"""SITAR API Common Module""" + +from .base_service import SitarAPIBaseService + +__all__ = ["SitarAPIBaseService"] diff --git a/backend/api/v1/modules/sitar/common/base_service.py b/backend/api/v1/modules/sitar/common/base_service.py new file mode 100644 index 00000000..0795a539 --- /dev/null +++ b/backend/api/v1/modules/sitar/common/base_service.py @@ -0,0 +1,120 @@ +""" +SITAR API Base Service + +Base service class for SITAR API authentication and HTTP requests. +All specific resource services inherit from this. +""" + +import os +from typing import Optional, Dict, Any +from datetime import datetime, timedelta +import httpx + + +class SitarAPIBaseService: + """Base service for SITAR API integration with authentication""" + + _token: Optional[str] = None + _token_expires: Optional[datetime] = None + + def __init__(self): + """Initialize base service with API credentials""" + self.base_url = os.getenv("SITAR_API_URL") + self.username = os.getenv("SITAR_API_USER") + self.password = os.getenv("SITAR_API_PASSWORD") + self.timeout = 30.0 + + if not all([self.base_url, self.username, self.password]): + raise ValueError( + "Missing SITAR API configuration. " + "Set SITAR_API_URL, SITAR_API_USER, and SITAR_API_PASSWORD environment variables." + ) + + async def _get_token(self) -> str: + """ + Get authentication token, refreshing if necessary + + Returns: + str: Bearer token for API authentication + + Raises: + httpx.HTTPError: If authentication fails + """ + # Return cached token if still valid + if self._token and self._token_expires and datetime.now() < self._token_expires: + return self._token + + # Authenticate and get new token + login_url = f"{self.base_url}/fractions/api/v1/auth/login" + payload = {"username": self.username, "password": self.password} + + async with httpx.AsyncClient(timeout=self.timeout) as client: + response = await client.post(login_url, json=payload) + response.raise_for_status() + + data = response.json() + self._token = data.get("access_token") or data.get("token") + + if not self._token: + raise ValueError("No token received from SITAR API") + + # Set token expiration (assume 1 hour if not specified) + self._token_expires = datetime.now() + timedelta(hours=1) + + return self._token + + async def _make_request( + self, + method: str, + endpoint: str, + params: Optional[Dict[str, Any]] = None, + json_data: Optional[Dict[str, Any]] = None, + ) -> Any: + """ + Make authenticated request to SITAR API + + Args: + method: HTTP method (GET, POST, etc.) + endpoint: API endpoint path + params: Query parameters + json_data: JSON body data + + Returns: + JSON response data + + Raises: + httpx.HTTPError: If request fails + """ + token = await self._get_token() + url = f"{self.base_url}/fractions/{endpoint}" + headers = { + "Authorization": f"Bearer {token}", + "Content-Type": "application/json", + } + + async with httpx.AsyncClient(timeout=self.timeout) as client: + response = await client.request( + method=method, + url=url, + params=params, + json=json_data, + headers=headers, + ) + response.raise_for_status() + + # DEBUG LOGGING for SITAR inspection + if "fracciones" in url: + import logging + logger = logging.getLogger(__name__) + logger.info(f"SITAR API Response Headers for {url}: {dict(response.headers)}") + try: + data = response.json() + if isinstance(data, dict): + logger.info(f"SITAR API Response Body Keys: {list(data.keys())}") + elif isinstance(data, list) and len(data) > 0: + logger.info(f"SITAR API Response List Item Keys: {list(data[0].keys())}") + return data + except Exception: + pass + + return response.json() diff --git a/backend/api/v1/modules/sitar/cuotas2/__init__.py b/backend/api/v1/modules/sitar/cuotas2/__init__.py new file mode 100644 index 00000000..9576083d --- /dev/null +++ b/backend/api/v1/modules/sitar/cuotas2/__init__.py @@ -0,0 +1,7 @@ +"""Cuotas2 Module""" + +from .schemas import Cuotas2Response +from .service import Cuotas2Service +from .router import router + +__all__ = ["Cuotas2Response", "Cuotas2Service", "router"] diff --git a/backend/api/v1/modules/sitar/cuotas2/router.py b/backend/api/v1/modules/sitar/cuotas2/router.py new file mode 100644 index 00000000..e206b152 --- /dev/null +++ b/backend/api/v1/modules/sitar/cuotas2/router.py @@ -0,0 +1,35 @@ +"""Cuotas2 Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import Cuotas2Service +from .schemas import Cuotas2Response + +router = APIRouter() + + +@router.get("/", response_model=List[Cuotas2Response]) +async def search( + fraccion: Optional[str] = Query(None), + pais: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = Cuotas2Service.get_instance() + return await service.search( + fraccion=fraccion, pais=pais, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=Cuotas2Response) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await Cuotas2Service.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/cuotas2/schemas.py b/backend/api/v1/modules/sitar/cuotas2/schemas.py new file mode 100644 index 00000000..d9c29164 --- /dev/null +++ b/backend/api/v1/modules/sitar/cuotas2/schemas.py @@ -0,0 +1,30 @@ +"""Cuotas2 Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class Cuotas2Response(BaseModel): + """Cuotas compensatorias""" + + FRACCION: Optional[str] = Field(None, max_length=10) + PRODUCTO: Optional[str] = Field(None, max_length=300) + PAIS: Optional[str] = Field(None, max_length=3) + DOF: Optional[str] = Field(None, max_length=8) + DOF2: Optional[str] = Field(None, max_length=149) + EMPRESA: Optional[str] = Field(None, max_length=100) + INCOTERM: Optional[str] = Field(None, max_length=10) + DOLARES: Optional[str] = None + CLAVEMONEDA: Optional[str] = Field(None, max_length=3) + CLAVEUM: Optional[str] = Field(None, max_length=2) + PORCENTAJE: Optional[str] = None + DESCRIPCIONDOLARES: Optional[str] = Field(None, max_length=50) + NOTAS: Optional[str] = None + ESTATUS: Optional[str] = Field(None, max_length=19) + NUMERORESOLUCION: Optional[int] = None + RESOLUCION: Optional[str] = Field(None, max_length=150) + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/cuotas2/service.py b/backend/api/v1/modules/sitar/cuotas2/service.py new file mode 100644 index 00000000..9edbbd06 --- /dev/null +++ b/backend/api/v1/modules/sitar/cuotas2/service.py @@ -0,0 +1,37 @@ +"""Cuotas2 Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import Cuotas2Response + + +class Cuotas2Service(SitarAPIBaseService): + _instance: Optional["Cuotas2Service"] = None + + @classmethod + def get_instance(cls) -> "Cuotas2Service": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + pais: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[Cuotas2Response]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if pais: + params["pais"] = pais + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/cuotas2/", params=params) + return [Cuotas2Response(**item) for item in data] + + async def get_by_id(self, sysid: int) -> Cuotas2Response: + data = await self._make_request("GET", f"/api/v1/cuotas2/{sysid}") + return Cuotas2Response(**data) diff --git a/backend/api/v1/modules/sitar/cupos/__init__.py b/backend/api/v1/modules/sitar/cupos/__init__.py new file mode 100644 index 00000000..d415348d --- /dev/null +++ b/backend/api/v1/modules/sitar/cupos/__init__.py @@ -0,0 +1,7 @@ +"""Cupos Module""" + +from .schemas import CuposResponse +from .service import CuposService +from .router import router + +__all__ = ["CuposResponse", "CuposService", "router"] diff --git a/backend/api/v1/modules/sitar/cupos/router.py b/backend/api/v1/modules/sitar/cupos/router.py new file mode 100644 index 00000000..b2da9438 --- /dev/null +++ b/backend/api/v1/modules/sitar/cupos/router.py @@ -0,0 +1,34 @@ +"""Cupos Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import CuposService +from .schemas import CuposResponse + +router = APIRouter() + + +@router.get("/", response_model=List[CuposResponse]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = CuposService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=CuposResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await CuposService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/cupos/schemas.py b/backend/api/v1/modules/sitar/cupos/schemas.py new file mode 100644 index 00000000..4a6f652f --- /dev/null +++ b/backend/api/v1/modules/sitar/cupos/schemas.py @@ -0,0 +1,25 @@ +"""Cupos Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class CuposResponse(BaseModel): + """Cupos de importación""" + + FRACCION: Optional[str] = Field(None, max_length=10) + NUMEROCUPO: Optional[int] = None + DOF: Optional[str] = Field(None, max_length=8) + PERMISO: Optional[str] = Field(None, max_length=2) + CONDICION: Optional[str] = Field(None, max_length=199) + VIGENCIA: Optional[str] = Field(None, max_length=8) + PAIS: Optional[str] = Field(None, max_length=5) + OBSERVACIONES: Optional[str] = Field(None, max_length=5000) + ADVIMPO: Optional[str] = Field(None, max_length=20) + ADVEXPO: Optional[str] = Field(None, max_length=20) + TIPOOPERACION: Optional[int] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/cupos/service.py b/backend/api/v1/modules/sitar/cupos/service.py new file mode 100644 index 00000000..dd308ffe --- /dev/null +++ b/backend/api/v1/modules/sitar/cupos/service.py @@ -0,0 +1,34 @@ +"""Cupos Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import CuposResponse + + +class CuposService(SitarAPIBaseService): + _instance: Optional["CuposService"] = None + + @classmethod + def get_instance(cls) -> "CuposService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[CuposResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/cupos/", params=params) + return [CuposResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> CuposResponse: + data = await self._make_request("GET", f"/api/v1/cupos/{sysid}") + return CuposResponse(**data) diff --git a/backend/api/v1/modules/sitar/fracciones/__init__.py b/backend/api/v1/modules/sitar/fracciones/__init__.py new file mode 100644 index 00000000..c2251ff3 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones/__init__.py @@ -0,0 +1,7 @@ +"""Fracciones Module""" + +from .schemas import FraccionesResponse +from .service import FraccionesService +from .router import router + +__all__ = ["FraccionesResponse", "FraccionesService", "router"] diff --git a/backend/api/v1/modules/sitar/fracciones/router.py b/backend/api/v1/modules/sitar/fracciones/router.py new file mode 100644 index 00000000..48e88c27 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones/router.py @@ -0,0 +1,43 @@ +"""Fracciones Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import FraccionesService +from .schemas import FraccionesResponse + +router = APIRouter() + + +@router.get("/", response_model=List[FraccionesResponse]) +async def search_fracciones( + fraccion: Optional[str] = Query(None, description="Fracción arancelaria"), + nico: Optional[str] = Query(None, description="NICO"), + skip: int = Query(0, ge=0, description="Registros a saltar"), + limit: int = Query(100, ge=1, le=1000, description="Máximo de registros"), + current_user: dict = Depends(get_current_user), +): + """Search Mexican tariff fractions""" + try: + service = FraccionesService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException( + status_code=500, detail=f"Error fetching Fracciones data: {str(e)}" + ) + + +@router.get("/{sysid}", response_model=FraccionesResponse) +async def get_fraccion_by_id( + sysid: int, current_user: dict = Depends(get_current_user) +): + """Get single Fraccion record by SYSID""" + try: + service = FraccionesService.get_instance() + return await service.get_by_id(sysid) + except Exception as e: + raise HTTPException( + status_code=404, detail=f"Fraccion record not found: {str(e)}" + ) diff --git a/backend/api/v1/modules/sitar/fracciones/schemas.py b/backend/api/v1/modules/sitar/fracciones/schemas.py new file mode 100644 index 00000000..a657c68b --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones/schemas.py @@ -0,0 +1,39 @@ +"""Fracciones Schemas""" + +from decimal import Decimal +from typing import Optional +from pydantic import BaseModel, Field + + +class FraccionesResponse(BaseModel): + """Fracciones arancelarias mexicanas""" + + FRACCION: Optional[str] = Field(None, max_length=10) + FRACCIONPUNTO: Optional[str] = Field(None, max_length=10) + DESCRIPCION: Optional[str] = None + UMCLAVE: Optional[str] = Field(None, max_length=2) + UMABREVIACION: Optional[str] = Field(None, max_length=4) + ADVIMPOTXT: Optional[str] = Field(None, max_length=19) + ADVIMPONUM: Optional[Decimal] = None + TIPOTASAADVIMPO: Optional[int] = None + ADVEXPOTXT: Optional[str] = Field(None, max_length=19) + ADVEXPONUM: Optional[Decimal] = None + TIPOTASAADVEXPO: Optional[int] = None + TASAIVAFRANJA: Optional[Decimal] = None + TASAIVAINTERIOR: Optional[Decimal] = None + TASAISAN: Optional[Decimal] = None + ARANCELMIXTO: Optional[str] = Field(None, max_length=1) + TASAMIXTA: Optional[Decimal] = None + DOF: Optional[str] = Field(None, max_length=8) + NOTAS: Optional[str] = None + HISTORICO: Optional[str] = None + ARANCELESPECIFICO: Optional[str] = Field(None, max_length=1) + TIPOVEHICULO: Optional[str] = Field(None, max_length=1) + APLICAISAN: Optional[str] = Field(None, max_length=1) + APLICAIEPS: Optional[str] = Field(None, max_length=1) + NIVEL: Optional[int] = None + NICO: Optional[str] = Field(None, max_length=14) + SYSID: Optional[int] = None + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/fracciones/service.py b/backend/api/v1/modules/sitar/fracciones/service.py new file mode 100644 index 00000000..640cf969 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones/service.py @@ -0,0 +1,46 @@ +"""Fracciones Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import FraccionesResponse + + +class FraccionesService(SitarAPIBaseService): + """Service for Fracciones operations""" + + _instance: Optional["FraccionesService"] = None + + @classmethod + def get_instance(cls) -> "FraccionesService": + """Get singleton instance""" + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + description: Optional[str] = None, + nivel: Optional[int] = None, + skip: int = 0, + limit: int = 100, + ) -> List[FraccionesResponse]: + """Search Mexican tariff fractions""" + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + if description: + params["descripcion"] = description + if nivel is not None: + params["nivel"] = nivel + + data = await self._make_request("GET", "/api/v1/fracciones/", params=params) + return [FraccionesResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> FraccionesResponse: + """Get single Fraccion record by SYSID""" + data = await self._make_request("GET", f"/api/v1/fracciones/{sysid}") + return FraccionesResponse(**data) diff --git a/backend/api/v1/modules/sitar/fracciones_anteriores/__init__.py b/backend/api/v1/modules/sitar/fracciones_anteriores/__init__.py new file mode 100644 index 00000000..94237c91 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_anteriores/__init__.py @@ -0,0 +1,7 @@ +"""FraccionesAnteriores Module""" + +from .schemas import FraccionesAnterioresResponse +from .service import FraccionesAnterioresService +from .router import router + +__all__ = ["FraccionesAnterioresResponse", "FraccionesAnterioresService", "router"] diff --git a/backend/api/v1/modules/sitar/fracciones_anteriores/router.py b/backend/api/v1/modules/sitar/fracciones_anteriores/router.py new file mode 100644 index 00000000..387a741c --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_anteriores/router.py @@ -0,0 +1,37 @@ +"""FraccionesAnteriores Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import FraccionesAnterioresService +from .schemas import FraccionesAnterioresResponse + +router = APIRouter() + + +@router.get("/", response_model=List[FraccionesAnterioresResponse]) +async def search( + fraccion_actual: Optional[str] = Query(None), + fraccion_anterior: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = FraccionesAnterioresService.get_instance() + return await service.search( + fraccion_actual=fraccion_actual, + fraccion_anterior=fraccion_anterior, + skip=skip, + limit=limit, + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=FraccionesAnterioresResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await FraccionesAnterioresService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/fracciones_anteriores/schemas.py b/backend/api/v1/modules/sitar/fracciones_anteriores/schemas.py new file mode 100644 index 00000000..9ddd8247 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_anteriores/schemas.py @@ -0,0 +1,15 @@ +"""Fracciones Anteriores Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class FraccionesAnterioresResponse(BaseModel): + """Fracciones arancelarias anteriores (histórico)""" + + FRACCIONACTUAL: Optional[str] = Field(None, max_length=10) + FRACCIONANTERIOR: Optional[str] = Field(None, max_length=10) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/fracciones_anteriores/service.py b/backend/api/v1/modules/sitar/fracciones_anteriores/service.py new file mode 100644 index 00000000..a0f6d136 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_anteriores/service.py @@ -0,0 +1,36 @@ +"""FraccionesAnteriores Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import FraccionesAnterioresResponse + + +class FraccionesAnterioresService(SitarAPIBaseService): + _instance: Optional["FraccionesAnterioresService"] = None + + @classmethod + def get_instance(cls) -> "FraccionesAnterioresService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion_actual: Optional[str] = None, + fraccion_anterior: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[FraccionesAnterioresResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion_actual: + params["fraccion_actual"] = fraccion_actual + if fraccion_anterior: + params["fraccion_anterior"] = fraccion_anterior + data = await self._make_request( + "GET", "/api/v1/fracciones-anteriores/", params=params + ) + return [FraccionesAnterioresResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> FraccionesAnterioresResponse: + data = await self._make_request("GET", f"/api/v1/fracciones-anteriores/{sysid}") + return FraccionesAnterioresResponse(**data) diff --git a/backend/api/v1/modules/sitar/fracciones_usa/__init__.py b/backend/api/v1/modules/sitar/fracciones_usa/__init__.py new file mode 100644 index 00000000..57c44d27 --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_usa/__init__.py @@ -0,0 +1,7 @@ +"""Fracciones USA Module""" + +from .schemas import FraccionesUSAResponse +from .service import FraccionesUSAService +from .router import router + +__all__ = ["FraccionesUSAResponse", "FraccionesUSAService", "router"] diff --git a/backend/api/v1/modules/sitar/fracciones_usa/router.py b/backend/api/v1/modules/sitar/fracciones_usa/router.py new file mode 100644 index 00000000..e4c79a8e --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_usa/router.py @@ -0,0 +1,41 @@ +"""Fracciones USA Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import FraccionesUSAService +from .schemas import FraccionesUSAResponse + +router = APIRouter() + + +@router.get("/", response_model=List[FraccionesUSAResponse]) +async def search_fracciones_usa( + fraccion: Optional[str] = Query(None, description="Fracción arancelaria USA"), + skip: int = Query(0, ge=0, description="Registros a saltar"), + limit: int = Query(100, ge=1, le=1000, description="Máximo de registros"), + current_user: dict = Depends(get_current_user), +): + """Search USA tariff fractions""" + try: + service = FraccionesUSAService.get_instance() + return await service.search(fraccion=fraccion, skip=skip, limit=limit) + except Exception as e: + raise HTTPException( + status_code=500, detail=f"Error fetching USA Fracciones data: {str(e)}" + ) + + +@router.get("/{consecutivo}", response_model=FraccionesUSAResponse) +async def get_fraccion_usa_by_id( + consecutivo: int, + current_user: dict = Depends(get_current_user), +): + """Get single USA Fraccion record by CONSECUTIVO""" + try: + service = FraccionesUSAService.get_instance() + return await service.get_by_id(consecutivo) + except Exception as e: + raise HTTPException( + status_code=404, detail=f"USA Fraccion record not found: {str(e)}" + ) diff --git a/backend/api/v1/modules/sitar/fracciones_usa/schemas.py b/backend/api/v1/modules/sitar/fracciones_usa/schemas.py new file mode 100644 index 00000000..0022069e --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_usa/schemas.py @@ -0,0 +1,24 @@ +"""Fracciones USA Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class FraccionesUSAResponse(BaseModel): + """USA tariff fractions""" + + FRACCION_SIN_PUNTO: Optional[str] = None + FRACCION_CON_PUNTO: Optional[str] = None + FRACCION_MOSTRAR: Optional[str] = None + ESPECIFICO: Optional[str] = None + NIVEL: Optional[str] = None + DESCRIPCION: Optional[str] = None + UNIDADCANTIDAD: Optional[str] = None + TARIFA1: Optional[str] = None + TLC: Optional[str] = None + TARIFA2: Optional[str] = None + NOTAS: Optional[str] = None + CONSECUTIVO: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/fracciones_usa/service.py b/backend/api/v1/modules/sitar/fracciones_usa/service.py new file mode 100644 index 00000000..5109671c --- /dev/null +++ b/backend/api/v1/modules/sitar/fracciones_usa/service.py @@ -0,0 +1,37 @@ +"""Fracciones USA Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import FraccionesUSAResponse + + +class FraccionesUSAService(SitarAPIBaseService): + """Service for USA Fracciones operations""" + + _instance: Optional["FraccionesUSAService"] = None + + @classmethod + def get_instance(cls) -> "FraccionesUSAService": + """Get singleton instance""" + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[FraccionesUSAResponse]: + """Search USA tariff fractions""" + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + + data = await self._make_request("GET", "/api/v1/fracciones-usa/", params=params) + return [FraccionesUSAResponse(**item) for item in data] + + async def get_by_id(self, consecutivo: int) -> FraccionesUSAResponse: + """Get single USA Fraccion record by CONSECUTIVO""" + data = await self._make_request("GET", f"/api/v1/fracciones-usa/{consecutivo}") + return FraccionesUSAResponse(**data) diff --git a/backend/api/v1/modules/sitar/fundamentos_tlc/__init__.py b/backend/api/v1/modules/sitar/fundamentos_tlc/__init__.py new file mode 100644 index 00000000..57253bec --- /dev/null +++ b/backend/api/v1/modules/sitar/fundamentos_tlc/__init__.py @@ -0,0 +1,7 @@ +"""Fundamentos TLC Module""" + +from .schemas import FundamentosTLCResponse +from .service import FundamentosTLCService +from .router import router + +__all__ = ["FundamentosTLCResponse", "FundamentosTLCService", "router"] diff --git a/backend/api/v1/modules/sitar/fundamentos_tlc/router.py b/backend/api/v1/modules/sitar/fundamentos_tlc/router.py new file mode 100644 index 00000000..d4cce318 --- /dev/null +++ b/backend/api/v1/modules/sitar/fundamentos_tlc/router.py @@ -0,0 +1,37 @@ +"""Fundamentos TLC Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import FundamentosTLCService +from .schemas import FundamentosTLCResponse + +router = APIRouter() + + +@router.get("/", response_model=List[FundamentosTLCResponse]) +async def search_fundamentos( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + tipat_only: bool = Query(False), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = FundamentosTLCService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, tipat_only=tipat_only, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=FundamentosTLCResponse) +async def get_fundamento_by_id( + sysid: int, current_user: dict = Depends(get_current_user) +): + try: + return await FundamentosTLCService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/fundamentos_tlc/schemas.py b/backend/api/v1/modules/sitar/fundamentos_tlc/schemas.py new file mode 100644 index 00000000..2a2350b7 --- /dev/null +++ b/backend/api/v1/modules/sitar/fundamentos_tlc/schemas.py @@ -0,0 +1,27 @@ +"""Fundamentos TLC Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class FundamentosTLCResponse(BaseModel): + """Fundamentos de tratados de libre comercio""" + + FRACCION: Optional[str] = Field(None, max_length=8) + PAIS: Optional[str] = Field(None, max_length=3) + ACUERDO: Optional[str] = Field(None, max_length=5) + TASA1TXT: Optional[str] = Field(None, max_length=19) + TASA1NUM: Optional[str] = None + TASA2TXT: Optional[str] = Field(None, max_length=19) + TASA2NUM: Optional[str] = None + FUNDAMENTO1: Optional[str] = None + FUNDAMENTO2: Optional[str] = None + PERIODO: Optional[str] = Field(None, max_length=299) + MODALIDAD: Optional[str] = Field(None, max_length=999) + DOF: Optional[str] = Field(None, max_length=8) + NOTAS: Optional[str] = Field(None, max_length=20) + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/fundamentos_tlc/service.py b/backend/api/v1/modules/sitar/fundamentos_tlc/service.py new file mode 100644 index 00000000..a1c99254 --- /dev/null +++ b/backend/api/v1/modules/sitar/fundamentos_tlc/service.py @@ -0,0 +1,40 @@ +"""Fundamentos TLC Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import FundamentosTLCResponse + + +class FundamentosTLCService(SitarAPIBaseService): + _instance: Optional["FundamentosTLCService"] = None + + @classmethod + def get_instance(cls) -> "FundamentosTLCService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + tipat_only: bool = False, + skip: int = 0, + limit: int = 100, + ) -> List[FundamentosTLCResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + endpoint = ( + "/api/v1/fundamentos-tlc/tipat" + if tipat_only + else "/api/v1/fundamentos-tlc/" + ) + data = await self._make_request("GET", endpoint, params=params) + return [FundamentosTLCResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> FundamentosTLCResponse: + data = await self._make_request("GET", f"/api/v1/fundamentos-tlc/{sysid}") + return FundamentosTLCResponse(**data) diff --git a/backend/api/v1/modules/sitar/ieps/__init__.py b/backend/api/v1/modules/sitar/ieps/__init__.py new file mode 100644 index 00000000..d24fdf7b --- /dev/null +++ b/backend/api/v1/modules/sitar/ieps/__init__.py @@ -0,0 +1,7 @@ +"""Ieps Module""" + +from .schemas import IepsResponse +from .service import IepsService +from .router import router + +__all__ = ["IepsResponse", "IepsService", "router"] diff --git a/backend/api/v1/modules/sitar/ieps/router.py b/backend/api/v1/modules/sitar/ieps/router.py new file mode 100644 index 00000000..6d9c1ac5 --- /dev/null +++ b/backend/api/v1/modules/sitar/ieps/router.py @@ -0,0 +1,34 @@ +"""Ieps Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import IepsService +from .schemas import IepsResponse + +router = APIRouter() + + +@router.get("/", response_model=List[IepsResponse]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = IepsService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{consecutivo}", response_model=IepsResponse) +async def get_by_id(consecutivo: int, current_user: dict = Depends(get_current_user)): + try: + return await IepsService.get_instance().get_by_id(consecutivo) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/ieps/schemas.py b/backend/api/v1/modules/sitar/ieps/schemas.py new file mode 100644 index 00000000..f65e0def --- /dev/null +++ b/backend/api/v1/modules/sitar/ieps/schemas.py @@ -0,0 +1,20 @@ +"""IEPS Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class IepsResponse(BaseModel): + """IEPS (Impuesto Especial sobre Producción y Servicios)""" + + FRACCION_SIN_PUNTO: Optional[str] = Field(None, max_length=10) + FRACCION_CON_PUNTO: Optional[str] = Field(None, max_length=10) + FUNDAMENTO: Optional[str] = Field(None, max_length=1000) + CONDICION: Optional[str] = Field(None, max_length=5000) + TASA: Optional[str] = None + TASAESPECIFICO: Optional[str] = None + NICO: Optional[str] = Field("", max_length=2) + CONSECUTIVO: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/ieps/service.py b/backend/api/v1/modules/sitar/ieps/service.py new file mode 100644 index 00000000..72db617c --- /dev/null +++ b/backend/api/v1/modules/sitar/ieps/service.py @@ -0,0 +1,34 @@ +"""Ieps Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import IepsResponse + + +class IepsService(SitarAPIBaseService): + _instance: Optional["IepsService"] = None + + @classmethod + def get_instance(cls) -> "IepsService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[IepsResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/ieps/", params=params) + return [IepsResponse(**item) for item in data] + + async def get_by_id(self, consecutivo: int) -> IepsResponse: + data = await self._make_request("GET", f"/api/v1/ieps/{consecutivo}") + return IepsResponse(**data) diff --git a/backend/api/v1/modules/sitar/informacion_general/__init__.py b/backend/api/v1/modules/sitar/informacion_general/__init__.py new file mode 100644 index 00000000..ea0001eb --- /dev/null +++ b/backend/api/v1/modules/sitar/informacion_general/__init__.py @@ -0,0 +1,7 @@ +"""InformacionGeneral Module""" + +from .schemas import InformacionGeneralResponse +from .service import InformacionGeneralService +from .router import router + +__all__ = ["InformacionGeneralResponse", "InformacionGeneralService", "router"] diff --git a/backend/api/v1/modules/sitar/informacion_general/router.py b/backend/api/v1/modules/sitar/informacion_general/router.py new file mode 100644 index 00000000..9209c9f7 --- /dev/null +++ b/backend/api/v1/modules/sitar/informacion_general/router.py @@ -0,0 +1,34 @@ +"""InformacionGeneral Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import InformacionGeneralService +from .schemas import InformacionGeneralResponse + +router = APIRouter() + + +@router.get("/", response_model=List[InformacionGeneralResponse]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = InformacionGeneralService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=InformacionGeneralResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await InformacionGeneralService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/informacion_general/schemas.py b/backend/api/v1/modules/sitar/informacion_general/schemas.py new file mode 100644 index 00000000..1b044670 --- /dev/null +++ b/backend/api/v1/modules/sitar/informacion_general/schemas.py @@ -0,0 +1,21 @@ +"""Información General Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class InformacionGeneralResponse(BaseModel): + """Información general de fracciones""" + + OBSERVACIONES: Optional[str] = Field(None, max_length=1000) + NOTAOBSERVACIONES: Optional[str] = Field(None, max_length=1000) + FRACCION: Optional[str] = Field(None, max_length=10) + TIPOOPERACION: Optional[int] = None + ORDEN: Optional[int] = None + LEYENDA: Optional[str] = None + NOTA: Optional[str] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/informacion_general/service.py b/backend/api/v1/modules/sitar/informacion_general/service.py new file mode 100644 index 00000000..4b47f8db --- /dev/null +++ b/backend/api/v1/modules/sitar/informacion_general/service.py @@ -0,0 +1,36 @@ +"""InformacionGeneral Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import InformacionGeneralResponse + + +class InformacionGeneralService(SitarAPIBaseService): + _instance: Optional["InformacionGeneralService"] = None + + @classmethod + def get_instance(cls) -> "InformacionGeneralService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[InformacionGeneralResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request( + "GET", "/api/v1/informacion-general/", params=params + ) + return [InformacionGeneralResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> InformacionGeneralResponse: + data = await self._make_request("GET", f"/api/v1/informacion-general/{sysid}") + return InformacionGeneralResponse(**data) diff --git a/backend/api/v1/modules/sitar/noms/__init__.py b/backend/api/v1/modules/sitar/noms/__init__.py new file mode 100644 index 00000000..4262ff90 --- /dev/null +++ b/backend/api/v1/modules/sitar/noms/__init__.py @@ -0,0 +1,7 @@ +"""Noms Module""" + +from .schemas import NomsResponse +from .service import NomsService +from .router import router + +__all__ = ["NomsResponse", "NomsService", "router"] diff --git a/backend/api/v1/modules/sitar/noms/router.py b/backend/api/v1/modules/sitar/noms/router.py new file mode 100644 index 00000000..13ef23c7 --- /dev/null +++ b/backend/api/v1/modules/sitar/noms/router.py @@ -0,0 +1,35 @@ +"""Noms Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import NomsService +from .schemas import NomsResponse + +router = APIRouter() + + +@router.get("/", response_model=List[NomsResponse]) +async def search( + fraccion: Optional[str] = Query(None), + pais: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = NomsService.get_instance() + return await service.search( + fraccion=fraccion, pais=pais, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=NomsResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await NomsService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/noms/schemas.py b/backend/api/v1/modules/sitar/noms/schemas.py new file mode 100644 index 00000000..e02de133 --- /dev/null +++ b/backend/api/v1/modules/sitar/noms/schemas.py @@ -0,0 +1,27 @@ +"""NOMs Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class NomsResponse(BaseModel): + """Normas Oficiales Mexicanas""" + + FRACCION: Optional[str] = Field("", max_length=10) + IMPORTACION: Optional[str] = Field("", max_length=1) + EXPORTACION: Optional[str] = Field("", max_length=1) + PERMISO: Optional[str] = Field("", max_length=19) + ACUERDO: Optional[str] = Field("", max_length=100) + CONDICION: Optional[str] = Field("") + FUNDAMENTO: Optional[str] = Field("") + DOF: Optional[str] = Field("", max_length=8) + FORMATONOM: Optional[str] = Field("", max_length=100) + INSTRUCCIONES: Optional[str] = Field("", max_length=100) + CRITERIO: Optional[str] = Field("", max_length=254) + COMPLEMENTO: Optional[str] = Field("", max_length=999) + NICO: Optional[str] = Field("", max_length=2) + PAIS: Optional[str] = Field("", max_length=3) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/noms/service.py b/backend/api/v1/modules/sitar/noms/service.py new file mode 100644 index 00000000..bc2231af --- /dev/null +++ b/backend/api/v1/modules/sitar/noms/service.py @@ -0,0 +1,37 @@ +"""Noms Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import NomsResponse + + +class NomsService(SitarAPIBaseService): + _instance: Optional["NomsService"] = None + + @classmethod + def get_instance(cls) -> "NomsService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + pais: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[NomsResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if pais: + params["pais"] = pais + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/noms/", params=params) + return [NomsResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> NomsResponse: + data = await self._make_request("GET", f"/api/v1/noms/{sysid}") + return NomsResponse(**data) diff --git a/backend/api/v1/modules/sitar/precios_estimados/__init__.py b/backend/api/v1/modules/sitar/precios_estimados/__init__.py new file mode 100644 index 00000000..8fb56810 --- /dev/null +++ b/backend/api/v1/modules/sitar/precios_estimados/__init__.py @@ -0,0 +1,7 @@ +"""Precios Estimados Module""" + +from .schemas import PreciosEstimados2Response +from .service import PreciosEstimadosService +from .router import router + +__all__ = ["PreciosEstimados2Response", "PreciosEstimadosService", "router"] diff --git a/backend/api/v1/modules/sitar/precios_estimados/router.py b/backend/api/v1/modules/sitar/precios_estimados/router.py new file mode 100644 index 00000000..a063fc7e --- /dev/null +++ b/backend/api/v1/modules/sitar/precios_estimados/router.py @@ -0,0 +1,34 @@ +"""Precios Estimados Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import PreciosEstimadosService +from .schemas import PreciosEstimados2Response + +router = APIRouter() + + +@router.get("/", response_model=List[PreciosEstimados2Response]) +async def search_precios( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = PreciosEstimadosService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=PreciosEstimados2Response) +async def get_precio_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await PreciosEstimadosService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/precios_estimados/schemas.py b/backend/api/v1/modules/sitar/precios_estimados/schemas.py new file mode 100644 index 00000000..62753b6b --- /dev/null +++ b/backend/api/v1/modules/sitar/precios_estimados/schemas.py @@ -0,0 +1,18 @@ +"""Precios Estimados Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class PreciosEstimados2Response(BaseModel): + """Precios Estimados""" + + FRACCION: Optional[str] = Field(None, max_length=10) + UMC: Optional[str] = Field(None, max_length=2) + PRECIO: Optional[str] = None + DOF: Optional[str] = Field(None, max_length=8) + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/precios_estimados/service.py b/backend/api/v1/modules/sitar/precios_estimados/service.py new file mode 100644 index 00000000..312d58a8 --- /dev/null +++ b/backend/api/v1/modules/sitar/precios_estimados/service.py @@ -0,0 +1,36 @@ +"""Precios Estimados Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import PreciosEstimados2Response + + +class PreciosEstimadosService(SitarAPIBaseService): + _instance: Optional["PreciosEstimadosService"] = None + + @classmethod + def get_instance(cls) -> "PreciosEstimadosService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[PreciosEstimados2Response]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request( + "GET", "/api/v1/precios-estimados2/", params=params + ) + return [PreciosEstimados2Response(**item) for item in data] + + async def get_by_id(self, sysid: int) -> PreciosEstimados2Response: + data = await self._make_request("GET", f"/api/v1/precios-estimados2/{sysid}") + return PreciosEstimados2Response(**data) diff --git a/backend/api/v1/modules/sitar/prosec/__init__.py b/backend/api/v1/modules/sitar/prosec/__init__.py new file mode 100644 index 00000000..6cf9bfc2 --- /dev/null +++ b/backend/api/v1/modules/sitar/prosec/__init__.py @@ -0,0 +1,7 @@ +"""PROSEC Module""" + +from .schemas import ProsecResponse +from .service import ProsecService +from .router import router + +__all__ = ["ProsecResponse", "ProsecService", "router"] diff --git a/backend/api/v1/modules/sitar/prosec/router.py b/backend/api/v1/modules/sitar/prosec/router.py new file mode 100644 index 00000000..22a15267 --- /dev/null +++ b/backend/api/v1/modules/sitar/prosec/router.py @@ -0,0 +1,42 @@ +"""PROSEC Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import ProsecService +from .schemas import ProsecResponse + +router = APIRouter() + + +@router.get("/", response_model=List[ProsecResponse]) +async def search_prosec( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + sector: Optional[str] = Query(None), + articulo: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = ProsecService.get_instance() + return await service.search( + fraccion=fraccion, + nico=nico, + sector=sector, + articulo=articulo, + skip=skip, + limit=limit, + ) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error: {str(e)}") + + +@router.get("/{sysid}", response_model=ProsecResponse) +async def get_prosec_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + service = ProsecService.get_instance() + return await service.get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=f"Not found: {str(e)}") diff --git a/backend/api/v1/modules/sitar/prosec/schemas.py b/backend/api/v1/modules/sitar/prosec/schemas.py new file mode 100644 index 00000000..13d7b96c --- /dev/null +++ b/backend/api/v1/modules/sitar/prosec/schemas.py @@ -0,0 +1,21 @@ +"""PROSEC Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class ProsecResponse(BaseModel): + """PROSEC (Programa de Promoción Sectorial)""" + + FRACCION: Optional[str] = Field(None, max_length=10) + PRODUCTO: Optional[str] = Field(None, max_length=999) + TASA: Optional[str] = Field(None, max_length=19) + SECTOR: Optional[str] = Field(None, max_length=2) + ANEXO: Optional[str] = Field(None, max_length=19) + DOF: Optional[str] = Field(None, max_length=8) + NOTAS: Optional[str] = Field(None, max_length=5000) + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/prosec/service.py b/backend/api/v1/modules/sitar/prosec/service.py new file mode 100644 index 00000000..f4a9c7bf --- /dev/null +++ b/backend/api/v1/modules/sitar/prosec/service.py @@ -0,0 +1,43 @@ +"""PROSEC Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import ProsecResponse + + +class ProsecService(SitarAPIBaseService): + """Service for PROSEC operations""" + + _instance: Optional["ProsecService"] = None + + @classmethod + def get_instance(cls) -> "ProsecService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + sector: Optional[str] = None, + articulo: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[ProsecResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + if sector: + params["sector"] = sector + if articulo: + params["articulo"] = articulo + + data = await self._make_request("GET", "/api/v1/prosec/", params=params) + return [ProsecResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> ProsecResponse: + data = await self._make_request("GET", f"/api/v1/prosec/{sysid}") + return ProsecResponse(**data) diff --git a/backend/api/v1/modules/sitar/rcg2/__init__.py b/backend/api/v1/modules/sitar/rcg2/__init__.py new file mode 100644 index 00000000..6cc53a00 --- /dev/null +++ b/backend/api/v1/modules/sitar/rcg2/__init__.py @@ -0,0 +1,7 @@ +"""Rcg2 Module""" + +from .schemas import Rcg2Response +from .service import Rcg2Service +from .router import router + +__all__ = ["Rcg2Response", "Rcg2Service", "router"] diff --git a/backend/api/v1/modules/sitar/rcg2/router.py b/backend/api/v1/modules/sitar/rcg2/router.py new file mode 100644 index 00000000..d07dac54 --- /dev/null +++ b/backend/api/v1/modules/sitar/rcg2/router.py @@ -0,0 +1,34 @@ +"""Rcg2 Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import Rcg2Service +from .schemas import Rcg2Response + +router = APIRouter() + + +@router.get("/", response_model=List[Rcg2Response]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = Rcg2Service.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=Rcg2Response) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await Rcg2Service.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/rcg2/schemas.py b/backend/api/v1/modules/sitar/rcg2/schemas.py new file mode 100644 index 00000000..977cb8af --- /dev/null +++ b/backend/api/v1/modules/sitar/rcg2/schemas.py @@ -0,0 +1,26 @@ +"""RCG2 Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class Rcg2Response(BaseModel): + """Reglas de Carácter General""" + + FRACCION: Optional[str] = Field(None, max_length=10) + ANEXO: Optional[str] = Field(None, max_length=19) + SECTOR: Optional[str] = None + REGIMEN: Optional[str] = None + CONDICION: Optional[str] = None + ADUANAS: Optional[str] = Field(None, max_length=1000) + DOF: Optional[str] = Field(None, max_length=8) + ARCHIVOCRITERIO: Optional[str] = Field(None, max_length=1000) + TIPO: Optional[str] = Field(None, max_length=1) + IMPO: Optional[int] = None + EXPO: Optional[int] = None + WEB_DOCUMENTO_ID: Optional[int] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/rcg2/service.py b/backend/api/v1/modules/sitar/rcg2/service.py new file mode 100644 index 00000000..4e04ac29 --- /dev/null +++ b/backend/api/v1/modules/sitar/rcg2/service.py @@ -0,0 +1,34 @@ +"""Rcg2 Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import Rcg2Response + + +class Rcg2Service(SitarAPIBaseService): + _instance: Optional["Rcg2Service"] = None + + @classmethod + def get_instance(cls) -> "Rcg2Service": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[Rcg2Response]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/rcg2/", params=params) + return [Rcg2Response(**item) for item in data] + + async def get_by_id(self, sysid: int) -> Rcg2Response: + data = await self._make_request("GET", f"/api/v1/rcg2/{sysid}") + return Rcg2Response(**data) diff --git a/backend/api/v1/modules/sitar/regulaciones/__init__.py b/backend/api/v1/modules/sitar/regulaciones/__init__.py new file mode 100644 index 00000000..cff4beb3 --- /dev/null +++ b/backend/api/v1/modules/sitar/regulaciones/__init__.py @@ -0,0 +1,7 @@ +"""Regulaciones Module""" + +from .schemas import RegulacionesResponse +from .service import RegulacionesService +from .router import router + +__all__ = ["RegulacionesResponse", "RegulacionesService", "router"] diff --git a/backend/api/v1/modules/sitar/regulaciones/router.py b/backend/api/v1/modules/sitar/regulaciones/router.py new file mode 100644 index 00000000..ea1359b7 --- /dev/null +++ b/backend/api/v1/modules/sitar/regulaciones/router.py @@ -0,0 +1,37 @@ +"""Regulaciones Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import RegulacionesService +from .schemas import RegulacionesResponse + +router = APIRouter() + + +@router.get("/", response_model=List[RegulacionesResponse]) +async def search_regulaciones( + fraccion: Optional[str] = Query(None, description="Fracción arancelaria"), + nico: Optional[str] = Query(None, description="NICO"), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = RegulacionesService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error: {str(e)}") + + +@router.get("/{sysid}", response_model=RegulacionesResponse) +async def get_regulacion_by_id( + sysid: int, current_user: dict = Depends(get_current_user) +): + try: + service = RegulacionesService.get_instance() + return await service.get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=f"Not found: {str(e)}") diff --git a/backend/api/v1/modules/sitar/regulaciones/schemas.py b/backend/api/v1/modules/sitar/regulaciones/schemas.py new file mode 100644 index 00000000..ddb6f4b3 --- /dev/null +++ b/backend/api/v1/modules/sitar/regulaciones/schemas.py @@ -0,0 +1,19 @@ +"""Regulaciones Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class RegulacionesResponse(BaseModel): + """Regulaciones y restricciones""" + + FRACCION: Optional[str] = Field(None, max_length=10) + PERMISO: Optional[str] = Field(None, max_length=2) + ACUERDO: Optional[str] = Field(None, max_length=15) + CLAVE: Optional[str] = Field(None, max_length=10) + DESCRIPCION: Optional[str] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/regulaciones/service.py b/backend/api/v1/modules/sitar/regulaciones/service.py new file mode 100644 index 00000000..ca534e0d --- /dev/null +++ b/backend/api/v1/modules/sitar/regulaciones/service.py @@ -0,0 +1,37 @@ +"""Regulaciones Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import RegulacionesResponse + + +class RegulacionesService(SitarAPIBaseService): + """Service for Regulaciones operations""" + + _instance: Optional["RegulacionesService"] = None + + @classmethod + def get_instance(cls) -> "RegulacionesService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[RegulacionesResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + + data = await self._make_request("GET", "/api/v1/regulaciones/", params=params) + return [RegulacionesResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> RegulacionesResponse: + data = await self._make_request("GET", f"/api/v1/regulaciones/{sysid}") + return RegulacionesResponse(**data) diff --git a/backend/api/v1/modules/sitar/reit/__init__.py b/backend/api/v1/modules/sitar/reit/__init__.py new file mode 100644 index 00000000..e462b3c0 --- /dev/null +++ b/backend/api/v1/modules/sitar/reit/__init__.py @@ -0,0 +1,7 @@ +"""Reit Module""" + +from .schemas import ReitResponse +from .service import ReitService +from .router import router + +__all__ = ["ReitResponse", "ReitService", "router"] diff --git a/backend/api/v1/modules/sitar/reit/router.py b/backend/api/v1/modules/sitar/reit/router.py new file mode 100644 index 00000000..e5204115 --- /dev/null +++ b/backend/api/v1/modules/sitar/reit/router.py @@ -0,0 +1,34 @@ +"""Reit Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import ReitService +from .schemas import ReitResponse + +router = APIRouter() + + +@router.get("/", response_model=List[ReitResponse]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = ReitService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=ReitResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await ReitService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/reit/schemas.py b/backend/api/v1/modules/sitar/reit/schemas.py new file mode 100644 index 00000000..9d079198 --- /dev/null +++ b/backend/api/v1/modules/sitar/reit/schemas.py @@ -0,0 +1,25 @@ +"""REIT Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class ReitResponse(BaseModel): + """Registro de Empresas de Industria Terminal""" + + FRACCION: Optional[str] = Field(None, max_length=10) + ARTICULO: Optional[str] = Field(None, max_length=50) + FUNDAMENTO: Optional[str] = Field(None, max_length=1500) + ACUERDO: Optional[str] = Field(None, max_length=500) + PERMISO: Optional[str] = Field(None, max_length=2) + DOF: Optional[str] = Field(None, max_length=8) + DOCUMENTO: Optional[str] = Field(None, max_length=200) + TEMPORALIDAD: Optional[int] = None + TEMPORALIDADSERVICIO: Optional[int] = None + TEMPORALIDADCERTIFICADA: Optional[int] = None + WEB_DOCUMENTO_ID: Optional[int] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/reit/service.py b/backend/api/v1/modules/sitar/reit/service.py new file mode 100644 index 00000000..86d871c9 --- /dev/null +++ b/backend/api/v1/modules/sitar/reit/service.py @@ -0,0 +1,34 @@ +"""Reit Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import ReitResponse + + +class ReitService(SitarAPIBaseService): + _instance: Optional["ReitService"] = None + + @classmethod + def get_instance(cls) -> "ReitService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[ReitResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request("GET", "/api/v1/reit/", params=params) + return [ReitResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> ReitResponse: + data = await self._make_request("GET", f"/api/v1/reit/{sysid}") + return ReitResponse(**data) diff --git a/backend/api/v1/modules/sitar/requisito_previo/__init__.py b/backend/api/v1/modules/sitar/requisito_previo/__init__.py new file mode 100644 index 00000000..65b96cf6 --- /dev/null +++ b/backend/api/v1/modules/sitar/requisito_previo/__init__.py @@ -0,0 +1,7 @@ +"""RequisitoPrevio Module""" + +from .schemas import RequisitoPrevioResponse +from .service import RequisitoPrevioService +from .router import router + +__all__ = ["RequisitoPrevioResponse", "RequisitoPrevioService", "router"] diff --git a/backend/api/v1/modules/sitar/requisito_previo/router.py b/backend/api/v1/modules/sitar/requisito_previo/router.py new file mode 100644 index 00000000..aa2354f5 --- /dev/null +++ b/backend/api/v1/modules/sitar/requisito_previo/router.py @@ -0,0 +1,34 @@ +"""RequisitoPrevio Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import RequisitoPrevioService +from .schemas import RequisitoPrevioResponse + +router = APIRouter() + + +@router.get("/", response_model=List[RequisitoPrevioResponse]) +async def search( + fraccion: Optional[str] = Query(None), + nico: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = RequisitoPrevioService.get_instance() + return await service.search( + fraccion=fraccion, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=RequisitoPrevioResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await RequisitoPrevioService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/requisito_previo/schemas.py b/backend/api/v1/modules/sitar/requisito_previo/schemas.py new file mode 100644 index 00000000..bc711e76 --- /dev/null +++ b/backend/api/v1/modules/sitar/requisito_previo/schemas.py @@ -0,0 +1,28 @@ +"""Requisito Previo Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class RequisitoPrevioResponse(BaseModel): + """Requisitos previos""" + + FRACCION: Optional[str] = Field(None, max_length=8) + DESCRIPCION: Optional[str] = Field(None, max_length=1999) + OBSERVACION: Optional[str] = Field(None, max_length=1999) + DOF: Optional[str] = Field(None, max_length=8) + VIGENCIA: Optional[str] = Field(None, max_length=8) + NUMEROACUERDO: Optional[int] = None + NUMEROCRITERIO: Optional[int] = None + NUMEROFORMATO: Optional[int] = None + NUMEROINSTRUCCIONES: Optional[int] = None + HISTORICO: Optional[str] = Field(None, max_length=2000) + NOTA: Optional[str] = Field(None, max_length=5000) + PERMISO: Optional[str] = Field(None, max_length=2) + IMPO: Optional[int] = None + EXPO: Optional[int] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/requisito_previo/service.py b/backend/api/v1/modules/sitar/requisito_previo/service.py new file mode 100644 index 00000000..84c74ac5 --- /dev/null +++ b/backend/api/v1/modules/sitar/requisito_previo/service.py @@ -0,0 +1,36 @@ +"""RequisitoPrevio Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import RequisitoPrevioResponse + + +class RequisitoPrevioService(SitarAPIBaseService): + _instance: Optional["RequisitoPrevioService"] = None + + @classmethod + def get_instance(cls) -> "RequisitoPrevioService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[RequisitoPrevioResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if nico: + params["nico"] = nico + data = await self._make_request( + "GET", "/api/v1/requisito-previo/", params=params + ) + return [RequisitoPrevioResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> RequisitoPrevioResponse: + data = await self._make_request("GET", f"/api/v1/requisito-previo/{sysid}") + return RequisitoPrevioResponse(**data) diff --git a/backend/api/v1/modules/sitar/router.py b/backend/api/v1/modules/sitar/router.py new file mode 100644 index 00000000..4370839c --- /dev/null +++ b/backend/api/v1/modules/sitar/router.py @@ -0,0 +1,90 @@ +""" +SITAR API Main Router + +Router principal que incluye todos los sub-routers de SITAR. +Registra este router en tu aplicación FastAPI principal. + +Usage: + from api.v1.modules.sitar.main_router import router as sitar_router + + app.include_router( + sitar_router, + prefix="/api/v1/sitar", + tags=["sitar"] + ) +""" + +from fastapi import APIRouter + +# Import all sub-routers +from .tlcs.router import router as tlcs_router +from .fracciones.router import router as fracciones_router +from .fracciones_usa.router import router as fracciones_usa_router +from .regulaciones.router import router as regulaciones_router +from .prosec.router import router as prosec_router +from .precios_estimados.router import router as precios_estimados_router +from .fundamentos_tlc.router import router as fundamentos_tlc_router +from .aladi2.router import router as aladi2_router +from .cuotas2.router import router as cuotas2_router +from .cupos.router import router as cupos_router +from .fracciones_anteriores.router import router as fracciones_anteriores_router +from .informacion_general.router import router as informacion_general_router +from .ieps.router import router as ieps_router +from .noms.router import router as noms_router +from .rcg2.router import router as rcg2_router +from .reit.router import router as reit_router +from .requisito_previo.router import router as requisito_previo_router +from .vehiculos_marcas.router import router as vehiculos_marcas_router +from .vehiculos_modelos.router import router as vehiculos_modelos_router + +# Create main router +router = APIRouter() + +# Include all sub-routers with their prefixes +router.include_router(tlcs_router, prefix="/tlcs", tags=["sitar-tlcs"]) +router.include_router( + fracciones_router, prefix="/fracciones", tags=["sitar-fracciones"] +) +router.include_router( + fracciones_usa_router, prefix="/fracciones-usa", tags=["sitar-fracciones-usa"] +) +router.include_router( + regulaciones_router, prefix="/regulaciones", tags=["sitar-regulaciones"] +) +router.include_router(prosec_router, prefix="/prosec", tags=["sitar-prosec"]) +router.include_router( + precios_estimados_router, + prefix="/precios-estimados", + tags=["sitar-precios-estimados"], +) +router.include_router( + fundamentos_tlc_router, prefix="/fundamentos-tlc", tags=["sitar-fundamentos-tlc"] +) +router.include_router(aladi2_router, prefix="/aladi2", tags=["sitar-aladi2"]) +router.include_router(cuotas2_router, prefix="/cuotas2", tags=["sitar-cuotas2"]) +router.include_router(cupos_router, prefix="/cupos", tags=["sitar-cupos"]) +router.include_router( + fracciones_anteriores_router, + prefix="/fracciones-anteriores", + tags=["sitar-fracciones-anteriores"], +) +router.include_router( + informacion_general_router, + prefix="/informacion-general", + tags=["sitar-informacion-general"], +) +router.include_router(ieps_router, prefix="/ieps", tags=["sitar-ieps"]) +router.include_router(noms_router, prefix="/noms", tags=["sitar-noms"]) +router.include_router(rcg2_router, prefix="/rcg2", tags=["sitar-rcg2"]) +router.include_router(reit_router, prefix="/reit", tags=["sitar-reit"]) +router.include_router( + requisito_previo_router, prefix="/requisito-previo", tags=["sitar-requisito-previo"] +) +router.include_router( + vehiculos_marcas_router, prefix="/vehiculos-marcas", tags=["sitar-vehiculos-marcas"] +) +router.include_router( + vehiculos_modelos_router, + prefix="/vehiculos-modelos", + tags=["sitar-vehiculos-modelos"], +) diff --git a/backend/api/v1/modules/sitar/tlcs/__init__.py b/backend/api/v1/modules/sitar/tlcs/__init__.py new file mode 100644 index 00000000..4ebb568d --- /dev/null +++ b/backend/api/v1/modules/sitar/tlcs/__init__.py @@ -0,0 +1,7 @@ +"""TLCS Module""" + +from .schemas import TLCSResponse +from .service import TLCSService +from .router import router + +__all__ = ["TLCSResponse", "TLCSService", "router"] diff --git a/backend/api/v1/modules/sitar/tlcs/router.py b/backend/api/v1/modules/sitar/tlcs/router.py new file mode 100644 index 00000000..0da8b4d3 --- /dev/null +++ b/backend/api/v1/modules/sitar/tlcs/router.py @@ -0,0 +1,44 @@ +"""TLCS Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import TLCSService +from .schemas import TLCSResponse + +router = APIRouter() + + +@router.get("/", response_model=List[TLCSResponse]) +async def search_tlcs( + fraccion: Optional[str] = Query(None, description="Fracción arancelaria"), + pais: Optional[str] = Query(None, description="Código de país"), + nico: Optional[str] = Query(None, description="NICO"), + skip: int = Query(0, ge=0, description="Registros a saltar"), + limit: int = Query(100, ge=1, le=1000, description="Máximo de registros"), + current_user: dict = Depends(get_current_user), +): + """Search TLCS records""" + try: + service = TLCSService.get_instance() + return await service.search( + fraccion=fraccion, pais=pais, nico=nico, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException( + status_code=500, detail=f"Error fetching TLCS data: {str(e)}" + ) + + +@router.get("/{sysid}/{fraccion}", response_model=TLCSResponse) +async def get_tlcs_by_id( + sysid: int, + fraccion: str, + current_user: dict = Depends(get_current_user), +): + """Get single TLCS record by SYSID and FRACCION""" + try: + service = TLCSService.get_instance() + return await service.get_by_id(sysid, fraccion) + except Exception as e: + raise HTTPException(status_code=404, detail=f"TLCS record not found: {str(e)}") diff --git a/backend/api/v1/modules/sitar/tlcs/schemas.py b/backend/api/v1/modules/sitar/tlcs/schemas.py new file mode 100644 index 00000000..944731ea --- /dev/null +++ b/backend/api/v1/modules/sitar/tlcs/schemas.py @@ -0,0 +1,23 @@ +"""TLCS Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class TLCSResponse(BaseModel): + """TLCS (Tratados de Libre Comercio) response model""" + + FRACCION: Optional[str] = Field(None, max_length=8) + PAIS: Optional[str] = Field(None, max_length=3) + TASATXT: Optional[str] = Field(None, max_length=19) + TASANUM: Optional[str] = None + TASACALCULADA: Optional[str] = Field(None, max_length=19) + TLC: Optional[str] = Field(None, max_length=6) + NOTA: Optional[str] = None + DOF: Optional[str] = Field(None, max_length=8) + OBSERVACION: Optional[str] = None + NICO: Optional[str] = Field("", max_length=2) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/tlcs/service.py b/backend/api/v1/modules/sitar/tlcs/service.py new file mode 100644 index 00000000..f9cef291 --- /dev/null +++ b/backend/api/v1/modules/sitar/tlcs/service.py @@ -0,0 +1,55 @@ +"""TLCS Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import TLCSResponse + + +class TLCSService(SitarAPIBaseService): + """Service for TLCS operations""" + + _instance: Optional["TLCSService"] = None + + @classmethod + def get_instance(cls) -> "TLCSService": + """Get singleton instance""" + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + pais: Optional[str] = None, + nico: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[TLCSResponse]: + """ + Search TLCS records + + Args: + fraccion: Tariff fraction code + pais: Country code + nico: NICO code + skip: Records to skip + limit: Maximum records to return + + Returns: + List of TLCS records + """ + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion[:8] + if pais: + params["pais"] = pais + if nico: + params["nico"] = nico + + data = await self._make_request("GET", "/api/v1/tlcs/", params=params) + return [TLCSResponse(**item) for item in data] + + async def get_by_id(self, sysid: int, fraccion: str) -> TLCSResponse: + """Get single TLCS record by SYSID and FRACCION""" + data = await self._make_request("GET", f"/api/v1/tlcs/{sysid}/{fraccion}") + return TLCSResponse(**data) diff --git a/backend/api/v1/modules/sitar/vehiculos_marcas/__init__.py b/backend/api/v1/modules/sitar/vehiculos_marcas/__init__.py new file mode 100644 index 00000000..2ef02a73 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_marcas/__init__.py @@ -0,0 +1,7 @@ +"""VehiculosMarcas Module""" + +from .schemas import VehiculosMarcasResponse +from .service import VehiculosMarcasService +from .router import router + +__all__ = ["VehiculosMarcasResponse", "VehiculosMarcasService", "router"] diff --git a/backend/api/v1/modules/sitar/vehiculos_marcas/router.py b/backend/api/v1/modules/sitar/vehiculos_marcas/router.py new file mode 100644 index 00000000..3c792c13 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_marcas/router.py @@ -0,0 +1,34 @@ +"""VehiculosMarcas Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import VehiculosMarcasService +from .schemas import VehiculosMarcasResponse + +router = APIRouter() + + +@router.get("/", response_model=List[VehiculosMarcasResponse]) +async def search( + fraccion: Optional[str] = Query(None), + marca: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = VehiculosMarcasService.get_instance() + return await service.search( + fraccion=fraccion, marca=marca, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=VehiculosMarcasResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await VehiculosMarcasService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/vehiculos_marcas/schemas.py b/backend/api/v1/modules/sitar/vehiculos_marcas/schemas.py new file mode 100644 index 00000000..979a8fba --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_marcas/schemas.py @@ -0,0 +1,15 @@ +"""Vehiculos Marcas Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class VehiculosMarcasResponse(BaseModel): + """Marcas de vehículos""" + + FRACCION: Optional[str] = Field(None, max_length=8) + MARCA: Optional[str] = Field(None, max_length=60) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/vehiculos_marcas/service.py b/backend/api/v1/modules/sitar/vehiculos_marcas/service.py new file mode 100644 index 00000000..46681203 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_marcas/service.py @@ -0,0 +1,36 @@ +"""VehiculosMarcas Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import VehiculosMarcasResponse + + +class VehiculosMarcasService(SitarAPIBaseService): + _instance: Optional["VehiculosMarcasService"] = None + + @classmethod + def get_instance(cls) -> "VehiculosMarcasService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + marca: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[VehiculosMarcasResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if marca: + params["marca"] = marca + data = await self._make_request( + "GET", "/api/v1/vehiculos-marcas/", params=params + ) + return [VehiculosMarcasResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> VehiculosMarcasResponse: + data = await self._make_request("GET", f"/api/v1/vehiculos-marcas/{sysid}") + return VehiculosMarcasResponse(**data) diff --git a/backend/api/v1/modules/sitar/vehiculos_modelos/__init__.py b/backend/api/v1/modules/sitar/vehiculos_modelos/__init__.py new file mode 100644 index 00000000..e2f516f6 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_modelos/__init__.py @@ -0,0 +1,7 @@ +"""VehiculosModelos Module""" + +from .schemas import VehiculosModelosResponse +from .service import VehiculosModelosService +from .router import router + +__all__ = ["VehiculosModelosResponse", "VehiculosModelosService", "router"] diff --git a/backend/api/v1/modules/sitar/vehiculos_modelos/router.py b/backend/api/v1/modules/sitar/vehiculos_modelos/router.py new file mode 100644 index 00000000..58110333 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_modelos/router.py @@ -0,0 +1,35 @@ +"""VehiculosModelos Router""" + +from typing import Optional, List +from fastapi import APIRouter, HTTPException, Query, Depends +from core.security import get_current_user +from .service import VehiculosModelosService +from .schemas import VehiculosModelosResponse + +router = APIRouter() + + +@router.get("/", response_model=List[VehiculosModelosResponse]) +async def search( + fraccion: Optional[str] = Query(None), + marca: Optional[str] = Query(None), + modelo: Optional[str] = Query(None), + skip: int = Query(0, ge=0), + limit: int = Query(100, ge=1, le=1000), + current_user: dict = Depends(get_current_user), +): + try: + service = VehiculosModelosService.get_instance() + return await service.search( + fraccion=fraccion, marca=marca, modelo=modelo, skip=skip, limit=limit + ) + except Exception as e: + raise HTTPException(status_code=500, detail=str(e)) + + +@router.get("/{sysid}", response_model=VehiculosModelosResponse) +async def get_by_id(sysid: int, current_user: dict = Depends(get_current_user)): + try: + return await VehiculosModelosService.get_instance().get_by_id(sysid) + except Exception as e: + raise HTTPException(status_code=404, detail=str(e)) diff --git a/backend/api/v1/modules/sitar/vehiculos_modelos/schemas.py b/backend/api/v1/modules/sitar/vehiculos_modelos/schemas.py new file mode 100644 index 00000000..0153c215 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_modelos/schemas.py @@ -0,0 +1,38 @@ +"""Vehiculos Modelos Schemas""" + +from typing import Optional +from pydantic import BaseModel, Field + + +class VehiculosModelosResponse(BaseModel): + """Modelos de vehículos""" + + FRACCION: Optional[str] = Field(None, max_length=8) + MARCA: Optional[str] = Field(None, max_length=60) + MODELO: Optional[str] = Field(None, max_length=80) + TIPO: Optional[str] = Field(None, max_length=1) + CLAVEUM: Optional[str] = Field(None, max_length=2) + A20: Optional[str] = Field(None, max_length=19) + A19: Optional[str] = Field(None, max_length=19) + A18: Optional[str] = Field(None, max_length=19) + A17: Optional[str] = Field(None, max_length=19) + A16: Optional[str] = Field(None, max_length=19) + A15: Optional[str] = Field(None, max_length=19) + A14: Optional[str] = Field(None, max_length=19) + A13: Optional[str] = Field(None, max_length=19) + A12: Optional[str] = Field(None, max_length=19) + A11: Optional[str] = Field(None, max_length=19) + A10: Optional[str] = Field(None, max_length=19) + A9: Optional[str] = Field(None, max_length=19) + A8: Optional[str] = Field(None, max_length=19) + A7: Optional[str] = Field(None, max_length=19) + A6: Optional[str] = Field(None, max_length=19) + A5: Optional[str] = Field(None, max_length=19) + A4: Optional[str] = Field(None, max_length=19) + A3: Optional[str] = Field(None, max_length=19) + A2: Optional[str] = Field(None, max_length=19) + A1: Optional[str] = Field(None, max_length=19) + SYSID: int + + class Config: + from_attributes = True diff --git a/backend/api/v1/modules/sitar/vehiculos_modelos/service.py b/backend/api/v1/modules/sitar/vehiculos_modelos/service.py new file mode 100644 index 00000000..8dd18399 --- /dev/null +++ b/backend/api/v1/modules/sitar/vehiculos_modelos/service.py @@ -0,0 +1,39 @@ +"""VehiculosModelos Service""" + +from typing import Optional, List +from ..common import SitarAPIBaseService +from .schemas import VehiculosModelosResponse + + +class VehiculosModelosService(SitarAPIBaseService): + _instance: Optional["VehiculosModelosService"] = None + + @classmethod + def get_instance(cls) -> "VehiculosModelosService": + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def search( + self, + fraccion: Optional[str] = None, + marca: Optional[str] = None, + modelo: Optional[str] = None, + skip: int = 0, + limit: int = 100, + ) -> List[VehiculosModelosResponse]: + params = {"skip": skip, "limit": min(limit, 1000)} + if fraccion: + params["fraccion"] = fraccion + if marca: + params["marca"] = marca + if modelo: + params["modelo"] = modelo + data = await self._make_request( + "GET", "/api/v1/vehiculos-modelos/", params=params + ) + return [VehiculosModelosResponse(**item) for item in data] + + async def get_by_id(self, sysid: int) -> VehiculosModelosResponse: + data = await self._make_request("GET", f"/api/v1/vehiculos-modelos/{sysid}") + return VehiculosModelosResponse(**data) diff --git a/backend/api/v1/router.py b/backend/api/v1/router.py index d9b4d517..b95e612d 100644 --- a/backend/api/v1/router.py +++ b/backend/api/v1/router.py @@ -1,6 +1,6 @@ """ Router principal de API v1 -Agrega todos los módulos de la aplicación +Agrega todos los módulos de la aplicación (Reload) """ from fastapi import APIRouter @@ -10,7 +10,7 @@ from .modules.core.router import router as core_router from .modules.a76.router import router as a76_router from .modules.a24.router import router as a24_router from .modules.public.router import router as public_router -from .modules.a24.router import router as a24_router +from .modules.sitar.router import router as sitar_router # Router principal @@ -21,8 +21,7 @@ router.include_router(core_router) router.include_router(a76_router) router.include_router(a24_router) router.include_router(public_router) -# nuevas rutas de partes de anexo 24 -router.include_router(a24_router) +router.include_router(sitar_router) # Health check diff --git a/backend/core/celery_app.py b/backend/core/celery_app.py index 235149f8..f99612ca 100644 --- a/backend/core/celery_app.py +++ b/backend/core/celery_app.py @@ -13,7 +13,9 @@ celery_app = Celery( "api.v1.modules.a76.reports.importacion.consolidados.task", "api.v1.modules.a76.reports.importacion.packing_list.task", "api.v1.modules.a76.reports.exportacion.aviso_consolidado.task", - "api.v1.modules.a76.reports.movements.invoices.tasks" + "api.v1.modules.a76.reports.movements.invoices.tasks", + "api.v1.modules.a76.reports.exportacion.descargo.task", + "api.v1.modules.a76.imports.tasks" ] # Ruta al módulo donde están las tareas ) diff --git a/backend/core/config.py b/backend/core/config.py index b44417d4..13459073 100644 --- a/backend/core/config.py +++ b/backend/core/config.py @@ -2,6 +2,7 @@ Configuración centralizada de la aplicación usando Pydantic Settings """ +import os from typing import List from pydantic_settings import BaseSettings, SettingsConfigDict @@ -12,7 +13,9 @@ class Settings(BaseSettings): # Application APP_NAME: str = "Anexo76" - APP_VERSION: str = "1.0.0" + # La versión se obtiene de la variable de entorno APP_VERSION que se pasa desde Docker + # Si no existe, usa un valor por defecto de desarrollo + APP_VERSION: str = os.getenv("APP_VERSION", "dev-local") DEBUG: bool = True ENVIRONMENT: str = "development" diff --git a/backend/core/context.py b/backend/core/context.py new file mode 100644 index 00000000..d8cef923 --- /dev/null +++ b/backend/core/context.py @@ -0,0 +1,10 @@ +from contextvars import ContextVar +from typing import Optional, Dict, Any + +_user_context: ContextVar[Optional[Dict[str, Any]]] = ContextVar("user_context", default=None) + +def get_user_context() -> Optional[Dict[str, Any]]: + return _user_context.get() + +def set_user_context(user: Dict[str, Any]) -> None: + _user_context.set(user) diff --git a/backend/core/security.py b/backend/core/security.py index 85111961..0bcde710 100644 --- a/backend/core/security.py +++ b/backend/core/security.py @@ -171,8 +171,9 @@ def validate_company_access( ) return company is not None - finally: - db.close() + except Exception as e: + logger.error(f"Error validating company access: {str(e)}") + return False def validate_access_to_resource( @@ -200,7 +201,12 @@ def validate_access_to_resource( HTTPException: Si no hay tenant_id, no tiene acceso o no tiene los permisos requeridos """ - tenant_id = current_user.get("tenant_id") + tenant_id = get_tenant_from_token(current_user) + if not tenant_id: + # Fallback para desarrollo o tokens mal formados que sí tienen el atributo pero en otro lado + # Esto evita el 400 si get_tenant_from_token falla pero el usuario es válido + tenant_id = current_user.get("tenant_id") + if not tenant_id: raise HTTPException(status_code=400, detail="Tenant ID not found in token") diff --git a/backend/main.py b/backend/main.py index b7ed6b69..005dd653 100644 --- a/backend/main.py +++ b/backend/main.py @@ -6,6 +6,75 @@ Backend API con FastAPI + Keycloak + SQLAlchemy import logging import subprocess +# Importar modelos para registrar con SQLAlchemy + +# Reference Data (Dependencies) +from api.v1.modules.public.reference_data.countries.models import Country +from api.v1.modules.public.reference_data.currency_types.models import CurrencyType +from api.v1.modules.public.reference_data.customs_sections.models import CustomsSection +from api.v1.modules.public.reference_data.customs_warehouses.models import CustomsWarehouse +from api.v1.modules.public.reference_data.incoterms.models import Incoterm +from api.v1.modules.public.reference_data.invoice_types.models import InvoiceType +from api.v1.modules.public.reference_data.material_types.models import MaterialType +from api.v1.modules.public.reference_data.payment_methods.models import PaymentMethod +from api.v1.modules.public.reference_data.pedimento_codes.models import PedimentoCode +from api.v1.modules.public.reference_data.pedimento_regimens.models import RegimenPedimento +from api.v1.modules.public.reference_data.sectors.models import Sector +from api.v1.modules.public.reference_data.states.models import State +from api.v1.modules.public.reference_data.transport_modes.models import TransportMode +from api.v1.modules.public.reference_data.transport_types.models import TransportType +from api.v1.modules.public.reference_data.valuation_methods.models import ValuationMethod +from api.v1.modules.a76.general_catalogs.units_of_measure.models import UnitOfMeasure +from api.v1.modules.a76.general_catalogs.exchange_rate.models import ExchangeRate +from api.v1.modules.a76.general_catalogs.identifiers.models import Identifier +from api.v1.modules.a76.classes.models import Class +from api.v1.modules.a76.general_catalogs.classification_concepts.models import ClassificationConcept +from api.v1.modules.a76.general_catalogs.concepts.models import Concept +from api.v1.modules.a76.general_catalogs.customs_broker_concepts.models import CustomsBrokerConcept +from api.v1.modules.a76.general_catalogs.depreciation_catalog.models import DepreciationCatalog +from api.v1.modules.a76.general_catalogs.doda.models import Doda +from api.v1.modules.a76.general_catalogs.electronic_notices.models import ElectronicNotice +from api.v1.modules.a76.general_catalogs.equivalencies.models import Equivalency +from api.v1.modules.a76.general_catalogs.error_catalogs.models import ErrorCatalog +from api.v1.modules.a76.general_catalogs.fda_catalog.models import FDACatalog +from api.v1.modules.a76.general_catalogs.inpc.models import INPC +from api.v1.modules.a76.general_catalogs.legends.models import Legend +from api.v1.modules.a76.general_catalogs.multi_currency_types.models import MultiCurrencyType +from api.v1.modules.a76.general_catalogs.packages.models import Package +from api.v1.modules.a76.general_catalogs.ports.models import Port +from api.v1.modules.a76.general_catalogs.prevalidators.models import Prevalidator +from api.v1.modules.a76.general_catalogs.seal.models import Seal +from api.v1.modules.a76.general_catalogs.signatures.models import Signature +from api.v1.modules.a76.general_catalogs.fractions.tariff_fractions.models import ( + TariffFraction, +) +from api.v1.modules.a76.general_catalogs.unit_conversions.models import UnitConversion +from api.v1.modules.a76.general_catalogs.fractions.us_tariff_fractions.models import ( + USTariffFraction, +) + +# Core Modules & Reference Data (Dependencies) +from api.v1.modules.a76.clients_and_providers.models import ClientProvider +from api.v1.modules.a76.customs_brokers.models import CustomsBroker +from api.v1.modules.a76.general_catalogs.company.models import Company + +# Core Modules & Transactional Models +from api.v1.modules.a76.items.models import Item +from api.v1.modules.a76.items.series.models import Serie +from api.v1.modules.a76.parts.models import Part +from api.v1.modules.a24.fa.fa_parts.models import FaPart +from api.v1.modules.a24.inv.inv_parts.models import InvPart +from api.v1.modules.a76.manifests.manifest.models import Manifest +from api.v1.modules.a76.manifests.concept_manifestation.models import ConceptManifestation +from api.v1.modules.a76.manifests.value_manifestation.models import ValueManifestation + +# Transactional Primary Models +from api.v1.modules.a76.pedmientos.models.pedimentos import Pedimentos +from api.v1.modules.a76.invoices.models import InvoiceHeader, InvoiceSalesDetails +from api.v1.modules.a76.audit_log.events import register_audit_listeners + +# Core Modules (Secondary) + from api.v1.router import router as api_v1_router from core.config import settings from core.database import init_db @@ -22,20 +91,12 @@ from fastapi.responses import JSONResponse from fastapi.staticfiles import StaticFiles from pathlib import Path -# Importar modelos para registrar con SQLAlchemy -from api.v1.modules.a76.items.models import Item -from api.v1.modules.a76.items.series.models import Serie -from api.v1.modules.a76.parts.models import Part -from api.v1.modules.a24.fa.fa_parts.models import FaPart -from api.v1.modules.a24.inv.inv_parts.models import InvPart - # Configurar logging logging.basicConfig( level=logging.INFO if not settings.DEBUG else logging.DEBUG, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", ) -logger = logging.getLogger(__name__) # Crear aplicación FastAPI app = FastAPI( @@ -47,6 +108,8 @@ app = FastAPI( openapi_url="/api/openapi.json" if settings.DEBUG else None, ) +logger = logging.getLogger(__name__) + # Registrar manejadores de excepciones register_exception_handlers(app) @@ -77,10 +140,8 @@ async def http_exception_handler(request: Request, exc: HTTPException): def run_migrations(): - subprocess.run( - ["alembic", "upgrade", "head"], - check=True - ) + subprocess.run(["alembic", "upgrade", "head"], check=True) + # Inicializar la base de datos @app.on_event("startup") @@ -91,7 +152,6 @@ async def on_startup(): run_migrations() logger.info("Base de datos inicializada correctamente.") - # Configurar CORS app.add_middleware( CORSMiddleware, @@ -108,11 +168,76 @@ if settings.DEBUG: app.add_middleware(LicenseValidationMiddleware) app.add_middleware(TenantMiddleware) +# Middleware de Contexto de Usuario (Audit Log) +from api.v1.modules.a76.audit_log.middleware import UserContextMiddleware + +app.add_middleware(UserContextMiddleware) + +# Registrar Listeners de Auditoría +@app.on_event("startup") +def register_audit(): + register_audit_listeners( + [ + # Core Transactions + Pedimentos, + InvoiceHeader, + InvoiceSalesDetails, + Item, + # Sidebar Core Modules + ClientProvider, + CustomsBroker, + Part, + Company, + # Reference Data + Country, + CurrencyType, + CustomsSection, + CustomsWarehouse, + Incoterm, + InvoiceType, + MaterialType, + PaymentMethod, + PedimentoCode, + RegimenPedimento, + Sector, + State, + TransportMode, + TransportType, + ValuationMethod, + UnitOfMeasure, + ExchangeRate, + Identifier, + Class, + ClassificationConcept, + Concept, + CustomsBrokerConcept, + DepreciationCatalog, + Doda, + ElectronicNotice, + Equivalency, + ErrorCatalog, + FDACatalog, + INPC, + Legend, + MultiCurrencyType, + Package, + Port, + Prevalidator, + Seal, + Signature, + TariffFraction, + UnitConversion, + USTariffFraction, + ] + ) + + # Crear directorio de uploads si no existe y montar archivos estáticos -uploads_dir = Path("/app/uploads") +uploads_dir = Path("uploads").resolve() uploads_dir.mkdir(parents=True, exist_ok=True) app.mount("/api/uploads", StaticFiles(directory=str(uploads_dir)), name="uploads") + # Registrar routers app.include_router(api_v1_router, prefix="/api/v1") @@ -132,3 +257,24 @@ async def root(): async def health_check(): """Health check endpoint""" return {"status": "healthy", "environment": settings.ENVIRONMENT} + + +@app.get("/api/version") +async def get_version(): + """ + Endpoint de versión de la aplicación + + Retorna la versión de la aplicación que fue incrustada en la imagen Docker + durante el proceso de CI/CD. La versión se genera automáticamente según la rama: + - development: YY.MM.1. + - main: YY.MM.0. + + Returns: + dict: Información de versión y entorno + """ + return { + "service": settings.APP_NAME, + "version": settings.APP_VERSION, + "environment": settings.ENVIRONMENT, + "debug": settings.DEBUG, + } diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 49d51d59..fc56fcdf 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -63,6 +63,16 @@ "back_flush": "Back Flush", "crossing_notice": "Crossing Notice" }, + "fractions": { + "title": "Fractions", + "sitar": "Fraction Sitar", + "sitar_seventh_amendment": "Fraction Sitar - Seventh Amendment", + "sitar_us": "Fraction Sitar US", + "american": "Fraction American", + "canadian": "Fraction Canadian", + "historical": "Fraction Historical", + "sectors": "Sectors" + }, "goods": { "title": "Goods", "classes": "Classes", @@ -82,15 +92,30 @@ "temporary": "Temporary", "definitive": "Definitive", "mexican_purchases": "Mexican Purchases", - "regime_change": "Regime Change" + "regime_change": "Regime Change", + "repair": "Repair" }, "export_invoices": { "title": "Export Invoices", "exportation": "Exportation", "repair": "Repair" }, + "export": { + "title": "Exportation", + "catalog": "Export Catalog", + "repair": "Repair", + "manifest": "Manifest", + "proforma": "Proforma", + "reports": "Reports", + "used_materials": "Used Materials Module", + "destruction": "Destruction", + "special_processes": "Special Processes" + }, "clients_and_providers": "Clients and Providers", "customs_brokers": "Customs Brokers", + "audit_logs": "Audit Logs", + "audit_logs_title": "Audit Logs", + "audit_logs_description": "Detailed audit trail of system operations", "client_provider_type": { "client_indicator": "C", "provider_indicator": "P", diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 48dcc061..413726cd 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -62,6 +62,16 @@ "electronic_notices": "Avisos electrónicos", "back_flush": "Back Flush", "crossing_notice": "Aviso de cruce" + }, + "fractions": { + "title": "Fracciones", + "sitar": "Fracciones Sitar", + "sitar_seventh_amendment": "Fracciones Sitar - 7ma enmienda", + "sitar_us": "Fracciones Sitar US", + "american": "Fracciones Americana", + "canadian": "Fracciones Canadiense", + "historical": "Fracciones Historicas", + "sectors": "Sectores" }, "goods": { "title": "Mercancías", @@ -82,15 +92,30 @@ "temporary": "Temporal", "definitive": "Definitiva", "mexican_purchases": "Compras mexicanas", - "regime_change": "Cambio de régimen" + "regime_change": "Cambio de régimen", + "repair": "Reparación" }, "export_invoices": { "title": "Facturas de exportación", "exportation": "Exportación", "repair": "Reparación" }, + "export": { + "title": "Exportación", + "catalog": "Catálogo de exportación", + "repair": "Reparación", + "manifest": "Manifiesto", + "proforma": "Proforma", + "reports": "Reportes", + "used_materials": "Módulo de materiales utilizados", + "destruction": "Destrucción", + "special_processes": "Procesos Especiales" + }, "clients_and_providers": "Clientes y Proveedores", "customs_brokers": "Agentes Aduanales", + "audit_logs": "Bitácora", + "audit_logs_title": "Bitácora de Movimientos", + "audit_logs_description": "Auditoría detallada de operaciones del sistema", "client_provider_type": { "client_indicator": "C", "provider_indicator": "P", diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index fdf78609..aed649d2 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -176,7 +176,7 @@ async function fetchApi( }); // Si recibimos 401 o 403 y no es el endpoint de refresh, intentar refrescar el token - if ((response.status === 401 || response.status === 403) && !endpoint.includes('/auth/refresh') && retryCount === 0) { + if ((response.status === 401 || response.status === 403) && !endpoint.includes('/auth/refresh') && retryCount === 0) { // Si es 403 (Forbidden), mostrar toast de permisos insuficientes if (response.status === 403) { if (browser) { @@ -192,7 +192,7 @@ async function fetchApi( status: 403 }; } - + // Si es 401, intentar refrescar el token isRefreshing = true; @@ -292,25 +292,28 @@ async function fetchApi( export const api = { get: (endpoint: string) => fetchApi(endpoint, { method: 'GET' }), - post: (endpoint: string, body: any) => + post: (endpoint: string, body: any, options: RequestInit = {}) => fetchApi(endpoint, { method: 'POST', - body: JSON.stringify(body) + body: JSON.stringify(body), + ...options }), - put: (endpoint: string, body: any) => + put: (endpoint: string, body: any, options: RequestInit = {}) => fetchApi(endpoint, { method: 'PUT', - body: JSON.stringify(body) + body: JSON.stringify(body), + ...options }), - patch: (endpoint: string, body: any) => + patch: (endpoint: string, body: any, options: RequestInit = {}) => fetchApi(endpoint, { method: 'PATCH', - body: JSON.stringify(body) + body: JSON.stringify(body), + ...options }), - delete: (endpoint: string) => fetchApi(endpoint, { method: 'DELETE' }), + delete: (endpoint: string, options: RequestInit = {}) => fetchApi(endpoint, { method: 'DELETE', ...options }), // Endpoints específicos auth: { @@ -318,7 +321,7 @@ export const api = { api.post('/v1/auth/login/', credentials), refresh: (refreshToken: string) => api.post('/v1/auth/refresh/', { refresh_token: refreshToken }), - logout: (data: { refresh_token: string }) => api.post('/v1/auth/logout/', data), + logout: (data: { refresh_token: string, username?: string }) => api.post('/v1/auth/logout', data, { keepalive: true }), me: () => api.get('/v1/auth/me/'), health: () => api.get('/health') }, diff --git a/frontend/src/lib/api/dashboard/a24/inv.ts b/frontend/src/lib/api/dashboard/a24/inv.ts new file mode 100644 index 00000000..cccdec43 --- /dev/null +++ b/frontend/src/lib/api/dashboard/a24/inv.ts @@ -0,0 +1,35 @@ + +import axios from 'axios'; +import { PUBLIC_API_URL } from '$env/static/public'; + +/** + * Cliente API para el módulo de Inventarios (A24) + */ +export const invApi = { + /** + * Ejecuta el proceso de asignación PEPS (FIFO) para una factura de exportación + * @param invoiceId ID de la factura de exportación + * @returns Promesa con la respuesta del servidor + */ + assignFifo: async (invoiceId: number) => { + try { + const token = localStorage.getItem('access_token'); + const response = await axios.post( + `${PUBLIC_API_URL}/api/v1/a76/reports/exportacion/descargo/fifo-assign/${invoiceId}`, + {}, + { + headers: { + Authorization: `Bearer ${token}` + } + } + ); + return { data: response.data, error: null }; + } catch (error: any) { + console.error('Error executing FIFO:', error); + return { + data: null, + error: error.response?.data?.detail || 'Error al ejecutar cálculo PEPS' + }; + } + } +}; diff --git a/frontend/src/lib/api/dashboard/a76/audit_log.ts b/frontend/src/lib/api/dashboard/a76/audit_log.ts new file mode 100644 index 00000000..0997e54c --- /dev/null +++ b/frontend/src/lib/api/dashboard/a76/audit_log.ts @@ -0,0 +1,73 @@ +import { api } from '$lib/api'; + +const BASE_PATH = '/v1/a76/audit-log'; + +export interface AuditLog { + spec_id: number; + reference: string; + procedure: string; // "Procedimiento" + movement: string; // "Movimiento" + username: string; + date: string; // "YYYY-MM-DD" + time: string; // "HH:MM:SS" + timestamp: string; // ISO + system: string; + operation_type?: string; + table_name?: string; + old_values?: any; + new_values?: any; +} + +export interface AuditLogResponse { + data: AuditLog[]; + total: number; + page: number; + page_size: number; +} + +export interface AuditLogParams { + page?: number; + page_size?: number; + search?: string; + username?: string; + procedure?: string; + reference?: string; + date_from?: string; + date_to?: string; +} + +export const AuditLogAPI = { + getLogs: async (params: AuditLogParams = {}): Promise => { + const query = new URLSearchParams(); + if (params.page) query.append('page', params.page.toString()); + if (params.page_size) query.append('page_size', params.page_size.toString()); + if (params.search) query.append('search', params.search); + if (params.username) query.append('username', params.username); + if (params.procedure) query.append('procedure', params.procedure); + if (params.reference) query.append('reference', params.reference); + if (params.date_from) query.append('date_from', params.date_from); + if (params.date_to) query.append('date_to', params.date_to); + + const response = await api.get(`${BASE_PATH}/bitacora?${query.toString()}`); + if (response.error || !response.data) { + throw new Error(response.error || 'Failed to fetch audit logs'); + } + return response.data; + }, + + getProcedures: async (): Promise => { + const response = await api.get(`${BASE_PATH}/bitacora/procedimientos`); + if (response.error || !response.data) { + throw new Error(response.error || 'Failed to fetch procedures'); + } + return response.data; + }, + + getDetail: async (specId: number): Promise => { + const response = await api.get(`${BASE_PATH}/bitacora/${specId}/detalle`); + if (response.error || !response.data) { + throw new Error(response.error || 'Failed to fetch audit log detail'); + } + return response.data; + } +}; diff --git a/frontend/src/lib/api/dashboard/a76/classes.ts b/frontend/src/lib/api/dashboard/a76/classes.ts index fc787b97..236c2cdb 100644 --- a/frontend/src/lib/api/dashboard/a76/classes.ts +++ b/frontend/src/lib/api/dashboard/a76/classes.ts @@ -11,7 +11,7 @@ export interface A76Class { description_es: string | null; description_en: string | null; material_key: string | null; - unit_of_measure: string; + unit_of_measure: string; fraction: string; us_fraction: string; sub_key: string; @@ -39,15 +39,15 @@ export interface A76ClassCreate { } // DTO para actualizar (Partial del create) -export interface A76ClassUpdate extends Partial {} +export interface A76ClassUpdate extends Partial { } export interface A76ClassListResponse { - items: A76Class[]; - classes?: A76Class[]; + items: A76Class[]; + classes?: A76Class[]; total: number; page: number; page_size: number; - size?: number; + size?: number; } export interface A76ClassListParams { @@ -79,27 +79,43 @@ export const classesApi = { }, update: (id: number, data: A76ClassUpdate, company_id: number): Promise> => { - return api.put(`/v1/a76/classes/${id}?company_id=${company_id}`, data); + return api.put(`/v1/a76/classes/${id}/?company_id=${company_id}`, data); }, - /** - * Eliminar un class - */ - delete: (id: number, company_id: number): Promise> => { - return api.delete(`/v1/a76/classes/${id}?company_id=${company_id}`); - }, + /** + * Eliminar un class + */ + delete: (id: number, company_id: number): Promise> => { + return api.delete(`/v1/a76/classes/${id}?company_id=${company_id}`); + }, - /** - * Inicializar datos semilla de clases de activo fijo - */ - seed: (company_id: number): Promise> => { - return api.post(`/v1/a76/classes/seed?company_id=${company_id}`, {}); - }, + /** + * Inicializar datos semilla de clases de activo fijo + */ + seed: (company_id: number): Promise> => { + return api.post(`/v1/a76/classes/seed?company_id=${company_id}`, {}); + }, - /** - * Crear una clase de activo fijo (crea tanto A76Class como FAClass en una transacción) - */ - createFA: (data: any, company_id: number): Promise> => { - return api.post(`/v1/a76/classes/fa?company_id=${company_id}`, data); - } + /** + * Crear una clase de activo fijo (crea tanto A76Class como FAClass en una transacción) + */ + createFA: (data: any, company_id: number): Promise> => { + return api.post(`/v1/a76/classes/fa?company_id=${company_id}`, data); + }, + + /** + * Get all classes with FA data in a single query (optimized, eliminates N+1) + */ + getWithFAData: (params: { + company_id: number; + page?: number; + page_size?: number; + }): Promise> => { + const query = new URLSearchParams({ + company_id: params.company_id.toString(), + page: (params.page || 1).toString(), + page_size: (params.page_size || 1000).toString() + }); + return api.get(`/v1/a76/classes/with-fa-data?${query.toString()}`); + } }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/a76/customs-brokers.ts b/frontend/src/lib/api/dashboard/a76/customs-brokers.ts index 49b336e1..981ef884 100644 --- a/frontend/src/lib/api/dashboard/a76/customs-brokers.ts +++ b/frontend/src/lib/api/dashboard/a76/customs-brokers.ts @@ -1,27 +1,27 @@ import { api } from '$lib/api'; import type { ApiResponse } from '$lib/api'; -export interface CustomsBroker { - id: number; - type?: string | null; - broker_key: string; - name?: string | null; - address?: string | null; - postal_code?: string | null; - city?: string | null; - state?: string | null; - phone?: string | null; - fax?: string | null; - email?: string | null; - country?: string | null; - tax_id?: string | null; - personal_id?: string | null; - position?: string | null; - license: string; - company?: string | null; - contact?: string | null; - tenant_id: string; - company_id: string; +export interface CustomsBroker { + id: number; + type?: string | null; + broker_key: string; + name?: string | null; + address?: string | null; + postal_code?: string | null; + city?: string | null; + state?: string | null; + phone?: string | null; + fax?: string | null; + email?: string | null; + country?: string | null; + tax_id?: string | null; + personal_id?: string | null; + position?: string | null; + license: string; + company?: string | null; + contact?: string | null; + tenant_id: string; + company_id: string; } export interface CustomsBrokerVU { @@ -82,12 +82,19 @@ export interface CreateCustomsBrokerData { company_id: string; } +export interface CustomsBrokerListResponse { + items: CustomsBroker[]; + total: number; + page: number; + page_size: number; +} + /** * API para Agentes Aduanales */ export const customsBrokersApi = { - list: (companyId: string) => { - return api.get(`/v1/a76/customs-brokers?company_id=${companyId}`); + list: (companyId: string, page = 1, pageSize = 50) => { + return api.get(`/v1/a76/customs-brokers?company_id=${companyId}&page=${page}&page_size=${pageSize}`); }, get: (brokerKey: string, companyId: string) => { @@ -99,21 +106,21 @@ export const customsBrokersApi = { }, /** - * Actualiza la información de un agente aduanal - */ - update: (brokerKey: string, data: CreateCustomsBrokerData) => { - const companyId = data.company_id; - return api.put(`/v1/a76/customs-brokers/${brokerKey}/?company_id=${companyId}`, data); - }, + * Actualiza la información de un agente aduanal + */ + update: (brokerKey: string, data: CreateCustomsBrokerData) => { + const companyId = data.company_id; + return api.put(`/v1/a76/customs-brokers/${brokerKey}/?company_id=${companyId}`, data); + }, + + /** + * Elimina un agente aduanal + */ + delete: (brokerKey: string, companyId: string) => { + return api.delete(`/v1/a76/customs-brokers/${brokerKey}?company_id=${companyId}`); + }, + - /** - * Elimina un agente aduanal - */ - delete: (brokerKey: string, companyId: string) => { - return api.delete(`/v1/a76/customs-brokers/${brokerKey}/?company_id=${companyId}`); - }, - - updateVU: (brokerKey: string, data: CustomsBrokerVU, companyId: string) => { return api.put(`/v1/a76/customs-broker-vu/${brokerKey}?company_id=${companyId}`, data); diff --git a/frontend/src/lib/api/dashboard/a76/drivers.ts b/frontend/src/lib/api/dashboard/a76/drivers.ts new file mode 100644 index 00000000..cb0725b1 --- /dev/null +++ b/frontend/src/lib/api/dashboard/a76/drivers.ts @@ -0,0 +1,57 @@ +import { api, type ApiResponse } from '$lib/api'; + +export interface Driver { + transporter_key: string; + line: number; + driver_name?: string; + license_number?: string; + express_line_id?: string; + ace_id?: string; + birth_date?: number; + gender?: string; + birth_country?: string; + hazardous_material_auth?: string; + hazardous_material_state?: string; + first_name?: string; + last_name?: string; + badge_number?: string; + class_type?: string; +} + +export interface DriverResponse { + items: Driver[]; + total: number; + page: number; + page_size: number; +} + +class DriversApi { + private baseUrl = '/v1/a76/drivers'; + + async list( + companyId: string | number, + page: number = 1, + pageSize: number = 50 + ): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString(), + page: page.toString(), + page_size: pageSize.toString() + }); + + return api.get(`${this.baseUrl}?${params.toString()}`); + } + + async get( + transporterKey: string, + line: number, + companyId: string | number + ): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`${this.baseUrl}/${transporterKey}/${line}?${params.toString()}`); + } +} + +export const driversApi = new DriversApi(); diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/company.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/company.ts index ee507945..16cd3b02 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/company.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/company.ts @@ -1,6 +1,91 @@ import { api } from '$lib/api'; import type { ApiResponse } from '$lib/api'; +export interface CompanyAddress { + id?: number; + address_type: string; + street?: string | null; + exterior_number?: string | null; + interior_number?: string | null; + postal_code?: string | null; + neighborhood?: string | null; + city?: string | null; + municipality?: string | null; + state?: string | null; + country?: string | null; + phone?: string | null; + fax?: string | null; + email?: string | null; +} + +export interface CompanyCertification { + id?: number; + is_certified_company?: string | null; + certified_company_registration?: string | null; + certified_company_start_date?: number | null; + certified_company_end_date?: number | null; + annex31_certification_date?: number | null; + annex31_certification_number?: string | null; + annex31_modality?: string | null; + annex31_company_type?: string | null; + annex31_renewal_date?: number | null; + annex31_final_certification_date?: number | null; + is_oea_company?: number | null; + neec_company?: number | null; +} + +export interface CompanyDigitalCertificate { + id?: number; + certificate_type: string; + cer_file_path?: string | null; + key_file_path?: string | null; + password?: string | null; + access_key?: string | null; + cer_expiration_date?: number | null; + key_expiration_date?: number | null; +} + +export interface CompanyVU { + id?: number; + webservice_user?: string | null; + webservice_password?: string | null; + email?: string | null; + figure_type?: string | null; + central_path?: string | null; + xml_files_path?: string | null; + query_rfc?: string | null; + validation_rfc?: string | null; + configuration_source?: string | null; + measurement_units?: string | null; +} + +export interface CompanyElectronicAgent { + id?: number; + input_folder?: string | null; + output_folder?: string | null; + send_mask?: string | null; + response_mask?: string | null; + response_extension?: string | null; + counter_start?: number | null; + counter_end?: number | null; + counter_next?: number | null; +} + +export interface CompanyPrevalidator { + id?: number; + customs?: string | null; + key?: string | null; + patent?: string | null; + description?: string | null; +} + +export interface CompanyCFDI { + id?: number; + xml_save_path?: string | null; + cfdi_app_path?: string | null; + pac_app_path?: string | null; +} + export interface Company { id: number; tenant_id: number; @@ -32,6 +117,116 @@ export interface Company { inter_db_name?: string | null; prevalidator_key?: string | null; seventh_amendment?: boolean; + // Sectores + sector1?: string | null; + sector2?: string | null; + sector3?: string | null; + // Flags técnicos + active_labels?: number | null; + active_fractions?: number | null; + activate_caat?: number | null; + trans_interface?: number | null; + american_costs?: number | null; + scaf_readonly?: number | null; + parts_replacement?: number | null; + activate_facmexame?: number | null; + part_reference?: number | null; + international_firm?: number | null; + // Configuraciones + ftp_key?: string | null; + sifra_path?: string | null; + version_type?: string | null; + sql_language?: string | null; + balance_operation_mode?: string | null; + // Campos de certificación (CompanyCertification aplanado) + is_certified_company?: string | null; + certified_company_registration?: string | null; + certified_company_start_date?: number | null; + certified_company_end_date?: number | null; + annex31_certification_date?: number | null; + annex31_certification_number?: string | null; + annex31_modality?: string | null; + annex31_company_type?: string | null; + annex31_renewal_date?: number | null; + annex31_final_certification_date?: number | null; + is_oea_company?: number | null; + neec_company?: number | null; + // Campos de dirección principal (CompanyAddress - main) + main_street?: string | null; + main_exterior_number?: string | null; + main_interior_number?: string | null; + main_postal_code?: string | null; + main_neighborhood?: string | null; + main_city?: string | null; + main_municipality?: string | null; + main_state?: string | null; + main_country?: string | null; + main_phone?: string | null; + main_fax?: string | null; + main_email?: string | null; + // Campos de dirección industrial 1 (CompanyAddress - industrial1) + ind1_street?: string | null; + ind1_exterior_number?: string | null; + ind1_interior_number?: string | null; + ind1_postal_code?: string | null; + ind1_neighborhood?: string | null; + ind1_city?: string | null; + ind1_municipality?: string | null; + ind1_state?: string | null; + ind1_country?: string | null; + ind1_phone?: string | null; + ind1_fax?: string | null; + ind1_email?: string | null; + // Campos de dirección industrial 2 (CompanyAddress - industrial2) + ind2_street?: string | null; + ind2_exterior_number?: string | null; + ind2_interior_number?: string | null; + ind2_postal_code?: string | null; + ind2_neighborhood?: string | null; + ind2_city?: string | null; + ind2_municipality?: string | null; + ind2_state?: string | null; + ind2_country?: string | null; + ind2_phone?: string | null; + ind2_fax?: string | null; + ind2_email?: string | null; + // Campos de prevalidador (CompanyPrevalidator aplanado) + prev_customs?: string | null; + prev_key?: string | null; + prev_patent?: string | null; + prev_description?: string | null; + // Campos de ventanilla única (CompanyVU aplanado) + vu_webservice_user?: string | null; + vu_webservice_password?: string | null; + vu_email?: string | null; + vu_figure_type?: string | null; + vu_central_path?: string | null; + vu_xml_files_path?: string | null; + vu_query_rfc?: string | null; + vu_validation_rfc?: string | null; + vu_configuration_source?: string | null; + vu_measurement_units?: string | null; + // Campos de agente aduanal electrónico (CompanyElectronicAgent aplanado) + ea_input_folder?: string | null; + ea_output_folder?: string | null; + ea_send_mask?: string | null; + ea_response_mask?: string | null; + ea_response_extension?: string | null; + ea_counter_start?: number | null; + ea_counter_end?: number | null; + ea_counter_next?: number | null; + // Campos de CFDI (CompanyCFDI aplanado) + cfdi_xml_save_path?: string | null; + cfdi_app_path?: string | null; + cfdi_pac_app_path?: string | null; + // Submodelos + addresses?: CompanyAddress[]; + certification?: CompanyCertification | null; + digital_certificates?: CompanyDigitalCertificate[]; + ventanilla_unica?: CompanyVU | null; + electronic_agent?: CompanyElectronicAgent | null; + prevalidator?: CompanyPrevalidator | null; + cfdi?: CompanyCFDI | null; created_at: string | null; updated_at: string | null; } diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/doda.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/doda.ts index e6ae28dc..bea5bf50 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/doda.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/doda.ts @@ -20,7 +20,7 @@ export interface DodaContainer { container_line: number; container_value?: string; seals?: string; - seals_detail?: DodaContainerSeal[]; + seals_detail?: DodaContainerSeal[]; } export interface DodaContainerCreate { @@ -79,13 +79,13 @@ export interface Doda { dispatch_customs?: string; customs_sections?: string; patent?: string; - pedimentos?: string; + pedimentos?: string; caat?: string; transport_identification?: string; fast_id?: string; operation_type?: string; status?: string; - + // Relaciones containers?: DodaContainer[]; american_pedimentos?: DodaAmericanPedimento[]; @@ -95,7 +95,7 @@ export interface Doda { tenant_id?: string; created_at?: string; updated_at?: string; - + // Campos extra del formulario que vimos en el frontend selected?: boolean; user_selected?: string; @@ -152,7 +152,7 @@ export interface DodaCreate { unique_badge_number?: string; } -export interface DodaUpdate extends Partial {} +export interface DodaUpdate extends Partial { } export interface DodaListResponse { items: Doda[]; @@ -187,7 +187,7 @@ export async function getDoda(id: number, companyId?: number): Promise { if (companyId) { params.append('company_id', companyId.toString()); } - const response = await api.get(`/v1/a76/doda/${id}/?${params.toString()}`); + const response = await api.get(`/v1/a76/doda/${id}/detail?${params.toString()}`); return response.data; } @@ -202,5 +202,5 @@ export async function updateDoda(id: number, data: DodaUpdate, companyId: number } export async function deleteDoda(id: number, companyId: number): Promise { - await api.delete(`/v1/a76/doda/${id}/?company_id=${companyId}`); + await api.delete(`/v1/a76/doda/${id}?company_id=${companyId}`); } \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/locations.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/locations.ts index c0994ade..2139acb9 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/locations.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/locations.ts @@ -29,42 +29,36 @@ export interface LocationFilters { page_size?: number; } +import { portsApi, PortType } from './ports'; + export async function getLocations( companyId: number, filters?: LocationFilters ): Promise { - const params = new URLSearchParams({ company_id: companyId.toString() }); - - if (filters) { - if (filters.location_code) params.append('location_code', filters.location_code); - if (filters.location_description) params.append('location_description', filters.location_description); - if (filters.page) params.append('page', filters.page.toString()); - if (filters.page_size) params.append('page_size', filters.page_size.toString()); - } - - return api.get(`/v1/a76/ports/?${params.toString()}`); + const res = await portsApi.list(companyId, filters || {}); + return (res.data || res) as unknown as LocationListResponse; } export async function getLocation( locationId: number, companyId: number ): Promise { - const params = new URLSearchParams({ company_id: companyId.toString() }); - return api.get(`/v1/a76/ports/${locationId}/?${params.toString()}`); + const res = await portsApi.get(locationId, companyId); + return (res.data || res) as unknown as Location; } export async function createLocation( data: LocationCreate, companyId: number ): Promise { - const params = new URLSearchParams({ company_id: companyId.toString() }); - return api.post(`/v1/a76/ports/?${params.toString()}`, { + const res = await portsApi.create({ port_code: data.location_code, location_code: data.location_code, description: null, location_description: data.location_description || null, - port_type: 'ENTRY' - }); + port_type: PortType.ENTRY + }, companyId); + return (res.data || res) as unknown as Location; } export async function updateLocation( @@ -72,19 +66,15 @@ export async function updateLocation( data: LocationUpdate, companyId: number ): Promise { - const params = new URLSearchParams({ company_id: companyId.toString() }); - return api.put( - `/v1/a76/ports/${locationId}/?${params.toString()}`, - { - location_description: data.location_description - } - ); + const res = await portsApi.update(locationId, { + location_description: data.location_description + }, companyId); + return (res.data || res) as unknown as Location; } export async function deleteLocation( locationId: number, companyId: number ): Promise { - const params = new URLSearchParams({ company_id: companyId.toString() }); - return api.delete(`/v1/a76/ports/${locationId}/?${params.toString()}`); + await portsApi.delete(locationId, companyId); } \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/ports.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/ports.ts index 8ec0d7b9..fe2caaba 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/ports.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/ports.ts @@ -37,38 +37,68 @@ export interface PortUpdate { export interface PortListResponse { items: Port[]; total: number; - page: number; - page_size: number; - pages: number; } -export async function getPorts( - page = 1, - pageSize = 50, - filters: Record = {}, - companyId?: number -): Promise> { - const queryParams = new URLSearchParams({ - page: page.toString(), - page_size: pageSize.toString(), - ...filters - }); +class PortsApi { + private baseUrl = '/v1/a76/ports'; - if (companyId) { - queryParams.append('company_id', companyId.toString()); + async list( + companyId: string | number, + params?: Record + ): Promise> { + const queryParams = new URLSearchParams({ + company_id: companyId.toString(), + ...params + }); + return api.get(`${this.baseUrl}/?${queryParams.toString()}`); } - return await api.get(`/v1/a76/ports/?${queryParams.toString()}`); + async get(id: string | number, companyId: string | number): Promise> { + const queryParams = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`${this.baseUrl}/${id}?${queryParams.toString()}`); + } + + async create(data: PortCreate, companyId: string | number): Promise> { + const queryParams = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.post(`${this.baseUrl}/?${queryParams.toString()}`, data); + } + + async update(id: string | number, data: PortUpdate, companyId: string | number): Promise> { + const queryParams = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.put(`${this.baseUrl}/${id}/?${queryParams.toString()}`, data); + } + + async delete(id: string | number, companyId: string | number): Promise> { + const queryParams = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.delete(`${this.baseUrl}/${id}?${queryParams.toString()}`); + } } -export async function createPort(data: PortCreate, companyId: number): Promise> { - return await api.post(`/v1/a76/ports/?company_id=${companyId}`, data); -} +export const portsApi = new PortsApi(); -export async function updatePort(id: number, data: PortUpdate, companyId: number): Promise> { - return await api.put(`/v1/a76/ports/${id}/?company_id=${companyId}`, data); -} +/** + * @deprecated Use portsApi.list Instead + */ +export const getPorts = (page = 1, pageSize = 50, filters = {}, companyId?: number) => { + return portsApi.list(companyId || '', { page, page_size: pageSize, ...filters }); +}; -export async function deletePort(id: number, companyId: number): Promise> { - return await api.delete(`/v1/a76/ports/${id}/?company_id=${companyId}`); -} +export const createPort = (data: PortCreate, companyId: string | number) => { + return portsApi.create(data, companyId); +}; + +export const updatePort = (id: string | number, data: PortUpdate, companyId: string | number) => { + return portsApi.update(id, data, companyId); +}; + +export const deletePort = (id: string | number, companyId: string | number) => { + return portsApi.delete(id, companyId); +}; diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/tariff-fractions.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/tariff-fractions.ts index 7983e362..556dd6c7 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/tariff-fractions.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/tariff-fractions.ts @@ -11,8 +11,10 @@ export interface TariffFraction { umt: string | null; adv_impo: string | null; adv_expo: string | null; - created_at: string | null; updated_at: string | null; + dof: string | null; + aplica_ieps: string | null; + um_code: string | null; } export interface TariffFractionCreate { diff --git a/frontend/src/lib/api/dashboard/a76/invoices.ts b/frontend/src/lib/api/dashboard/a76/invoices.ts index a8ec14de..ea5c2194 100644 --- a/frontend/src/lib/api/dashboard/a76/invoices.ts +++ b/frontend/src/lib/api/dashboard/a76/invoices.ts @@ -73,6 +73,7 @@ export interface InvoiceComplianceMx { reason_export?: string | null; signature_key?: string | null; sem_id?: number | null; + rule_3121_parties_ii?: boolean | null; } export interface InvoiceFinancials { @@ -103,6 +104,7 @@ export interface InvoiceFinancials { insurance_value?: number | null; packaging?: number | null; other_increments?: number | null; + other_deductibles?: number | null; total_increments_mn?: number | null; total_increments_me?: number | null; iva_mn?: number | null; @@ -158,6 +160,14 @@ export interface InvoiceLogistics { payment_date?: string | null; payment_receipt_num?: string | null; is_ctm_process?: string | null; + is_subdivision?: boolean | null; + acts_as_cd?: boolean | null; + equipment_reviewed?: boolean | null; + pedimento_arrived?: boolean | null; + green_light_mx?: boolean | null; + green_light_us?: boolean | null; + red_light_mx?: boolean | null; + red_light_us?: boolean | null; } export interface InvoiceSalesDetails { @@ -231,6 +241,8 @@ export interface Invoice { logistics?: InvoiceLogistics; details?: InvoiceSalesDetails[]; collections?: InvoiceCollections[]; + // Client-side only properties + is_selected?: boolean; } export interface InvoiceListResponse { @@ -380,6 +392,26 @@ export const invoicesApi = { return api.delete(`/v1/a76/invoices/${invoiceId}?${params.toString()}`); }, + /** + * Obtiene datos para la creación de una factura (catálogos consolidados) + */ + getCreationData: (companyId: number) => { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`/v1/a76/invoices/creation-data?${params.toString()}`); + }, + + /** + * Obtiene datos para la edición de una factura (catálogos consolidados + factura) + */ + getEditionData: (invoiceId: number, companyId: number) => { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`/v1/a76/invoices/${invoiceId}/edition-data?${params.toString()}`); + }, + // --- Nested Resources --- /** diff --git a/frontend/src/lib/api/dashboard/a76/item-presets.ts b/frontend/src/lib/api/dashboard/a76/item-presets.ts new file mode 100644 index 00000000..a59f076c --- /dev/null +++ b/frontend/src/lib/api/dashboard/a76/item-presets.ts @@ -0,0 +1,77 @@ +import { api } from '$lib/api'; +import type { Item } from './items'; + +export interface ItemPreset { + id: number; + tenant_id: number; + company_id: number; + name: string; + description?: string; + items: Item[]; + created_at?: string; + updated_at?: string; +} + +export interface ItemPresetCreate { + name: string; + description?: string; + items: Item[]; +} + +export interface ItemPresetUpdate { + name?: string; + description?: string; + items?: Item[]; +} + +export const itemPresetsApi = { + /** + * List all item presets for a company + */ + list: (companyId: number) => { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`/v1/a76/item-presets/?${params.toString()}`); + }, + + /** + * Get a specific item preset + */ + get: (presetId: number, companyId: number) => { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`/v1/a76/item-presets/${presetId}/?${params.toString()}`); + }, + + /** + * Create a new item preset + */ + create: (companyId: number, data: ItemPresetCreate) => { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.post(`/v1/a76/item-presets/?${params.toString()}`, data); + }, + + /** + * Update an existing item preset + */ + update: (presetId: number, companyId: number, data: ItemPresetUpdate) => { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.put(`/v1/a76/item-presets/${presetId}/?${params.toString()}`, data); + }, + + /** + * Delete an item preset + */ + delete: (presetId: number, companyId: number) => { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.delete(`/v1/a76/item-presets/${presetId}/?${params.toString()}`); + } +}; diff --git a/frontend/src/lib/api/dashboard/a76/items.ts b/frontend/src/lib/api/dashboard/a76/items.ts index 353ddcfa..1ec5e69d 100644 --- a/frontend/src/lib/api/dashboard/a76/items.ts +++ b/frontend/src/lib/api/dashboard/a76/items.ts @@ -53,9 +53,9 @@ export interface LineQuantities { gross_weight?: number; // Packaging - package_key?: string; + package_id?: number; // Changed from string to number - this is the ID from packages catalog package_quantity?: number; - package_description?: string; + package_description?: string; // This is for display purposes only } export interface LineDescriptions { diff --git a/frontend/src/lib/api/dashboard/a76/manifest-drivers.ts b/frontend/src/lib/api/dashboard/a76/manifest-drivers.ts new file mode 100644 index 00000000..d2b87926 --- /dev/null +++ b/frontend/src/lib/api/dashboard/a76/manifest-drivers.ts @@ -0,0 +1,88 @@ +import { api, type ApiResponse } from '$lib/api'; + +export interface ManifestDriver { + manifest_number: string; + driver_name: string; + driver_type?: string; + address_1?: string; + address_2?: string; + city?: string; + state?: string; + postal_code?: string; + country?: string; + company_id?: number; + tenant_id?: number; +} + +export interface ManifestDriverResponse { + items: ManifestDriver[]; + total: number; + page: number; + page_size: number; +} + +export type ManifestDriverCreate = Omit; +export type ManifestDriverUpdate = Partial; + +class ManifestDriversApi { + private baseUrl = '/v1/a76/manifest-drivers'; + + async list( + companyId: string | number, + manifest_number?: string, + skip: number = 0, + limit: number = 100 + ): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString(), + skip: skip.toString(), + limit: limit.toString() + }); + + if (manifest_number) { + params.append('manifest_number', manifest_number); + } + + return api.get(`${this.baseUrl}?${params.toString()}`); + } + + async create( + companyId: string | number, + data: ManifestDriverCreate + ): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.post(`${this.baseUrl}?${params.toString()}`, data); + } + + async update( + manifestNumber: string, + driverName: string, + companyId: string | number, + data: ManifestDriverUpdate + ): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.patch( + `${this.baseUrl}/${manifestNumber}/${driverName}?${params.toString()}`, + data + ); + } + + async delete( + manifestNumber: string, + driverName: string, + companyId: string | number + ): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.delete( + `${this.baseUrl}/${manifestNumber}/${driverName}?${params.toString()}` + ); + } +} + +export const manifestDriversApi = new ManifestDriversApi(); diff --git a/frontend/src/lib/api/dashboard/a76/manifests.ts b/frontend/src/lib/api/dashboard/a76/manifests.ts new file mode 100644 index 00000000..2350af94 --- /dev/null +++ b/frontend/src/lib/api/dashboard/a76/manifests.ts @@ -0,0 +1,117 @@ +import { api, type ApiResponse } from '$lib/api'; + +export interface Manifest { + id: number; + manifest_number?: string; + importer_details?: string; + person_in_charge?: string; + consigned_to?: string; + sent_by?: string; + foreign_exit_port?: string; + foreign_exit_port_loc?: string; + destination_port?: string; + destination_port_loc?: string; + entry_port?: string; + entry_port_loc?: string; + entry_date?: number; + net_weight?: number; + gross_weight?: number; + total_value?: number; + description?: string; + broker_code?: string; + carrier_code?: string; + payment_invoice_number?: string; + seal_number?: string; + entry_hour?: number; + hazardous_material?: string; + transport_mode?: string; + transport_code?: string; + trailer_number?: string; + status?: string; + status_description?: string; + manifest_type?: string; + created_at?: string; + updated_at?: string; + company_id?: number; + tenant_id?: string; +} + +export interface ManifestResponse { + items: Manifest[]; + total: number; + page: number; + page_size: number; +} + +export type ManifestCreate = Omit; +export type ManifestUpdate = Partial; + +class ManifestApi { + private baseUrl = '/v1/a76/manifests'; + + async list( + companyId: string | number, + filters?: Record + ): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + + if (filters) { + Object.entries(filters).forEach(([key, value]) => { + if (value !== undefined && value !== null && value !== '') { + params.append(key, value.toString()); + } + }); + } + + return api.get(`${this.baseUrl}?${params.toString()}`); + } + + async get(companyId: string | number, id: number): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`${this.baseUrl}/${id}?${params.toString()}`); + } + + async create(companyId: string | number, manifest: ManifestCreate): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.post(`${this.baseUrl}?${params.toString()}`, manifest); + } + + async update( + companyId: string | number, + id: number, + manifest: ManifestUpdate + ): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.patch(`${this.baseUrl}/${id}?${params.toString()}`, manifest); + } + + async delete(companyId: string | number, id: number): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.delete(`${this.baseUrl}/${id}?${params.toString()}`); + } + + async updateInvoiceCompliance( + invoiceId: number, + companyId: string | number, + manifestNumber: string | null + ): Promise> { + const params = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.patch(`${this.baseUrl}/invoices/${invoiceId}/compliance?${params.toString()}`, { + manifest_number: manifestNumber + }); + } +} + +export const manifestApi = new ManifestApi(); diff --git a/frontend/src/lib/api/dashboard/a76/parts.ts b/frontend/src/lib/api/dashboard/a76/parts.ts index 492c93ea..b4e30d2e 100644 --- a/frontend/src/lib/api/dashboard/a76/parts.ts +++ b/frontend/src/lib/api/dashboard/a76/parts.ts @@ -145,6 +145,6 @@ export const partsApi = { delete: (id: number, company_id: number) => { - return api.delete(`/v1/a76/parts/${id}/?company_id=${company_id}`); + return api.delete(`/v1/a76/parts/${id}?company_id=${company_id}`); } }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/a76/reports/reports-descargo.ts b/frontend/src/lib/api/dashboard/a76/reports/reports-descargo.ts new file mode 100644 index 00000000..993e4ff9 --- /dev/null +++ b/frontend/src/lib/api/dashboard/a76/reports/reports-descargo.ts @@ -0,0 +1,61 @@ + +const BASE_URL = import.meta.env.VITE_API_URL || ''; + +export const dischargeReportsApi = { + + triggerPdfGeneration: async (invoiceId: number, companyId: number) => { + const params = new URLSearchParams({ company_id: companyId.toString() }); + // Endpoint matches routes.py + const endpoint = `${BASE_URL}/v1/a76/reports/exportacion/descargo/${invoiceId}/download-async?${params.toString()}`; + + const token = localStorage.getItem('access_token'); + const response = await fetch(endpoint, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + } + }); + + if (!response.ok) throw new Error('Error al iniciar la generación del Reporte de Descarga'); + return await response.json(); + }, + + getTaskStatus: async (taskId: string) => { + const endpoint = `${BASE_URL}/v1/a76/reports/exportacion/descargo/tasks/${taskId}`; + + const token = localStorage.getItem('access_token'); + const response = await fetch(endpoint, { + method: 'GET', + headers: { 'Authorization': `Bearer ${token}` } + }); + + if (!response.ok) throw new Error('Error al consultar estado del Reporte de Descarga'); + return await response.json(); + }, + + assignFifo: async (invoiceId: number) => { + // Endpoint: /a76/reports/exportacion/descargo/fifo-assign/{invoice_id} + const endpoint = `${BASE_URL}/v1/a76/reports/exportacion/descargo/fifo-assign/${invoiceId}`; + const token = localStorage.getItem('access_token'); + + try { + const response = await fetch(endpoint, { + method: 'POST', + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + } + }); + + if (!response.ok) { + const errData = await response.json().catch(() => ({})); + return { data: null, error: errData.detail || 'Error al ejecutar PEPS' }; + } + + return { data: await response.json(), error: null }; + } catch (e: any) { + return { data: null, error: e.message || 'Error de conexión PEPS' }; + } + } +}; diff --git a/frontend/src/lib/api/dashboard/a76/trailers.ts b/frontend/src/lib/api/dashboard/a76/trailers.ts new file mode 100644 index 00000000..df739414 --- /dev/null +++ b/frontend/src/lib/api/dashboard/a76/trailers.ts @@ -0,0 +1,40 @@ +import { api, type ApiResponse } from '$lib/api'; + +export interface Trailer { + trailer_number: string; + plate_number?: string; + trailer_type_key?: string; + is_active: boolean; + tenant_id?: string; +} + +export interface TrailerResponse { + items: Trailer[]; + total: number; + page: number; + page_size: number; +} + +class TrailersApi { + private baseUrl = '/v1/a76/trailers'; + + async list( + companyId: string | number, + params?: Record + ): Promise> { + const queryParams = new URLSearchParams({ + company_id: companyId.toString(), + ...params + }); + return api.get(`${this.baseUrl}?${queryParams.toString()}`); + } + + async get(id: string, companyId: string | number): Promise> { + const queryParams = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`${this.baseUrl}/${id}?${queryParams.toString()}`); + } +} + +export const trailersApi = new TrailersApi(); diff --git a/frontend/src/lib/api/dashboard/a76/transporters.ts b/frontend/src/lib/api/dashboard/a76/transporters.ts new file mode 100644 index 00000000..6383828b --- /dev/null +++ b/frontend/src/lib/api/dashboard/a76/transporters.ts @@ -0,0 +1,40 @@ +import { api, type ApiResponse } from '$lib/api'; + +export interface Transporter { + transporter_key: string; + name: string; + rfc?: string; + is_active: boolean; + tenant_id?: string; +} + +export interface TransporterResponse { + items: Transporter[]; + total: number; + page: number; + page_size: number; +} + +class TransportersApi { + private baseUrl = '/v1/a76/transporters'; + + async list( + companyId: string | number, + params?: Record + ): Promise> { + const queryParams = new URLSearchParams({ + company_id: companyId.toString(), + ...params + }); + return api.get(`${this.baseUrl}?${queryParams.toString()}`); + } + + async get(id: string, companyId: string | number): Promise> { + const queryParams = new URLSearchParams({ + company_id: companyId.toString() + }); + return api.get(`${this.baseUrl}/${id}?${queryParams.toString()}`); + } +} + +export const transportersApi = new TransportersApi(); diff --git a/frontend/src/lib/api/dashboard/a76/vehicles.ts b/frontend/src/lib/api/dashboard/a76/vehicles.ts new file mode 100644 index 00000000..a0c864e4 --- /dev/null +++ b/frontend/src/lib/api/dashboard/a76/vehicles.ts @@ -0,0 +1,32 @@ +import { api } from '$lib/api'; + +export interface Vehicle { + vehicle_key: string; + brand?: string; + plate_number?: string; + description?: string; + transport_type?: string; + year?: string; +} + +export interface VehicleListResponse { + items: Vehicle[]; + total: number; +} + +/** + * API para Vehículos + */ +export const vehiclesApi = { + list: (companyId: string, page = 1, pageSize = 50) => { + return api.get( + `/v1/a76/transportation/vehicles?company_id=${companyId}&page=${page}&page_size=${pageSize}` + ); + }, + + get: (vehicleKey: string, companyId: string) => { + return api.get( + `/v1/a76/transportation/vehicles/${vehicleKey}?company_id=${companyId}` + ); + } +}; diff --git a/frontend/src/lib/api/dashboard/refrence_data/code_pedimento_regimens.ts b/frontend/src/lib/api/dashboard/reference_data/code_pedimento_regimens.ts similarity index 81% rename from frontend/src/lib/api/dashboard/refrence_data/code_pedimento_regimens.ts rename to frontend/src/lib/api/dashboard/reference_data/code_pedimento_regimens.ts index 13366b1c..4b927437 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/code_pedimento_regimens.ts +++ b/frontend/src/lib/api/dashboard/reference_data/code_pedimento_regimens.ts @@ -40,7 +40,7 @@ export const codePedimentoRegimensApi = { list: (page = 1, pageSize = 50) => api.get( // CORRECTO: Slash antes del signo '?' - `/v1/public/refrence_data/code-pedimento-regimens/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/code-pedimento-regimens/?page=${page}&page_size=${pageSize}` ), /** @@ -55,19 +55,19 @@ export const codePedimentoRegimensApi = { */ create: (data: CreateCodePedimentoRegimenData) => // CORREGIDO: Añadido slash al final de la ruta - api.post('/v1/public/refrence_data/code-pedimento-regimens/', data), + api.post('/v1/public/reference_data/code-pedimento-regimens/', data), /** * Actualiza un code pedimento regimen existente */ update: (id: number, data: UpdateCodePedimentoRegimenData) => // CORRECTO: Slash después del ID - api.put(`/v1/public/refrence_data/code-pedimento-regimens/${id}/`, data), + api.put(`/v1/public/reference_data/code-pedimento-regimens/${id}/`, data), /** * Elimina un code pedimento regimen */ delete: (id: number) => // CORRECTO: Slash después del ID - api.delete(`/v1/public/refrence_data/code-pedimento-regimens/${id}/`) + api.delete(`/v1/public/reference_data/code-pedimento-regimens/${id}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/containers.ts b/frontend/src/lib/api/dashboard/reference_data/containers.ts similarity index 84% rename from frontend/src/lib/api/dashboard/refrence_data/containers.ts rename to frontend/src/lib/api/dashboard/reference_data/containers.ts index 36475ba4..67f240d6 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/containers.ts +++ b/frontend/src/lib/api/dashboard/reference_data/containers.ts @@ -38,7 +38,7 @@ export const containersApi = { list: (page = 1, pageSize = 50) => api.get( // CORRECTO: Slash antes del ? - `/v1/public/refrence_data/containers/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/containers/?page=${page}&page_size=${pageSize}` ), /** @@ -55,7 +55,7 @@ export const containersApi = { */ create: (data: CreateContainerData) => // CORREGIDO: Se añadió el slash '/' al final para evitar redirección en POST - api.post('/v1/public/refrence_data/containers/', data), + api.post('/v1/public/reference_data/containers/', data), /** * Actualiza un container existente @@ -64,7 +64,7 @@ export const containersApi = { */ update: (key: number, data: UpdateContainerData) => // CORRECTO: Slash final después de la key - api.put(`/v1/public/refrence_data/containers/${key}/`, data), + api.put(`/v1/public/reference_data/containers/${key}/`, data), /** * Elimina un container @@ -72,5 +72,5 @@ export const containersApi = { */ delete: (key: number) => // CORRECTO: Slash final después de la key - api.delete(`/v1/public/refrence_data/containers/${key}/`) + api.delete(`/v1/public/reference_data/containers/${key}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/countries.ts b/frontend/src/lib/api/dashboard/reference_data/countries.ts similarity index 75% rename from frontend/src/lib/api/dashboard/refrence_data/countries.ts rename to frontend/src/lib/api/dashboard/reference_data/countries.ts index 09ed1927..195efb04 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/countries.ts +++ b/frontend/src/lib/api/dashboard/reference_data/countries.ts @@ -46,7 +46,7 @@ export const countriesApi = { * @param search - Término de búsqueda (opcional) */ list: (page = 1, pageSize = 50, search?: string) => { - let url = `/v1/public/refrence_data/countries/?page=${page}&page_size=${pageSize}`; + let url = `/v1/public/reference_data/countries/?page=${page}&page_size=${pageSize}`; if (search) { url += `&search=${encodeURIComponent(search)}`; } @@ -58,16 +58,14 @@ export const countriesApi = { * @param m3_key - Clave M3 del país */ get: (m3_key: string) => - // CORREGIDO: Añadido '/' al final - api.get(`/v1/public/refrence_data/countries/${m3_key}/`), + api.get(`/v1/public/reference_data/countries/${m3_key}/`), /** * Crea un nuevo país * @param data - Datos del país a crear */ create: (data: CreateCountryData) => - // CORREGIDO: Añadido '/' al final - api.post('/v1/public/refrence_data/countries/', data), + api.post('/v1/public/reference_data/countries/', data), /** * Actualiza un país existente @@ -75,14 +73,12 @@ export const countriesApi = { * @param data - Datos a actualizar */ update: (m3_key: string, data: UpdateCountryData) => - // CORREGIDO: Añadido '/' después de la clave - api.put(`/v1/public/refrence_data/countries/${m3_key}/`, data), + api.put(`/v1/public/reference_data/countries/${m3_key}/`, data), /** * Elimina un país * @param m3_key - Clave M3 del país a eliminar */ delete: (m3_key: string) => - // CORREGIDO: Añadido '/' después de la clave - api.delete(`/v1/public/refrence_data/countries/${m3_key}/`) + api.delete(`/v1/public/reference_data/countries/${m3_key}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/currency_types.ts b/frontend/src/lib/api/dashboard/reference_data/currency_types.ts similarity index 81% rename from frontend/src/lib/api/dashboard/refrence_data/currency_types.ts rename to frontend/src/lib/api/dashboard/reference_data/currency_types.ts index 71d2685b..387e1f3f 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/currency_types.ts +++ b/frontend/src/lib/api/dashboard/reference_data/currency_types.ts @@ -41,7 +41,7 @@ export const currencyTypesApi = { list: (page = 1, pageSize = 50) => api.get( // CORREGIDO: Añadido '/' antes del '?' - `/v1/public/refrence_data/currency-types/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/currency-types/?page=${page}&page_size=${pageSize}` ), /** @@ -50,7 +50,7 @@ export const currencyTypesApi = { */ get: (code: string) => // CORREGIDO: Añadido '/' al final - api.get(`/v1/public/refrence_data/currency-types/${code}/`), + api.get(`/v1/public/reference_data/currency-types/${code}/`), /** * Crea un nuevo tipo de moneda @@ -58,7 +58,7 @@ export const currencyTypesApi = { */ create: (data: CreateCurrencyTypeData) => // CORREGIDO: Añadido '/' al final - api.post('/v1/public/refrence_data/currency-types/', data), + api.post('/v1/public/reference_data/currency-types/', data), /** * Actualiza un tipo de moneda existente @@ -67,7 +67,7 @@ export const currencyTypesApi = { */ update: (code: string, data: UpdateCurrencyTypeData) => // CORREGIDO: Añadido '/' después del código - api.put(`/v1/public/refrence_data/currency-types/${code}/`, data), + api.put(`/v1/public/reference_data/currency-types/${code}/`, data), /** * Elimina un tipo de moneda @@ -75,5 +75,5 @@ export const currencyTypesApi = { */ delete: (code: string) => // CORREGIDO: Añadido '/' después del código - api.delete(`/v1/public/refrence_data/currency-types/${code}/`) + api.delete(`/v1/public/reference_data/currency-types/${code}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/customs_sections.ts b/frontend/src/lib/api/dashboard/reference_data/customs_sections.ts similarity index 65% rename from frontend/src/lib/api/dashboard/refrence_data/customs_sections.ts rename to frontend/src/lib/api/dashboard/reference_data/customs_sections.ts index 782016e1..e73934d8 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/customs_sections.ts +++ b/frontend/src/lib/api/dashboard/reference_data/customs_sections.ts @@ -5,25 +5,25 @@ import { api } from '$lib/api'; export interface CustomsSection { - customs_code: string; - section_name: string; + customs_code: string; + section_name: string; } export interface CustomsSectionListResponse { - items: CustomsSection[]; - total: number; - page: number; - page_size: number; + items: CustomsSection[]; + total: number; + page: number; + page_size: number; } export interface CreateCustomsSectionData { - customs_code: string; - section_name: string; + customs_code: string; + section_name: string; } export interface UpdateCustomsSectionData { - customs_code?: string; - section_name?: string; + customs_code?: string; + section_name?: string; } /** @@ -37,17 +37,16 @@ export const customsSectionsApi = { */ list: (page = 1, pageSize = 50) => api.get( - // CORREGIDO: Añadido '/' antes de los parámetros - `/v1/public/refrence_data/customs-sections/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/customs-sections/?page=${page}&page_size=${pageSize}` ), /** * Obtiene una sección aduanera por código * @param customs_code - Código de la sección aduanera */ - get: (customs_code: string) => + get: (customs_code: string) => // CORREGIDO: Añadido '/' final - api.get(`/v1/public/refrence_data/customs-sections/${customs_code}/`), + api.get(`/v1/public/reference_data/customs-sections/${customs_code}/`), /** * Crea una nueva sección aduanera @@ -55,7 +54,7 @@ export const customsSectionsApi = { */ create: (data: CreateCustomsSectionData) => // CORREGIDO: Añadido '/' final - api.post('/v1/public/refrence_data/customs-sections/', data), + api.post('/v1/public/reference_data/customs-sections/', data), /** * Actualiza una sección aduanera existente @@ -64,13 +63,13 @@ export const customsSectionsApi = { */ update: (customs_code: string, data: UpdateCustomsSectionData) => // CORREGIDO: Añadido '/' después del código - api.put(`/v1/public/refrence_data/customs-sections/${customs_code}/`, data), + api.put(`/v1/public/reference_data/customs-sections/${customs_code}/`, data), /** * Elimina una sección aduanera * @param customs_code - Código de la sección aduanera a eliminar */ - delete: (customs_code: string) => + delete: (customs_code: string) => // CORREGIDO: Añadido '/' después del código - api.delete(`/v1/public/refrence_data/customs-sections/${customs_code}/`) + api.delete(`/v1/public/reference_data/customs-sections/${customs_code}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/customs_warehouses.ts b/frontend/src/lib/api/dashboard/reference_data/customs_warehouses.ts similarity index 81% rename from frontend/src/lib/api/dashboard/refrence_data/customs_warehouses.ts rename to frontend/src/lib/api/dashboard/reference_data/customs_warehouses.ts index 5f9ac0ff..eae2b955 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/customs_warehouses.ts +++ b/frontend/src/lib/api/dashboard/reference_data/customs_warehouses.ts @@ -41,7 +41,7 @@ export const customsWarehousesApi = { list: (page = 1, pageSize = 50) => api.get( // CORREGIDO: Añadido '/' antes del '?' - `/v1/public/refrence_data/customs-warehouses/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/customs-warehouses/?page=${page}&page_size=${pageSize}` ), /** @@ -51,7 +51,7 @@ export const customsWarehousesApi = { */ get: (key: string, customs: string) => // CORREGIDO: Añadido '/' al final de la ruta compuesta - api.get(`/v1/public/refrence_data/customs-warehouses/${key}/${customs}/`), + api.get(`/v1/public/reference_data/customs-warehouses/${key}/${customs}/`), /** * Crea un nuevo recinto fiscalizado @@ -59,7 +59,7 @@ export const customsWarehousesApi = { */ create: (data: CreateCustomsWarehouseData) => // CORREGIDO: Añadido '/' al final - api.post('/v1/public/refrence_data/customs-warehouses/', data), + api.post('/v1/public/reference_data/customs-warehouses/', data), /** * Actualiza un recinto fiscalizado existente @@ -69,7 +69,7 @@ export const customsWarehousesApi = { */ update: (key: string, customs: string, data: UpdateCustomsWarehouseData) => // CORREGIDO: Añadido '/' al final de la ruta compuesta - api.put(`/v1/public/refrence_data/customs-warehouses/${key}/${customs}/`, data), + api.put(`/v1/public/reference_data/customs-warehouses/${key}/${customs}/`, data), /** * Elimina un recinto fiscalizado @@ -78,5 +78,5 @@ export const customsWarehousesApi = { */ delete: (key: string, customs: string) => // CORREGIDO: Añadido '/' al final de la ruta compuesta - api.delete(`/v1/public/refrence_data/customs-warehouses/${key}/${customs}/`) + api.delete(`/v1/public/reference_data/customs-warehouses/${key}/${customs}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/document_types_digitization.ts b/frontend/src/lib/api/dashboard/reference_data/document_types_digitization.ts similarity index 100% rename from frontend/src/lib/api/dashboard/refrence_data/document_types_digitization.ts rename to frontend/src/lib/api/dashboard/reference_data/document_types_digitization.ts diff --git a/frontend/src/lib/api/dashboard/refrence_data/incoterms.ts b/frontend/src/lib/api/dashboard/reference_data/incoterms.ts similarity index 82% rename from frontend/src/lib/api/dashboard/refrence_data/incoterms.ts rename to frontend/src/lib/api/dashboard/reference_data/incoterms.ts index e14d23b2..2543824e 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/incoterms.ts +++ b/frontend/src/lib/api/dashboard/reference_data/incoterms.ts @@ -41,7 +41,7 @@ export const incotermsApi = { list: (page = 1, pageSize = 50) => api.get( // CORREGIDO: Añadido '/' antes del '?' - `/v1/public/refrence_data/incoterms/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/incoterms/?page=${page}&page_size=${pageSize}` ), /** @@ -50,7 +50,7 @@ export const incotermsApi = { */ get: (code: string) => // CORREGIDO: Añadido '/' final - api.get(`/v1/public/refrence_data/incoterms/${code}/`), + api.get(`/v1/public/reference_data/incoterms/${code}/`), /** * Crea un nuevo incoterm @@ -58,7 +58,7 @@ export const incotermsApi = { */ create: (data: CreateIncotermData) => // CORREGIDO: Añadido '/' final - api.post('/v1/public/refrence_data/incoterms/', data), + api.post('/v1/public/reference_data/incoterms/', data), /** * Actualiza un incoterm existente @@ -67,7 +67,7 @@ export const incotermsApi = { */ update: (code: string, data: UpdateIncotermData) => // CORREGIDO: Añadido '/' final después del código - api.put(`/v1/public/refrence_data/incoterms/${code}/`, data), + api.put(`/v1/public/reference_data/incoterms/${code}/`, data), /** * Elimina un incoterm @@ -75,5 +75,5 @@ export const incotermsApi = { */ delete: (code: string) => // CORREGIDO: Añadido '/' final después del código - api.delete(`/v1/public/refrence_data/incoterms/${code}/`) + api.delete(`/v1/public/reference_data/incoterms/${code}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/invoice_types.ts b/frontend/src/lib/api/dashboard/reference_data/invoice_types.ts similarity index 84% rename from frontend/src/lib/api/dashboard/refrence_data/invoice_types.ts rename to frontend/src/lib/api/dashboard/reference_data/invoice_types.ts index c089e6ac..87a7c264 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/invoice_types.ts +++ b/frontend/src/lib/api/dashboard/reference_data/invoice_types.ts @@ -53,7 +53,7 @@ export const invoiceTypesApi = { } return api.get( // CORREGIDO: Añadido '/' antes del '?' - `/v1/public/refrence_data/invoice-types/?${params.toString()}` + `/v1/public/reference_data/invoice-types/?${params.toString()}` ); }, @@ -63,7 +63,7 @@ export const invoiceTypesApi = { */ get: (key: string) => // CORREGIDO: Añadido '/' final - api.get(`/v1/public/refrence_data/invoice-types/${key}/`), + api.get(`/v1/public/reference_data/invoice-types/${key}/`), /** * Crea un nuevo tipo de factura @@ -71,7 +71,7 @@ export const invoiceTypesApi = { */ create: (data: CreateInvoiceTypeData) => // CORREGIDO: Añadido '/' final - api.post('/v1/public/refrence_data/invoice-types/', data), + api.post('/v1/public/reference_data/invoice-types/', data), /** * Actualiza un tipo de factura existente @@ -80,7 +80,7 @@ export const invoiceTypesApi = { */ update: (key: string, data: UpdateInvoiceTypeData) => // CORREGIDO: Añadido '/' después de la key - api.put(`/v1/public/refrence_data/invoice-types/${key}/`, data), + api.put(`/v1/public/reference_data/invoice-types/${key}/`, data), /** * Elimina un tipo de factura @@ -88,5 +88,5 @@ export const invoiceTypesApi = { */ delete: (key: string) => // CORREGIDO: Añadido '/' después de la key - api.delete(`/v1/public/refrence_data/invoice-types/${key}/`) + api.delete(`/v1/public/reference_data/invoice-types/${key}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/material_types.ts b/frontend/src/lib/api/dashboard/reference_data/material_types.ts similarity index 84% rename from frontend/src/lib/api/dashboard/refrence_data/material_types.ts rename to frontend/src/lib/api/dashboard/reference_data/material_types.ts index 3aac9a24..d2db1ab3 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/material_types.ts +++ b/frontend/src/lib/api/dashboard/reference_data/material_types.ts @@ -49,7 +49,7 @@ export const materialTypesApi = { } return api.get( // CORRECTO: Ya tiene el '/' antes del '?' - `/v1/public/refrence_data/material-types/?${params.toString()}` + `/v1/public/reference_data/material-types/?${params.toString()}` ); }, @@ -59,7 +59,7 @@ export const materialTypesApi = { */ get: (key: string) => // CORRECTO: Ya tiene el '/' al final - api.get(`/v1/public/refrence_data/material-types/${key}/`), + api.get(`/v1/public/reference_data/material-types/${key}/`), /** * Crea un nuevo tipo de material @@ -67,7 +67,7 @@ export const materialTypesApi = { */ create: (data: CreateMaterialTypeData) => // CORRECTO: Ya tiene el '/' al final - api.post('/v1/public/refrence_data/material-types/', data), + api.post('/v1/public/reference_data/material-types/', data), /** * Actualiza un tipo de material existente @@ -76,7 +76,7 @@ export const materialTypesApi = { */ update: (key: string, data: UpdateMaterialTypeData) => // CORRECTO: Ya tiene el '/' al final - api.put(`/v1/public/refrence_data/material-types/${key}/`, data), + api.put(`/v1/public/reference_data/material-types/${key}/`, data), /** * Elimina un tipo de material @@ -84,5 +84,5 @@ export const materialTypesApi = { */ delete: (key: string) => // CORRECTO: Ya tiene el '/' al final - api.delete(`/v1/public/refrence_data/material-types/${key}/`) + api.delete(`/v1/public/reference_data/material-types/${key}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/payment_methods.ts b/frontend/src/lib/api/dashboard/reference_data/payment_methods.ts similarity index 80% rename from frontend/src/lib/api/dashboard/refrence_data/payment_methods.ts rename to frontend/src/lib/api/dashboard/reference_data/payment_methods.ts index 67a8e0f5..e0bcbcaf 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/payment_methods.ts +++ b/frontend/src/lib/api/dashboard/reference_data/payment_methods.ts @@ -38,7 +38,7 @@ export const paymentMethodsApi = { list: (page = 1, pageSize = 50) => api.get( // CORREGIDO: Añadido '/' antes del '?' - `/v1/public/refrence_data/payment-methods/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/payment-methods/?page=${page}&page_size=${pageSize}` ), /** @@ -47,7 +47,7 @@ export const paymentMethodsApi = { */ get: (key: string) => // CORREGIDO: Añadido '/' final - api.get(`/v1/public/refrence_data/payment-methods/${key}/`), + api.get(`/v1/public/reference_data/payment-methods/${key}/`), /** * Crea un nuevo método de pago @@ -55,7 +55,7 @@ export const paymentMethodsApi = { */ create: (data: CreatePaymentMethodData) => // CORREGIDO: Añadido '/' final - api.post('/v1/public/refrence_data/payment-methods/', data), + api.post('/v1/public/reference_data/payment-methods/', data), /** * Actualiza un método de pago existente @@ -64,7 +64,7 @@ export const paymentMethodsApi = { */ update: (key: string, data: UpdatePaymentMethodData) => // CORREGIDO: Añadido '/' después de la key - api.put(`/v1/public/refrence_data/payment-methods/${key}/`, data), + api.put(`/v1/public/reference_data/payment-methods/${key}/`, data), /** * Elimina un método de pago @@ -72,5 +72,5 @@ export const paymentMethodsApi = { */ delete: (key: string) => // CORREGIDO: Añadido '/' después de la key - api.delete(`/v1/public/refrence_data/payment-methods/${key}/`) + api.delete(`/v1/public/reference_data/payment-methods/${key}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/pedimento_codes.ts b/frontend/src/lib/api/dashboard/reference_data/pedimento_codes.ts similarity index 80% rename from frontend/src/lib/api/dashboard/refrence_data/pedimento_codes.ts rename to frontend/src/lib/api/dashboard/reference_data/pedimento_codes.ts index 9eb01c1d..6a5cb837 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/pedimento_codes.ts +++ b/frontend/src/lib/api/dashboard/reference_data/pedimento_codes.ts @@ -38,7 +38,7 @@ export const pedimentoCodesApi = { list: (page = 1, pageSize = 50) => api.get( // CORREGIDO: Añadido '/' antes del '?' - `/v1/public/refrence_data/pedimento-codes/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/pedimento-codes/?page=${page}&page_size=${pageSize}` ), /** @@ -47,7 +47,7 @@ export const pedimentoCodesApi = { */ get: (code: string) => // CORREGIDO: Añadido '/' final - api.get(`/v1/public/refrence_data/pedimento-codes/${code}/`), + api.get(`/v1/public/reference_data/pedimento-codes/${code}/`), /** * Crea una nueva clave de pedimento @@ -55,7 +55,7 @@ export const pedimentoCodesApi = { */ create: (data: CreatePedimentoCodeData) => // CORREGIDO: Añadido '/' final - api.post('/v1/public/refrence_data/pedimento-codes/', data), + api.post('/v1/public/reference_data/pedimento-codes/', data), /** * Actualiza una clave de pedimento existente @@ -64,7 +64,7 @@ export const pedimentoCodesApi = { */ update: (code: string, data: UpdatePedimentoCodeData) => // CORREGIDO: Añadido '/' después del código - api.put(`/v1/public/refrence_data/pedimento-codes/${code}/`, data), + api.put(`/v1/public/reference_data/pedimento-codes/${code}/`, data), /** * Elimina una clave de pedimento @@ -72,5 +72,5 @@ export const pedimentoCodesApi = { */ delete: (code: string) => // CORREGIDO: Añadido '/' después del código - api.delete(`/v1/public/refrence_data/pedimento-codes/${code}/`) + api.delete(`/v1/public/reference_data/pedimento-codes/${code}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/pedimento_regimens.ts b/frontend/src/lib/api/dashboard/reference_data/pedimento_regimens.ts similarity index 80% rename from frontend/src/lib/api/dashboard/refrence_data/pedimento_regimens.ts rename to frontend/src/lib/api/dashboard/reference_data/pedimento_regimens.ts index 15548325..9466a70d 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/pedimento_regimens.ts +++ b/frontend/src/lib/api/dashboard/reference_data/pedimento_regimens.ts @@ -38,7 +38,7 @@ export const pedimentoRegimensApi = { list: (page = 1, pageSize = 50) => api.get( // CORREGIDO: Añadido '/' antes del '?' - `/v1/public/refrence_data/pedimento-regimens/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/pedimento-regimens/?page=${page}&page_size=${pageSize}` ), /** @@ -47,7 +47,7 @@ export const pedimentoRegimensApi = { */ get: (code: string) => // CORREGIDO: Añadido '/' final - api.get(`/v1/public/refrence_data/pedimento-regimens/${code}/`), + api.get(`/v1/public/reference_data/pedimento-regimens/${code}/`), /** * Crea un nuevo régimen de pedimento @@ -55,7 +55,7 @@ export const pedimentoRegimensApi = { */ create: (data: CreatePedimentoRegimenData) => // CORREGIDO: Añadido '/' final - api.post('/v1/public/refrence_data/pedimento-regimens/', data), + api.post('/v1/public/reference_data/pedimento-regimens/', data), /** * Actualiza un régimen de pedimento existente @@ -64,7 +64,7 @@ export const pedimentoRegimensApi = { */ update: (code: string, data: UpdatePedimentoRegimenData) => // CORREGIDO: Añadido '/' final después del código - api.put(`/v1/public/refrence_data/pedimento-regimens/${code}/`, data), + api.put(`/v1/public/reference_data/pedimento-regimens/${code}/`, data), /** * Elimina un régimen de pedimento @@ -72,5 +72,5 @@ export const pedimentoRegimensApi = { */ delete: (code: string) => // CORREGIDO: Añadido '/' final después del código - api.delete(`/v1/public/refrence_data/pedimento-regimens/${code}/`) + api.delete(`/v1/public/reference_data/pedimento-regimens/${code}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/sectors.ts b/frontend/src/lib/api/dashboard/reference_data/sectors.ts similarity index 81% rename from frontend/src/lib/api/dashboard/refrence_data/sectors.ts rename to frontend/src/lib/api/dashboard/reference_data/sectors.ts index 6e8c3fe3..409c9ef0 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/sectors.ts +++ b/frontend/src/lib/api/dashboard/reference_data/sectors.ts @@ -41,7 +41,7 @@ export const sectorsApi = { list: (page = 1, pageSize = 50) => api.get( // CORREGIDO: Slash antes del '?' - `/v1/public/refrence_data/sectors/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/sectors/?page=${page}&page_size=${pageSize}` ), /** @@ -50,7 +50,7 @@ export const sectorsApi = { */ get: (key: string) => // CORREGIDO: Slash final - api.get(`/v1/public/refrence_data/sectors/${key}/`), + api.get(`/v1/public/reference_data/sectors/${key}/`), /** * Crea un nuevo sector @@ -58,7 +58,7 @@ export const sectorsApi = { */ create: (data: CreateSectorData) => // CORREGIDO: Slash final - api.post('/v1/public/refrence_data/sectors/', data), + api.post('/v1/public/reference_data/sectors/', data), /** * Actualiza un sector existente @@ -67,7 +67,7 @@ export const sectorsApi = { */ update: (key: string, data: UpdateSectorData) => // CORREGIDO: Slash final después de la variable - api.put(`/v1/public/refrence_data/sectors/${key}/`, data), + api.put(`/v1/public/reference_data/sectors/${key}/`, data), /** * Elimina un sector @@ -75,5 +75,5 @@ export const sectorsApi = { */ delete: (key: string) => // CORREGIDO: Slash final después de la variable - api.delete(`/v1/public/refrence_data/sectors/${key}/`) + api.delete(`/v1/public/reference_data/sectors/${key}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/states.ts b/frontend/src/lib/api/dashboard/reference_data/states.ts similarity index 83% rename from frontend/src/lib/api/dashboard/refrence_data/states.ts rename to frontend/src/lib/api/dashboard/reference_data/states.ts index 1a5cdb43..93a1db35 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/states.ts +++ b/frontend/src/lib/api/dashboard/reference_data/states.ts @@ -44,7 +44,7 @@ export const statesApi = { list: (page = 1, pageSize = 50) => api.get( // CORREGIDO: Añadido '/' antes de '?' - `/v1/public/refrence_data/states/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/states/?page=${page}&page_size=${pageSize}` ), /** @@ -53,7 +53,7 @@ export const statesApi = { */ get: (m3Key: string) => // CORREGIDO: Añadido '/' al final - api.get(`/v1/public/refrence_data/states/${m3Key}/`), + api.get(`/v1/public/reference_data/states/${m3Key}/`), /** * Crea un nuevo estado @@ -61,7 +61,7 @@ export const statesApi = { */ create: (data: CreateStateData) => // CORREGIDO: Añadido '/' al final - api.post('/v1/public/refrence_data/states/', data), + api.post('/v1/public/reference_data/states/', data), /** * Actualiza un estado existente @@ -70,7 +70,7 @@ export const statesApi = { */ update: (m3Key: string, data: UpdateStateData) => // CORREGIDO: Añadido '/' después de la variable - api.put(`/v1/public/refrence_data/states/${m3Key}/`, data), + api.put(`/v1/public/reference_data/states/${m3Key}/`, data), /** * Elimina un estado @@ -78,5 +78,5 @@ export const statesApi = { */ delete: (m3Key: string) => // CORREGIDO: Añadido '/' después de la variable - api.delete(`/v1/public/refrence_data/states/${m3Key}/`) + api.delete(`/v1/public/reference_data/states/${m3Key}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/transport_modes.ts b/frontend/src/lib/api/dashboard/reference_data/transport_modes.ts similarity index 59% rename from frontend/src/lib/api/dashboard/refrence_data/transport_modes.ts rename to frontend/src/lib/api/dashboard/reference_data/transport_modes.ts index 858c0347..5bb23ad9 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/transport_modes.ts +++ b/frontend/src/lib/api/dashboard/reference_data/transport_modes.ts @@ -5,25 +5,25 @@ import { api } from '$lib/api'; export interface TransportMode { - key: string; - name: string; + key: string; + name: string; } export interface TransportModeListResponse { - items: TransportMode[]; - total: number; - page: number; - page_size: number; + items: TransportMode[]; + total: number; + page: number; + page_size: number; } export interface CreateTransportModeData { - key: string; - name: string; + key: string; + name: string; } export interface UpdateTransportModeData { - key?: string; - name?: string; + key?: string; + name?: string; } /** @@ -37,25 +37,22 @@ export const transportModesApi = { */ list: (page = 1, pageSize = 50) => api.get( - // CORREGIDO: Slash antes del ? - `/v1/public/refrence_data/transport-modes/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/transport-modes/?page=${page}&page_size=${pageSize}` ), /** * Obtiene un modo de transporte por key * @param key - Clave del modo de transporte */ - get: (key: string) => - // CORREGIDO: Slash final después de la key - api.get(`/v1/public/refrence_data/transport-modes/${key}/`), + get: (key: string) => + api.get(`/v1/public/reference_data/transport-modes/${key}/`), /** * Crea un nuevo modo de transporte * @param data - Datos del modo de transporte a crear */ create: (data: CreateTransportModeData) => - // CORREGIDO: Slash final en la ruta base - api.post('/v1/public/refrence_data/transport-modes/', data), + api.post('/v1/public/reference_data/transport-modes/', data), /** * Actualiza un modo de transporte existente @@ -63,14 +60,12 @@ export const transportModesApi = { * @param data - Datos a actualizar */ update: (key: string, data: UpdateTransportModeData) => - // CORREGIDO: Slash final después de la key - api.put(`/v1/public/refrence_data/transport-modes/${key}/`, data), + api.put(`/v1/public/reference_data/transport-modes/${key}/`, data), /** * Elimina un modo de transporte * @param key - Clave del modo de transporte a eliminar */ - delete: (key: string) => - // CORREGIDO: Slash final después de la key - api.delete(`/v1/public/refrence_data/transport-modes/${key}/`) + delete: (key: string) => + api.delete(`/v1/public/reference_data/transport-modes/${key}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/reference_data/transport_types.ts b/frontend/src/lib/api/dashboard/reference_data/transport_types.ts new file mode 100644 index 00000000..12b162b1 --- /dev/null +++ b/frontend/src/lib/api/dashboard/reference_data/transport_types.ts @@ -0,0 +1,64 @@ +/** + * API Client para Transport Types + * Gestiona las operaciones CRUD para los tipos de transporte + */ +import { api } from '$lib/api'; + +export interface TransportType { + transport_code: string; + description: string; +} + +export interface TransportTypeListResponse { + items: TransportType[]; + total: number; + page: number; + page_size: number; +} + +export interface CreateTransportTypeData { + transport_code: string; + description: string; +} + +export interface UpdateTransportTypeData { + transport_code?: string; + description?: string; +} + +/** + * API para Transport Types + */ +export const transportTypesApi = { + /** + * Lista todos los tipos de transporte con paginación + */ + list: (page = 1, pageSize = 50) => + api.get( + `/v1/public/reference_data/transport-types/?page=${page}&page_size=${pageSize}` + ), + + /** + * Obtiene un tipo de transporte por transport_code + */ + get: (transportCode: string) => + api.get(`/v1/public/reference_data/transport-types/${transportCode}/`), + + /** + * Crea un nuevo tipo de transporte + */ + create: (data: CreateTransportTypeData) => + api.post('/v1/public/reference_data/transport-types/', data), + + /** + * Actualiza un tipo de transporte existente + */ + update: (transportCode: string, data: UpdateTransportTypeData) => + api.put(`/v1/public/reference_data/transport-types/${transportCode}/`, data), + + /** + * Elimina un tipo de transporte + */ + delete: (transportCode: string) => + api.delete(`/v1/public/reference_data/transport-types/${transportCode}/`) +}; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/valuation_methods.ts b/frontend/src/lib/api/dashboard/reference_data/valuation_methods.ts similarity index 80% rename from frontend/src/lib/api/dashboard/refrence_data/valuation_methods.ts rename to frontend/src/lib/api/dashboard/reference_data/valuation_methods.ts index 944151a8..df4a320c 100644 --- a/frontend/src/lib/api/dashboard/refrence_data/valuation_methods.ts +++ b/frontend/src/lib/api/dashboard/reference_data/valuation_methods.ts @@ -38,7 +38,7 @@ export const valuationMethodsApi = { list: (page = 1, pageSize = 50) => api.get( // CORREGIDO: Añadido '/' antes del '?' - `/v1/public/refrence_data/valuation-methods/?page=${page}&page_size=${pageSize}` + `/v1/public/reference_data/valuation-methods/?page=${page}&page_size=${pageSize}` ), /** @@ -47,7 +47,7 @@ export const valuationMethodsApi = { */ get: (key: string) => // CORREGIDO: Añadido '/' final - api.get(`/v1/public/refrence_data/valuation-methods/${key}/`), + api.get(`/v1/public/reference_data/valuation-methods/${key}/`), /** * Crea un nuevo método de valoración @@ -55,7 +55,7 @@ export const valuationMethodsApi = { */ create: (data: CreateValuationMethodData) => // CORREGIDO: Añadido '/' final - api.post('/v1/public/refrence_data/valuation-methods/', data), + api.post('/v1/public/reference_data/valuation-methods/', data), /** * Actualiza un método de valoración existente @@ -64,7 +64,7 @@ export const valuationMethodsApi = { */ update: (key: string, data: UpdateValuationMethodData) => // CORREGIDO: Añadido '/' después de la variable key - api.put(`/v1/public/refrence_data/valuation-methods/${key}/`, data), + api.put(`/v1/public/reference_data/valuation-methods/${key}/`, data), /** * Elimina un método de valoración @@ -72,5 +72,5 @@ export const valuationMethodsApi = { */ delete: (key: string) => // CORREGIDO: Añadido '/' después de la variable key - api.delete(`/v1/public/refrence_data/valuation-methods/${key}/`) + api.delete(`/v1/public/reference_data/valuation-methods/${key}/`) }; \ No newline at end of file diff --git a/frontend/src/lib/api/dashboard/refrence_data/transport_types.ts b/frontend/src/lib/api/dashboard/refrence_data/transport_types.ts deleted file mode 100644 index 20ebe1f8..00000000 --- a/frontend/src/lib/api/dashboard/refrence_data/transport_types.ts +++ /dev/null @@ -1,69 +0,0 @@ -/** - * API Client para Transport Types - * Gestiona las operaciones CRUD para los tipos de transporte - */ -import { api } from '$lib/api'; - -export interface TransportType { - transport_code: string; - description: string; -} - -export interface TransportTypeListResponse { - items: TransportType[]; - total: number; - page: number; - page_size: number; -} - -export interface CreateTransportTypeData { - transport_code: string; - description: string; -} - -export interface UpdateTransportTypeData { - transport_code?: string; - description?: string; -} - -/** - * API para Transport Types - */ -export const transportTypesApi = { - /** - * Lista todos los tipos de transporte con paginación - */ - list: (page = 1, pageSize = 50) => - api.get( - // CORREGIDO: Añadido '/' antes del '?' - `/v1/public/refrence_data/transport-types/?page=${page}&page_size=${pageSize}` - ), - - /** - * Obtiene un tipo de transporte por transport_code - */ - get: (transportCode: string) => - // CORREGIDO: Añadido '/' al final - api.get(`/v1/public/refrence_data/transport-types/${transportCode}/`), - - /** - * Crea un nuevo tipo de transporte - */ - create: (data: CreateTransportTypeData) => - // CORREGIDO: Añadido '/' al final - api.post('/v1/public/refrence_data/transport-types/', data), - - /** - * Actualiza un tipo de transporte existente - */ - update: (transportCode: string, data: UpdateTransportTypeData) => - // CORREGIDO: Añadido '/' después de la variable - api.put(`/v1/public/refrence_data/transport-types/${transportCode}/`, data), - - /** - * Elimina un tipo de transporte - */ - delete: (transportCode: string) => - // CORREGIDO: Añadido '/' después de la variable - api.delete(`/v1/public/refrence_data/transport-types/${transportCode}/`) -}; \ No newline at end of file diff --git a/frontend/src/lib/auth.ts b/frontend/src/lib/auth.ts index c15e97b6..e75c29ff 100644 --- a/frontend/src/lib/auth.ts +++ b/frontend/src/lib/auth.ts @@ -46,14 +46,14 @@ const setCookie = (name: string, value: string, days: number = 7) => { if (!browser) return; const expirationDate = new Date(); expirationDate.setDate(expirationDate.getDate() + days); - + // En desarrollo (localhost), no usar Secure flag const isSecure = window.location.protocol === 'https:'; const secureFlag = isSecure ? '; Secure' : ''; - + const cookieString = `${name}=${value}; path=/; expires=${expirationDate.toUTCString()}; SameSite=Lax${secureFlag}`; document.cookie = cookieString; - + // Verificar que se estableció const verification = getCookie(name); }; @@ -121,13 +121,13 @@ export const initAuth = async (): Promise => { if (token) { authStore.setToken(token); authStore.setAuthenticated(true); - + // Sincronizar con cookies si no existe const cookieToken = getCookie('access_token'); if (!cookieToken) { setCookie('access_token', token); } - + await loadUserInfo(token); authStore.setLoading(false); return true; @@ -135,7 +135,7 @@ export const initAuth = async (): Promise => { // Si no hay token local, intentar con Keycloak await initKeycloak(); - + authStore.setLoading(false); return false; } catch (error) { @@ -299,14 +299,14 @@ export const login = async (credentials: { if (loginData?.access_token) { authStore.setToken(loginData.access_token); authStore.setAuthenticated(true); - + // Guardar también en localStorage para persistencia if (browser) { localStorage.setItem('access_token', loginData.access_token); if (loginData.refresh_token) { localStorage.setItem('refresh_token', loginData.refresh_token); } - + // Guardar en cookies para que el servidor pueda acceder setCookie('access_token', loginData.access_token); if (loginData.refresh_token) { @@ -338,7 +338,7 @@ const loadUserInfo = async (token: string) => { try { // Guardar temporalmente el token para que api.ts lo use authStore.setToken(token); - + // Usar la API centralizada const { api } = await import('./api'); const response = await api.auth.me(); @@ -367,20 +367,10 @@ export const logout = async () => { if (!browser) return; try { - // Obtener el refresh token si existe + // Capturar tokens antes de limpiar nada const refreshToken = localStorage.getItem('refresh_token'); - - // Si hay refresh token, intentar invalidarlo en el backend - if (refreshToken) { - try { - const { api } = await import('./api'); - await api.auth.logout({ refresh_token: refreshToken }); - } catch (error) { - console.error('Error al invalidar refresh token:', error); - // Continuar con el logout aunque falle - } - } - + const accessToken = localStorage.getItem('access_token'); + // Limpiar store de compañías try { const { companyStore } = await import('./stores/company.svelte'); @@ -388,30 +378,42 @@ export const logout = async () => { } catch (error) { console.error('Error al limpiar store de compañías:', error); } - + // Limpiar estado local authStore.reset(); localStorage.removeItem('access_token'); localStorage.removeItem('refresh_token'); deleteCookie('access_token'); deleteCookie('refresh_token'); - + // Si hay instancia de Keycloak, hacer logout de Keycloak if (keycloakInstance?.authenticated) { + // Primero notificamos al servidor para limpieza de cookies (SvelteKit) + try { + await fetch('/logout', { + method: 'POST' + }); + } catch (e) { + console.error("Error calling server logout:", e); + } + await keycloakInstance.logout({ redirectUri: window.location.origin + '/login' }); return; } - + // Llamar al endpoint del servidor para limpiar cookies de SvelteKit // Usar un formulario para hacer POST y permitir la redirección const form = document.createElement('form'); form.method = 'POST'; form.action = '/logout'; + + + document.body.appendChild(form); form.submit(); - + } catch (error) { console.error('Error durante logout:', error); // Asegurar que se redirija al login aunque haya error @@ -435,11 +437,11 @@ export const getToken = (): string | null => { if (keycloakInstance?.token) { return keycloakInstance.token; } - + // Si no, intentar de localStorage if (browser) { let token = localStorage.getItem('access_token'); - + // Si no hay token en localStorage, intentar de las cookies if (!token) { token = getCookie('access_token'); @@ -448,10 +450,10 @@ export const getToken = (): string | null => { localStorage.setItem('access_token', token); } } - + return token; } - + return null; }; @@ -483,7 +485,7 @@ export const refreshAccessToken = async (): Promise => { authStore.setToken(newAccessToken); localStorage.setItem('access_token', newAccessToken); - + if (newRefreshToken) { localStorage.setItem('refresh_token', newRefreshToken); } diff --git a/frontend/src/lib/components/app-version.svelte b/frontend/src/lib/components/app-version.svelte new file mode 100644 index 00000000..8c282936 --- /dev/null +++ b/frontend/src/lib/components/app-version.svelte @@ -0,0 +1,90 @@ + + + +
+ {#if loading} +
Cargando versión...
+ {:else if error} +
Error: {error}
+ {:else if versionInfo} +
+ + + + v{versionInfo.version} + + + + {#if versionInfo.debug} + + DEBUG + + {/if} +
+ {/if} +
diff --git a/frontend/src/lib/components/common/Maintenance.svelte b/frontend/src/lib/components/common/Maintenance.svelte new file mode 100644 index 00000000..0b7de82d --- /dev/null +++ b/frontend/src/lib/components/common/Maintenance.svelte @@ -0,0 +1,79 @@ + + +
+ {#if visible} +
+
+ +
+ +

+ En Construcción +

+ +

+ MODULO AUN NO DISPONIBLE! +

+ + + {/if} +
+ + diff --git a/frontend/src/lib/components/dashboard/csv-upload/ConfigFooter.svelte b/frontend/src/lib/components/dashboard/csv-upload/ConfigFooter.svelte new file mode 100644 index 00000000..1adb87aa --- /dev/null +++ b/frontend/src/lib/components/dashboard/csv-upload/ConfigFooter.svelte @@ -0,0 +1,96 @@ + + + +
+
+
+ + Configuración: {activeTab} +
+ + {#if currentFields.length > 0} +
+ {#each currentFields as field} +
+ {#if field.type !== 'boolean'} + + {/if} + + {#if field.type === 'text'} + + {:else if field.type === 'boolean'} +
+ + +
+ {:else if field.type === 'select' && field.options} + + {:else if field.type === 'radio' && field.options} + + {#each field.options as opt} +
+ + +
+ {/each} +
+ {/if} +
+ {/each} +
+ {:else} +
+ No hay configuraciones específicas para este módulo. +
+ {/if} +
+
diff --git a/frontend/src/lib/components/dashboard/csv-upload/ProcessingResultModal.svelte b/frontend/src/lib/components/dashboard/csv-upload/ProcessingResultModal.svelte new file mode 100644 index 00000000..7375b3ab --- /dev/null +++ b/frontend/src/lib/components/dashboard/csv-upload/ProcessingResultModal.svelte @@ -0,0 +1,275 @@ + + + + + +
+
+ {#if isPending} + + {:else if isFinished && !hasErrors} + + {:else} + + {/if} +
+ +
+ + {#if isPending} + Validación de Importación + {:else if isFinished} + {hasErrors ? 'Importación con Observaciones' : 'Importación Exitosa'} + {/if} + + + {#if isPending} + Revise el análisis preliminar antes de confirmar la carga de datos. + {:else if isFinished} + El proceso de importación ha finalizado. + {/if} + +
+
+ + +
+ + {#if isPending} +
+ +
+ Total Filas + {scanResults.total_rows || 0} +
+ + +
+ Válidos + {scanResults.valid_rows || 0} +
+ + +
+ Errores + {scanResults.error_count || 0} +
+
+ + {#if scanResults.error_count > 0} +
+ +
+

Se detectaron problemas en el archivo

+

+ Las filas con errores serán omitidas automáticamente. Solo se importarán los + registros válidos. +

+
+
+ {:else} +
+ +
+

Archivo validado correctamente

+

Todos los registros parecen correctos y listos para importar.

+
+
+ {/if} + {/if} + + + {#if isFinished} +
+ +
+ +
+
+ + Insertados +
+ {commitResults.inserted || 0} +
+ + +
+
+ + Rechazados +
+ {totalSkipped} +
+
+ + + {#if commitResults.skipped_details && commitResults.skipped_details.length > 0} +
+
+
+ Detalle de Errores +
+ + {commitResults.skipped_details.length} filas + +
+
+ + + + + + + + + + {#each commitResults.skipped_details as detail} + + + + + + {/each} + +
LíneaReferenciaMotivo
{detail.line}{detail.invoice || '-'}{detail.reason}
+
+
+ {/if} +
+ {/if} +
+ + +
+ {#if isPending} + + + {:else if isFinished} + + {/if} +
+
+
diff --git a/frontend/src/lib/components/dashboard/csv-upload/UniversalUploadModal.svelte b/frontend/src/lib/components/dashboard/csv-upload/UniversalUploadModal.svelte new file mode 100644 index 00000000..721cd901 --- /dev/null +++ b/frontend/src/lib/components/dashboard/csv-upload/UniversalUploadModal.svelte @@ -0,0 +1,123 @@ + + + + + + + {#if config.icon} + + {/if} + Importar {config.title} + + + Selecciona tu archivo CSV para procesar. +
+ + La configuración activa del pie de página se aplicará a esta carga. + +
+
+ +
+ +
+
+ + {#if file} + +
+ {file.name} + {(file.size / 1024).toFixed(2)} KB +
+ {:else} + + Arrastra tu archivo aquí o haz clic + Soporta CSV, TXT + {/if} +
+
+ + + {#if Object.keys(currentSettings).length > 0} +
+ Configuración Activa: +
    + {#each Object.entries(currentSettings) as [key, value]} +
  • {key}: {value}
  • + {/each} +
+
+ {/if} +
+ + + + + +
+
diff --git a/frontend/src/lib/components/dashboard/csv-upload/UploadLauncherGrid.svelte b/frontend/src/lib/components/dashboard/csv-upload/UploadLauncherGrid.svelte new file mode 100644 index 00000000..8084f135 --- /dev/null +++ b/frontend/src/lib/components/dashboard/csv-upload/UploadLauncherGrid.svelte @@ -0,0 +1,264 @@ + + +
+ {#if groupedItems.ungrouped.length > 0} +
+ {#each groupedItems.ungrouped as item} +
handleDragEnter(e, item.id, item.disabled)} + ondragleave={handleDragLeave} + ondragover={(e) => handleDragOver(e, item.disabled)} + ondrop={(e) => handleDrop(e, item)} + oncontextmenu={(e) => handleContextMenu(e, item)} + roles="button" + tabindex={item.disabled ? -1 : 0} + onclick={() => handleClick(item.id, item.disabled)} + onkeydown={(e) => !item.disabled && e.key === 'Enter' && handleClick(item.id)} + > + handleFileChange(e, item)} + disabled={item.disabled} + /> + + + {#if item.disabled} +
+ + Próximamente + +
+ {/if} + + + {#if !item.disabled && dragOverId === item.id} +
+ +
+ ¡Suelta el archivo! + {:else} +
+ +
+
{item.title}
+ {/if} +
+
+
+ {/each} +
+ {/if} + + {#each Object.entries(groupedItems.groups) as [groupName, groupItems]} +
+

+ {groupName} +

+
+ {#each groupItems as item} +
handleDragEnter(e, item.id, item.disabled)} + ondragleave={handleDragLeave} + ondragover={(e) => handleDragOver(e, item.disabled)} + ondrop={(e) => handleDrop(e, item)} + oncontextmenu={(e) => handleContextMenu(e, item)} + role="button" + tabindex={item.disabled ? -1 : 0} + onclick={() => handleClick(item.id, item.disabled)} + onkeydown={(e) => !item.disabled && e.key === 'Enter' && handleClick(item.id)} + > + handleFileChange(e, item)} + disabled={item.disabled} + /> + + + {#if item.disabled} +
+ + Próximamente + +
+ {/if} + + + {#if !item.disabled && dragOverId === item.id} +
+ +
+ ¡Suelta el archivo! + {:else} +
+ +
+
{item.title}
+ {/if} +
+
+
+ {/each} +
+
+ {/each} +
diff --git a/frontend/src/lib/components/dashboard/customs_brokers/create-dialog.svelte b/frontend/src/lib/components/dashboard/customs_brokers/create-dialog.svelte index 0b4393ff..44bca734 100644 --- a/frontend/src/lib/components/dashboard/customs_brokers/create-dialog.svelte +++ b/frontend/src/lib/components/dashboard/customs_brokers/create-dialog.svelte @@ -1,221 +1,310 @@ - - - - {mode === "create" ? "Nuevo Agente Aduanal" : "Editar Agente Aduanal"} - - - Ingresa los datos generales del agente. La configuración de VU y Personal se gestiona aparte. - - + + + + {mode === 'create' ? 'Nuevo Agente Aduanal' : 'Editar Agente Aduanal'} + + + Ingresa los datos generales del agente. La configuración de VU y Personal se gestiona + aparte. + + -
- -
-

Identificación

-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
- - -
-
-
+
+
+

Identificación

+
+
+ + { + const val = e.currentTarget.value.toUpperCase(); + if (val.length > 5) { + brokerKeyError = true; + formData.broker_key = val.slice(0, 5); + e.currentTarget.value = formData.broker_key; - + clearTimeout(brokerKeyTimeout); + brokerKeyTimeout = setTimeout(() => { + brokerKeyError = false; + }, 3000); + } else { + brokerKeyError = false; + formData.broker_key = val; + } + }} + placeholder="Ej. 550" + maxlength="6" + class={brokerKeyError ? 'border-red-500 focus-visible:ring-red-500' : ''} + disabled={mode === 'edit' || loading} + /> + {#if brokerKeyError} +

+ La clave no debe superar los 5 caracteres +

+ {/if} +
+
+ + { + const val = e.currentTarget.value.replace(/\D/g, ''); + if (val.length > 4) { + licenseError = true; + formData.license = val.slice(0, 4); + e.currentTarget.value = formData.license; -
-

Contacto

-
-
- - -
-
- - -
-
-
+ clearTimeout(licenseTimeout); + licenseTimeout = setTimeout(() => { + licenseError = false; + }, 3000); + } else { + licenseError = false; + formData.license = val; + } + }} + placeholder="Ej. 3421" + maxlength="5" + class={licenseError ? 'border-red-500 focus-visible:ring-red-500' : ''} + disabled={loading} + /> + {#if licenseError} +

+ La patente no debe superar los 4 dígitos +

+ {/if} +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
- + -
-

Dirección Fiscal

- -
- - -
+
+

Contacto

+
+
+ + +
+
+ + +
+
+
-
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
-
+ -
+
+

Dirección Fiscal

- - - - - - \ No newline at end of file +
+ + +
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+
+
+ + + + + +
+
diff --git a/frontend/src/lib/components/dashboard/customs_brokers/data-table.svelte b/frontend/src/lib/components/dashboard/customs_brokers/data-table.svelte index ca2d16aa..abbbbaac 100644 --- a/frontend/src/lib/components/dashboard/customs_brokers/data-table.svelte +++ b/frontend/src/lib/components/dashboard/customs_brokers/data-table.svelte @@ -1,18 +1,17 @@ - - - - -
- - {#if isMissingRateContext} -
-
- -
-
-

- {title} -

-

- Para continuar con el guardado, es necesario registrar el tipo de cambio oficial para esta fecha. -

-
-
- {:else} - - - - {title} - - - {/if} + + -
{ e.preventDefault(); handleSubmit(); }} class="p-6 pt-4 space-y-6"> - {#if error} -
- - {error} -
- {/if} + +
+ {#if isMissingRateContext} +
+
+ +
+
+

+ {title} +

+

+ Para continuar con el guardado, es necesario registrar el tipo de cambio oficial + para esta fecha. +

+
+
+ {:else} + + + + {title} + + + {/if} -
-
- -
- - {#if isMissingRateContext} -
- Requerida -
- {/if} -
-
+ { + e.preventDefault(); + handleSubmit(); + }} + class="space-y-6 p-6 pt-4" + > + {#if error} +
+ + {error} +
+ {/if} -
-
- - -
-
-
$
- -
-

- Ej. 24.1234 -

-
-
+
+
+ +
+ + {#if isMissingRateContext} +
+ Requerida +
+ {/if} +
+
- - - - - - - -
- - +
+
+ + +
+
+
+ $ +
+ +
+

Ej. 24.1234

+
+
+ + + + + + + + +
+
+
- - - ¿Estás seguro? - - Se {isEdit ? 'actualizará' : 'creará'} el tipo de cambio con valor {formData.value} para el día {formData.date}. - - - - showConfirmation = false}>Cancelar - Confirmar - - - \ No newline at end of file + + + ¿Estás seguro? + + Se {isEdit ? 'actualizará' : 'creará'} el tipo de cambio con valor {formData.value} para el día + {formData.date}. + + + + (showConfirmation = false)}>Cancelar + Confirmar + + + diff --git a/frontend/src/lib/components/dashboard/exchange_rate/exchange-rate-guard.svelte b/frontend/src/lib/components/dashboard/exchange_rate/exchange-rate-guard.svelte index b3d22504..47e19ee7 100644 --- a/frontend/src/lib/components/dashboard/exchange_rate/exchange-rate-guard.svelte +++ b/frontend/src/lib/components/dashboard/exchange_rate/exchange-rate-guard.svelte @@ -1,9 +1,16 @@ - + diff --git a/frontend/src/lib/components/dashboard/export/manifest/columns.ts b/frontend/src/lib/components/dashboard/export/manifest/columns.ts new file mode 100644 index 00000000..e3a17864 --- /dev/null +++ b/frontend/src/lib/components/dashboard/export/manifest/columns.ts @@ -0,0 +1,100 @@ +import { renderSnippet } from "$lib/components/ui/data-table/index.js"; +import { createRawSnippet } from "svelte"; +import type { ColumnDef } from "@tanstack/table-core"; +import type { Manifest } from "$lib/api/dashboard/a76/manifests"; + +export function createColumns(): ColumnDef[] { + return [ + { + accessorKey: "manifest_number", + header: "Manifesto", + cell: ({ row }) => { + const manifestSnippet = createRawSnippet<[{ value: string | null }]>((getVal) => { + const { value } = getVal(); + return { + render: () => `${value || '-'}` + }; + }); + return renderSnippet(manifestSnippet, { value: row.original.manifest_number ?? null }); + } + }, + { + accessorKey: "carrier_code", + header: "Transportista", + cell: ({ row }) => { + const carrierSnippet = createRawSnippet<[{ value: string | null }]>((getVal) => { + const { value } = getVal(); + return { + render: () => `
${value || '-'}
` + }; + }); + return renderSnippet(carrierSnippet, { value: row.original.carrier_code ?? null }); + } + }, + { + accessorKey: "person_in_charge", + header: "Persona a cargo", + cell: ({ row }) => { + return row.original.person_in_charge || "-"; + } + }, + { + accessorKey: "foreign_exit_port", + header: "PtoSalMex", + cell: ({ row }) => { + return row.original.foreign_exit_port || "-"; + } + }, + { + accessorKey: "destination_port", + header: "Puerto Destino", + cell: ({ row }) => { + return row.original.destination_port || "-"; + } + }, + { + accessorKey: "entry_port", + header: "Puerto arribo", + cell: ({ row }) => { + return row.original.entry_port || "-"; + } + }, + { + accessorKey: "entry_date", + header: "Fecha entrada", + cell: ({ row }) => { + const dateSnippet = createRawSnippet<[{ value: number | null }]>((getVal) => { + const { value } = getVal(); + let formattedDate = '-'; + if (value) { + const dateStr = value.toString(); + if (dateStr.length === 8) { + formattedDate = `${dateStr.substring(6, 8)}/${dateStr.substring(4, 6)}/${dateStr.substring(0, 4)}`; + } + } + return { + render: () => `
${formattedDate}
` + }; + }); + return renderSnippet(dateSnippet, { value: row.original.entry_date ?? null }); + } + }, + { + accessorKey: "status", + header: "Estatus", + cell: ({ row }) => { + const statusSnippet = createRawSnippet<[{ status: string | null }]>((getS) => { + const { status } = getS(); + let colorClass = "bg-muted text-muted-foreground"; + if (status === 'RECIBIDO') colorClass = "bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400"; + if (status === 'PENDIENTE') colorClass = "bg-yellow-100 text-yellow-700 dark:bg-yellow-900/30 dark:text-yellow-400"; + + return { + render: () => `${status || 'S.E.'}` + }; + }); + return renderSnippet(statusSnippet, { status: row.original.status ?? null }); + } + } + ]; +} diff --git a/frontend/src/lib/components/dashboard/export/manifest/create-dialog.svelte b/frontend/src/lib/components/dashboard/export/manifest/create-dialog.svelte new file mode 100644 index 00000000..92e47893 --- /dev/null +++ b/frontend/src/lib/components/dashboard/export/manifest/create-dialog.svelte @@ -0,0 +1,171 @@ + + + + + + Nuevo Manifiesto + + Ingresa los datos generales del nuevo manifiesto de exportación. + + + +
+
+

+ Información General +

+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+ + + +
+

Logística

+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + + +
+ + + + +
+
+
+ + {#if line?.quantity} + + {/if} +
+
+ + {#if line?.quantity} + + {/if} +
+
+ +
+
+ + {#if line?.quantity} + + {/if} +
+
+ + {#if line?.quantity} + + {/if} +
+
+ +
+
+ + {#if line?.financial} + + {/if} +
+
+ + +
+
+ + +
+
+ + {#if line?.quantity} + + {/if} +
+
+ + {#if line?.quantity} + + {/if} +
+
+ +
+
+ + {#if line?.quantity} + + {/if} +
+
+ + {#if line?.quantity} + + {/if} +
+
-
- - + - - - - + + +
+
+ + {#if line?.description} + + {/if} +
+ +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+ + {#if line?.description} + + {/if} +
+
+
+ +
diff --git a/frontend/src/lib/components/dashboard/invoices/edit/items/items-tab-form.svelte b/frontend/src/lib/components/dashboard/invoices/edit/items/items-tab-form.svelte index 7f7c8758..82d25695 100644 --- a/frontend/src/lib/components/dashboard/invoices/edit/items/items-tab-form.svelte +++ b/frontend/src/lib/components/dashboard/invoices/edit/items/items-tab-form.svelte @@ -2,58 +2,137 @@ import * as Table from '$lib/components/ui/table'; import * as Dialog from '$lib/components/ui/dialog'; import { Button } from '$lib/components/ui/button'; - import { Plus, Pencil, Trash2, Loader2 } from 'lucide-svelte'; + import { Input } from '$lib/components/ui/input'; + import { Textarea } from '$lib/components/ui/textarea'; + import { Badge } from '$lib/components/ui/badge'; + import { + Plus, + Pencil, + Trash2, + Loader2, + Save as SaveIcon, + Sparkles, + Search, + PackageOpen, + Calendar, + LayoutTemplate, + X + } from 'lucide-svelte'; import { toast } from 'svelte-sonner'; import type { Invoice } from '$lib/api/dashboard/a76/invoices'; import { itemsApi, type Item } from '$lib/api/dashboard/a76/items'; import { companyStore } from '$lib/stores/company.svelte'; import ItemSheetFa from './fa/item-sheet-fa.svelte'; import ItemSheetInv from './inv/item-sheet-inv.svelte'; + import { itemPresetsApi, type ItemPreset } from '$lib/api/dashboard/a76/item-presets'; + import { Checkbox } from '$lib/components/ui/checkbox'; + import { cleanLineData } from '$lib/utils/items-logic'; - let { + let { invoice, formData = $bindable(), - exists = $bindable() - }: { + exists = $bindable(), + operationType = undefined, + invoiceType = undefined + }: { invoice: Invoice | null; formData?: any; exists?: boolean; + operationType?: number; + invoiceType?: string; } = $props(); - let imported = 0; - let net_weight = 0; - let gross_weight = 0; - + // 1. Core State let items = $state([]); let displayedItems = $state([]); + let imported = $state(0); + let net_weight = $state(0); + let gross_weight = $state(0); let itemsPerPage = 20; let currentPage = $state(1); - - // Aplanar items en líneas para la tabla - const flattenedLines = $derived( - items.flatMap(item => - (item.lines || []).map(line => ({ + + // 2. Preset State + let presets = $state([]); + let selectedPreset = $state(null); + let searchPresets = $state(''); + let isLoadingPresets = $state(false); + let isApplyingPreset = $state(false); + let showUsePresetDialog = $state(false); + // Preset Creation State + let showCreatePresetDialog = $state(false); + let createPresetName = $state(''); + let createPresetDescription = $state(''); + let builderItems: any[] = $state([]); + let isSavingPreset = $state(false); + let isTargetingPreset = $state(false); + let editingBuilderIndex = $state(null); + + // 3. Selection & Filtering State + let selectedLineIds = $state([]); + let focusedLine = $state(null); + + // 4. Derived Values (Ordered correctly to avoid TDZ) + const flattenedLines = $derived.by(() => { + const sourceItems = items?.length ? items : formData?.items || []; + return (sourceItems || []).flatMap((item: any, itemIndex: number) => { + const lines = item?.lines || []; + return lines.map((line: any, idx: number) => ({ ...line, - item_id: item.id, - reference_number: item.reference_number, - order: item.order, - warehouse: item.warehouse, - location: item.location, + id: line?.id || `${item?.id || itemIndex}-line-${line?.line_number ?? idx + 1}`, + line_number: line?.line_number ?? idx + 1, + reference_number: line?.reference_number ?? item?.reference_number, + is_subitem: line?.is_subitem ?? false, + class_code: line?.class_code ?? line?.class_id, + class_description: + line?.class_description || + line?.description?.description_spanish || + line?.description?.description_english || + '', + unit_of_measure_code: line?.quantity?.unit_of_measure || line?.unit_of_measure, + fa_data: line?.fa_data || {}, + warehouse: line?.warehouse || item?.warehouse, full_item: item - })) - ) + })); + }); + }); + + const isAllSelected = $derived( + flattenedLines.length > 0 && selectedLineIds.length === flattenedLines.length ); - let tableContainer: HTMLDivElement | undefined = $state(); + + const invoiceSystem = $derived(invoice?.system || 'scaii'); + const invoiceLabel = $derived.by(() => { + if (invoice?.invoice_number) return `Factura ${invoice.invoice_number}`; + if (invoice?.id) return `Factura ${invoice.id}`; + return 'Factura nueva'; + }); + + const filteredPresets = $derived.by(() => { + const term = searchPresets.trim().toLowerCase(); + if (!term) return presets; + return presets.filter( + (p: ItemPreset) => + p.name.toLowerCase().includes(term) || p.description?.toLowerCase().includes(term) + ); + }); + + const selectedPresetItems = $derived(selectedPreset?.items || []); + const selectedPresetCount = $derived(selectedPresetItems.length); + const activeCompanyId = $derived(companyStore?.activeCompany?.id); + const formItemsCount = $derived(formData?.items?.length || 0); + + // 5. UI State + let tableContainer = $state(); let isLoadingMore = $state(false); let isLoadingItems = $state(false); let isSaving = $state(false); - // Sheet states + // 6. Form/Sheet State let showItemSheet = $state(false); let isEditMode = $state(false); let showDeleteDialog = $state(false); let selectedItem = $state(null); - let originalItemData = $state | null>(null); // Guardar estado original para cancelar + let originalItemData = $state | null>(null); let editingItem = $state>({ invoice_id: undefined, reference_number: '', @@ -61,23 +140,51 @@ warehouse: '', location: '' }); + let builderDraft = $state({ + description: '', + quantity: 1, + unit_cost_usd: 0, + reference_number: '' + }); - // Determinar el tipo de sistema (SCAF o SCAII) - const invoiceSystem = $derived(invoice?.system || 'scaii'); // Por defecto SCAII si no se especifica + // 7. Effects + $effect(() => { + currentPage = 1; + displayedItems = flattenedLines.slice(0, itemsPerPage); + }); - // Derived value para company ID - const activeCompanyId = $derived(companyStore.activeCompany?.id); - - // Cargar items cuando la factura tenga ID $effect(() => { if (invoice?.id && activeCompanyId) { loadItems(); } }); + $effect(() => { + if (invoice?.id && activeCompanyId && formItemsCount > 0) { + loadItems(); + } + }); + + // 8. Functions + function toggleSelectAll() { + if (isAllSelected) { + selectedLineIds = []; + } else { + selectedLineIds = flattenedLines.map((l: any) => l.id.toString()); + } + } + + function toggleSelectLine(id: string) { + if (selectedLineIds.includes(id)) { + selectedLineIds = selectedLineIds.filter((i) => i !== id); + } else { + selectedLineIds = [...selectedLineIds, id]; + } + } + async function loadItems() { if (!invoice?.id || !activeCompanyId) return; - + isLoadingItems = true; try { const response = await itemsApi.listByInvoice(invoice.id, activeCompanyId); @@ -85,12 +192,13 @@ items = response.data.items || []; currentPage = 1; // Wait for derived state to update before loading items - await new Promise(resolve => setTimeout(resolve, 0)); + await new Promise((resolve) => setTimeout(resolve, 0)); loadMoreItems(); } } catch (error: any) { console.error('Error loading items:', error); - const errorMessage = error?.response?.data?.detail || 'No se pudieron cargar los items de la factura.'; + const errorMessage = + error?.response?.data?.detail || 'No se pudieron cargar los items de la factura.'; toast.error('Error al cargar items', { description: errorMessage }); @@ -106,11 +214,16 @@ isLoadingMore = false; } + function handleRowClick(line: any) { + focusedLine = line; + } + function handleScroll(e: Event) { const target = e.target as HTMLDivElement; const threshold = 100; - const scrolledToBottom = target.scrollHeight - target.scrollTop - target.clientHeight < threshold; - + const scrolledToBottom = + target.scrollHeight - target.scrollTop - target.clientHeight < threshold; + if (scrolledToBottom && !isLoadingMore && displayedItems.length < flattenedLines.length) { isLoadingMore = true; currentPage++; @@ -119,95 +232,329 @@ } function handleAdd() { - // Validar que la factura esté guardada (tiene ID) - if (!invoice?.id) { + // Validar que la factura esté guardada (tiene ID) si no estamos en modo plantilla + if (!showCreatePresetDialog && !invoice?.id) { toast.warning('Factura no guardada', { description: 'Debes guardar la factura primero antes de agregar partidas.', - duration: 5000, + duration: 5000 }); return; } - + isEditMode = false; + isTargetingPreset = showCreatePresetDialog; + editingBuilderIndex = null; showItemSheet = true; // Auto-asignar valores desde la factura con estructura completa editingItem = { - invoice_id: invoice.id, + invoice_id: invoice?.id, reference_number: '', - order: invoice.purchase_order || '', + order: invoice?.purchase_order || '', warehouse: '', location: '', - lines: [{ - line_number: 1, - // LineItem fields - part_number: undefined, - component_part_number: undefined, - class_id: undefined, - identifier: undefined, - unit_of_measure: undefined, - alternate_unit: undefined, - permit_number: undefined, - page_line: undefined, - has_certificate: false, - certificate_number: undefined, - tax_payment: false, - payment_method: undefined, - igi_amount: undefined, - is_military_mcia: false, - wildcard_field: undefined, - // Nested relations - financial: { - unit_cost_usd: undefined, - unit_cost_mxn: undefined, - unit_cost_capture: undefined, - unit_cost_commercial_usd: undefined, - value_usd: undefined, - value_mxn: undefined, - value_returned_usd: undefined, - value_returned_mxn: undefined, - customs_value_usd: undefined, - }, - quantity: { - quantity: undefined, + lines: [ + { + line_number: 1, + // LineItem fields + part_number: undefined, + component_part_number: undefined, + class_id: undefined, + identifier: undefined, unit_of_measure: undefined, - quantity_temp_export: undefined, - quantity_returned: undefined, - net_weight: undefined, - gross_weight: undefined, - package_key: undefined, - package_quantity: undefined, - package_description: undefined, - }, - customs: { - fraction: undefined, - fraction_type: undefined, - american_fraction: undefined, - origin_country: undefined, - destination_country: undefined, - advalorem: undefined, - advalorem_american: undefined, - sector: undefined, - }, - description: { - description_spanish: undefined, - description_english: undefined, - extra_description: undefined, - additional_info_spanish: undefined, - brand: undefined, - model: undefined, - has_serial: false, - eighth_rule_fraction: undefined, - eighth_rule_line: undefined, - consider_a31: false, - machinery_location: undefined, - }, - reference: { - serie_id: undefined, - }, - }] + alternate_unit: undefined, + permit_number: undefined, + page_line: undefined, + has_certificate: false, + certificate_number: undefined, + tax_payment: false, + payment_method: undefined, + igi_amount: undefined, + is_military_mcia: false, + wildcard_field: undefined, + // Nested relations + financial: { + unit_cost_usd: undefined, + unit_cost_mxn: undefined, + unit_cost_capture: undefined, + unit_cost_commercial_usd: undefined, + value_usd: undefined, + value_mxn: undefined, + value_returned_usd: undefined, + value_returned_mxn: undefined, + customs_value_usd: undefined + }, + quantity: { + quantity: undefined, + unit_of_measure: undefined, + quantity_temp_export: undefined, + quantity_returned: undefined, + net_weight: undefined, + gross_weight: undefined, + package_id: undefined, + package_quantity: undefined, + package_description: undefined + }, + customs: { + fraction: undefined, + fraction_type: undefined, + american_fraction: undefined, + origin_country: undefined, + destination_country: undefined, + advalorem: undefined, + advalorem_american: undefined, + sector: undefined + }, + description: { + description_spanish: undefined, + description_english: undefined, + extra_description: undefined, + additional_info_spanish: undefined, + brand: undefined, + model: undefined, + has_serial: false, + eighth_rule_fraction: undefined, + eighth_rule_line: undefined, + consider_a31: false, + machinery_location: undefined + }, + reference: { + serie_id: undefined + } + } + ] }; } + async function loadPresets(force = false) { + if (!activeCompanyId) return; + if (!force && isLoadingPresets) return; + isLoadingPresets = true; + try { + const response = await itemPresetsApi.list(activeCompanyId); + presets = response.data || []; + if (selectedPreset) { + selectedPreset = presets.find((p) => p.id === selectedPreset?.id) || null; + } + } catch (error) { + console.error('Error loading presets:', error); + toast.error('No se pudieron cargar las plantillas'); + } finally { + isLoadingPresets = false; + } + } + + function openUsePresetDialog() { + if (!invoice?.id) { + toast.warning('Primero guarda la factura para usar plantillas.'); + return; + } + showUsePresetDialog = true; + if (!presets.length) void loadPresets(); + } + + function openCreatePresetDialog() { + builderItems = []; + createPresetName = ''; + createPresetDescription = ''; + isTargetingPreset = false; + editingBuilderIndex = null; + showCreatePresetDialog = true; + } + + function handleEditInPreset(index: number) { + const itemToEdit = builderItems[index]; + isEditMode = true; + isTargetingPreset = true; + editingBuilderIndex = index; + editingItem = normalizeItemData(JSON.parse(JSON.stringify(itemToEdit))); + showItemSheet = true; + } + + function handleRemoveFromPreset(index: number) { + builderItems = builderItems.filter((_: any, i: number) => i !== index); + } + + function saveItemToPreset() { + // Sanitizar datos para la plantilla + const cleanedItem = JSON.parse(JSON.stringify(editingItem)); + + // Limpiar líneas para asegurar que son compatibles + if (cleanedItem.lines) { + cleanedItem.lines = cleanedItem.lines.map((line: any) => ({ + ...cleanLineData(line), + id: undefined // Las plantillas no deben tener IDs reales + })); + } + + if (editingBuilderIndex !== null) { + // Update existing item in builder + builderItems[editingBuilderIndex] = cleanedItem; + toast.success('Partida actualizada en la plantilla'); + } else { + // Add new item to builder + builderItems = [...builderItems, cleanedItem]; + toast.success('Partida agregada a la plantilla'); + } + + showItemSheet = false; + isTargetingPreset = false; + editingBuilderIndex = null; + } + + function sanitizeLineForPreset(line: any) { + const { id, item_id, created_at, updated_at, temp_id, ...rest } = line || {}; + return cleanLineData({ ...rest }); + } + + function cloneItemForPreset(item: Item) { + const { id, tenant_id, company_id, created_at, updated_at, temp_id, ...rest } = item as any; + return { + ...rest, + id: undefined, + invoice_id: undefined, + lines: (item.lines || []).map(sanitizeLineForPreset) + }; + } + + function buildManualItem(draft: any, index: number) { + return { + id: undefined, + temp_id: undefined, + invoice_id: undefined, + reference_number: draft.reference_number || undefined, + lines: [ + cleanLineData({ + line_number: index + 1, + description: { + description_spanish: draft.description || 'Sin descripción' + }, + quantity: { + quantity: Number(draft.quantity) || 0 + }, + financial: { + unit_cost_usd: + draft.unit_cost_usd !== null ? Number(draft.unit_cost_usd) || 0 : undefined + } + }) + ] + }; + } + + function handleAddManualItem() { + if (!builderDraft.description.trim()) { + toast.warning('Agrega una descripción para la partida'); + return; + } + const newItem = buildManualItem(builderDraft, builderItems.length); + builderItems = [...builderItems, newItem]; + builderDraft = { + description: '', + quantity: 1, + unit_cost_usd: 0, + reference_number: '' + }; + } + + async function applySelectedPreset() { + if (!selectedPreset) { + toast.warning('Selecciona una plantilla para aplicarla.'); + return; + } + if (!selectedPreset.items?.length) { + toast.warning('Esta plantilla no tiene partidas.'); + return; + } + + // Inject into active sheet if open + if (showItemSheet) { + const presetLines = selectedPreset.items.flatMap((item: any) => item.lines || []); + const cleanedNewLines = presetLines.map((line: any) => ({ + ...sanitizeLineForPreset(line), + id: undefined // Force new IDs + })); + + editingItem.lines = [...(editingItem.lines || []), ...cleanedNewLines]; + toast.success('Líneas inyectadas en la partida actual'); + showUsePresetDialog = false; + return; + } + + if (!invoice?.id || !activeCompanyId) { + toast.warning('Primero guarda la factura para usar plantillas.'); + return; + } + + isApplyingPreset = true; + try { + const payloads = selectedPreset.items.map((item) => ({ + ...cloneItemForPreset(item), + invoice_id: invoice.id + })); + + await Promise.all(payloads.map((payload) => itemsApi.create(activeCompanyId, payload))); + await loadItems(); + toast.success('Plantilla aplicada a la factura'); + showUsePresetDialog = false; + } catch (error) { + console.error('Error applying preset:', error); + toast.error('No se pudo aplicar la plantilla'); + } finally { + isApplyingPreset = false; + } + } + + async function saveCurrentItemsAsPreset() { + if (!createPresetName.trim()) { + toast.warning('Asigna un nombre a la plantilla'); + return; + } + if (!activeCompanyId) return; + + if (builderItems.length === 0) { + toast.warning('No hay partidas o líneas para guardar como plantilla'); + return; + } + + isSavingPreset = true; + try { + // We group everything as ONE Partida Template for injection + const lines = builderItems.flatMap((item: Item, idx: number) => { + return (item.lines || []).map((line: any) => ({ + ...cleanLineData(line), + line_number: line.line_number || idx + 1, // Ensure line_number is present + id: undefined // Ensure no IDs are saved in the preset + })); + }); + + const payloadItems = [ + { + reference_number: builderItems[0]?.reference_number || undefined, + lines: lines + } + ] as any; + + await itemPresetsApi.create(activeCompanyId, { + name: createPresetName.trim(), + description: createPresetDescription.trim() || undefined, + items: payloadItems + }); + + createPresetName = ''; + createPresetDescription = ''; + builderItems = []; + selectedLineIds = []; + builderDraft = { description: '', quantity: 1, unit_cost_usd: 0, reference_number: '' }; + toast.success('Plantilla guardada correctamente'); + await loadPresets(true); + showCreatePresetDialog = false; + } catch (error) { + console.error('Error saving preset:', error); + toast.error('No se pudo guardar la plantilla'); + } finally { + isSavingPreset = false; + } + } + function handleEdit(lineData: any) { isEditMode = true; selectedItem = lineData.full_item; @@ -223,9 +570,9 @@ // Enrich item with descriptive data for display async function enrichItemData(item: Partial) { if (!item.lines || item.lines.length === 0 || !activeCompanyId) return; - + const line = item.lines[0]; - + // Load class data if (line.class_id) { try { @@ -243,12 +590,12 @@ console.error('Error loading class data:', error); } } - + // Load part number data - if (line.part_number_id) { + if (line.part_number) { try { const response = await fetch( - `/api-sveltekit/parts/${line.part_number_id}?company_id=${activeCompanyId}`, + `/api-sveltekit/parts/${line.part_number}?company_id=${activeCompanyId}`, { method: 'GET', headers: { 'Content-Type': 'application/json' } } ); if (response.ok) { @@ -261,14 +608,14 @@ console.error('Error loading part data:', error); } } - + // Load unit of measure data if (line.unit_of_measure) { try { - const response = await fetch( - `/api-sveltekit/units-of-measure/${line.unit_of_measure}`, - { method: 'GET', headers: { 'Content-Type': 'application/json' } } - ); + const response = await fetch(`/api-sveltekit/units-of-measure/${line.unit_of_measure}`, { + method: 'GET', + headers: { 'Content-Type': 'application/json' } + }); if (response.ok) { const unitData = await response.json(); (line as any).unit_code = unitData.code; @@ -278,7 +625,7 @@ console.error('Error loading unit data:', error); } } - + // Load country data (if needed) if (line.customs?.origin_country) { try { @@ -290,14 +637,15 @@ const data = await response.json(); if (data.items && data.items.length > 0) { const country = data.items[0]; - (line.customs as any).origin_country_name = country.description || country.description_en; + (line.customs as any).origin_country_name = + country.description || country.description_en; } } } catch (error) { console.error('Error loading country data:', error); } } - + // Load fraction data (if needed) if (line.customs?.fraction) { try { @@ -316,56 +664,111 @@ console.error('Error loading fraction data:', error); } } + + // Load package data (if needed) + const packageId = line.quantity?.package_id; + if (packageId && line.quantity) { + try { + const response = await fetch('/api-sveltekit/packages', { + method: 'GET', + headers: { 'Content-Type': 'application/json' } + }); + if (response.ok) { + const data = await response.json(); + const packages = data.items || data.data || data; + if (Array.isArray(packages)) { + const pkg = packages.find((p: any) => p.id === packageId); + if (pkg) { + (line.quantity as any).package_description = pkg.description_es || pkg.description_en || pkg.key; + (line.quantity as any).package_key = pkg.key; + (line.quantity as any).package_weight_unit = pkg.weight_unit || 0; + } + } + } + } catch (error) { + console.error('Error loading package data:', error); + } + } + + // Load payment method description (if needed) + if (line.payment_method) { + try { + const response = await fetch('/api-sveltekit/payment-methods', { + method: 'GET', + headers: { 'Content-Type': 'application/json' } + }); + if (response.ok) { + const data = await response.json(); + const methods = data.items || data.data || data; + if (Array.isArray(methods)) { + const method = methods.find((m: any) => m.key === line.payment_method); + if (method) { + (line as any).payment_method_description = method.description; + } + } + } + } catch (error) { + console.error('Error loading payment method data:', error); + } + } } // Normalize numeric values from strings to numbers function normalizeItemData(item: Partial): Partial { if (item.lines && item.lines.length > 0) { - item.lines = item.lines.map(line => { + item.lines = item.lines.map((line) => { const normalizedLine = { ...line }; - + // Normalize financials if (normalizedLine.financial) { normalizedLine.financial = { ...normalizedLine.financial, - unit_cost_usd: normalizedLine.financial.unit_cost_usd != null - ? Number(normalizedLine.financial.unit_cost_usd) - : undefined, - unit_cost_mxn: normalizedLine.financial.unit_cost_mxn != null - ? Number(normalizedLine.financial.unit_cost_mxn) - : undefined, - value_usd: normalizedLine.financial.value_usd != null - ? Number(normalizedLine.financial.value_usd) - : undefined, - value_mxn: normalizedLine.financial.value_mxn != null - ? Number(normalizedLine.financial.value_mxn) - : undefined, + unit_cost_usd: + normalizedLine.financial.unit_cost_usd != null + ? Number(normalizedLine.financial.unit_cost_usd) + : undefined, + unit_cost_mxn: + normalizedLine.financial.unit_cost_mxn != null + ? Number(normalizedLine.financial.unit_cost_mxn) + : undefined, + value_usd: + normalizedLine.financial.value_usd != null + ? Number(normalizedLine.financial.value_usd) + : undefined, + value_mxn: + normalizedLine.financial.value_mxn != null + ? Number(normalizedLine.financial.value_mxn) + : undefined }; } - + // Normalize quantities if (normalizedLine.quantity) { normalizedLine.quantity = { ...normalizedLine.quantity, - quantity: normalizedLine.quantity.quantity != null - ? Number(normalizedLine.quantity.quantity) - : undefined, - net_weight: normalizedLine.quantity.net_weight != null - ? Number(normalizedLine.quantity.net_weight) - : undefined, - gross_weight: normalizedLine.quantity.gross_weight != null - ? Number(normalizedLine.quantity.gross_weight) - : undefined, - package_quantity: normalizedLine.quantity.package_quantity != null - ? Number(normalizedLine.quantity.package_quantity) - : undefined, + quantity: + normalizedLine.quantity.quantity != null + ? Number(normalizedLine.quantity.quantity) + : undefined, + net_weight: + normalizedLine.quantity.net_weight != null + ? Number(normalizedLine.quantity.net_weight) + : undefined, + gross_weight: + normalizedLine.quantity.gross_weight != null + ? Number(normalizedLine.quantity.gross_weight) + : undefined, + package_quantity: + normalizedLine.quantity.package_quantity != null + ? Number(normalizedLine.quantity.package_quantity) + : undefined }; } - + return normalizedLine; }); } - + return item; } @@ -374,70 +777,14 @@ showDeleteDialog = true; } - // Helper function to check if an object has any meaningful values - function hasValues(obj: any): boolean { - if (!obj || typeof obj !== 'object') return false; - return Object.values(obj).some(val => - val !== undefined && val !== null && val !== '' && - !(typeof val === 'object' && !hasValues(val)) - ); - } - - // Clean nested data before sending to API - function cleanLineData(line: any) { - const cleaned: any = { ...line }; - - // Helper function to convert to number or undefined - const toNumberOrUndefined = (value: any): number | undefined => { - if (value === undefined || value === null || value === '') { - return undefined; - } - const numValue = Number(value); - return (!isNaN(numValue) && isFinite(numValue)) ? numValue : undefined; - }; - - // Convert integer fields - cleaned.part_number = toNumberOrUndefined(cleaned.part_number); - cleaned.component_part_number = toNumberOrUndefined(cleaned.component_part_number); - cleaned.class_id = toNumberOrUndefined(cleaned.class_id); - cleaned.unit_of_measure = toNumberOrUndefined(cleaned.unit_of_measure); - cleaned.alternate_unit = toNumberOrUndefined(cleaned.alternate_unit); - - // Remove display-only fields - delete cleaned.class_code; - delete cleaned.class_unit_of_measure; - delete cleaned.class_description; - delete cleaned.part_number; - delete cleaned.part_description_es; - delete cleaned.part_description_en; - delete cleaned.unit_code; - delete cleaned.unit_description; - - // Remove display-only fields from nested objects - if (cleaned.customs) { - delete cleaned.customs.origin_country_name; - delete cleaned.customs.fraction_description; - } - - // Remove empty nested objects - if (!hasValues(cleaned.financial)) delete cleaned.financial; - if (!hasValues(cleaned.quantity)) delete cleaned.quantity; - if (!hasValues(cleaned.customs)) delete cleaned.customs; - if (!hasValues(cleaned.description)) delete cleaned.description; - if (!hasValues(cleaned.reference)) delete cleaned.reference; - if (!hasValues(cleaned.fa_data)) delete cleaned.fa_data; - - return cleaned; - } - async function saveNewItem() { if (!invoice?.id || !activeCompanyId) return; - + isSaving = true; try { // Clean lines data before sending const cleanedLines = (editingItem.lines || []).map(cleanLineData); - + const response = await itemsApi.create(activeCompanyId, { invoice_id: invoice.id, reference_number: editingItem.reference_number, @@ -446,7 +793,7 @@ location: editingItem.location, lines: cleanedLines }); - + // Verificar si hay errores de validación if ('error' in response) { // Manejar errores de validación (422) @@ -454,7 +801,7 @@ const validationErrors = response.validationErrors .map((err: any) => `• ${err.message}`) .join('\n'); - + toast.error('Errores de validación', { description: validationErrors, duration: 10000 @@ -467,28 +814,29 @@ isSaving = false; return; } - + // Recargar items await loadItems(); - + showItemSheet = false; toast.success('Item creado', { description: 'El item se ha creado correctamente.' }); } catch (error: any) { console.error('Error creating item:', error); - + // Manejar errores de validación (422) if (error?.response?.data?.errors && Array.isArray(error.response.data.errors)) { const validationErrors = error.response.data.errors .map((err: any) => `• ${err.message}`) .join('\n'); - + toast.error('Errores de validación', { description: validationErrors }); } else { - const errorMessage = error?.response?.data?.detail || 'No se pudo crear el item. Intenta de nuevo.'; + const errorMessage = + error?.response?.data?.detail || 'No se pudo crear el item. Intenta de nuevo.'; toast.error('Error al crear item', { description: errorMessage }); @@ -500,20 +848,20 @@ async function saveEditedItem() { if (!selectedItem?.id || !activeCompanyId) return; - + isSaving = true; try { // Clean lines data before sending const cleanedLines = (editingItem.lines || []).map(cleanLineData); - - const response = await itemsApi.update(selectedItem.id, activeCompanyId, { + + const response = await itemsApi.update(selectedItem.id, activeCompanyId, { reference_number: editingItem.reference_number, order: editingItem.order, warehouse: editingItem.warehouse, location: editingItem.location, lines: cleanedLines }); - + // Verificar si hay errores de validación if ('error' in response) { // Manejar errores de validación (422) @@ -521,7 +869,7 @@ const validationErrors = response.validationErrors .map((err: any) => `• ${err.message}`) .join('\n'); - + toast.error('Errores de validación', { description: validationErrors, duration: 10000 @@ -534,28 +882,29 @@ isSaving = false; return; } - + // Recargar items await loadItems(); - + showItemSheet = false; toast.success('Item actualizado', { description: 'El item se ha actualizado correctamente.' }); } catch (error: any) { console.error('Error updating item:', error); - + // Manejar errores de validación (422) if (error?.response?.data?.errors && Array.isArray(error.response.data.errors)) { const validationErrors = error.response.data.errors .map((err: any) => `• ${err.message}`) .join('\n'); - + toast.error('Errores de validación', { description: validationErrors }); } else { - const errorMessage = error?.response?.data?.detail || 'No se pudo actualizar el item. Intenta de nuevo.'; + const errorMessage = + error?.response?.data?.detail || 'No se pudo actualizar el item. Intenta de nuevo.'; toast.error('Error al actualizar item', { description: errorMessage }); @@ -593,8 +942,9 @@ } // 4. Costo Unitario (al menos uno debe estar presente) - const hasCost = line.financial?.unit_cost_usd || - line.financial?.unit_cost_mxn || + const hasCost = + line.financial?.unit_cost_usd || + line.financial?.unit_cost_mxn || line.financial?.unit_cost_capture; if (!hasCost) { missingFields.push('Costo Unitario (USD, MXN o Captura)'); @@ -625,7 +975,9 @@ } // Si pasa la validación, continuar con el guardado - if (isEditMode) { + if (isTargetingPreset) { + saveItemToPreset(); + } else if (isEditMode) { saveEditedItem(); } else { saveNewItem(); @@ -634,21 +986,22 @@ async function confirmDelete() { if (!selectedItem?.id || !activeCompanyId) return; - + isSaving = true; try { await itemsApi.delete(selectedItem.id, activeCompanyId); - + // Recargar items await loadItems(); - + showDeleteDialog = false; toast.success('Item eliminado', { description: 'El item se ha eliminado correctamente.' }); } catch (error: any) { console.error('Error deleting item:', error); - const errorMessage = error?.response?.data?.detail || 'No se pudo eliminar el item. Intenta de nuevo.'; + const errorMessage = + error?.response?.data?.detail || 'No se pudo eliminar el item. Intenta de nuevo.'; toast.error('Error al eliminar item', { description: errorMessage }); @@ -669,28 +1022,49 @@
-
-

Items de la Factura

- +
+
+

Items de la Factura

+

+ Carga partidas, crea o aplica plantillas sin salir de esta vista. +

+
+
+ + + +
-
- - Línea - P/S - Clase - Descripcion Clase + + Línea + P/S + Clase + Descripcion Clase Cant. Importada - U.M. + U.M. Preferencia Contiene Subpartida Partida Principal @@ -700,22 +1074,83 @@ {#if displayedItems.length === 0} - + No hay items disponibles {:else} {#each displayedItems as item (item.id)} - - {item.line_number} - {item.is_subitem ? 'S' : 'P'} - {item.class_code || '-'} - {item.class_description || '-'} - {item.quantity?.quantity || '0'} - {item.unit_of_measure_code || '-'} - {item.reference_number || '-'} - {item.fa_data?.contains_subitems ? 'Sí' : 'No'} - {item.warehouse || '-'} + handleRowClick(item)} + class="cursor-pointer transition-colors hover:bg-muted/50 {focusedLine?.id === + item.id + ? 'bg-muted ring-1 ring-primary/20 ring-inset' + : ''}" + > + {#if operationType === 1} + {item.line_number} + {item.fa_data?.search_invoice || '-'} + {item.fa_data?.search_line || '-'} + {item.is_subitem ? 'S' : 'P'} + {item.quantity?.quantity || '0'} + {item.class_code || '-'} + {item.part_number || '-'} + + {item.description?.description_spanish || '-'} + + {item.fa_data?.contains_subitems ? 'Sí' : 'No'} + {item.warehouse || '-'} + {:else if invoiceType === 'CR'} + {item.line_number} + {item.fa_data?.search_invoice || '-'} + {item.fa_data?.search_line || '-'} + {item.is_subitem ? 'S' : 'P'} + {item.quantity?.quantity || '0'} + {item.class_code || '-'} + {item.part_number || '-'} + + {item.description?.description_spanish || '-'} + + {item.fa_data?.contains_subitems ? 'Sí' : 'No'} + {item.warehouse || '-'} + {:else if invoiceType === 'REP' || invoiceType === 'REPAR'} + {item.line_number} + {item.fa_data?.search_invoice || '-'} + {item.fa_data?.search_line || '-'} + {item.is_subitem ? 'S' : 'P'} + {item.class_code || '-'} + {item.part_number || '-'} + + {item.description?.description_spanish || '-'} + + {item.quantity?.quantity || '0'} + {item.unit_of_measure_code || '-'} + {item.reference_number || '-'} + {item.fa_data?.contains_subitems ? 'Sí' : 'No'} + {item.warehouse || '-'} + {:else} + {item.line_number} + {item.is_subitem ? 'S' : 'P'} + {item.class_code || '-'} + {item.class_description || '-'} + {item.quantity?.quantity || '0'} + {item.unit_of_measure_code || '-'} + {item.reference_number || '-'} + {item.fa_data?.contains_subitems ? 'Sí' : 'No'} + {item.warehouse || '-'} + {/if}
{#if flattenedLines.length > 0} -
+
Mostrando {displayedItems.length} de {flattenedLines.length} líneas
{/if}
- -
-
-

Cantidades:

+ +
+ {#if operationType === 1} + +
+

+ Descripción en español: +

+
+ {#if focusedLine} +

+ {focusedLine.description?.description_spanish || 'Sin descripción disponible.'} +

+ {:else} +

+ Selecciona una fila para ver la descripción. +

+ {/if} +
+
+ {/if} + + +
-
-
- Partidas: {items.length || 0} -
-
- Bultos: 0 +

Cantidades:

+
+
+
+ Partidas: {items.length || 0} +
+
+ Bultos: 0 +
-
-
- Importada: {imported || 0}
- Peso neto: {net_weight || 0}
- Peso bruto: {gross_weight || 0}
+
+ Importada:{imported || 0}
+ Peso neto: {net_weight || 0}
+ Peso bruto: {gross_weight || 0}
+
+ +

+ Valores de importacion: +

+ Dolares:0 USD
+ Pesos: 0 MXN
+ De Captura: 0 USD + +

+ spacer +

+ + Aduana:0 USD
+ Aduana: 0 MXN
- -

Valores de importacion:

- Dolares: 0 USD
- Pesos: 0 MXN
- De Captura: 0 USD - -

spacer

- - Aduana: 0 USD
- Aduana: 0 MXN
- - -{#if invoiceSystem === 'fixed_asset'} - -{:else} - -{/if} - - + Confirmar Eliminación @@ -811,12 +1249,17 @@ - - + +
+
+ + +
+ +
+
+
+ + +
+
+ +
+ {#if isLoadingPresets} +
+ + Cargando... +
+ {:else if filteredPresets.length === 0} +
+ +

No se encontraron plantillas

+
+ {:else} + {#each filteredPresets as preset} + + {/each} + {/if} +
+
+ + +
+ {#if !selectedPreset} +
+
+ +
+

Selecciona una plantilla para ver sus detalles

+
+ {:else} +
+ +
+
+

+ {selectedPreset.name} +

+

+ {selectedPreset.description || 'Sin descripción disponible.'} +

+
+
+
+ Creada +
+
+ {selectedPreset.created_at + ? new Date(selectedPreset.created_at).toLocaleDateString(undefined, { + dateStyle: 'long' + }) + : '-'} +
+
+
+ + +
+ + + + # + Descripción del Item + Cant. + Costo (USD) + + + + {#if selectedPresetItems.length === 0} + + +
+ + Esta plantilla no contiene items. +
+
+
+ {:else} + {#each selectedPresetItems as item, i} + + + {i + 1} + + +
+ + {item.lines?.[0]?.description?.description_spanish || + 'Sin descripción'} + + {#if item.reference_number} + + REF: {item.reference_number} + + {/if} +
+
+ + {item.lines?.[0]?.quantity?.quantity || 0} + + + ${(item.lines?.[0]?.financial?.unit_cost_usd || 0).toLocaleString( + undefined, + { minimumFractionDigits: 2 } + )} + +
+ {/each} + {/if} +
+
+
+
+ {/if} +
+
+ + +
+ + +
+ + + + { + if (!open) { + createPresetName = ''; + createPresetDescription = ''; + } + }} +> + + + Crear plantilla + Guarda los elementos actuales como una plantilla reutilizable para inyectar en otras + partidas. + + +
+
+
+ + +
+
+ +