
    AVh                    n   d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z
 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZm Z m!Z! ddl"m#Z#  edddddddddddddddd d!d"d#d$      Z$dd%e#e!ejJ                  f   d&e#e!ejL                  f   d'e#e!e$f   fd(Z'  ed)       ejP                  e'            Z)d%e#e!ejJ                  f   d&e#e!ejL                  f   d'e#e!e$f   fd*Z*dd%e#e!ejJ                  f   d+e#e!ejV                  f   fd,Z,  ed-       ejP                  e,            Z-d%e#e!ejJ                  f   d+e#e!ejV                  f   fd.Z.dd%e#e!ejJ                  f   d/e#e!ejL                  f   fd0Z/  ed1       ejP                  e/            Z0d%e#e!ejJ                  f   d/e#e!ejL                  f   fd2Z1 ed3ddddddddddddddd d!d"d#d$      Z2dd%e#e!ejJ                  f   d4e#e!ejV                  f   d5e2d+e#e!e2f   fd6Z3  ed7       ejP                  e3            Z4d%e#e!ejJ                  f   d4e#e!ejV                  f   d5e2d+e#e!e2f   fd8Z5g d9d:d:dfd;e6d<e7d=e7d+e#e!ejJ                  f   fd>Z8  ed?       ejP                  e8            Z9d;e6d<e7d=e7d+e#e!ejJ                  f   fd@Z:dd%e#e!ejJ                  f   dAe;fdBZ<  edC       ejP                  e<            Z=d%e#e!ejJ                  f   dAe;fdDZ>dd%e#e!ejJ                  f   d+e#e!ejV                  f   fdEZ?  edF       ejP                  e?            Z@d%e#e!ejJ                  f   d+e#e!ejV                  f   fdGZA edH ZBdd%e#e!ejJ                  f   dIe#e!ejJ                  f   dJe#e!eBf   dKe6fdLZC  edM       ejP                  eC            ZDd%e#e!ejJ                  f   dIe#e!ejJ                  f   dJe#e!eBf   dKe6fdNZEdd%e#e!ejJ                  f   d+e#e!ejV                  f   fdOZF  edP       ejP                  eF            ZGd%e#e!ejJ                  f   d+e#e!ejV                  f   fdQZH ej                  dRg dS      ZJdd%e#e!ejJ                  f   dTe#e!ejV                  f   dUe;dVe;dWe6f
dXZK  edY       ejP                  eK            ZLd%e#e!ejJ                  f   dTe#e!ejV                  f   dUe;dVe;dWe6f
dZZM ed[ddddddddddddddd d!d"d#d$      ZNdd5eNd<e7d=e7d\e7d+e#e!ejJ                  f   f
d]ZO  ed^       ejP                  eO            ZPd5eNd<e7d=e7d\e7d+e#e!ejJ                  f   f
d_ZQdd%e#e!ejJ                  f   fd`ZR  eda       ejP                  eR            ZSd%e#e!ejJ                  f   fdbZT edc ZUej                  ej                   edd      ddee#e!eUf   dfe#e!ejV                  f   dge6fdh                     ZX  edi       ejP                  eX            ZYeXj                  j                  Z\dee#e!eUf   dfe#e!ejV                  f   dge6fdjZ] edk Z^ej                  ej                   edl      ddme#e e!   ejV                  f   dee#e e!   e^f   d+e#e!e^f   fdn                     Z_  edo       ejP                  e_            Z`e_j                  j                  Zadme#e e!   ejV                  f   dee#e e!   e^f   d+e#e!e^f   fdpZbg d9d:d:dfd;e6d<e7d=e7d+e#e!ejJ                  f   fdqZc  edr       ejP                  ec            Zdd;e6d<e7d=e7d+e#e!ejJ                  f   fdsZeg d9d:d:dfd;e6d<e7d=e7d+e#e!ej                  f   fdtZg  edu       ejP                  eg            Zhd;e6d<e7d=e7d+e#e!ej                  f   fdvZiddwe#e!ej                  f   d+e#e!ejJ                  f   fdxZj  edy       ejP                  ej            Zkdwe#e!ej                  f   d+e#e!ejJ                  f   fdzZl ed{ Zmdd|e#e!emf   d+e#e!ejJ                  f   fd}Zn  ed~       ejP                  en            Zod|e#e!emf   d+e#e!ejJ                  f   fdZp ed Zqdd|e#e!eqf   d+e#e!ej                  f   fdZr  ed       ejP                  er            Zsd|e#e!eqf   d+e#e!ej                  f   fdZt ed Zudd%e#e!ejJ                  f   d5eud+e#e!euf   fdZv  ed       ejP                  ev            Zwd%e#e!ejJ                  f   d5eud+e#e!euf   fdZxdd;e6de6d<e7d=e7fdZy  ed       ejP                  ey            Zzd;e6de6d<e7d=e7fdZ{dd;e6de6d<e7d=e7d+e#e!ejV                  f   f
dZ|  ed       ejP                  e|            Z}d;e6de6d<e7d=e7d+e#e!ejV                  f   f
dZ~dde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZ  ed       ejP                  e            Zde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZdd;e6de6d<e7d=e7d+e#e!ejV                  f   f
dZ  ed       ejP                  e            Zd;e6de6d<e7d=e7d+e#e!ejV                  f   f
dZdde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZ  ed       ejP                  e            Zde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZdde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZ  ed       ejP                  e            Zde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZ ej                  dddJg      Zddme#e!ejV                  f   d;e6de6d<e7d=e7f
dZ  ed       ejP                  e            Zdme#e!ejV                  f   d;e6de6d<e7d=e7f
dZdd;e6de6d<e7d=e7fdZ  ed       ejP                  e            Zd;e6de6d<e7d=e7fdZdd;e6de6d<e7d=e7d+e#e!ejV                  f   f
dZ  ed       ejP                  e            Zd;e6de6d<e7d=e7d+e#e!ejV                  f   f
dZdde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZ  ed       ejP                  e            Zde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZdd;e6de6d<e7d=e7d+e#e!ejV                  f   f
dZ  ed       ejP                  e            Zd;e6de6d<e7d=e7d+e#e!ejV                  f   f
dZdde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZ  ed       ejP                  e            Zde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZdde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZ  ed       ejP                  e            Zde#e!ejL                  f   dme#e!ejV                  f   d;e6de6d<e7d=e7fdZ ej                  dddJg      Zddme#e!ejV                  f   d;e6de6d<e7d=e7f
dZ  ed       ejP                  e            Zdme#e!ejV                  f   d;e6de6d<e7d=e7f
dZg d9d:d:dfd;e6d<e7d=e7d+e#e!ejJ                  f   fdZ  ed       ejP                  e            Zd;e6d<e7d=e7d+e#e!ejJ                  f   fdZg d9d:d:dfd;e6d<e7d=e7d+e#e!ej                  f   fdZ  ed       ejP                  e            Zd;e6d<e7d=e7d+e#e!ej                  f   fdZ ed Zddme#e e!   ejV                  f   dee#e e!   ef   d+e#e!ef   fdZ  ed       ejP                  e            Zdme#e e!   ejV                  f   dee#e e!   ef   d+e#e!ef   fdZg d9d:d:dfd;e6d<e7d=e7d+e#e!ejJ                  f   fdZ  ed       ejP                  e            Zd;e6d<e7d=e7d+e#e!ejJ                  f   fdZg d9d:d:dfd;e6d<e7d=e7d+e#e!ej                  f   fdÄZ  edī       ejP                  e            Zd;e6d<e7d=e7d+e#e!ej                  f   fdńZdd%e#e!ejJ                  f   dAe;fdƄZ  edǫ       ejP                  e            Zd%e#e!ejJ                  f   dAe;fdȄZdd%e#e!ej                  f   dAe;fdɄZ  edʫ       ejP                  e            Zd%e#e!ej                  f   dAe;fd˄Zdd%e#e!ejJ                  f   dWe6fd̄Z  edͫ       ejP                  e            Zd%e#e!ejJ                  f   dWe6fd΄Zdd%e#e!ejJ                  f   de#e!ejV                  f   dWe6fdЄZ  edѫ       ejP                  e            Zd%e#e!ejJ                  f   de#e!ejV                  f   dWe6fd҄Zdd%e#e!ej                  f   de#e!ejV                  f   dWe6fdӄZ  edԫ       ejP                  e            Zd%e#e!ej                  f   de#e!ejV                  f   dWe6fdՄZÐdd%e#e!ejJ                  f   de#e!ejV                  f   dWe6fdքZ  ed׫       ejP                  eī            Zd%e#e!ejJ                  f   de#e!ejV                  f   dWe6fd؄ZƐdd%e#e!ej                  f   de#e!ejV                  f   dWe6fdلZ  edګ       ejP                  eǫ            Zd%e#e!ej                  f   de#e!ejV                  f   dWe6fdۄZɐdd%e#e!ej                  f   dWe6fd܄Z  edݫ       ejP                  eʫ            Zd%e#e!ej                  f   dWe6fdބZ̐dd%e#e!ejJ                  f   dWe6fd߄Z  ed       ejP                  eͫ            Zd%e#e!ejJ                  f   dWe6fdZϐdd%e#e!ejJ                  f   dWe6fdZ  ed       ejP                  eЫ            Zd%e#e!ejJ                  f   dWe6fdZҐdd%e#e!ej                  f   dWe6fdZ  ed       ejP                  eӫ            Zd%e#e!ej                  f   dWe6fdZՐdd%e#e!ej                  f   dWe6fdZ  ed       ejP                  e֫            Zd%e#e!ej                  f   dWe6fdZؐdd%e#e!ejJ                  f   d+e#e!ej                  f   fdZ  ed       ejP                  eګ            Zd%e#e!ejJ                  f   d+e#e!ej                  f   fdZܐdd%e#e!ej                  f   d+e#e!ej                  f   fdZ  ed       ejP                  eݫ            Zd%e#e!ej                  f   d+e#e!ej                  f   fdZߐdd%e#e!ejJ                  f   d+e#e!ejV                  f   fdZ  ed       ejP                  e            Zd%e#e!ejJ                  f   d+e#e!ejV                  f   fdZdd%e#e!ej                  f   d+e#e!ejV                  f   fdZ  ed       ejP                  e            Zd%e#e!ej                  f   d+e#e!ejV                  f   fdZg d9dddd:d:dfd;e6de6de6de6d<e7d=e7d+e#e!ejJ                  f   fdZ  ed       ejP                  e            Zd;e6de6de6de6d<e7d=e7d+e#e!ejJ                  f   fdZg d9dddd:d:dfd;e6de6de6de6d<e7d=e7d+e#e!ej                  f   fdZ  ed       ejP                  e            Zd;e6de6de6de6d<e7d=e7d+e#e!ej                  f   fdZdd e7de6dede6de6de6de7d+e#e!ejJ                  f   fdZ  ed       ejP                  e            Zd e7de6dede6de6de6de7d+e#e!ejJ                  f   fd	Z ed
ddddddddddddddd d!d"d#d$      Zdd%e#e!ej                  f   d&e#e!ejL                  f   d'e#e!ef   fdZ  ed       ejP                  e            Zd%e#e!ej                  f   d&e#e!ejL                  f   d'e#e!ef   fdZdd%e#e!ej                  f   d+e#e!ejV                  f   fdZ  ed       ejP                  e            Zd%e#e!ej                  f   d+e#e!ejV                  f   fdZdd%e#e!ej                  f   d/e#e!ejL                  f   fdZ  ed       ejP                  e            Zd%e#e!ej                  f   d/e#e!ejL                  f   fdZ edddddddddddddddd d!d"d#d$      Zdd%e#e!ej                  f   d4e#e!ejV                  f   d5ed+e#e!ef   fdZ  ed       ejP                  e            Zd%e#e!ej                  f   d4e#e!ejV                  f   d5ed+e#e!ef   fdZ edddddddddddddddd d!d"d#d$      Zdd5ed<e7d=e7d\e7d+e#e!ej                  f   f
dZ  ed       ejP                  e            Z d5ed<e7d=e7d\e7d+e#e!ej                  f   f
dZ edddddddddddddddd d!d"d#d$      Zdd%e#e!ejJ                  f   d&e#e!ejL                  f   de#e!ejL                  f   de#e!ef   de#e!ejL                  f   d e;fd!Z  ed"       ejP                  e            Zd%e#e!ejJ                  f   d&e#e!ejL                  f   de#e!ejL                  f   de#e!ef   de#e!ejL                  f   d e;fd#Z ej                  d$g d%      Z ed&ddddddddddddddd d!d"d#d$      Zdd%e#e!ejJ                  f   d4e#e!ejV                  f   d5efd'Z  ed(       ejP                  e            Z	d%e#e!ejJ                  f   d4e#e!ejV                  f   d5efd)Z
 ed*ddddddddddddddd d!d"d#d$      Zdd5ed<e7d=e7d\e7d+e#e!ejJ                  f   f
d+Z  ed,       ejP                  e            Zd5ed<e7d=e7d\e7d+e#e!ejJ                  f   f
d-Z ed. Zdd/ed0e7d+e#e!ejJ                  f   fd1Z  ed2       ejP                  e            Zd/ed0e7d+e#e!ejJ                  f   fd3Zdd%e#e!ejJ                  f   fd4Z  ed5       ejP                  e            Zd%e#e!ejJ                  f   fd6Zdd%e#e!ej                  f   fd7Z  ed8       ejP                  e            Zd%e#e!ej                  f   fd9Z ed: Zdd%e#e!ejJ                  f   d/ed+e#e!ef   fd;Z  ed<       ejP                  e            Zd%e#e!ejJ                  f   d/ed+e#e!ef   fd=Z ed> Zdd%e#e!ej                  f   d/ed+e#e!ef   fd?Z  ed@       ejP                  e            Zd%e#e!ej                  f   d/ed+e#e!ef   fdAZ  edB Z!dd%e#e!ejJ                  f   dCe#e!e!f   dDe;d+e#e!e!f   fdEZ"  edF       ejP                  e"            Z#d%e#e!ejJ                  f   dCe#e!e!f   dDe;d+e#e!e!f   fdGZ$ edH Z%dd%e#e!ej                  f   dCe#e!e%f   dDe;d+e#e!e%f   fdIZ&  edJ       ejP                  e&            Z'd%e#e!ej                  f   dCe#e!e%f   dDe;d+e#e!e%f   fdKZ( edL Z)ddMe#e!ejV                  f   d/e)d0e7d+e#e!ej                  f   fdNZ*  edO       ejP                  e*            Z+dMe#e!ejV                  f   d/e)d0e7d+e#e!ej                  f   fdPZ,dd;e6de6d<e7d=e7fdQZ-  edR       ejP                  e-            Z.d;e6de6d<e7d=e7fdSZ/dd;e6de6d<e7d=e7fdTZ0  edU       ejP                  e0            Z1d;e6de6d<e7d=e7fdVZ2ddWe#e!ejV                  f   d;e6de6d<e7d=e7f
dXZ3  edY       ejP                  e3            Z4dWe#e!ejV                  f   d;e6de6d<e7d=e7f
dZZ5dd;e6de6d<e7d=e7d+e#e!ejV                  f   f
d[Z6  ed\       ejP                  e6            Z7d;e6de6d<e7d=e7d+e#e!ejV                  f   f
d]Z8 ed^ Z9dd_e#e!ejV                  f   d5e9d`e;dae;dbe7d+e#e!ejJ                  f   fdcZ:  edd       ejP                  e:            Z;d_e#e!ejV                  f   d5e9d`e;dae;dbe7d+e#e!ejJ                  f   fdeZ<dd%e#e!ejJ                  f   fdfZ=  edg       ejP                  e=            Z>d%e#e!ejJ                  f   fdhZ?dd%e#e!ejJ                  f   fdiZ@  edj       ejP                  e@            ZAd%e#e!ejJ                  f   fdkZBdd%e#e!ej                  f   fdlZC  edm       ejP                  eC            ZDd%e#e!ej                  f   fdnZE ej                  dod|dpg      ZF edq ZGdd%e#e!ejJ                  f   dre#e!ej                  f   d5eGfdsZI  edt       ejP                  eI            ZJd%e#e!ejJ                  f   dre#e!ej                  f   d5eGfduZK ej                  dvd|dpg      ZL edw ZMdd%e#e!ejJ                  f   dre#e!ej                  f   d5eMfdxZN  edy       ejP                  eN            ZOd%e#e!ejJ                  f   dre#e!ej                  f   d5eMfdzZP ej                  d{d|dpg      ZQ ed| ZRdd%e#e!ej                  f   dre#e!ej                  f   d5eRfd}ZS  ed~       ejP                  eS            ZTd%e#e!ej                  f   dre#e!ej                  f   d5eRfdZU ed ZVdd%e#e!ejJ                  f   dme#e!ejV                  f   dre#e!ej                  f   d5eVd+e#e!eVf   f
dZW  ed       ejP                  eW            ZXd%e#e!ejJ                  f   dme#e!ejV                  f   dre#e!ej                  f   d5eVd+e#e!eVf   f
dZY ed ZZdd%e#e!ejJ                  f   dme#e!ejV                  f   dre#e!ej                  f   d5eZd+e#e!eZf   f
dZ[  ed       ejP                  e[            Z\d%e#e!ejJ                  f   dme#e!ejV                  f   dre#e!ej                  f   d5eZd+e#e!eZf   f
dZ] ed Z^dd%e#e!ej                  f   dme#e!ejV                  f   dre#e!ej                  f   d5e^d+e#e!e^f   f
dZ_  ed       ejP                  e_            Z`d%e#e!ej                  f   dme#e!ejV                  f   dre#e!ej                  f   d5e^d+e#e!e^f   f
dZadd%e#e!ejJ                  f   dre#e!ej                  f   de7d+e#e!ejJ                  f   fdZb  ed       ejP                  eb            Zcd%e#e!ejJ                  f   dre#e!ej                  f   de7d+e#e!ejJ                  f   fdZddd%e#e!ejJ                  f   dre#e!ej                  f   de7d+e#e!ejJ                  f   fdZe  ed       ejP                  ee            Zfd%e#e!ejJ                  f   dre#e!ej                  f   de7d+e#e!ejJ                  f   fdZg ej                  dddg      Zhdd%e#e!ej                  f   dre#e!ej                  f   de7fdZi  ed       ejP                  ei            Zjd%e#e!ej                  f   dre#e!ej                  f   de7fdZk ej                  dddg      Zldd%e#e!ej                  f   dre#e!ej                  f   de#e!ejV                  f   de7fdZm  ed       ejP                  em            Znd%e#e!ej                  f   dre#e!ej                  f   de#e!ejV                  f   de7fdZo ed Zpdd%e#e!ejJ                  f   dre#e!ej                  f   d5epd+e#e!epf   fdZq  ed       ejP                  eq            Zrd%e#e!ejJ                  f   dre#e!ej                  f   d5epd+e#e!epf   fdZs ed Ztdd%e#e!ejJ                  f   dWe#e!ejV                  f   dre#e!ej                  f   d5etd+e#e!etf   f
dZu  ed       ejP                  eu            Zvd%e#e!ejJ                  f   dWe#e!ejV                  f   dre#e!ej                  f   d5etd+e#e!etf   f
dZw ed Zxdd%e#e!ejJ                  f   dWe#e!ejV                  f   dre#e!ej                  f   d5exd+e#e!exf   f
dZy  ed       ejP                  ey            Zzd%e#e!ejJ                  f   dWe#e!ejV                  f   dre#e!ej                  f   d5exd+e#e!exf   f
dZ{ ed Z|dd%e#e!ej                  f   dWe#e!ejV                  f   dre#e!ej                  f   d5e|d+e#e!e|f   f
dZ}  ed       ejP                  e}            Z~d%e#e!ej                  f   dWe#e!ejV                  f   dre#e!ej                  f   d5e|d+e#e!e|f   f
dZ ed Zdd%e#e!ejJ                  f   dme#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZ  ed       ejP                  e            Zd%e#e!ejJ                  f   dme#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZ ed Zdd%e#e!ejJ                  f   dme#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZ  ed       ejP                  e            Zd%e#e!ejJ                  f   dme#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZ ed Zdd%e#e!ej                  f   dme#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZ  ed       ejP                  e            Zd%e#e!ej                  f   dme#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZdd%e#e!ejJ                  f   dre#e!ej                  f   d+e#e!ejV                  f   fdZ  ed       ejP                  e            Zd%e#e!ejJ                  f   dre#e!ej                  f   d+e#e!ejV                  f   fdZdd%e#e!ejJ                  f   dre#e!ej                  f   d+e#e!ejV                  f   fdZ  ed       ejP                  e            Zd%e#e!ejJ                  f   dre#e!ej                  f   d+e#e!ejV                  f   fdZdd%e#e!ej                  f   dre#e!ej                  f   d+e#e!ejV                  f   fdZ  ed       ejP                  e            Zd%e#e!ej                  f   dre#e!ej                  f   d+e#e!ejV                  f   fdZ edÎ Zdd%e#e!ejJ                  f   d|e#e!ef   dpe#e!ejL                  f   dre#e!ej                  f   d+e#e!ej                  f   f
dĄZ  edū       ejP                  e            Zd%e#e!ejJ                  f   d|e#e!ef   dpe#e!ejL                  f   dre#e!ej                  f   d+e#e!ej                  f   f
dƄZ edǎ Zdd%e#e!ejJ                  f   d|e#e!ef   dpe#e!ejL                  f   dre#e!ej                  f   d+e#e!ej                  f   f
dȄZ  edɫ       ejP                  e            Zd%e#e!ejJ                  f   d|e#e!ef   dpe#e!ejL                  f   dre#e!ej                  f   d+e#e!ej                  f   f
dʄZ edˎ Zdd%e#e!ej                  f   d|e#e!ef   dpe#e!ejL                  f   dre#e!ej                  f   d+e#e!ej                  f   f
d̄Z  edͫ       ejP                  e            Zd%e#e!ej                  f   d|e#e!ef   dpe#e!ejL                  f   dre#e!ej                  f   d+e#e!ej                  f   f
d΄Z edώ Zdd%e#e!ejJ                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   fdЄZ  edѫ       ejP                  e            Zd%e#e!ejJ                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   fd҄Z edӎ Zdd_e#e!ejV                  f   d5ed`e;dae;dbe7d+e#e!ejJ                  f   fdԄZ  edի       ejP                  e            Zd_e#e!ejV                  f   d5ed`e;dae;dbe7d+e#e!ejJ                  f   fdքZ ej                  dd%dg      Z edَ Zdd_e#e!ejV                  f   d5ed`e;dae;de;dbe7fdۄZ  edܫ       ejP                  e            Zd_e#e!ejV                  f   d5ed`e;dae;de;dbe7fd݄Z edގ Zdd%e#e!ejJ                  f   dWe#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
d߄Z  ed       ejP                  e            Zd%e#e!ejJ                  f   dWe#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZ ed Zdd%e#e!ejJ                  f   dWe#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZ  ed       ejP                  e            Zd%e#e!ejJ                  f   dWe#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZ ed Zdd%e#e!ej                  f   dWe#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZ  ed       ejP                  e            Zd%e#e!ej                  f   dWe#e!ejV                  f   d|e#e!ef   dre#e!ej                  f   d+e#e!ej                  f   f
dZdd;e6de6d<e7d=e7fdZ  ed       ejP                  e            Zd;e6de6d<e7d=e7fdZy(  zUPython wrappers around TensorFlow ops.

This file is MACHINE GENERATED! Do not edit.
    N)
pywrap_tfe)context)core)execute)dtypes)annotation_types)op_def_registry)ops)op_def_library)deprecated_endpoints)dispatch)	tf_export)TypeVarListAny)	Annotated!TV_AccumulatorApplyGradient_dtype_atypes.BFloat16_atypes.Complex128_atypes.Complex64_atypes.Float32_atypes.Float64_atypes.Half_atypes.Int16_atypes.Int32_atypes.Int64_atypes.Int8_atypes.QInt16_atypes.QInt32_atypes.QInt8_atypes.QUInt16_atypes.QUInt8_atypes.UInt16_atypes.UInt32_atypes.UInt64_atypes.UInt8handle
local_stepgradientc                     t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| |||      \  }}}}|S )a  Applies a gradient to a given accumulator.

  Does not add if local_step is lesser than the accumulator's global_step.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a accumulator.
    local_step: A `Tensor` of type `int64`.
      The local_step value at which the gradient was computed.
    gradient: A `Tensor`. Must be one of the following types: `float32`, `float64`, `int32`, `uint8`, `int16`, `int8`, `complex64`, `int64`, `qint8`, `quint8`, `qint32`, `bfloat16`, `qint16`, `quint16`, `uint16`, `complex128`, `half`, `uint32`, `uint64`.
      A tensor of the gradient to be accumulated.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  Vaccumulator_apply_gradient op does not support eager execution. Arg 'handle' is a ref.AccumulatorApplyGradientr'   r(   r)   name_contextr   _thread_local_datais_eagerRuntimeError_op_def_library_apply_op_helper)	r'   r(   r)   r.   _ctxtld__op_outputss	            W/home/dcms/DCMS/lib/python3.12/site-packages/tensorflow/python/ops/gen_data_flow_ops.pyaccumulator_apply_gradientr<      sh      
			0h..0$#\\
o
pp'88"6j-5DB!QX 
*    z raw_ops.AccumulatorApplyGradientc                     t        d      )Nr+   r3   )r'   r(   r)   r.   ctxs        r;   )accumulator_apply_gradient_eager_fallbackrA   7   s    mnnr=   returnc                 X   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| |      \  }}}}|dd }t        j                         r&d}|j                  }	t        j                  d|	||       |\  }|S )zReturns the number of gradients aggregated in the given accumulators.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to an accumulator.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  Waccumulator_num_accumulated op does not support eager execution. Arg 'handle' is a ref.AccumulatorNumAccumulatedr'   r.   N r0   r   r1   r2   r3   r4   r5   _executemust_record_gradientinputsrecord_gradient
r'   r.   r6   r7   r8   r9   r:   _result_attrs_inputs_flats
             r;   accumulator_num_accumulatedrQ   :   s     
			0h..0$#\\
p
qq'88#F?!QXQK'""$F::L#\67D('	.r=   z!raw_ops.AccumulatorNumAccumulatedc                     t        d      )NrD   r?   r'   r.   r@   s      r;   *accumulator_num_accumulated_eager_fallbackrT   W       noor=   new_global_stepc                     t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| ||      \  }}}}|S )a  Updates the accumulator with a new value for global_step.

  Logs warning if the accumulator's value is already higher than
  new_global_step.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to an accumulator.
    new_global_step: A `Tensor` of type `int64`.
      The new global_step value to set.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  Waccumulator_set_global_step op does not support eager execution. Arg 'handle' is a ref.AccumulatorSetGlobalStepr'   rV   r.   r/   )r'   rV   r.   r6   r7   r8   r9   r:   s           r;   accumulator_set_global_stepr[   Z   sf     
			0h..0$#\\
p
qq'88"64C)-/!QX 
*r=   z raw_ops.AccumulatorSetGlobalStepc                     t        d      )NrX   r?   )r'   rV   r.   r@   s       r;   *accumulator_set_global_step_eager_fallbackr]   v   rU   r=    TV_AccumulatorTakeGradient_dtypenum_requireddtypec                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }t        j                  d| |||      \  }}}}|dd }	t        j                         r7d|j                  d      f}
|j                  }t        j                  d||
|	       |	\  }	|	S )a   Extracts the average gradient in the given ConditionalAccumulator.

  The op blocks until sufficient (i.e., more than num_required)
  gradients have been accumulated.  If the accumulator has already
  aggregated more than num_required gradients, it returns the average of
  the accumulated gradients.  Also automatically increments the recorded
  global_step in the accumulator by 1, and resets the aggregate to 0.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to an accumulator.
    num_required: A `Tensor` of type `int32`.
      Number of gradients required before we return an aggregate.
    dtype: A `tf.DType` from: `tf.float32, tf.float64, tf.int32, tf.uint8, tf.int16, tf.int8, tf.complex64, tf.int64, tf.qint8, tf.quint8, tf.qint32, tf.bfloat16, tf.qint16, tf.quint16, tf.uint16, tf.complex128, tf.half, tf.uint32, tf.uint64`.
      The data type of accumulated gradients. Needs to correspond to the type
      of the accumulator.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `dtype`.
  Uaccumulator_take_gradient op does not support eager execution. Arg 'handle' is a ref.r`   AccumulatorTakeGradientr'   r_   r`   r.   Nr0   r   r1   r2   r3   rI   	make_typer4   r5   rJ   _get_attr_typerK   rL   r'   r_   r`   r.   r6   r7   r8   r9   r:   rN   rO   rP   s               r;   accumulator_take_gradientri   {   s    * 
			0h..0$#\\
n
oo


UG
,%'88!&|).T;!QX QK'""$s))'23F::L!<B('	.r=   zraw_ops.AccumulatorTakeGradientc                     t        d      )Nrb   r?   r'   r_   r`   r.   r@   s        r;   (accumulator_take_gradient_eager_fallbackrl      s    lmmr=    capacity	containershared_namec                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        | t        t        f      st        d| z        | D cg c]  }t        j                  |d       } }|g }t        |t        t        f      st        d|z        |D 	cg c]  }	t        j                  |	d       }}	|d}t        j                  |d      }|d	}t        j                  |d
      }|d	}t        j                  |d      }t        j                  d| |||||      \  }
}
}}|dd }t        j                          r{d|j#                  d      d|j#                  d      d|j%                  d      d
|j#                  d
      d|j#                  d      f
}|j&                  }t        j(                  d|||       |\  }|S c c}w c c}	w )a  Defines a barrier that persists across different graph executions.

  A barrier represents a key-value map, where each key is a string, and
  each value is a tuple of tensors.

  At runtime, the barrier contains 'complete' and 'incomplete'
  elements. A complete element has defined tensors for all components of
  its value tuple, and may be accessed using BarrierTakeMany. An
  incomplete element has some undefined components in its value tuple,
  and may be updated using BarrierInsertMany.

  Args:
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a value.
    shapes: An optional list of shapes (each a `tf.TensorShape` or list of `ints`). Defaults to `[]`.
      The shape of each component in a value. Each shape must be 1 in the
      first dimension. The length of this attr must be the same as the length of
      component_types.
    capacity: An optional `int`. Defaults to `-1`.
      The capacity of the barrier.  The default capacity is MAX_INT32,
      which is the largest capacity of the underlying queue.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this barrier is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this barrier will be shared under the given name
      across multiple sessions.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Cbarrier op does not support eager execution. Arg 'handle' is a ref.zEExpected list for 'component_types' argument to 'barrier' Op, not %r.component_typesNz<Expected list for 'shapes' argument to 'barrier' Op, not %r.shapesrm   ro   rn   rp   rq   Barrierrt   ru   ro   rp   rq   r.   r0   r   r1   r2   r3   
isinstancelisttuple	TypeErrorrI   rf   
make_shapemake_intmake_strr4   r5   rJ   get_attr_get_attr_intrK   rL   rt   ru   ro   rp   rq   r.   r6   r7   _t_sr8   r9   r:   rN   rO   rP   s                   r;   barrierr      s    B 
			0h..0$#\\
\
]]	OdE]	3
	 "1	23 3 JYY2X'',=>Y/Y^F	FT5M	*
	 "(	)* * 9??"HH-?&?Hx4(I	;7)K!!+}=+'88?6$	*7!QX QK'""$.?!@(ll8$j
+[ll;'ll=)	+F
 ::L<2('	.A Z @   2G%=G*zraw_ops.Barrierc                     t        d      )Nrs   r?   rt   ru   ro   rp   rq   r.   r@   s          r;   barrier_eager_fallbackr      s    Z[[r=   cancel_pending_enqueuesc                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      |d}t        j                  |d      }t        j                  d| ||      \  }}}}|S )a  Closes the given barrier.

  This operation signals that no more new elements will be inserted in the
  given barrier. Subsequent InsertMany that try to introduce a new key will fail.
  Subsequent InsertMany operations that just add missing components to already
  existing elements will continue to succeed. Subsequent TakeMany operations will
  continue to succeed if sufficient completed elements remain in the barrier.
  Subsequent TakeMany operations that would block will fail immediately.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a barrier.
    cancel_pending_enqueues: An optional `bool`. Defaults to `False`.
      If true, all pending enqueue requests that are
      blocked on the barrier's queue will be canceled. InsertMany will fail, even
      if no new key is introduced.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  Ibarrier_close op does not support eager execution. Arg 'handle' is a ref.Fr   BarrierCloser'   r   r.   	r0   r   r1   r2   r3   rI   	make_boolr4   r5   r'   r   r.   r6   r7   r8   r9   r:   s           r;   barrier_closer      s    * 
			0h..0$#\\
b
cc$#$../FHab'88v0G!#!QX 
*r=   zraw_ops.BarrierClosec                     t        d      )Nr   r?   r'   r   r.   r@   s       r;   barrier_close_eager_fallbackr         `aar=   c                 X   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| |      \  }}}}|dd }t        j                         r&d}|j                  }	t        j                  d|	||       |\  }|S )zComputes the number of incomplete elements in the given barrier.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a barrier.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  Sbarrier_incomplete_size op does not support eager execution. Arg 'handle' is a ref.BarrierIncompleteSizerF   NrG   rH   rM   s
             r;   barrier_incomplete_sizer   "  s     
			0h..0$#\\
l
mm'88T;!QXQK'""$F::Lvw@('	.r=   zraw_ops.BarrierIncompleteSizec                     t        d      )Nr   r?   rS   s      r;   &barrier_incomplete_size_eager_fallbackr   ?      jkkr=   ) TV_BarrierInsertMany_Tr   _atypes.Boolr   r   _atypes.Float16r   r   _atypes.Float8e4m3b11fnuz_atypes.Float8e4m3fn_atypes.Float8e4m3fnuz_atypes.Float8e5m2_atypes.Float8e5m2fnuzr   r   r   _atypes.Int4r   r   r   r   r    r!   r"   _atypes.Resource_atypes.Stringr#   r$   _atypes.UInt4r%   r&   _atypes.Variantkeysvaluescomponent_indexc                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }t        j                  d| ||||      \  }}}}	|S )al  For each key, assigns the respective value to the specified component.

  If a key is not found in the barrier, this operation will create a new
  incomplete element. If a key is found in the barrier, and the element
  already has a value at component_index, this operation will fail with
  INVALID_ARGUMENT, and leave the barrier in an undefined state.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a barrier.
    keys: A `Tensor` of type `string`.
      A one-dimensional tensor of keys, with length n.
    values: A `Tensor`.
      An any-dimensional tensor of values, which are associated with the
      respective keys. The 0th dimension must have length n.
    component_index: An `int`.
      The component of the barrier elements that is being assigned.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  Obarrier_insert_many op does not support eager execution. Arg 'handle' is a ref.r   BarrierInsertMany)r'   r   r   r   r.   	r0   r   r1   r2   r3   rI   r~   r4   r5   )
r'   r   r   r   r.   r6   r7   r8   r9   r:   s
             r;   barrier_insert_manyr   D  s}    , 
			0h..0$#\\
h
ii%%o7HI/'88Ff-<4I!QX 
*r=   zraw_ops.BarrierInsertManyc                     t        d      )Nr   r?   )r'   r   r   r   r.   r@   s         r;   "barrier_insert_many_eager_fallbackr   g      fggr=   c                 X   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| |      \  }}}}|dd }t        j                         r&d}|j                  }	t        j                  d|	||       |\  }|S )zComputes the number of complete elements in the given barrier.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a barrier.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  Nbarrier_ready_size op does not support eager execution. Arg 'handle' is a ref.BarrierReadySizerF   NrG   rH   rM   s
             r;   barrier_ready_sizer   j  s     
			0h..0$#\\
g
hh'8866!QXQK'""$F::LL&';('	.r=   zraw_ops.BarrierReadySizec                     t        d      )Nr   r?   rS   s      r;   !barrier_ready_size_eager_fallbackr         effr=   BarrierTakeMany)indicesr   r   num_elementsallow_small_batchwait_for_incomplete
timeout_msc           
      X   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        |t        t        f      st        d|z        |D 	cg c]  }	t        j                  |	d       }}	|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d	      }t        j                  d
| ||||||      \  }
}
}}|dd }t        j                         rjd|j!                  d      d|j#                  d      d|j#                  d      d	|j%                  d	      f}|j&                  }t        j(                  d
|||       |dd |dd gz   }t*        j-                  |      }|S c c}	w )a  Takes the given number of completed elements from a barrier.

  This operation concatenates completed-element component tensors along
  the 0th dimension to make a single component tensor.

  Elements come out of the barrier when they are complete, and in the order
  in which they were placed into the barrier.  The indices output provides
  information about the batch in which each element was originally inserted
  into the barrier.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a barrier.
    num_elements: A `Tensor` of type `int32`.
      A single-element tensor containing the number of elements to
      take.
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a value.
    allow_small_batch: An optional `bool`. Defaults to `False`.
      Allow to return less than num_elements items if barrier is
      already closed.
    wait_for_incomplete: An optional `bool`. Defaults to `False`.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue is empty, this operation will block for up to
      timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (indices, keys, values).

    indices: A `Tensor` of type `int64`.
    keys: A `Tensor` of type `string`.
    values: A list of `Tensor` objects of type `component_types`.
  Mbarrier_take_many op does not support eager execution. Arg 'handle' is a ref.zOExpected list for 'component_types' argument to 'barrier_take_many' Op, not %r.rt   NFr   r   rm   r   r   )r'   r   rt   r   r   r   r.      )r0   r   r1   r2   r3   ry   rz   r{   r|   rI   rf   r   r~   r4   r5   rJ   r   _get_attr_boolr   rK   rL   _BarrierTakeManyOutput_make)r'   r   rt   r   r   r   r.   r6   r7   r   r8   r9   r:   rN   rO   rP   s                   r;   barrier_take_manyr     s   F 
			0h..0$#\\
f
gg	OdE]	3
	*,;	<= = JYY2X'',=>Y/Y(():<OP  **+>@UVJ  \:*'88&|+:->/B&0t=!QX QK'""$.?!@!3#5#56I#J#  !67-	/F
 ::L<:BQK712;-''"((1'	.9 Zs   2F'zraw_ops.BarrierTakeManyc                     t        d      )Nr   r?   )r'   r   rt   r   r   r   r.   r@   s           r;    barrier_take_many_eager_fallbackr         deer=   TV_ConditionalAccumulator_dtypereduction_typec                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  | d      } t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d	      }t        j                  d
| |||||      \  }}}	}
|
dd }t        j                         r{d|	j                  d      d|	j                  d      d|	j                  d      d|	j                  d      d	|	j                  d	      f
}|	j                  }t        j                  d
|||       |\  }|S )aZ  A conditional accumulator for aggregating gradients.

  The accumulator accepts gradients marked with local_step greater or
  equal to the most recent global_step known to the accumulator. The
  average can be extracted from the accumulator, provided sufficient
  gradients have been accumulated. Extracting the average automatically
  resets the aggregate to 0, and increments the global_step recorded by
  the accumulator.

  Args:
    dtype: A `tf.DType` from: `tf.float32, tf.float64, tf.int32, tf.uint8, tf.int16, tf.int8, tf.complex64, tf.int64, tf.qint8, tf.quint8, tf.qint32, tf.bfloat16, tf.qint16, tf.quint16, tf.uint16, tf.complex128, tf.half, tf.uint32, tf.uint64`.
      The type of the value being accumulated.
    shape: A `tf.TensorShape` or list of `ints`.
      The shape of the values, can be [], in which case shape is unknown.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this accumulator is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this accumulator will be shared under the
      given name across multiple sessions.
    reduction_type: An optional `string` from: `"MEAN", "SUM"`. Defaults to `"MEAN"`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Sconditional_accumulator op does not support eager execution. Arg 'handle' is a ref.r`   shapeNrn   rp   rq   MEANr   ConditionalAccumulatorr`   r   rp   rq   r   r.   r0   r   r1   r2   r3   rI   rf   r}   r   r4   r5   rJ   rg   r   rK   rL   r`   r   rp   rq   r   r.   r6   r7   r8   r9   r:   rN   rO   rP   s                 r;   conditional_accumulatorr     sy   6 
			0h..0$#\\
l
mm


UG
,%


eW
-%I	;7)K!!+}=+N$$^5EF.'88 U,5.91?d	L!QX
 QK'""$s))'2Gll7#[#,,{2KS\\-8:Jll+,.F ::L ,A('	.r=   zraw_ops.ConditionalAccumulatorc                     t        d      )Nr   r?   r`   r   rp   rq   r   r.   r@   s          r;   &conditional_accumulator_eager_fallbackr     r   r=   c                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d||       }|S t        j                  d| |      \  }}}}|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||      S # t        j                  $ r Y w xY w)zDelete the tensor specified by its handle in the session.

  Args:
    handle: A `Tensor` of type `string`.
      The handle for a tensor stored in the session state.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  DeleteSessionTensorNr.   r@   rF   )r0   r   r1   r2   r   TFE_Py_FastPathExecute_core_NotOkStatusException_opsraise_from_not_ok_status_FallbackException$delete_session_tensor_eager_fallback_SymbolicExceptionr4   r5   	r'   r.   r6   r7   rN   er8   r9   r:   s	            r;   delete_session_tensorr   "  s     
			0h..0$#\\11#T63gn (88f49!QX	* && -
##At,,## 
1
t' '## 
0    A9 9C B''C ?C C C('C(zraw_ops.DeleteSessionTensorc                     t        j                  | t        j                        } | g}d }t	        j
                  dd||||      }d }|S )Ns   DeleteSessionTensorr   rK   attrsr@   r.   r   convert_to_tensor_dtypesstringrI   r   r'   r.   r@   rP   rO   rN   s         r;   r   r   D  sL    !!&'..9&,&3Q|#)s?''	.r=   ) TV_DynamicPartition_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   dynamic_partitiondata
partitionsnum_partitionsc                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |d|      }|S t        | |||fd      }|t        ur|S t/        j0                  |d      }	 t3        j4                  d| |||      \  }}}	}
|
dd }t/        j6                         rHd|	j9                  d      d|	j;                  d      f}|	j<                  }t/        j>                  d|||       |S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||fd      }|t        ur|S t        | ||||      S # t        j                  $ r Y $t        t         f$ rJ t#        j$                  t&        dt)        | |||            }|t"        j*                  j,                  ur|cY S  w xY w# t        t         f$ rJ t#        j$                  t&        dt)        | |||            }|t"        j*                  j,                  ur|cY S  w xY w)a2  Partitions `data` into `num_partitions` tensors using indices from `partitions`.

  For each index tuple `js` of size `partitions.ndim`, the slice `data[js, ...]`
  becomes part of `outputs[partitions[js]]`.  The slices with `partitions[js] = i`
  are placed in `outputs[i]` in lexicographic order of `js`, and the first
  dimension of `outputs[i]` is the number of entries in `partitions` equal to `i`.
  In detail,

  ```python
      outputs[i].shape = [sum(partitions == i)] + data.shape[partitions.ndim:]

      outputs[i] = pack([data[js, ...] for js if partitions[js] == i])
  ```

  `data.shape` must start with `partitions.shape`.

  For example:

  ```python
      # Scalar partitions.
      partitions = 1
      num_partitions = 2
      data = [10, 20]
      outputs[0] = []  # Empty with shape [0, 2]
      outputs[1] = [[10, 20]]

      # Vector partitions.
      partitions = [0, 0, 1, 1, 0]
      num_partitions = 2
      data = [10, 20, 30, 40, 50]
      outputs[0] = [10, 20, 50]
      outputs[1] = [30, 40]
  ```

  See `dynamic_stitch` for an example on how to merge partitions back.

  <div style="width:70%; margin:auto; margin-bottom:10px; margin-top:20px;">
  <img style="width:100%" src="https://www.tensorflow.org/images/DynamicPartition.png" alt>
  </div>


  Raises:
    * `InvalidArgumentError` in following cases:
      - If partitions is not in range `[0, num_partiions)`
      - If `partitions.shape` does not match prefix of `data.shape` argument.

  Args:
    data: A `Tensor`.
    partitions: A `Tensor` of type `int32`.
      Any shape.  Indices in the range `[0, num_partitions)`.
    num_partitions: An `int` that is `>= 1`.
      The number of partitions to output.
    name: A name for the operation (optional).

  Returns:
    A list of `num_partitions` `Tensor` objects with the same type as `data`.
  DynamicPartitionr   N)r   r.   r@   rG   )r   r   r   r.   T) r0   r   r1   r2   r   r   r   r   r   r   r   !_dispatcher_for_dynamic_partitionNotImplemented dynamic_partition_eager_fallbackr   r|   
ValueError	_dispatchr   r   dictOpDispatcherNOT_SUPPORTEDrI   r~   r4   r5   rJ   r   rg   rK   rL   )r   r   r   r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                r;   r   r   P  sk   z 
			0h..0$#\\11 $j:Jg n2 0	z>4149Gn$n$$^5EF.
)::*+9FAq#x QK'""$ 1 12B CS  %'F::LL&';	.e && -
##At,,## 
1^T
3T;g		&-

>  ## 
z" ""r4Tj7E-1$3g
 
	..<<	<( Z	  
  
R4J5C+/"1
G
 i,,:::n	
sP    D G6 E#D>>EEF 5F G3AG31G36AIIzraw_ops.DynamicPartitionc                 V   t        j                  |d      }t        j                  | g|g       \  }\  } t        j                  |t
        j                        }| |g}d|d|f}t        j                  d|||||      }t        j                         rt        j                  d|||       |S )Nr   r   s   DynamicPartitionr   r   )
rI   r~   args_to_matching_eagerr   r   r   int32r   rJ   rL   )	r   r   r   r.   r@   _attr_TrP   rO   rN   s	            r;   r   r     s    $$^5EF.44dVS"E'7D%%j'--@*
#,nc7;&0.$0C"&(' ""$L&';	.r=   ) TV_DynamicStitch_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   dynamic_stitchr   c           
      d   t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |      }|S t        | ||fd      }|t        ur|S t/        | t0        t2        f      st        d| z        t5        |       }t/        |t0        t2        f      st        d|z        t5        |      |k7  rt!        dt5        |      |fz        	 t7        j8                  d| ||      \  }}}	}
|
dd }t;        j<                         rHd	|	j?                  d	      d
|	jA                  d
      f}|	jB                  }t;        jD                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||fd      }|t        ur|S t        | |||      S # t        j                  $ r Y t        t         f$ rI t#        j$                  t&        dt)        | ||            }|t"        j*                  j,                  ur|cY S  w xY w# t        t         f$ rI t#        j$                  t&        dt)        | ||            }|t"        j*                  j,                  ur|cY S  w xY w)a+
  Interleave the values from the `data` tensors into a single tensor.

  Builds a merged tensor such that

  ```python
      merged[indices[m][i, ..., j], ...] = data[m][i, ..., j, ...]
  ```

  For example, if each `indices[m]` is scalar or vector, we have

  ```python
      # Scalar indices:
      merged[indices[m], ...] = data[m][...]

      # Vector indices:
      merged[indices[m][i], ...] = data[m][i, ...]
  ```

  Each `data[i].shape` must start with the corresponding `indices[i].shape`,
  and the rest of `data[i].shape` must be constant w.r.t. `i`.  That is, we
  must have `data[i].shape = indices[i].shape + constant`.  In terms of this
  `constant`, the output shape is

      merged.shape = [max(indices) + 1] + constant

  Values are merged in order, so if an index appears in both `indices[m][i]` and
  `indices[n][j]` for `(m,i) < (n,j)` the slice `data[n][j]` will appear in the
  merged result. If you do not need this guarantee, ParallelDynamicStitch might
  perform better on some devices.

  For example:

  ```python
      indices[0] = 6
      indices[1] = [4, 1]
      indices[2] = [[5, 2], [0, 3]]
      data[0] = [61, 62]
      data[1] = [[41, 42], [11, 12]]
      data[2] = [[[51, 52], [21, 22]], [[1, 2], [31, 32]]]
      merged = [[1, 2], [11, 12], [21, 22], [31, 32], [41, 42],
                [51, 52], [61, 62]]
  ```

  This method can be used to merge partitions created by `dynamic_partition`
  as illustrated on the following example:

  ```python
      # Apply function (increments x_i) on elements for which a certain condition
      # apply (x_i != -1 in this example).
      x=tf.constant([0.1, -1., 5.2, 4.3, -1., 7.4])
      condition_mask=tf.not_equal(x,tf.constant(-1.))
      partitioned_data = tf.dynamic_partition(
          x, tf.cast(condition_mask, tf.int32) , 2)
      partitioned_data[1] = partitioned_data[1] + 1.0
      condition_indices = tf.dynamic_partition(
          tf.range(tf.shape(x)[0]), tf.cast(condition_mask, tf.int32) , 2)
      x = tf.dynamic_stitch(condition_indices, partitioned_data)
      # Here x=[1.1, -1., 6.2, 5.3, -1, 8.4], the -1. values remain
      # unchanged.
  ```

  <div style="width:70%; margin:auto; margin-bottom:10px; margin-top:20px;">
  <img style="width:100%" src="https://www.tensorflow.org/images/DynamicStitch.png" alt>
  </div>

  Args:
    indices: A list of at least 1 `Tensor` objects with type `int32`.
    data: A list with the same length as `indices` of `Tensor` objects with the same type.
    name: A name for the operation (optional).

  Returns:
    A `Tensor`. Has the same type as `data`.
  DynamicStitchNr   rG   r   r   r.   DExpected list for 'indices' argument to 'dynamic_stitch' Op, not %r.AExpected list for 'data' argument to 'dynamic_stitch' Op, not %r.fList argument 'data' to 'dynamic_stitch' Op with length %d must match length %d of argument 'indices'.Nr   )#r0   r   r1   r2   r   r   r   r   r   r   r   _dispatcher_for_dynamic_stitchr   dynamic_stitch_eager_fallbackr   r|   r   r   r   r  r   r   r  ry   rz   r{   lenr4   r5   rI   rJ   r   rg   rK   rL   r   r   r.   r6   r7   rN   r   _attr_Nr8   r9   r:   rO   rP   s                r;   r  r    s   Z 
			0h..0$#\\11otWd4gn, -	$&Gn$n	GdE]	+
	')0	12 2 L'	D4-	(
	')-	./ / 	Y'
	6	TG	 	
)::t$@Aq#x QK'""$3$$S)30B0B30GHF::Lvw8('	.s && -
##At,,## 
.D$
 $(g		&*
4d. .## 
z" ""BW4d Kg 
	..<<	<< Z	  
  
"d7DI
G i,,:::n	
sP    E4 /I 4F;F""F;:F;?G' G' 'I=AIIAJ/-J/zraw_ops.DynamicStitchc                 X   t        | t        t        f      st        d| z        t	        |       }t        |t        t        f      st        d|z        t	        |      |k7  rt        dt	        |      |fz        t        j                  t        |      |g       \  }}t        j                  | t        j                        } t        |       t        |      z   }d|d|f}t        j                  dd||||      }t        j                         rt        j                  d	|||       |\  }|S )
Nr  r  r  r  r   s   DynamicStitch   r   r	  ry   rz   r{   r|   r  r   rI   r  r   convert_n_to_tensorr   r  r   rJ   rL   	r   r   r.   r@   r  r  rP   rO   rN   s	            r;   r  r  q  s/   	GdE]	+
	')0	12 2 L'	D4-	(
	')-	./ / 	Y'
	6	TG	  11$t*c2F-'4$$Wgmm<'gd+,#w'&-q#)s?'""$vw8('	.r=   c                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        | t        t        f      st        d| z        | D cg c]  }t        j                  |d       } }|g }t        |t        t        f      st        d|z        |D 	cg c]  }	t        j                  |	d       }}	|d}t        j                  |d      }|d	}t        j                  |d
      }|d	}t        j                  |d      }t        j                  d| |||||      \  }
}
}}|dd }t        j                          r{d|j#                  d      d|j#                  d      d|j%                  d      d
|j#                  d
      d|j#                  d      f
}|j&                  }t        j(                  d|||       |\  }|S c c}w c c}	w )au  A queue that produces elements in first-in first-out order.

  Args:
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a value.
    shapes: An optional list of shapes (each a `tf.TensorShape` or list of `ints`). Defaults to `[]`.
      The shape of each component in a value. The length of this attr must
      be either 0 or the same as the length of component_types. If the length of
      this attr is 0, the shapes of queue elements are not constrained, and
      only one element may be dequeued at a time.
    capacity: An optional `int`. Defaults to `-1`.
      The upper bound on the number of elements in this queue.
      Negative numbers mean no limit.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this queue will be shared under the given name
      across multiple sessions.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Ffifo_queue op does not support eager execution. Arg 'handle' is a ref.zHExpected list for 'component_types' argument to 'fifo_queue' Op, not %r.rt   Nz?Expected list for 'shapes' argument to 'fifo_queue' Op, not %r.ru   rm   ro   rn   rp   rq   	FIFOQueuerw   rx   r   s                   r;   
fifo_queuer    s   2 
			0h..0$#\\
_
``	OdE]	3
	#%4	56 6 JYY2X'',=>Y/Y^F	FT5M	*
	#%+	,- - 9??"HH-?&?Hx4(I	;7)K!!+}=+'88_V&)!,49!QX QK'""$.?!@(ll8$j
+[ll;'ll=)	+F
 ::L\674('	.A Z @r   zraw_ops.FIFOQueuec                     t        d      )Nr  r?   r   s          r;   fifo_queue_eager_fallbackr        ]^^r=   c                    t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d| d|d|d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|g }t        |t        t        f      st!        d
|z        |D cg c]  }t#        j&                  |d       }}|d}t#        j(                  |d      }|d}t#        j*                  |d      }|d}t#        j*                  |d      }t-        j.                  d| |||||      \  }}}}|dd }t#        j0                         r{d|j3                  d      d|j3                  d      d|j5                  d      d|j3                  d      d|j3                  d      f
}|j6                  }t#        j8                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        | ||||||      S # t        j                  $ r Y w xY wc c}
w c c}w )ao  A queue that produces elements in first-in first-out order.

  Args:
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a value.
    shapes: An optional list of shapes (each a `tf.TensorShape` or list of `ints`). Defaults to `[]`.
      The shape of each component in a value. The length of this attr must
      be either 0 or the same as the length of component_types. If the length of
      this attr is 0, the shapes of queue elements are not constrained, and
      only one element may be dequeued at a time.
    capacity: An optional `int`. Defaults to `-1`.
      The upper bound on the number of elements in this queue.
      Negative numbers mean no limit.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this queue will be shared under the given name
      across multiple sessions.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `resource`.
  FIFOQueueV2rt   ru   ro   rp   rq   Nr   KExpected list for 'component_types' argument to 'fifo_queue_v2' Op, not %r.BExpected list for 'shapes' argument to 'fifo_queue_v2' Op, not %r.rm   rn   rw   )r0   r   r1   r2   r   r   r   r   r   r   r   fifo_queue_v2_eager_fallbackr   ry   rz   r{   r|   rI   rf   r}   r~   r   r4   r5   rJ   r   r   rK   rL   rt   ru   ro   rp   rq   r.   r6   r7   rN   r   r   r   r8   r9   r:   rO   rP   s                    r;   fifo_queue_v2r&    s   2 
			0h..0$#\\	11mT#4o&*hY{$g n 
OdE]	3
	&(7	89 9 JYY2X'',=>Y/Y^F	FT5M	*
	&(.	/0 0 9??"HH-?&?Hx4(I	;7)K!!+}=+'88v (I#.T;!QX QK'""$.?!@(ll8$j
+[ll;'ll=)	+F
 ::L|VW6('	._ && -
##At,,## 
))&8;TtM M ## 
 Z @<    "G> I5I:>IH,,II	I I21I2zraw_ops.FIFOQueueV2c           
         t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|g }t        |t        t        f      st        d|z        |D cg c]  }t	        j                  |d       }}|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d	      }g }	d| d|d|d|d	|f
}
t	        j                  d
d|	|
||      }t	        j                         rt	        j                  d|	|
|       |\  }|S c c}w c c}w )Nr"  rt   r#  ru   rm   ro   rn   rp   rq   s   FIFOQueueV2r  r   r!  ry   rz   r{   r|   rI   rf   r}   r~   r   r   rJ   rL   rt   ru   ro   rp   rq   r.   r@   r   r   rP   rO   rN   s               r;   r$  r$  -  su   	OdE]	3
	&(7	89 9 JYY2X'',=>Y/Y^F	FT5M	*
	&(.	/0 0 9??"HH-?&?Hx4(I	;7)K!!+}=+,&*
KM;@&^Q|#)s?'""$|VW6('	.5 Z @   D<4Eresourcec                 X   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| |      \  }}}}|dd }t        j                         r&d}|j                  }	t        j                  d|	||       |\  }|S )zDeprecated. Do not use.

  Args:
    resource: A `Tensor` of type `resource`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Ffake_queue op does not support eager execution. Arg 'handle' is a ref.	FakeQueue)r,  r.   NrG   rH   )
r,  r.   r6   r7   r8   r9   r:   rN   rO   rP   s
             r;   
fake_queuer0  O  s     
			0h..0$#\\
_
``'88hT3!QXQK'""$F::L\674('	.r=   zraw_ops.FakeQueuec                     t        d      )Nr.  r?   )r,  r.   r@   s      r;   fake_queue_eager_fallbackr2  l  r  r=   ) TV_GetSessionHandle_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   valuec                 ~   t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d||       }|S t        j                  d| |      \  }}}}|dd }t        j                          r7d|j#                  d      f}	|j$                  }
t        j&                  d|
|	|       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||      S # t        j                  $ r Y w xY w)zStore the input tensor in the state of the current session.

  Args:
    value: A `Tensor`. The tensor to be stored.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `string`.
  GetSessionHandleNr   r4  r.   r   )r0   r   r1   r2   r   r   r   r   r   r   r   !get_session_handle_eager_fallbackr   r4   r5   rI   rJ   rg   rK   rL   r4  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s              r;   get_session_handler:  q  s8    
			0h..0$#\\11 $/gn (88%d4!QXQK'""$3%%c*+F::LL&';('	.' && -
##At,,## 
.
d& &## 
0    C D C;;DDD& &D<;D<zraw_ops.GetSessionHandlec                     t        j                  | g|g       \  }\  } | g}d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Nr   s   GetSessionHandler  r   r6  rI   r  r   rJ   rL   r4  r.   r@   r  rP   rO   rN   s          r;   r8  r8    s|    55ugsBG'8E,>&0!L#)s?'""$L&';('	.r=   ) TV_GetSessionHandleV2_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                 ~   t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d||       }|S t        j                  d| |      \  }}}}|dd }t        j                          r7d|j#                  d      f}	|j$                  }
t        j&                  d|
|	|       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||      S # t        j                  $ r Y w xY w)zStore the input tensor in the state of the current session.

  Args:
    value: A `Tensor`. The tensor to be stored.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `resource`.
  GetSessionHandleV2Nr   r7  r   )r0   r   r1   r2   r   r   r   r   r   r   r   $get_session_handle_v2_eager_fallbackr   r4   r5   rI   rJ   rg   rK   rL   r9  s              r;   get_session_handle_v2rC    s8    
			0h..0$#\\11"D%1gn (88E6!QXQK'""$3%%c*+F::LlFG=('	.' && -
##At,,## 
1
d& &## 
r;  zraw_ops.GetSessionHandleV2c                     t        j                  | g|g       \  }\  } | g}d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Nr   s   GetSessionHandleV2r  r   rA  r=  r>  s          r;   rB  rB    s|    55ugsBG'8E,>&2Al#)s?'""$lFG=('	.r=   ) TV_GetSessionTensor_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| d|      }|S t        j                  |d      }t        j                   d| ||      \  }}}}	|	dd }t        j"                         r7d|j%                  d      f}
|j&                  }t        j(                  d||
|       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||      S # t        j                  $ r Y w xY w)a6  Get the value of the tensor specified by its handle.

  Args:
    handle: A `Tensor` of type `string`.
      The handle for a tensor stored in the session state.
    dtype: A `tf.DType`. The type of the output value.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `dtype`.
  GetSessionTensorr`   Nr`   r.   r@   )r'   r`   r.   )r0   r   r1   r2   r   r   r   r   r   r   r   !get_session_tensor_eager_fallbackr   rI   rf   r4   r5   rJ   rg   rK   rL   )r'   r`   r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s               r;   get_session_tensorrJ    sT    
			0h..0$#\\11 $@gn 

UG
,%'886TC!QXQK'""$s))'23F::LL&';('	.) && -
##At,,## 
.
Dd4 4## 
0    C& &D-9DD-,D-1E   EEzraw_ops.GetSessionTensorc                    t        j                  |d      }t        j                  | t        j
                        } | g}d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Nr`   s   GetSessionTensorr  r   rG  )	rI   rf   r   r   r   r   r   rJ   rL   )r'   r`   r.   r@   rP   rO   rN   s          r;   rI  rI    s    


UG
,%!!&'..9&,U&0!L#)s?'""$L&';('	.r=   memory_limitc                 b   t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d|d|d| d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||      \  }}}}|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        ||| ||||      S # t        j                  $ r Y Ew xY wc c}
w )  Op removes all elements in the underlying container.

  Args:
    dtypes: A list of `tf.DTypes`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
    shared_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  MapClearro   rM  r   rp   rq   Nro   rM  r   rp   rq   r.   r@   >Expected list for 'dtypes' argument to 'map_clear' Op, not %r.r   rn   r   ro   rM  rp   rq   r.   )r0   r   r1   r2   r   r   r   r   r   r   r   map_clear_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   r   ro   rM  rp   rq   r.   r6   r7   rN   r   r   r8   r9   r:   s                 r;   	map_clearrV    s    
			0h..0$#\\	11j$
HnhYg n 
FT5M	*
	"$*	+, , 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'886H!- +$8!QX 
*A && -
##At,,## 
%,v;TtM M ## 
 ?6    "D5 F,5E<E##E<;E< F F)(F)zraw_ops.MapClearc           
         t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }g }d|d|d| d|d|f
}	t	        j                  d	d||	||
      }
d }
|
S c c}w )NrR  r   r   ro   rM  rn   rp   rq   s   MapClearr   	ry   rz   r{   r|   rI   rf   r~   r   r   r   ro   rM  rp   rq   r.   r@   r   rP   rO   rN   s              r;   rT  rT  V  s   	FT5M	*
	"$*	+, , 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+,.,+y->&[!L#)s?''	.' ?   Cc                    t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d|d|d| d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||      \  }}}}|dd }t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        ||| ||||      S # t        j                  $ r Y w xY wc c}
w )  Op returns the number of incomplete elements in the underlying container.

  Args:
    dtypes: A list of `tf.DTypes`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
    shared_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  MapIncompleteSizero   rM  r   rp   rq   NrQ  HExpected list for 'dtypes' argument to 'map_incomplete_size' Op, not %r.r   rn   rS  )r0   r   r1   r2   r   r   r   r   r   r   r   "map_incomplete_size_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   r   ro   rM  rp   rq   r.   r6   r7   rN   r   r   r8   r9   r:   rO   rP   s                   r;   map_incomplete_sizerb  q  sh    
			0h..0$#\\	11!4X~hYg n 
FT5M	*
	,.4	56 6 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88FX*6))44A!QX QK'""$#++J7/ll8$k3<<3LS\\-8:F ::L\67<('	.U && -
##At,,## 
/,v;TtM M ## 
 ?6    "G IH G;;HHH* *I Izraw_ops.MapIncompleteSizec           
          t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }g }d|d|d| d|d|f
}	t	        j                  d	d
||	||      }
t	        j                         rt	        j                  d||	|
       |
\  }
|
S c c}w )Nr_  r   r   ro   rM  rn   rp   rq   s   MapIncompleteSizer  r   r^  ry   rz   r{   r|   rI   rf   r~   r   r   rJ   rL   rZ  s              r;   r`  r`    s4   	FT5M	*
	,.4	56 6 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+,.,+y->&11\#)s?'""$\67<('	.- ?   Dkeyc                    t         j                   xs t        j                         }|j                  }	|	j                  r&	 t	        j
                  |d|| |d|d|d|d|d|      }
|
S t        |t        t        f      st!        d	|z        |D cg c]  }t#        j$                  |d       }}|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||||	      \  }}}}|dd }
|
s|S t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||
       |
S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||||||	      S # t        j                  $ r Y w xY wc c}w )a  Op peeks at the values at the specified key.  If the

  underlying container does not contain this key
  this op will block until it does.

  Args:
    key: A `Tensor` of type `int64`.
    indices: A `Tensor` of type `int32`.
    dtypes: A list of `tf.DTypes` that has length `>= 1`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
    shared_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `dtypes`.
  MapPeekro   rM  r   rp   rq   NrQ  =Expected list for 'dtypes' argument to 'map_peek' Op, not %r.r   rn   rg  r   r   ro   rM  rp   rq   r.   )r0   r   r1   r2   r   r   r   r   r   r   r   map_peek_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   rg  r   r   ro   rM  rp   rq   r.   r6   r7   rN   r   r   r8   r9   r:   rO   rP   s                     r;   map_peekrn    sr   & 
			0h..0$#\\	11isGZh=+/g n 
FT5M	*
	!#)	*+ + 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88sGFX ,	*7!QX QK'	J""$#++J7/ll8$k3<<3LS\\-8:F ::L<2	.Y && -
##At,,## 
$
w9+  ## 
 ?6    $G I
H$G??HHH0 0IIzraw_ops.MapPeekc	           
         t        |t        t        f      st        d|z        |D 	cg c]  }	t	        j
                  |	d       }}	|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }t        j                  | t        j                        } t        j                  |t        j                        }| |g}
d|d|d|d|d|f
}t	        j                  d	t        |      |
|||
      }t	        j                         rt	        j                   d|
||       |S c c}	w )Nrj  r   r   ro   rM  rn   rp   rq   s   MapPeekr   ri  ry   rz   r{   r|   rI   rf   r~   r   r   r   r   int64r  r   r  rJ   rL   rg  r   r   ro   rM  rp   rq   r.   r@   r   rP   rO   rN   s                r;   rl  rl  "  s`   	FT5M	*
	!#)	*+ + 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+sGMM2#""7GMM:'w,.,+y->&ZV\#)s?'""$<2	./ ?   Ec                    t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d|d|d| d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||      \  }}}}|dd }t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        ||| ||||      S # t        j                  $ r Y w xY wc c}
w )  Op returns the number of elements in the underlying container.

  Args:
    dtypes: A list of `tf.DTypes`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
    shared_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  MapSizero   rM  r   rp   rq   NrQ  =Expected list for 'dtypes' argument to 'map_size' Op, not %r.r   rn   rS  )r0   r   r1   r2   r   r   r   r   r   r   r   map_size_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   ra  s                   r;   map_sizerz  A  sf    
			0h..0$#\\	11iz8^hYg n 
FT5M	*
	!#)	*+ + 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88&8 ,	*7!QX QK'""$#++J7/ll8$k3<<3LS\\-8:F ::L<2('	.U && -
##At,,## 
$,v;TtM M ## 
 ?rc  zraw_ops.MapSizec           
          t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }g }d|d|d| d|d|f
}	t	        j                  d	d
||	||      }
t	        j                         rt	        j                  d||	|
       |
\  }
|
S c c}w )Nrx  r   r   ro   rM  rn   rp   rq   s   MapSizer  r   rw  re  rZ  s              r;   ry  ry    s3   	FT5M	*
	!#)	*+ + 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+,.,+y->&Z<v!$41'""$<2('	.- ?rf  c	                 t   t         j                   xs t        j                         }	|	j                  }
|
j                  r'	 t	        j
                  |	d|| ||d|d|d|d|d|      }|S t        |t        t        f      st!        d	|z        |D cg c]  }t#        j$                  |d       }}|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| ||||||||
      \  }}}}|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||||||	
      S # t        j                  $ r Y Kw xY wc c}w )a  Stage (key, values) in the underlying container which behaves like a hashtable.

  Args:
    key: A `Tensor` of type `int64`. int64
    indices: A `Tensor` of type `int32`.
    values: A list of `Tensor` objects. a list of tensors
      dtypes A list of data types that inserted values should adhere to.
    dtypes: A list of `tf.DTypes`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
      Maximum number of elements in the Staging Area. If > 0, inserts
      on the container will block when the capacity is reached.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container. Otherwise,
      a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      It is necessary to match this name to the matching Unstage Op.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  MapStagero   rM  r   rp   rq   NrQ  >Expected list for 'dtypes' argument to 'map_stage' Op, not %r.r   rn   	rg  r   r   r   ro   rM  rp   rq   r.   )r0   r   r1   r2   r   r   r   r   r   r   r   map_stage_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rg  r   r   r   ro   rM  rp   rq   r.   r6   r7   rN   r   r   r8   r9   r:   s                    r;   	map_stager    s   . 
			0h..0$#\\	11j$Wfj(h=+/g n 
FT5M	*
	"$*	+, , 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88WVF%L'[tM!QX 
*C && -
##At,,## 
%
w9+  ## 
 ?6    %D; F5;FE))FFF F21F2zraw_ops.MapStagec
                    t        |t        t        f      st        d|z        |D 
cg c]  }
t	        j
                  |
d       }}
|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }t	        j                  ||	      \  }}t        j                  | t        j                        } t        j                  |t        j                        }| |gt        |      z   }d|d|d|d	|d|d|f}t	        j                  d
d|||	|      }d }|S c c}
w )Nr~  r   r   ro   rM  rn   rp   rq   fake_dtypess   MapStager   ry   rz   r{   r|   rI   rf   r~   r   convert_to_mixed_eager_tensorsr   r   r   rr  r  r   rg  r   r   r   ro   rM  rp   rq   r.   r@   r   _attr_fake_dtypesrP   rO   rN   s                  r;   r  r    sg   	FT5M	*
	"$*	+, , 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+&EEfcRVsGMM2#""7GMM:'w$v,.,.,-*K& [!L#)s?''	./ ?   Ec                    t         j                   xs t        j                         }|j                  }	|	j                  r&	 t	        j
                  |d|| |d|d|d|d|d|      }
|
S t        |t        t        f      st!        d	|z        |D cg c]  }t#        j$                  |d       }}|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||||	      \  }}}}|dd }
|
s|S t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||
       |
S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||||||	      S # t        j                  $ r Y w xY wc c}w )  Op removes and returns the values associated with the key

  from the underlying container.   If the underlying container
  does not contain this key, the op will block until it does.

  Args:
    key: A `Tensor` of type `int64`.
    indices: A `Tensor` of type `int32`.
    dtypes: A list of `tf.DTypes` that has length `>= 1`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
    shared_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `dtypes`.
  
MapUnstagero   rM  r   rp   rq   NrQ  @Expected list for 'dtypes' argument to 'map_unstage' Op, not %r.r   rn   rk  )r0   r   r1   r2   r   r   r   r   r   r   r   map_unstage_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   rm  s                     r;   map_unstager  	  ss   & 
			0h..0$#\\	11lD#w
Hh=+/g n 
FT5M	*
	$&,	-. . 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88#wv'l ){O!QX QK'	J""$#++J7/ll8$k3<<3LS\\-8:F ::LlFG5	.Y && -
##At,,## 
'
w9+  ## 
 ?ro  zraw_ops.MapUnstagec	           
         t        |t        t        f      st        d|z        |D 	cg c]  }	t	        j
                  |	d       }}	|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }t        j                  | t        j                        } t        j                  |t        j                        }| |g}
d|d|d|d|d|f
}t	        j                  d	t        |      |
|||
      }t	        j                         rt	        j                   d|
||       |S c c}	w )Nr  r   r   ro   rM  rn   rp   rq   s
   MapUnstager   r  rq  rs  s                r;   r  r  V  s`   	FT5M	*
	$&,	-. . 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+sGMM2#""7GMM:'w,.,+y->&]CK#)s?'""$lFG5	./ ?rt  MapUnstageNoKeyc                    t         j                   xs t        j                         }|j                  }|j                  r:	 t	        j
                  |d|| d|d|d|d|d|      }	t        j                  |	      }	|	S t        |t         t"        f      st%        d	|z        |D cg c]  }t'        j(                  |d       }}|d
}t'        j*                  |d      }|d
}t'        j*                  |d      }|d}t'        j,                  |d      }|d}t'        j,                  |d      }t/        j0                  d| ||||||      \  }}}}|dd }	t'        j2                         r{d|j5                  d      d|j5                  d      d|j7                  d      d|j7                  d      d|j7                  d      f
}|j8                  }t'        j:                  d|||	       |	dd |	dd gz   }	t        j                  |	      }	|	S # t        j                  $ r }
t        j                  |
|       Y d}
~
nd}
~
wt        j                  $ r Y nw xY w	 t        | |||||||      S # t        j                  $ r Y w xY wc c}w )a  Op removes and returns a random (key, value)

  from the underlying container.   If the underlying container
  does not contain elements, the op will block until it does.

  Args:
    indices: A `Tensor` of type `int32`.
    dtypes: A list of `tf.DTypes` that has length `>= 1`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
    shared_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (key, values).

    key: A `Tensor` of type `int64`.
    values: A list of `Tensor` objects of type `dtypes`.
  r  ro   rM  r   rp   rq   NrQ  GExpected list for 'dtypes' argument to 'map_unstage_no_key' Op, not %r.r   rn   r   r   ro   rM  rp   rq   r.   r  )r0   r   r1   r2   r   r   _MapUnstageNoKeyOutputr   r   r   r   r   r   !map_unstage_no_key_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   r   r   ro   rM  rp   rq   r.   r6   r7   rN   r   r   r8   r9   r:   rO   rP   s                    r;   map_unstage_no_keyr  y  s   * 
			0h..0$#\\
11w
Hh=+/g ',,W5gn 
FT5M	*
	+-3	45 5 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'8876H(4	'2?!QX QK'""$#++J7/ll8$k3<<3LS\\-8:F ::L<:BQK712;-''"((1'	.Y && -
##At,,## 
.
H<9+  ## 
 ?6    8H !I9IH//III I65I6zraw_ops.MapUnstageNoKeyc           
         t        |t        t        f      st        d|z        |D cg c]  }t	        j
                  |d       }}|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }t        j                  | t        j                        } | g}	d|d|d|d|d|f
}
t	        j                  d	t        |      d
z   |	|
||      }t	        j                         rt	        j                  d|	|
|       |d d
 |d
d  gz   }t         j#                  |      }|S c c}w )Nr  r   r   ro   rM  rn   rp   rq   s   MapUnstageNoKeyr  r   r  )ry   rz   r{   r|   rI   rf   r~   r   r   r   r   r  r   r  rJ   rL   r  r   r   r   ro   rM  rp   rq   r.   r@   r   rP   rO   rN   s               r;   r  r    sx   	FT5M	*
	+-3	45 5 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+""7GMM:',.,+y->&/Vq$0C"&(' ""$<:BQK712;-''"((1'	.3 ?   Ec                 b   t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d|d|d| d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||      \  }}}}|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        ||| ||||      S # t        j                  $ r Y Ew xY wc c}
w )rO  OrderedMapClearro   rM  r   rp   rq   NrQ  FExpected list for 'dtypes' argument to 'ordered_map_clear' Op, not %r.r   rn   rS  )r0   r   r1   r2   r   r   r   r   r   r   r    ordered_map_clear_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rU  s                 r;   ordered_map_clearr    s    
			0h..0$#\\	11z8^hYg n 
FT5M	*
	*,2	34 4 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88&8(4	'2?!QX 
*A && -
##At,,## 
-,v;TtM M ## 
 ?rW  zraw_ops.OrderedMapClearc           
         t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }g }d|d|d| d|d|f
}	t	        j                  d	d||	||
      }
d }
|
S c c}w )Nr  r   r   ro   rM  rn   rp   rq   s   OrderedMapClearr   rY  rZ  s              r;   r  r  %  s   	FT5M	*
	*,2	34 4 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+,.,+y->&/<#)s?''	.' ?r[  c                    t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d|d|d| d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||      \  }}}}|dd }t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        ||| ||||      S # t        j                  $ r Y w xY wc c}
w )r]  OrderedMapIncompleteSizero   rM  r   rp   rq   NrQ  PExpected list for 'dtypes' argument to 'ordered_map_incomplete_size' Op, not %r.r   rn   rS  )r0   r   r1   r2   r   r   r   r   r   r   r   *ordered_map_incomplete_size_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   ra  s                   r;   ordered_map_incomplete_sizer  @  sj    
			0h..0$#\\	11($
Hh=+/g n 
FT5M	*
	46<	=> > 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88"6H1=.70;$	H!QX
 QK'""$#++J7/ll8$k3<<3LS\\-8:F ::L"L&'C('	.W && -
##At,,## 
7,v;TtM M ## 
 ?rc  z raw_ops.OrderedMapIncompleteSizec           
          t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }g }d|d|d| d|d|f
}	t	        j                  d	d
||	||      }
t	        j                         rt	        j                  d||	|
       |
\  }
|
S c c}w )Nr  r   r   ro   rM  rn   rp   rq   s   OrderedMapIncompleteSizer  r   r  re  rZ  s              r;   r  r    s8   	FT5M	*
	46<	=> > 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+,.,+y->&8!$0C"&(' ""$"L&'C('	./ ?rf  c                    t         j                   xs t        j                         }|j                  }	|	j                  r&	 t	        j
                  |d|| |d|d|d|d|d|      }
|
S t        |t        t        f      st!        d	|z        |D cg c]  }t#        j$                  |d       }}|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||||	      \  }}}}|dd }
|
s|S t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||
       |
S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||||||	      S # t        j                  $ r Y w xY wc c}w )a  Op peeks at the values at the specified key.  If the

  underlying container does not contain this key
  this op will block until it does.   This Op is optimized for
  performance.

  Args:
    key: A `Tensor` of type `int64`.
    indices: A `Tensor` of type `int32`.
    dtypes: A list of `tf.DTypes` that has length `>= 1`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
    shared_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `dtypes`.
  OrderedMapPeekro   rM  r   rp   rq   NrQ  EExpected list for 'dtypes' argument to 'ordered_map_peek' Op, not %r.r   rn   rk  )r0   r   r1   r2   r   r   r   r   r   r   r   ordered_map_peek_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   rm  s                     r;   ordered_map_peekr    st   ( 
			0h..0$#\\	11c7Jh=+/g n 
FT5M	*
	)+1	23 3 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88c76#+,$-;#	%!QX
 QK'	J""$#++J7/ll8$k3<<3LS\\-8:F ::L,9	.[ && -
##At,,## 
,
w9+  ## 
 ?ro  zraw_ops.OrderedMapPeekc	           
         t        |t        t        f      st        d|z        |D 	cg c]  }	t	        j
                  |	d       }}	|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }t        j                  | t        j                        } t        j                  |t        j                        }| |g}
d|d|d|d|d|f
}t	        j                  d	t        |      |
|||
      }t	        j                         rt	        j                   d|
||       |S c c}	w )Nr  r   r   ro   rM  rn   rp   rq   s   OrderedMapPeekr   r  rq  rs  s                r;   r  r    sd   	FT5M	*
	)+1	23 3 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+sGMM2#""7GMM:'w,.,+y->&.F$0C"&(' ""$,9	.1 ?rt  c                    t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d|d|d| d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||      \  }}}}|dd }t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        ||| ||||      S # t        j                  $ r Y w xY wc c}
w )rv  OrderedMapSizero   rM  r   rp   rq   NrQ  EExpected list for 'dtypes' argument to 'ordered_map_size' Op, not %r.r   rn   rS  )r0   r   r1   r2   r   r   r   r   r   r   r   ordered_map_size_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   ra  s                   r;   ordered_map_sizer  	  sg    
			0h..0$#\\	11j(NhYg n 
FT5M	*
	)+1	23 3 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88('3y&1>!QX QK'""$#++J7/ll8$k3<<3LS\\-8:F ::L,9('	.U && -
##At,,## 
,,v;TtM M ## 
 ?rc  zraw_ops.OrderedMapSizec           
          t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }g }d|d|d| d|d|f
}	t	        j                  d	d
||	||      }
t	        j                         rt	        j                  d||	|
       |
\  }
|
S c c}w )Nr  r   r   ro   rM  rn   rp   rq   s   OrderedMapSizer  r   r  re  rZ  s              r;   r  r  [	  s4   	FT5M	*
	)+1	23 3 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+,.,+y->&.,#)s?'""$,9('	.- ?rf  c	                 t   t         j                   xs t        j                         }	|	j                  }
|
j                  r'	 t	        j
                  |	d|| ||d|d|d|d|d|      }|S t        |t        t        f      st!        d	|z        |D cg c]  }t#        j$                  |d       }}|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| ||||||||
      \  }}}}|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||||||	
      S # t        j                  $ r Y Kw xY wc c}w )a  Stage (key, values) in the underlying container which behaves like a ordered

  associative container.   Elements are ordered by key.

  Args:
    key: A `Tensor` of type `int64`. int64
    indices: A `Tensor` of type `int32`.
    values: A list of `Tensor` objects. a list of tensors
      dtypes A list of data types that inserted values should adhere to.
    dtypes: A list of `tf.DTypes`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
      Maximum number of elements in the Staging Area. If > 0, inserts
      on the container will block when the capacity is reached.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container. Otherwise,
      a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      It is necessary to match this name to the matching Unstage Op.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  OrderedMapStagero   rM  r   rp   rq   NrQ  FExpected list for 'dtypes' argument to 'ordered_map_stage' Op, not %r.r   rn   r  )r0   r   r1   r2   r   r   r   r   r   r   r    ordered_map_stage_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   r  s                    r;   ordered_map_stager  y	  s   2 
			0h..0$#\\	11sGVZ.,&+=+/g n 
FT5M	*
	*,2	34 4 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88sGF"(8(4	'2	?!QX
 
*E && -
##At,,## 
-
w9+  ## 
 ?r  zraw_ops.OrderedMapStagec
                    t        |t        t        f      st        d|z        |D 
cg c]  }
t	        j
                  |
d       }}
|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }t	        j                  ||	      \  }}t        j                  | t        j                        } t        j                  |t        j                        }| |gt        |      z   }d|d|d|d	|d|d|f}t	        j                  d
d|||	|      }d }|S c c}
w )Nr  r   r   ro   rM  rn   rp   rq   r  s   OrderedMapStager   r  r  s                  r;   r  r  	  sh   	FT5M	*
	*,2	34 4 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+&EEfcRVsGMM2#""7GMM:'w$v,.,.,-*K& /<#)s?''	./ ?r  c                    t         j                   xs t        j                         }|j                  }	|	j                  r&	 t	        j
                  |d|| |d|d|d|d|d|      }
|
S t        |t        t        f      st!        d	|z        |D cg c]  }t#        j$                  |d       }}|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||||	      \  }}}}|dd }
|
s|S t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||
       |
S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||||||	      S # t        j                  $ r Y w xY wc c}w )r  OrderedMapUnstagero   rM  r   rp   rq   NrQ  HExpected list for 'dtypes' argument to 'ordered_map_unstage' Op, not %r.r   rn   rk  )r0   r   r1   r2   r   r   r   r   r   r   r   "ordered_map_unstage_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   rm  s                     r;   ordered_map_unstager  	  st   & 
			0h..0$#\\	11!4gz8h=+/g n 
FT5M	*
	,.4	56 6 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88gf&.\'0k"&	(!QX
 QK'	J""$#++J7/ll8$k3<<3LS\\-8:F ::L\67<	.[ && -
##At,,## 
/
w9+  ## 
 ?ro  zraw_ops.OrderedMapUnstagec	           
         t        |t        t        f      st        d|z        |D 	cg c]  }	t	        j
                  |	d       }}	|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }t        j                  | t        j                        } t        j                  |t        j                        }| |g}
d|d|d|d|d|f
}t	        j                  d	t        |      |
|||
      }t	        j                         rt	        j                   d|
||       |S c c}	w )Nr  r   r   ro   rM  rn   rp   rq   s   OrderedMapUnstager   r  rq  rs  s                r;   r  r  .
  sd   	FT5M	*
	,.4	56 6 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+sGMM2#""7GMM:'w,.,+y->&13v;$0C"&(' ""$\67<	.1 ?rt  OrderedMapUnstageNoKeyc                    t         j                   xs t        j                         }|j                  }|j                  r:	 t	        j
                  |d|| d|d|d|d|d|      }	t        j                  |	      }	|	S t        |t         t"        f      st%        d	|z        |D cg c]  }t'        j(                  |d       }}|d
}t'        j*                  |d      }|d
}t'        j*                  |d      }|d}t'        j,                  |d      }|d}t'        j,                  |d      }t/        j0                  d| ||||||      \  }}}}|dd }	t'        j2                         r{d|j5                  d      d|j5                  d      d|j7                  d      d|j7                  d      d|j7                  d      f
}|j8                  }t'        j:                  d|||	       |	dd |	dd gz   }	t        j                  |	      }	|	S # t        j                  $ r }
t        j                  |
|       Y d}
~
nd}
~
wt        j                  $ r Y nw xY w	 t        | |||||||      S # t        j                  $ r Y w xY wc c}w )a  Op removes and returns the (key, value) element with the smallest

  key from the underlying container.   If the underlying container
  does not contain elements, the op will block until it does.

  Args:
    indices: A `Tensor` of type `int32`.
    dtypes: A list of `tf.DTypes` that has length `>= 1`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
    shared_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (key, values).

    key: A `Tensor` of type `int64`.
    values: A list of `Tensor` objects of type `dtypes`.
  r  ro   rM  r   rp   rq   NrQ  OExpected list for 'dtypes' argument to 'ordered_map_unstage_no_key' Op, not %r.r   rn   r  r  )r0   r   r1   r2   r   r   _OrderedMapUnstageNoKeyOutputr   r   r   r   r   r   )ordered_map_unstage_no_key_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   r  s                    r;   ordered_map_unstage_no_keyr  R
  s   * 
			0h..0$#\\
11&gz8h=+/g .33G<gn 
FT5M	*
	35;	<= = 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88 '&+3/;,5.9F!QX QK'""$#++J7/ll8$k3<<3LS\\-8:F ::L ,ABQK712;-'')//8'	.] && -
##At,,## 
6
H<9+  ## 
 ?r  zraw_ops.OrderedMapUnstageNoKeyc           
         t        |t        t        f      st        d|z        |D cg c]  }t	        j
                  |d       }}|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }t        j                  | t        j                        } | g}	d|d|d|d|d|f
}
t	        j                  d	t        |      d
z   |	|
||      }t	        j                         rt	        j                  d|	|
|       |d d
 |d
d  gz   }t         j#                  |      }|S c c}w )Nr  r   r   ro   rM  rn   rp   rq   s   OrderedMapUnstageNoKeyr  r   r  )ry   rz   r{   r|   rI   rf   r~   r   r   r   r   r  r   r  rJ   rL   r  r   r  s               r;   r  r  
  sy   	FT5M	*
	35;	<= = 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+""7GMM:',.,+y->&6Fa$0C"&(' ""$ ,ABQK712;-'')//8'	.3 ?r  c                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        | t        t        f      st        d| z        | D cg c]  }t        j                  |d       } }|g }t        |t        t        f      st        d|z        |D 	cg c]  }	t        j                  |	d       }}	|d}t        j                  |d      }|d	}t        j                  |d
      }|d	}t        j                  |d      }t        j                  d| |||||      \  }
}
}}|dd }t        j                          r{d|j#                  d      d|j#                  d      d|j%                  d      d
|j#                  d
      d|j#                  d      f
}|j&                  }t        j(                  d|||       |\  }|S c c}w c c}	w )a  A queue that produces elements in first-in first-out order.

  Variable-size shapes are allowed by setting the corresponding shape dimensions
  to 0 in the shape attr.  In this case DequeueMany will pad up to the maximum
  size of any given element in the minibatch.  See below for details.

  Args:
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a value.
    shapes: An optional list of shapes (each a `tf.TensorShape` or list of `ints`). Defaults to `[]`.
      The shape of each component in a value. The length of this attr must
      be either 0 or the same as the length of component_types.
      Shapes of fixed rank but variable size are allowed by setting
      any shape dimension to -1.  In this case, the inputs' shape may vary along
      the given dimension, and DequeueMany will pad the given dimension with
      zeros up to the maximum shape of all elements in the given batch.
      If the length of this attr is 0, different queue elements may have
      different ranks and shapes, but only one element may be dequeued at a time.
    capacity: An optional `int`. Defaults to `-1`.
      The upper bound on the number of elements in this queue.
      Negative numbers mean no limit.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this queue will be shared under the given name
      across multiple sessions.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Npadding_fifo_queue op does not support eager execution. Arg 'handle' is a ref.zPExpected list for 'component_types' argument to 'padding_fifo_queue' Op, not %r.rt   NzGExpected list for 'shapes' argument to 'padding_fifo_queue' Op, not %r.ru   rm   ro   rn   rp   rq   PaddingFIFOQueuerw   rx   r   s                   r;   padding_fifo_queuer  
  s   B 
			0h..0$#\\
g
hh	OdE]	3
	+-<	=> > JYY2X'',=>Y/Y^F	FT5M	*
	+-3	45 5 9??"HH-?&?Hx4(I	;7)K!!+}=+'88OF%-(3$@!QX QK'""$.?!@(ll8$j
+[ll;'ll=)	+F
 ::LL&';('	.A Z @r   zraw_ops.PaddingFIFOQueuec                     t        d      )Nr  r?   r   s          r;   !padding_fifo_queue_eager_fallbackr    r   r=   c                    t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d| d|d|d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|g }t        |t        t        f      st!        d
|z        |D cg c]  }t#        j&                  |d       }}|d}t#        j(                  |d      }|d}t#        j*                  |d      }|d}t#        j*                  |d      }t-        j.                  d| |||||      \  }}}}|dd }t#        j0                         r{d|j3                  d      d|j3                  d      d|j5                  d      d|j3                  d      d|j3                  d      f
}|j6                  }t#        j8                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        | ||||||      S # t        j                  $ r Y w xY wc c}
w c c}w )a  A queue that produces elements in first-in first-out order.

  Variable-size shapes are allowed by setting the corresponding shape dimensions
  to 0 in the shape attr.  In this case DequeueMany will pad up to the maximum
  size of any given element in the minibatch.  See below for details.

  Args:
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a value.
    shapes: An optional list of shapes (each a `tf.TensorShape` or list of `ints`). Defaults to `[]`.
      The shape of each component in a value. The length of this attr must
      be either 0 or the same as the length of component_types.
      Shapes of fixed rank but variable size are allowed by setting
      any shape dimension to -1.  In this case, the inputs' shape may vary along
      the given dimension, and DequeueMany will pad the given dimension with
      zeros up to the maximum shape of all elements in the given batch.
      If the length of this attr is 0, different queue elements may have
      different ranks and shapes, but only one element may be dequeued at a time.
    capacity: An optional `int`. Defaults to `-1`.
      The upper bound on the number of elements in this queue.
      Negative numbers mean no limit.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this queue will be shared under the given name
      across multiple sessions.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `resource`.
  PaddingFIFOQueueV2rt   ru   ro   rp   rq   Nr   SExpected list for 'component_types' argument to 'padding_fifo_queue_v2' Op, not %r.JExpected list for 'shapes' argument to 'padding_fifo_queue_v2' Op, not %r.rm   rn   rw   )r0   r   r1   r2   r   r   r   r   r   r   r   $padding_fifo_queue_v2_eager_fallbackr   ry   rz   r{   r|   rI   rf   r}   r~   r   r4   r5   rJ   r   r   rK   rL   r%  s                    r;   padding_fifo_queue_v2r    s   B 
			0h..0$#\\	11"D*;_&*hY{$g n 
OdE]	3
	.0?	@A A JYY2X'',=>Y/Y^F	FT5M	*
	.06	78 8 9??"HH-?&?Hx4(I	;7)K!!+}=+'88of'/9*5DB!QX QK'""$.?!@(ll8$j
+[ll;'ll=)	+F
 ::LlFG=('	._ && -
##At,,## 
1)&8;TtM M ## 
 Z @r'  zraw_ops.PaddingFIFOQueueV2c           
         t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|g }t        |t        t        f      st        d|z        |D cg c]  }t	        j                  |d       }}|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d	      }g }	d| d|d|d|d	|f
}
t	        j                  d
d|	|
||      }t	        j                         rt	        j                  d|	|
|       |\  }|S c c}w c c}w )Nr  rt   r  ru   rm   ro   rn   rp   rq   s   PaddingFIFOQueueV2r  r   r  r)  r*  s               r;   r  r  u  sy   	OdE]	3
	.0?	@A A JYY2X'',=>Y/Y^F	FT5M	*
	.06	78 8 9??"HH-?&?Hx4(I	;7)K!!+}=+,&*
KM;@&2Al#)s?'""$lFG=('	.5 Z @r+  ) TV_ParallelDynamicStitch_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |      }|S t        | t        t        f      st!        d| z        t#        |       }t        |t        t        f      st!        d|z        t#        |      |k7  rt%        dt#        |      |fz        t'        j(                  d| ||      \  }}}	}
|
dd }t+        j,                         rHd|	j/                  d      d	|	j1                  d	      f}|	j2                  }t+        j4                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||      S # t        j                  $ r Y ow xY w)
a	  Interleave the values from the `data` tensors into a single tensor.

  Builds a merged tensor such that

  ```python
      merged[indices[m][i, ..., j], ...] = data[m][i, ..., j, ...]
  ```

  For example, if each `indices[m]` is scalar or vector, we have

  ```python
      # Scalar indices:
      merged[indices[m], ...] = data[m][...]

      # Vector indices:
      merged[indices[m][i], ...] = data[m][i, ...]
  ```

  Each `data[i].shape` must start with the corresponding `indices[i].shape`,
  and the rest of `data[i].shape` must be constant w.r.t. `i`.  That is, we
  must have `data[i].shape = indices[i].shape + constant`.  In terms of this
  `constant`, the output shape is

      merged.shape = [max(indices)] + constant

  Values may be merged in parallel, so if an index appears in both `indices[m][i]`
  and `indices[n][j]`, the result may be invalid. This differs from the normal
  DynamicStitch operator that defines the behavior in that case.

  For example:

  ```python
      indices[0] = 6
      indices[1] = [4, 1]
      indices[2] = [[5, 2], [0, 3]]
      data[0] = [61, 62]
      data[1] = [[41, 42], [11, 12]]
      data[2] = [[[51, 52], [21, 22]], [[1, 2], [31, 32]]]
      merged = [[1, 2], [11, 12], [21, 22], [31, 32], [41, 42],
                [51, 52], [61, 62]]
  ```

  This method can be used to merge partitions created by `dynamic_partition`
  as illustrated on the following example:

  ```python
      # Apply function (increments x_i) on elements for which a certain condition
      # apply (x_i != -1 in this example).
      x=tf.constant([0.1, -1., 5.2, 4.3, -1., 7.4])
      condition_mask=tf.not_equal(x,tf.constant(-1.))
      partitioned_data = tf.dynamic_partition(
          x, tf.cast(condition_mask, tf.int32) , 2)
      partitioned_data[1] = partitioned_data[1] + 1.0
      condition_indices = tf.dynamic_partition(
          tf.range(tf.shape(x)[0]), tf.cast(condition_mask, tf.int32) , 2)
      x = tf.dynamic_stitch(condition_indices, partitioned_data)
      # Here x=[1.1, -1., 6.2, 5.3, -1, 8.4], the -1. values remain
      # unchanged.
  ```

  <div style="width:70%; margin:auto; margin-bottom:10px; margin-top:20px;">
  <img style="width:100%" src="https://www.tensorflow.org/images/DynamicStitch.png" alt>
  </div>

  Args:
    indices: A list of at least 1 `Tensor` objects with type `int32`.
    data: A list with the same length as `indices` of `Tensor` objects with the same type.
    name: A name for the operation (optional).

  Returns:
    A `Tensor`. Has the same type as `data`.
  ParallelDynamicStitchNr   MExpected list for 'indices' argument to 'parallel_dynamic_stitch' Op, not %r.JExpected list for 'data' argument to 'parallel_dynamic_stitch' Op, not %r.oList argument 'data' to 'parallel_dynamic_stitch' Op with length %d must match length %d of argument 'indices'.r
  r  r   )r0   r   r1   r2   r   r   r   r   r   r   r   &parallel_dynamic_stitch_eager_fallbackr   ry   rz   r{   r|   r  r   r4   r5   rI   rJ   r   rg   rK   rL   r  s                r;   parallel_dynamic_stitchr    s   R 
			0h..0$#\\11%tWd<gn 
GdE]	+
	029	:; ; L'	D4-	(
	026	78 8 	Y'
	6	TG	  (88t$H!QXQK'""$3$$S)30B0B30GHF::Lvw@('	.C && -
##At,,## 
3
4d. .## 
s0    E F!-FF! F!%F4 4G
Gzraw_ops.ParallelDynamicStitchc                 X   t        | t        t        f      st        d| z        t	        |       }t        |t        t        f      st        d|z        t	        |      |k7  rt        dt	        |      |fz        t        j                  t        |      |g       \  }}t        j                  | t        j                        } t        |       t        |      z   }d|d|f}t        j                  dd||||      }t        j                         rt        j                  d	|||       |\  }|S )
Nr  r  r  r  r   s   ParallelDynamicStitchr  r   r  r  r  s	            r;   r  r    s0   	GdE]	+
	029	:; ; L'	D4-	(
	026	78 8 	Y'
	6	TG	  11$t*c2F-'4$$Wgmm<'gd+,#w'&5q#)s?'""$vw@('	.r=   c                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        | t        t        f      st        d| z        | D cg c]  }t        j                  |d       } }|g }t        |t        t        f      st        d|z        |D 	cg c]  }	t        j                  |	d       }}	|d}t        j                  |d      }|d	}t        j                  |d
      }|d	}t        j                  |d      }t        j                  d| |||||      \  }
}
}}|dd }t        j                          r{d|j#                  d      d|j#                  d      d|j%                  d      d
|j#                  d
      d|j#                  d      f
}|j&                  }t        j(                  d|||       |\  }|S c c}w c c}	w )a  A queue that produces elements sorted by the first component value.

  Note that the PriorityQueue requires the first component of any element
  to be a scalar int64, in addition to the other elements declared by
  component_types.  Therefore calls to Enqueue and EnqueueMany (resp. Dequeue
  and DequeueMany) on a PriorityQueue will all require (resp. output) one extra
  entry in their input (resp. output) lists.

  Args:
    shapes: A list of shapes (each a `tf.TensorShape` or list of `ints`).
      The shape of each component in a value. The length of this attr must
      be either 0 or the same as the length of component_types. If the length of
      this attr is 0, the shapes of queue elements are not constrained, and
      only one element may be dequeued at a time.
    component_types: An optional list of `tf.DTypes`. Defaults to `[]`.
      The type of each component in a value.
    capacity: An optional `int`. Defaults to `-1`.
      The upper bound on the number of elements in this queue.
      Negative numbers mean no limit.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this queue will be shared under the given name
      across multiple sessions.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Jpriority_queue op does not support eager execution. Arg 'handle' is a ref.zCExpected list for 'shapes' argument to 'priority_queue' Op, not %r.ru   NzLExpected list for 'component_types' argument to 'priority_queue' Op, not %r.rt   rm   ro   rn   rp   rq   PriorityQueueru   rt   ro   rp   rq   r.   )r0   r   r1   r2   r3   ry   rz   r{   r|   rI   r}   rf   r~   r   r4   r5   rJ   r   r   rK   rL   )ru   rt   ro   rp   rq   r.   r6   r7   r   r   r8   r9   r:   rN   rO   rP   s                   r;   priority_queuer  +  s    > 
			0h..0$#\\
c
dd	FT5M	*
	')/	01 1 9??"HH-?&?O	OdE]	3
	')8	9: : JYY2X'',=>Y/YHx4(I	;7)K!!+}=+'88"*i%0t=!QX QK'""$.?!@(ll8$j
+[ll;'ll=)	+F
 ::Lvw8('	.A @ Zr   zraw_ops.PriorityQueuec                     t        d      )Nr  r?   )ru   rt   ro   rp   rq   r.   r@   s          r;   priority_queue_eager_fallbackr  x  s    abbr=   c                    t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d|d| d|d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|g }t        |t        t        f      st!        d
|z        |D cg c]  }t#        j&                  |d       }}|d}t#        j(                  |d      }|d}t#        j*                  |d      }|d}t#        j*                  |d      }t-        j.                  d| |||||      \  }}}}|dd }t#        j0                         r{d|j3                  d      d|j3                  d      d|j5                  d      d|j3                  d      d|j3                  d      f
}|j6                  }t#        j8                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        || |||||      S # t        j                  $ r Y w xY wc c}
w c c}w )a  A queue that produces elements sorted by the first component value.

  Note that the PriorityQueue requires the first component of any element
  to be a scalar int64, in addition to the other elements declared by
  component_types.  Therefore calls to Enqueue and EnqueueMany (resp. Dequeue
  and DequeueMany) on a PriorityQueue will all require (resp. output) one extra
  entry in their input (resp. output) lists.

  Args:
    shapes: A list of shapes (each a `tf.TensorShape` or list of `ints`).
      The shape of each component in a value. The length of this attr must
      be either 0 or the same as the length of component_types. If the length of
      this attr is 0, the shapes of queue elements are not constrained, and
      only one element may be dequeued at a time.
    component_types: An optional list of `tf.DTypes`. Defaults to `[]`.
      The type of each component in a value.
    capacity: An optional `int`. Defaults to `-1`.
      The upper bound on the number of elements in this queue.
      Negative numbers mean no limit.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this queue will be shared under the given name
      across multiple sessions.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `resource`.
  PriorityQueueV2rt   ru   ro   rp   rq   Nr   FExpected list for 'shapes' argument to 'priority_queue_v2' Op, not %r.OExpected list for 'component_types' argument to 'priority_queue_v2' Op, not %r.rm   rn   r  )r0   r   r1   r2   r   r   r   r   r   r   r    priority_queue_v2_eager_fallbackr   ry   rz   r{   r|   rI   r}   rf   r~   r   r4   r5   rJ   r   r   rK   rL   )ru   rt   ro   rp   rq   r.   r6   r7   rN   r   r   r   r8   r9   r:   rO   rP   s                    r;   priority_queue_v2r  {  s   > 
			0h..0$#\\	11'8/&*hY{$g n 
FT5M	*
	*,2	34 4 9??"HH-?&?O	OdE]	3
	*,;	<= = JYY2X'',=>Y/YHx4(I	;7)K!!+}=+'88&/$,	'2?!QX QK'""$.?!@(ll8$j
+[ll;'ll=)	+F
 ::L<:('	._ && -
##At,,## 
-)&8;TtM M ## 
 @ Zr'  zraw_ops.PriorityQueueV2c           
         t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|g }t        |t        t        f      st        d|z        |D cg c]  }t	        j                  |d       }}|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d	      }g }	d|d| d|d|d	|f
}
t	        j                  d
d|	|
||      }t	        j                         rt	        j                  d|	|
|       |\  }|S c c}w c c}w )Nr  ru   r  rt   rm   ro   rn   rp   rq   s   PriorityQueueV2r  r   r  )ry   rz   r{   r|   rI   r}   rf   r~   r   r   rJ   rL   )ru   rt   ro   rp   rq   r.   r@   r   r   rP   rO   rN   s               r;   r  r    sw   	FT5M	*
	*,2	34 4 9??"HH-?&?O	OdE]	3
	*,;	<= = JYY2X'',=>Y/YHx4(I	;7)K!!+}=+,&*
KM;@&/<#)s?'""$<:('	.5 @ Zr+  c                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      |d}t        j                  |d      }t        j                  d| ||      \  }}}}|S )a  Closes the given queue.

  This operation signals that no more elements will be enqueued in the
  given queue. Subsequent Enqueue(Many) operations will fail.
  Subsequent Dequeue(Many) operations will continue to succeed if
  sufficient elements remain in the queue. Subsequent Dequeue(Many)
  operations that would block will fail immediately.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a queue.
    cancel_pending_enqueues: An optional `bool`. Defaults to `False`.
      If true, all pending enqueue requests that are
      blocked on the given queue will be canceled.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  Gqueue_close op does not support eager execution. Arg 'handle' is a ref.Fr   
QueueCloser   r   r   s           r;   queue_closer    s    & 
			0h..0$#\\
`
aa$#$../FHab'88V.E!!QX 
*r=   zraw_ops.QueueClosec                     t        d      )Nr  r?   r   s       r;   queue_close_eager_fallbackr        ^__r=   c                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| d|      }|S |d}t        j                  |d      }t        j                   d| ||      \  }}}}	|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||      S # t        j                  $ r Y w xY w)a  Closes the given queue.

  This operation signals that no more elements will be enqueued in the
  given queue. Subsequent Enqueue(Many) operations will fail.
  Subsequent Dequeue(Many) operations will continue to succeed if
  sufficient elements remain in the queue. Subsequent Dequeue(Many)
  operations that would block will fail immediately.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a queue.
    cancel_pending_enqueues: An optional `bool`. Defaults to `False`.
      If true, all pending enqueue requests that are
      blocked on the given queue will be canceled.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  QueueCloseV2r   N)r   r.   r@   Fr   )r0   r   r1   r2   r   r   r   r   r   r   r   queue_close_v2_eager_fallbackr   rI   r   r4   r5   )
r'   r   r.   r6   r7   rN   r   r8   r9   r:   s
             r;   queue_close_v2r    s   & 
			0h..0$#\\11ndF,E!g n $#$../FHab'88v0G!#!QX 
*% && -
##At,,## 
*
*A  ## 
s0    B C)CCC!C0 0DDzraw_ops.QueueCloseV2c                     |d}t        j                  |d      }t        j                  | t        j
                        } | g}d|f}t        j                  dd||||      }d }|S )NFr   s   QueueCloseV2r   r   )rI   r   r   r   r   r,  r   )r'   r   r.   r@   rP   rO   rN   s          r;   r  r  P  st    $#$../FHab!!&'*:*:;&,%'>?&_a#)s?''	.r=   c                 d   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        |t        t        f      st        d|z        |D cg c]  }t        j                  |d       }}|d}t        j                  |d      }t        j                  d| |||      \  }}}}	|	dd }
t        j                         rHd|j                  d      d|j!                  d      f}|j"                  }t        j$                  d|||
       |
S c c}w )	ak  Dequeues a tuple of one or more tensors from the given queue.

  This operation has k outputs, where k is the number of components
  in the tuples stored in the given queue, and output i is the ith
  component of the dequeued tuple.

  N.B. If the queue is empty, this operation will block until an element
  has been dequeued (or 'timeout_ms' elapses, if specified).

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a queue.
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a tuple.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue is empty, this operation will block for up to
      timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `component_types`.
  Iqueue_dequeue op does not support eager execution. Arg 'handle' is a ref.zKExpected list for 'component_types' argument to 'queue_dequeue' Op, not %r.rt   Nrm   r   QueueDequeuer'   rt   r   r.   r0   r   r1   r2   r3   ry   rz   r{   r|   rI   rf   r~   r4   r5   rJ   r   r   rK   rL   )r'   rt   r   r.   r6   r7   r   r8   r9   r:   rN   rO   rP   s                r;   queue_dequeuer  ]  s2   . 
			0h..0$#\\
b
cc	OdE]	3
	&(7	89 9 JYY2X'',=>Y/YJ  \:*'88v#-D:!QX QK'""$.?!@C--l;=F::Lfg7	. Zs   2D-zraw_ops.QueueDequeuec                     t        d      )Nr  r?   )r'   rt   r   r.   r@   s        r;   queue_dequeue_eager_fallbackr     r   r=   nc                 f   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        |t        t        f      st        d|z        |D cg c]  }t        j                  |d       }}|d}t        j                  |d      }t        j                  d| ||||      \  }}}	}
|
dd }t        j                         rHd|	j                  d      d|	j!                  d      f}|	j"                  }t        j$                  d|||       |S c c}w )	a	  Dequeues `n` tuples of one or more tensors from the given queue.

  If the queue is closed and there are fewer than `n` elements, then an
  OutOfRange error is returned.

  This operation concatenates queue-element component tensors along the
  0th dimension to make a single component tensor.  All of the components
  in the dequeued tuple will have size `n` in the 0th dimension.

  This operation has `k` outputs, where `k` is the number of components in
  the tuples stored in the given queue, and output `i` is the ith
  component of the dequeued tuple.

  N.B. If the queue is empty, this operation will block until `n` elements
  have been dequeued (or 'timeout_ms' elapses, if specified).

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a queue.
    n: A `Tensor` of type `int32`. The number of tuples to dequeue.
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a tuple.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue has fewer than n elements, this operation
      will block for up to timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `component_types`.
  Nqueue_dequeue_many op does not support eager execution. Arg 'handle' is a ref.zPExpected list for 'component_types' argument to 'queue_dequeue_many' Op, not %r.rt   Nrm   r   QueueDequeueManyr'   r  rt   r   r.   r  r'   r  rt   r   r.   r6   r7   r   r8   r9   r:   rN   rO   rP   s                 r;   queue_dequeue_manyr    s5   > 
			0h..0$#\\
g
hh	OdE]	3
	+-<	=> > JYY2X'',=>Y/YJ  \:*'886Q,;'1>!QX QK'""$.?!@C--l;=F::LL&';	. Z   2D.zraw_ops.QueueDequeueManyc                     t        d      )Nr  r?   r'   r  rt   r   r.   r@   s         r;   !queue_dequeue_many_eager_fallbackr    r   r=   c                    t         j                   xs t        j                         }|j                  }|j                  r 	 t	        j
                  |d|| |d|d|	      }|S t        |t        t        f      st!        d|z        |D 	cg c]  }	t#        j$                  |	d       }}	|d}t#        j&                  |d      }t)        j*                  d| ||||      \  }
}
}}|dd }|s|S t#        j,                         rHd|j/                  d      d|j1                  d      f}|j2                  }t#        j4                  d|||       |S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y Zw xY wc c}	w )	a  Dequeues `n` tuples of one or more tensors from the given queue.

  If the queue is closed and there are fewer than `n` elements, then an
  OutOfRange error is returned.

  This operation concatenates queue-element component tensors along the
  0th dimension to make a single component tensor.  All of the components
  in the dequeued tuple will have size `n` in the 0th dimension.

  This operation has `k` outputs, where `k` is the number of components in
  the tuples stored in the given queue, and output `i` is the ith
  component of the dequeued tuple.

  N.B. If the queue is empty, this operation will block until `n` elements
  have been dequeued (or 'timeout_ms' elapses, if specified).

  Args:
    handle: A `Tensor` of type `resource`. The handle to a queue.
    n: A `Tensor` of type `int32`. The number of tuples to dequeue.
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a tuple.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue has fewer than n elements, this operation
      will block for up to timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `component_types`.
  QueueDequeueManyV2rt   r   Nrt   r   r.   r@   SExpected list for 'component_types' argument to 'queue_dequeue_many_v2' Op, not %r.rm   r  )r0   r   r1   r2   r   r   r   r   r   r   r   $queue_dequeue_many_v2_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r4   r5   rJ   r   r   rK   rL   r'   r  rt   r   r.   r6   r7   rN   r   r   r8   r9   r:   rO   rP   s                  r;   queue_dequeue_many_v2r    s   > 
			0h..0$#\\11"D&!5Fz3g n 
OdE]	3
	.0?	@A A JYY2X'',=>Y/YJ  \:*'88Vq.=)3$@!QX QK'	J""$.?!@C--l;=F::LlFG=	.A && -
##At,,## 
1
!_  ## 
 Z6    E F=FE55FFF# #F:9F:zraw_ops.QueueDequeueManyV2c                    t        |t        t        f      st        d|z        |D cg c]  }t	        j
                  |d       }}|d}t	        j                  |d      }t        j                  | t        j                        } t        j                  |t        j                        }| |g}d|d|f}t	        j                  dt        |      ||||      }	t	        j                         rt	        j                  d|||	       |	S c c}w )Nr  rt   rm   r   s   QueueDequeueManyV2r   r  ry   rz   r{   r|   rI   rf   r~   r   r   r   r,  r  r   r  rJ   rL   
r'   r  rt   r   r.   r@   r   rP   rO   rN   s
             r;   r  r    s   	OdE]	3
	.0?	@A A JYY2X'',=>Y/YJ  \:*!!&'*:*:;&
Q.!!,jI&2C4H$0C"&(' ""$lFG=	. Z   Dc                 f   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        |t        t        f      st        d|z        |D cg c]  }t        j                  |d       }}|d}t        j                  |d      }t        j                  d| ||||      \  }}}	}
|
dd }t        j                         rHd|	j                  d      d|	j!                  d      f}|	j"                  }t        j$                  d|||       |S c c}w )	a6  Dequeues `n` tuples of one or more tensors from the given queue.

  This operation is not supported by all queues.  If a queue does not support
  DequeueUpTo, then an Unimplemented error is returned.

  If the queue is closed and there are more than 0 but less than `n`
  elements remaining, then instead of returning an OutOfRange error like
  QueueDequeueMany, less than `n` elements are returned immediately.  If
  the queue is closed and there are 0 elements left in the queue, then
  an OutOfRange error is returned just like in QueueDequeueMany.
  Otherwise the behavior is identical to QueueDequeueMany:

  This operation concatenates queue-element component tensors along the
  0th dimension to make a single component tensor.  All of the components
  in the dequeued tuple will have size `n` in the 0th dimension.

  This operation has k outputs, where `k` is the number of components in
  the tuples stored in the given queue, and output `i` is the ith
  component of the dequeued tuple.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a queue.
    n: A `Tensor` of type `int32`. The number of tuples to dequeue.
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a tuple.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue has fewer than n elements, this operation
      will block for up to timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `component_types`.
  Oqueue_dequeue_up_to op does not support eager execution. Arg 'handle' is a ref.zQExpected list for 'component_types' argument to 'queue_dequeue_up_to' Op, not %r.rt   Nrm   r   QueueDequeueUpTor  r  r  s                 r;   queue_dequeue_up_tor  4  s6   F 
			0h..0$#\\
h
ii	OdE]	3
	,.=	>? ? JYY2X'',=>Y/YJ  \:*'886Q,;'1>!QX QK'""$.?!@C--l;=F::LL&';	. Zr  zraw_ops.QueueDequeueUpToc                     t        d      )Nr  r?   r
  s         r;   "queue_dequeue_up_to_eager_fallbackr  t  r   r=   c                    t         j                   xs t        j                         }|j                  }|j                  r 	 t	        j
                  |d|| |d|d|	      }|S t        |t        t        f      st!        d|z        |D 	cg c]  }	t#        j$                  |	d       }}	|d}t#        j&                  |d      }t)        j*                  d| ||||      \  }
}
}}|dd }|s|S t#        j,                         rHd|j/                  d      d|j1                  d      f}|j2                  }t#        j4                  d|||       |S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y Zw xY wc c}	w )	a0  Dequeues `n` tuples of one or more tensors from the given queue.

  This operation is not supported by all queues.  If a queue does not support
  DequeueUpTo, then an Unimplemented error is returned.

  If the queue is closed and there are more than 0 but less than `n`
  elements remaining, then instead of returning an OutOfRange error like
  QueueDequeueMany, less than `n` elements are returned immediately.  If
  the queue is closed and there are 0 elements left in the queue, then
  an OutOfRange error is returned just like in QueueDequeueMany.
  Otherwise the behavior is identical to QueueDequeueMany:

  This operation concatenates queue-element component tensors along the
  0th dimension to make a single component tensor.  All of the components
  in the dequeued tuple will have size n in the 0th dimension.

  This operation has `k` outputs, where `k` is the number of components in
  the tuples stored in the given queue, and output `i` is the ith
  component of the dequeued tuple.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a queue.
    n: A `Tensor` of type `int32`. The number of tuples to dequeue.
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a tuple.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue has fewer than n elements, this operation
      will block for up to timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `component_types`.
  QueueDequeueUpToV2rt   r   Nr  TExpected list for 'component_types' argument to 'queue_dequeue_up_to_v2' Op, not %r.rm   r  )r0   r   r1   r2   r   r   r   r   r   r   r   %queue_dequeue_up_to_v2_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r4   r5   rJ   r   r   rK   rL   r  s                  r;   queue_dequeue_up_to_v2r"  w  s   F 
			0h..0$#\\11"D&!5Fz3g n 
OdE]	3
	/1@	AB B JYY2X'',=>Y/YJ  \:*'88Vq.=)3$@!QX QK'	J""$.?!@C--l;=F::LlFG=	.A && -
##At,,## 
2
!_  ## 
 Zr  zraw_ops.QueueDequeueUpToV2c                    t        |t        t        f      st        d|z        |D cg c]  }t	        j
                  |d       }}|d}t	        j                  |d      }t        j                  | t        j                        } t        j                  |t        j                        }| |g}d|d|f}t	        j                  dt        |      ||||      }	t	        j                         rt	        j                  d|||	       |	S c c}w )Nr   rt   rm   r   s   QueueDequeueUpToV2r   r  r  r  s
             r;   r!  r!    s   	OdE]	3
	/1@	AB B JYY2X'',=>Y/YJ  \:*!!&'*:*:;&
Q.!!,jI&2C4H$0C"&(' ""$lFG=	. Zr  c           
      ~   t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| d|d|      }|S t        |t        t        f      st!        d|z        |D cg c]  }t#        j$                  |d       }}|d}t#        j&                  |d      }t)        j*                  d| |||      \  }	}	}
}|dd }|s|
S t#        j,                         rHd|
j/                  d      d|
j1                  d      f}|
j2                  }t#        j4                  d|||       |S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||      S # t        j                  $ r Y Xw xY wc c}w )	ae  Dequeues a tuple of one or more tensors from the given queue.

  This operation has k outputs, where k is the number of components
  in the tuples stored in the given queue, and output i is the ith
  component of the dequeued tuple.

  N.B. If the queue is empty, this operation will block until an element
  has been dequeued (or 'timeout_ms' elapses, if specified).

  Args:
    handle: A `Tensor` of type `resource`. The handle to a queue.
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a tuple.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue is empty, this operation will block for up to
      timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `component_types`.
  QueueDequeueV2rt   r   Nr  NExpected list for 'component_types' argument to 'queue_dequeue_v2' Op, not %r.rm   r  )r0   r   r1   r2   r   r   r   r   r   r   r   queue_dequeue_v2_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r4   r5   rJ   r   r   rK   rL   )r'   rt   r   r.   r6   r7   rN   r   r   r8   r9   r:   rO   rP   s                 r;   queue_dequeue_v2r(    s   . 
			0h..0$#\\11f.?z3g n 
OdE]	3
	)+:	;< < JYY2X'',=>Y/YJ  \:*'88%/d<!QX QK'	J""$.?!@C--l;=F::L,9	.? && -
##At,,## 
,
/j  ## 
 Zs6    E F:FE33FFF   F76F7zraw_ops.QueueDequeueV2c                    t        |t        t        f      st        d|z        |D cg c]  }t	        j
                  |d       }}|d}t	        j                  |d      }t        j                  | t        j                        } | g}d|d|f}t	        j                  dt        |      ||||      }t	        j                         rt	        j                  d|||       |S c c}w )Nr&  rt   rm   r   s   QueueDequeueV2r   r%  )ry   rz   r{   r|   rI   rf   r~   r   r   r   r,  r   r  rJ   rL   )	r'   rt   r   r.   r@   r   rP   rO   rN   s	            r;   r'  r'     s    	OdE]	3
	)+:	;< < JYY2X'',=>Y/YJ  \:*!!&'*:*:;&,jI&.O0D$0C"&(' ""$,9	. Zs   C!c                 
   t         j                   xs t        j                         }|j                  }|j                  rt	        d      |d}t        j                  |d      }t        j                  d| |||      \  }}}}|S )a  Enqueues a tuple of one or more tensors in the given queue.

  The components input has k elements, which correspond to the components of
  tuples stored in the given queue.

  N.B. If the queue is full, this operation will block until the given
  element has been enqueued (or 'timeout_ms' elapses, if specified).

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a queue.
    components: A list of `Tensor` objects.
      One or more tensors from which the enqueued tensors should be taken.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue is full, this operation will block for up to
      timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  Iqueue_enqueue op does not support eager execution. Arg 'handle' is a ref.rm   r   QueueEnqueuer'   
componentsr   r.   r   	r'   r.  r   r.   r6   r7   r8   r9   r:   s	            r;   queue_enqueuer0  5  s    , 
			0h..0$#\\
b
ccJ  \:*'88v*#-D:!QX 
*r=   zraw_ops.QueueEnqueuec                     t        d      )Nr+  r?   r'   r.  r   r.   r@   s        r;   queue_enqueue_eager_fallbackr3  Z  r   r=   c                 
   t         j                   xs t        j                         }|j                  }|j                  rt	        d      |d}t        j                  |d      }t        j                  d| |||      \  }}}}|S )a  Enqueues zero or more tuples of one or more tensors in the given queue.

  This operation slices each component tensor along the 0th dimension to
  make multiple queue elements. All of the tuple components must have the
  same size in the 0th dimension.

  The components input has k elements, which correspond to the components of
  tuples stored in the given queue.

  N.B. If the queue is full, this operation will block until the given
  elements have been enqueued (or 'timeout_ms' elapses, if specified).

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a queue.
    components: A list of `Tensor` objects.
      One or more tensors from which the enqueued tensors should
      be taken.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue is too full, this operation will block for up
      to timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  Nqueue_enqueue_many op does not support eager execution. Arg 'handle' is a ref.rm   r   QueueEnqueueManyr-  r   r/  s	            r;   queue_enqueue_manyr7  ]  s    6 
			0h..0$#\\
g
hhJ  \:*'886j'1>!QX 
*r=   zraw_ops.QueueEnqueueManyc                     t        d      )Nr5  r?   r2  s        r;   !queue_enqueue_many_eager_fallbackr9    r   r=   c           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |d|      }|S |d}t        j                  |d      }t        j                   d| |||      \  }}}	}
|	S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||      S # t        j                  $ r Y w xY w)a  Enqueues zero or more tuples of one or more tensors in the given queue.

  This operation slices each component tensor along the 0th dimension to
  make multiple queue elements. All of the tuple components must have the
  same size in the 0th dimension.

  The components input has k elements, which correspond to the components of
  tuples stored in the given queue.

  N.B. If the queue is full, this operation will block until the given
  elements have been enqueued (or 'timeout_ms' elapses, if specified).

  Args:
    handle: A `Tensor` of type `resource`. The handle to a queue.
    components: A list of `Tensor` objects.
      One or more tensors from which the enqueued tensors should
      be taken.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue is too full, this operation will block for up
      to timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  QueueEnqueueManyV2r   Nr   r.   r@   rm   r-  )r0   r   r1   r2   r   r   r   r   r   r   r   $queue_enqueue_many_v2_eager_fallbackr   rI   r~   r4   r5   r'   r.  r   r.   r6   r7   rN   r   r8   r9   r:   s              r;   queue_enqueue_many_v2r?    s   6 
			0h..0$#\\11"D&*lg n J  \:*'88V
)3$@!QX 
*! && -
##At,,## 
1
*$DJ J## 
0    B C+CCC#C3 3D	D	zraw_ops.QueueEnqueueManyV2c                    |d}t        j                  |d      }t        j                  ||      \  }}t        j                  | t
        j                        } | gt        |      z   }d|d|f}t        j                  dd||||      }d }|S )Nrm   r   Tcomponentss   QueueEnqueueManyV2r   r   	rI   r~   r  r   r   r   r,  rz   r   	r'   r.  r   r.   r@   _attr_TcomponentsrP   rO   rN   s	            r;   r=  r=    s    J  \:*"*"I"I*VY"ZZ!!&'*:*:;&D,,,,lJG&2Al#)s?''	.r=   c           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |d|      }|S |d}t        j                  |d      }t        j                   d| |||      \  }}}	}
|	S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||      S # t        j                  $ r Y w xY w)a  Enqueues a tuple of one or more tensors in the given queue.

  The components input has k elements, which correspond to the components of
  tuples stored in the given queue.

  N.B. If the queue is full, this operation will block until the given
  element has been enqueued (or 'timeout_ms' elapses, if specified).

  Args:
    handle: A `Tensor` of type `resource`. The handle to a queue.
    components: A list of `Tensor` objects.
      One or more tensors from which the enqueued tensors should be taken.
    timeout_ms: An optional `int`. Defaults to `-1`.
      If the queue is full, this operation will block for up to
      timeout_ms milliseconds.
      Note: This option is not supported yet.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  QueueEnqueueV2r   Nr<  rm   r-  )r0   r   r1   r2   r   r   r   r   r   r   r   queue_enqueue_v2_eager_fallbackr   rI   r~   r4   r5   r>  s              r;   queue_enqueue_v2rI    s   , 
			0h..0$#\\11fj,g n J  \:*'88J%/d<!QX 
*! && -
##At,,## 
,
*$DJ J## 
r@  zraw_ops.QueueEnqueueV2c                    |d}t        j                  |d      }t        j                  ||      \  }}t        j                  | t
        j                        } | gt        |      z   }d|d|f}t        j                  dd||||      }d }|S )Nrm   r   rB  s   QueueEnqueueV2r   r   rC  rD  s	            r;   rH  rH    s    J  \:*"*"I"I*VY"ZZ!!&'*:*:;&D,,,,lJG&.,#)s?''	.r=   c                 X   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| |      \  }}}}|dd }t        j                         r&d}|j                  }	t        j                  d|	||       |\  }|S )a&  Returns true if queue is closed.

  This operation returns true if the queue is closed and false if the queue
  is open.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a queue.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `bool`.
  Kqueue_is_closed op does not support eager execution. Arg 'handle' is a ref.QueueIsClosedrF   NrG   rH   rM   s
             r;   queue_is_closedrN    s     
			0h..0$#\\
d
ee'88T3!QXQK'""$F::Lvw8('	.r=   zraw_ops.QueueIsClosedc                     t        d      )NrL  r?   rS   s      r;   queue_is_closed_eager_fallbackrP  /  s    bccr=   c                 \   t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d||       }|S t        j                  d| |      \  }}}}|dd }t        j                          r&d}	|j"                  }
t        j$                  d|
|	|       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||      S # t        j                  $ r Y w xY w)a   Returns true if queue is closed.

  This operation returns true if the queue is closed and false if the queue
  is open.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a queue.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `bool`.
  QueueIsClosedV2Nr   rF   rG   )r0   r   r1   r2   r   r   r   r   r   r   r   !queue_is_closed_v2_eager_fallbackr   r4   r5   rI   rJ   rK   rL   r'   r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s              r;   queue_is_closed_v2rU  2  s(    
			0h..0$#\\11v/gn (88&t5!QXQK'""$F::L<:('	.' && -
##At,,## 
.
t' '## 
0    B< <DC**DDD D+*D+zraw_ops.QueueIsClosedV2c                     t        j                  | t        j                        } | g}d }t	        j
                  dd||||      }t	        j                         rt	        j                  d|||       |\  }|S )Ns   QueueIsClosedV2r  r   rR  r   r   r   r,  rI   r   rJ   rL   r   s         r;   rS  rS  ^  ss    !!&'*:*:;&,&/<#)s?'""$<:('	.r=   c                 X   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| |      \  }}}}|dd }t        j                         r&d}|j                  }	t        j                  d|	||       |\  }|S )zComputes the number of elements in the given queue.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a queue.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  Fqueue_size op does not support eager execution. Arg 'handle' is a ref.	QueueSizerF   NrG   rH   rM   s
             r;   
queue_sizer\  k  s     
			0h..0$#\\
_
``'88F/!QXQK'""$F::L\674('	.r=   zraw_ops.QueueSizec                     t        d      )NrZ  r?   rS   s      r;   queue_size_eager_fallbackr^    r  r=   c                 \   t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d||       }|S t        j                  d| |      \  }}}}|dd }t        j                          r&d}	|j"                  }
t        j$                  d|
|	|       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||      S # t        j                  $ r Y w xY w)zComputes the number of elements in the given queue.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a queue.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  QueueSizeV2Nr   rF   rG   )r0   r   r1   r2   r   r   r   r   r   r   r   queue_size_v2_eager_fallbackr   r4   r5   rI   rJ   rK   rL   rT  s              r;   queue_size_v2rb    s'    
			0h..0$#\\11mT6+gn (88f41!QXQK'""$F::L|VW6('	.' && -
##At,,## 
)
t' '## 
rV  zraw_ops.QueueSizeV2c                     t        j                  | t        j                        } | g}d }t	        j
                  dd||||      }t	        j                         rt	        j                  d|||       |\  }|S )Ns   QueueSizeV2r  r   r`  rX  r   s         r;   ra  ra    sr    !!&'*:*:;&,&^Q|#)s?'""$|VW6('	.r=   min_after_dequeueseedseed2c	                    t         j                   xs t        j                         }	|	j                  }
|
j                  rt	        d      t        | t        t        f      st        d| z        | D cg c]  }t        j                  |d       } }|g }t        |t        t        f      st        d|z        |D cg c]  }t        j                  |d       }}|d}t        j                  |d      }|d	}t        j                  |d
      }|d	}t        j                  |d      }|d	}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }t        j                  d| ||||||||
      \  }}}}|dd }t        j                          rd|j#                  d      d|j#                  d      d|j%                  d      d
|j%                  d
      d|j%                  d      d|j%                  d      d|j#                  d      d|j#                  d      f}|j&                  }t        j(                  d|||       |\  }|S c c}w c c}w )ap  A queue that randomizes the order of elements.

  Args:
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a value.
    shapes: An optional list of shapes (each a `tf.TensorShape` or list of `ints`). Defaults to `[]`.
      The shape of each component in a value. The length of this attr must
      be either 0 or the same as the length of component_types. If the length of
      this attr is 0, the shapes of queue elements are not constrained, and
      only one element may be dequeued at a time.
    capacity: An optional `int`. Defaults to `-1`.
      The upper bound on the number of elements in this queue.
      Negative numbers mean no limit.
    min_after_dequeue: An optional `int`. Defaults to `0`.
      Dequeue will block unless there would be this
      many elements after the dequeue or the queue is closed. This
      ensures a minimum level of mixing of elements.
    seed: An optional `int`. Defaults to `0`.
      If either seed or seed2 is set to be non-zero, the random number
      generator is seeded by the given seed.  Otherwise, a random seed is used.
    seed2: An optional `int`. Defaults to `0`.
      A second seed to avoid seed collision.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this queue will be shared under the given name
      across multiple sessions.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Prandom_shuffle_queue op does not support eager execution. Arg 'handle' is a ref.zRExpected list for 'component_types' argument to 'random_shuffle_queue' Op, not %r.rt   NzIExpected list for 'shapes' argument to 'random_shuffle_queue' Op, not %r.ru   rm   ro   r   rd  re  rf  rn   rp   rq   RandomShuffleQueue	rt   ru   ro   rd  re  rf  rp   rq   r.   rx   )rt   ru   ro   rd  re  rf  rp   rq   r.   r6   r7   r   r   r8   r9   r:   rN   rO   rP   s                      r;   random_shuffle_queuerk    s   D 
			0h..0$#\\
i
jj	OdE]	3
	-/>	?@ @ JYY2X'',=>Y/Y^F	FT5M	*
	-/5	67 7 9??"HH-?&?Hx4(''(9;NO	\D			4	($
]E


E7
+%I	;7)K!!+}=+'88of'/0A$)Y*5DB!QX QK'""$.?!@(ll8$j
+-@ 34f'#2C2CG2L3<<4mll=)+F ::LlFG=('	.[ Z @s   2I)=I.zraw_ops.RandomShuffleQueuec
                     t        d      )Nrh  r?   
rt   ru   ro   rd  re  rf  rp   rq   r.   r@   s
             r;   #random_shuffle_queue_eager_fallbackrn        ghhr=   c	                    t         j                   xs t        j                         }	|	j                  }
|
j                  r*	 t	        j
                  |	d|d| d|d|d|d|d|d|d	|      }|S t        | t        t        f      st!        d| z        | D cg c]  }t#        j$                  |d       } }|g }t        |t        t        f      st!        d|z        |D cg c]  }t#        j&                  |d       }}|d}t#        j(                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }|d}t#        j*                  |d      }|d}t#        j*                  |d	      }t-        j.                  d| ||||||||
      \  }}}}|d
d
 }t#        j0                         rd|j3                  d      d|j3                  d      d|j5                  d      d|j5                  d      d|j5                  d      d|j5                  d      d|j3                  d      d	|j3                  d	      f}|j6                  }t#        j8                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d
}~nd
}~wt        j                  $ r Y nw xY w	 t        | |||||||||	
      S # t        j                  $ r Y w xY wc c}w c c}w )aj  A queue that randomizes the order of elements.

  Args:
    component_types: A list of `tf.DTypes` that has length `>= 1`.
      The type of each component in a value.
    shapes: An optional list of shapes (each a `tf.TensorShape` or list of `ints`). Defaults to `[]`.
      The shape of each component in a value. The length of this attr must
      be either 0 or the same as the length of component_types. If the length of
      this attr is 0, the shapes of queue elements are not constrained, and
      only one element may be dequeued at a time.
    capacity: An optional `int`. Defaults to `-1`.
      The upper bound on the number of elements in this queue.
      Negative numbers mean no limit.
    min_after_dequeue: An optional `int`. Defaults to `0`.
      Dequeue will block unless there would be this
      many elements after the dequeue or the queue is closed. This
      ensures a minimum level of mixing of elements.
    seed: An optional `int`. Defaults to `0`.
      If either seed or seed2 is set to be non-zero, the random number
      generator is seeded by the given seed.  Otherwise, a random seed is used.
    seed2: An optional `int`. Defaults to `0`.
      A second seed to avoid seed collision.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this queue will be shared under the given name
      across multiple sessions.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `resource`.
  RandomShuffleQueueV2rt   ru   ro   rd  re  rf  rp   rq   Nrm  UExpected list for 'component_types' argument to 'random_shuffle_queue_v2' Op, not %r.LExpected list for 'shapes' argument to 'random_shuffle_queue_v2' Op, not %r.rm   r   rn   rj  )r0   r   r1   r2   r   r   r   r   r   r   r   &random_shuffle_queue_v2_eager_fallbackr   ry   rz   r{   r|   rI   rf   r}   r~   r   r4   r5   rJ   r   r   rK   rL   )rt   ru   ro   rd  re  rf  rp   rq   r.   r6   r7   rN   r   r   r   r8   r9   r:   rO   rP   s                       r;   random_shuffle_queue_v2ru  !  sU   D 
			0h..0$#\\
11$d,=6:x.guY{	<g
 n 
OdE]	3
	02A	BC C JYY2X'',=>Y/Y^F	FT5M	*
	028	9: : 9??"HH-?&?Hx4(''(9;NO	\D			4	($
]E


E7
+%I	;7)K!!+}=+'88'-2C%)),7dD!QX QK'""$.?!@(ll8$j
+-@ 34f'#2C2CG2L3<<4mll=)+F ::Lfg?('	.{ && -
##At,,## 
3)&8-D;TtM M ## 
 Z @s<    (J LLKJ66KKK( (K?>K?zraw_ops.RandomShuffleQueueV2c
                 4   t        | t        t        f      st        d| z        | D 
cg c]  }
t	        j
                  |
d       } }
|g }t        |t        t        f      st        d|z        |D cg c]  }t	        j                  |d       }}|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d	      }|d}t	        j                  |d
      }|d}t	        j                  |d      }|d}t	        j                  |d      }g }d| d|d|d|d	|d
|d|d|f}t	        j                  dd|||	|      }t	        j                         rt	        j                  d|||       |\  }|S c c}
w c c}w )Nrr  rt   rs  ru   rm   ro   r   rd  re  rf  rn   rp   rq   s   RandomShuffleQueueV2r  r   rq  r)  )rt   ru   ro   rd  re  rf  rp   rq   r.   r@   r   r   rP   rO   rN   s                  r;   rt  rt    s   	OdE]	3
	02A	BC C JYY2X'',=>Y/Y^F	FT5M	*
	028	9: : 9??"HH-?&?Hx4(''(9;NO	\D			4	($
]E


E7
+%I	;7)K!!+}=+,&*
!2FD'i=& 4a#)s?'""$fg?('	.I Z @s   F4Ffile_patternfile_random_seedfile_shuffle_shift_ratiofile_buffer_sizefile_parallelism
batch_sizecompression_typec                    t         j                   xs t        j                         }|j                  }	|	j                  r(	 t	        j
                  |d|d| d|d|d|d|d|d|      }
|
S t        j                  | d      } |d}t        j                  |d      }|d}t        j                   |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }t#        j$                  d| |||||||	      \  }}}}|d	d	 }
t        j&                         rd|j)                  d      d|j+                  d      d|j)                  d      d|j+                  d      d|j+                  d      d|j+                  d      d|j)                  d      f}|j,                  }t        j.                  d|||
       |
\  }
|
S # t        j                  $ r }t        j                  ||       Y d	}~nd	}~wt        j                  $ r Y nw xY w	 t        | ||||||||
	      S # t        j                  $ r Y w xY w)a  Emits randomized records.

  Args:
    file_pattern: A `string`. Glob pattern for the data files.
    file_random_seed: An optional `int`. Defaults to `301`.
      Random seeds used to produce randomized records.
    file_shuffle_shift_ratio: An optional `float`. Defaults to `0`.
      Shifts the list of files after the list is randomly
      shuffled.
    file_buffer_size: An optional `int`. Defaults to `10000`.
      The randomization shuffling buffer.
    file_parallelism: An optional `int`. Defaults to `16`.
      How many sstables are opened and concurrently iterated over.
    batch_size: An optional `int`. Defaults to `32`. The batch size.
    compression_type: An optional `string`. Defaults to `""`.
      The type of compression for the file. Currently ZLIB and
      GZIP are supported. Defaults to none.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `string`.
  RecordInputrw  rx  ry  rz  r{  r|  r}  N)	rw  rx  ry  rz  r{  r|  r}  r.   r@   -  r   '         rn   )rw  rx  ry  rz  r{  r|  r}  r.   )r0   r   r1   r2   r   r   r   r   r   r   r   record_input_eager_fallbackr   rI   r   r~   
make_floatr4   r5   rJ   r   r   rK   rL   )rw  rx  ry  rz  r{  r|  r}  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                    r;   record_inputr    s   . 
			0h..0$#\\11mT><,.H "46F,lJ,.g n ""<@,&&'79KL% %001IKef&&'79KL&&'79KLJ  \:*&&'79KL'88L(80H(8(8",(8tE!QX QK'""$cll>: #"3"34F"G(ll568J 235G 23\-/All-.0F ::L|VW6('	.o && -
##At,,## 
(#6F#;++
+$DB B ## 
s0    &G8 8H?H&&H?>H?I I.-I.zraw_ops.RecordInputc	                 $   t        j                  | d      } |d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d	      }|d
}t        j                  |d      }|d}t        j                  |d      }g }	d| d|d|d|d	|d|d|f}
t        j                  dd|	|
||      }t        j
                         rt        j                  d|	|
|       |\  }|S )Nrw  r  rx  r   ry  r  rz  r  r{  r  r|  rn   r}  s   RecordInputr  r   r  )rI   r   r~   r  r   rJ   rL   )rw  rx  ry  rz  r{  r|  r}  r.   r@   rP   rO   rN   s               r;   r  r    sY   ""<@,&&'79KL% %001IKef&&'79KL&&'79KLJ  \:*&&'79KL,L*<.0H&(:<L
.0@B& ^Q|#)s?'""$|VW6('	.r=   )TV_ResourceAccumulatorApplyGradient_dtypec                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| ||      }|S t        j                  d| |||      \  }}}	}
|	S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||      S # t        j                  $ r Y w xY w)a  Applies a gradient to a given accumulator.

  Does not add if local_step is lesser than the accumulator's global_step.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a accumulator.
    local_step: A `Tensor` of type `int64`.
      The local_step value at which the gradient was computed.
    gradient: A `Tensor`. Must be one of the following types: `float32`, `float64`, `int32`, `uint8`, `int16`, `int8`, `complex64`, `int64`, `qint8`, `quint8`, `qint32`, `bfloat16`, `qint16`, `quint16`, `uint16`, `complex128`, `half`, `uint32`, `uint64`.
      A tensor of the gradient to be accumulated.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
   ResourceAccumulatorApplyGradientNr   r-   )r0   r   r1   r2   r   r   r   r   r   r   r   2resource_accumulator_apply_gradient_eager_fallbackr   r4   r5   )r'   r(   r)   r.   r6   r7   rN   r   r8   r9   r:   s              r;   #resource_accumulator_apply_gradientr  =  s      
			0h..0$#\\110$
g n (88*67A5=DJ!QX 
* && -
##At,,## 
?
*hTt= =## 
s0    A= =CB++CCC C.-C.z(raw_ops.ResourceAccumulatorApplyGradientc                 V   t        j                  |g|t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                  t        j$                  t        j&                  t        j(                  t        j*                  g      \  }\  }t-        j.                  | t        j0                        } t-        j.                  |t        j                        }| ||g}d|f}t        j2                  dd||||      }d }|S )Nr`   s    ResourceAccumulatorApplyGradientr   r   )rI   r  r   float32float64r  uint8int16int8	complex64rr  qint8quint8qint32bfloat16qint16quint16uint16
complex128halfuint32uint64r   r   r,  r   )	r'   r(   r)   r.   r@   _attr_dtyperP   rO   rN   s	            r;   r  r  g  s   %<<hZw`g`o`oqxq~q~  AH  AN  AN  PW  P]  P]  _f  _k  _k  mt  m~  m~  @G  @M  @M  OV  O\  O\  ^e  ^l  ^l  nu  n|  n|  ~E  ~N  ~N  PW  P^  P^  `g  `o  `o  qx  q  q  AH  AS  AS  U\  Ua  Ua  cj  cq  cq  sz  sA  sA  OD  E+{!!&'*:*:;&%%j'--@**h/,[!&@!$0C"&(' '	.r=   c                 \   t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d||       }|S t        j                  d| |      \  }}}}|dd }t        j                          r&d}	|j"                  }
t        j$                  d|
|	|       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||      S # t        j                  $ r Y w xY w)zReturns the number of gradients aggregated in the given accumulators.

  Args:
    handle: A `Tensor` of type `resource`. The handle to an accumulator.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  !ResourceAccumulatorNumAccumulatedNr   rF   rG   )r0   r   r1   r2   r   r   r   r   r   r   r   3resource_accumulator_num_accumulated_eager_fallbackr   r4   r5   rI   rJ   rK   rL   rT  s              r;   $resource_accumulator_num_accumulatedr  t  s+    
			0h..0$#\\1114Agn (88+FG!QXQK'""$F::L+\67L('	.' && -
##At,,## 
@
t' '## 
rV  z)raw_ops.ResourceAccumulatorNumAccumulatedc                     t        j                  | t        j                        } | g}d }t	        j
                  dd||||      }t	        j                         rt	        j                  d|||       |\  }|S )Ns!   ResourceAccumulatorNumAccumulatedr  r   r  rX  r   s         r;   r  r    sw    !!&'*:*:;&,&A1$0C"&(' ""$+\67L('	.r=   c                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |      }|S t        j                  d| ||      \  }}}}	|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||      S # t        j                  $ r Y w xY w)a  Updates the accumulator with a new value for global_step.

  Logs warning if the accumulator's value is already higher than
  new_global_step.

  Args:
    handle: A `Tensor` of type `resource`. The handle to an accumulator.
    new_global_step: A `Tensor` of type `int64`.
      The new global_step value to set.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
   ResourceAccumulatorSetGlobalStepNr   rZ   )r0   r   r1   r2   r   r   r   r   r   r   r   3resource_accumulator_set_global_step_eager_fallbackr   r4   r5   )
r'   rV   r.   r6   r7   rN   r   r8   r9   r:   s
             r;   $resource_accumulator_set_global_stepr    s     
			0h..0$#\\110$g n (88*6<K157!QX 
* && -
##At,,## 
@
/$8 8## 
s0    A; ;CB))CCC C+*C+z(raw_ops.ResourceAccumulatorSetGlobalStepc                     t        j                  | t        j                        } t        j                  |t        j                        }| |g}d }t        j                  dd||||      }d }|S )Ns    ResourceAccumulatorSetGlobalStepr   r   )r   r   r   r,  rr  rI   r   )r'   rV   r.   r@   rP   rO   rN   s          r;   r  r    sj    !!&'*:*:;&**?GMMJ//*,&@!$0C"&(' '	.r=   (TV_ResourceAccumulatorTakeGradient_dtypec           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |d|      }|S t        j                  |d      }t        j                   d| |||      \  }}}	}
|
dd }t        j"                         r7d|	j%                  d      f}|	j&                  }t        j(                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||      S # t        j                  $ r Y w xY w)a  Extracts the average gradient in the given ConditionalAccumulator.

  The op blocks until sufficient (i.e., more than num_required)
  gradients have been accumulated.  If the accumulator has already
  aggregated more than num_required gradients, it returns the average of
  the accumulated gradients.  Also automatically increments the recorded
  global_step in the accumulator by 1, and resets the aggregate to 0.

  Args:
    handle: A `Tensor` of type `resource`. The handle to an accumulator.
    num_required: A `Tensor` of type `int32`.
      Number of gradients required before we return an aggregate.
    dtype: A `tf.DType` from: `tf.float32, tf.float64, tf.int32, tf.uint8, tf.int16, tf.int8, tf.complex64, tf.int64, tf.qint8, tf.quint8, tf.qint32, tf.bfloat16, tf.qint16, tf.quint16, tf.uint16, tf.complex128, tf.half, tf.uint32, tf.uint64`.
      The data type of accumulated gradients. Needs to correspond to the type
      of the accumulator.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `dtype`.
  ResourceAccumulatorTakeGradientr`   NrH  rd   )r0   r   r1   r2   r   r   r   r   r   r   r   1resource_accumulator_take_gradient_eager_fallbackr   rI   rf   r4   r5   rJ   rg   rK   rL   )r'   r_   r`   r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                r;   "resource_accumulator_take_gradientr    sc   * 
			0h..0$#\\11/v|g n 

UG
,%'88)&8D16TC!QX QK'""$s))'23F::L)<J('	.- && -
##At,,## 
>
,e$DB B## 
0    C( (D/;DD/.D/3E EEz'raw_ops.ResourceAccumulatorTakeGradientc                 h   t        j                  |d      }t        j                  | t        j
                        } t        j                  |t        j                        }| |g}d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Nr`   s   ResourceAccumulatorTakeGradientr  r   r  )
rI   rf   r   r   r   r,  r  r   rJ   rL   )r'   r_   r`   r.   r@   rP   rO   rN   s           r;   r  r    s    


UG
,%!!&'*:*:;&''gmmD,,',U&?$0C"&(' ""$)<J('	.r=   'TV_ResourceConditionalAccumulator_dtypec                    t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d| d|d|d|d|      }|S t        j                  | d      } t        j                  |d      }|d	}t        j                   |d      }|d	}t        j                   |d      }|d
}t        j                   |d      }t#        j$                  d| |||||      \  }
}
}}|dd }t        j&                         r{d|j)                  d      d|j+                  d      d|j+                  d      d|j+                  d      d|j+                  d      f
}|j,                  }t        j.                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        | ||||||      S # t        j                  $ r Y w xY w)a  A conditional accumulator for aggregating gradients.

  The accumulator accepts gradients marked with local_step greater or
  equal to the most recent global_step known to the accumulator. The
  average can be extracted from the accumulator, provided sufficient
  gradients have been accumulated. Extracting the average automatically
  resets the aggregate to 0, and increments the global_step recorded by
  the accumulator.
  This is a resource version of ConditionalAccumulator that will work in TF2.0
  with tf.cond version 2.

  Args:
    dtype: A `tf.DType` from: `tf.float32, tf.float64, tf.int32, tf.uint8, tf.int16, tf.int8, tf.complex64, tf.int64, tf.qint8, tf.quint8, tf.qint32, tf.bfloat16, tf.qint16, tf.quint16, tf.uint16, tf.complex128, tf.half, tf.uint32, tf.uint64`.
      The type of the value being accumulated.
    shape: A `tf.TensorShape` or list of `ints`.
      The shape of the values, can be [], in which case shape is unknown.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this accumulator is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this accumulator will be shared under the
      given name across multiple sessions.
    reduction_type: An optional `string` from: `"MEAN", "SUM"`. Defaults to `"MEAN"`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `resource`.
  ResourceConditionalAccumulatorr`   r   rp   rq   r   Nr   rn   r   r   )r0   r   r1   r2   r   r   r   r   r   r   r   /resource_conditional_accumulator_eager_fallbackr   rI   rf   r}   r   r4   r5   rJ   rg   r   rK   rL   )r`   r   rp   rq   r   r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                  r;    resource_conditional_accumulatorr  ,  s#   : 
			0h..0$#\\	11.gug{I}k.*g n 

UG
,%


eW
-%I	;7)K!!+}=+N$$^5EF.'88(U4=6A9G/35!QX QK'""$s))'2Gll7#[#,,{2KS\\-8:Jll+,.F ::L(,I('	.O && -
##At,,## 
<Ui!.t  ## 
s0    "F G+GGG#G5 5HHz&raw_ops.ResourceConditionalAccumulatorc           
         t        j                  | d      } t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }g }d| d|d|d|d|f
}t        j                  dd	||||
      }	t        j
                         rt        j                  d|||	       |	\  }	|	S )Nr`   r   rn   rp   rq   r   r   s   ResourceConditionalAccumulatorr  r   r  )rI   rf   r}   r   r   rJ   rL   )
r`   r   rp   rq   r   r.   r@   rP   rO   rN   s
             r;   r  r  ~  s    


UG
,%


eW
-%I	;7)K!!+}=+N$$^5EF.,UGUK.@&>$0C"&(' ""$(,I('	.r=   'TV_SparseAccumulatorApplyGradient_dtypegradient_indicesgradient_valuesgradient_shapehas_known_shapec           
         t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }t        j                  d| ||||||      \  }	}	}
}|
S )a  Applies a sparse gradient to a given accumulator.

  Does not add if local_step is smaller than the accumulator's
  global_step.

  Args:
    handle: A `Tensor` of type mutable `string`. The handle to a accumulator.
    local_step: A `Tensor` of type `int64`.
      The local_step value at which the sparse gradient was computed.
    gradient_indices: A `Tensor` of type `int64`.
      Indices of the sparse gradient to be accumulated. Must be a
      vector.
    gradient_values: A `Tensor`. Must be one of the following types: `float32`, `float64`, `int32`, `uint8`, `int16`, `int8`, `complex64`, `int64`, `qint8`, `quint8`, `qint32`, `bfloat16`, `qint16`, `quint16`, `uint16`, `complex128`, `half`, `uint32`, `uint64`.
      Values are the non-zero slices of the gradient, and must have
      the same first dimension as indices, i.e., the nnz represented by indices and
      values must be consistent.
    gradient_shape: A `Tensor` of type `int64`.
      Shape of the sparse gradient to be accumulated.
    has_known_shape: A `bool`.
      Boolean indicating whether gradient_shape is unknown, in which
      case the input is ignored during validation.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  ]sparse_accumulator_apply_gradient op does not support eager execution. Arg 'handle' is a ref.r  SparseAccumulatorApplyGradient)r'   r(   r  r  r  r  r.   r   )r'   r(   r  r  r  r  r.   r6   r7   r8   r9   r:   s               r;   !sparse_accumulator_apply_gradientr    s    6 
			0h..0$#\\
v
ww&&8IJ/'88(5?;K:I9G:I/35!QX 
*r=   z&raw_ops.SparseAccumulatorApplyGradientc                     t        d      )Nr  r?   )r'   r(   r  r  r  r  r.   r@   s           r;   0sparse_accumulator_apply_gradient_eager_fallbackr    s    tuur=   SparseAccumulatorTakeGradient)r   r   r   &TV_SparseAccumulatorTakeGradient_dtypec                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }t        j                  d| |||      \  }}}}|dd }	t        j                         r7d|j                  d      f}
|j                  }t        j                  d||
|	       t        j                  |	      }	|	S )a  Extracts the average sparse gradient in a SparseConditionalAccumulator.

  The op will blocks until sufficient (i.e., more than num_required)
  gradients have been accumulated. If the accumulator has already
  aggregated more than num_required gradients, it will return its
  average of the accumulated gradients.  Also automatically increments
  the recorded global_step in the accumulator by 1, and resets the
  aggregate to 0.

  Args:
    handle: A `Tensor` of type mutable `string`.
      The handle to a SparseConditionalAccumulator.
    num_required: A `Tensor` of type `int32`.
      Number of gradients required before we return an aggregate.
    dtype: A `tf.DType` from: `tf.float32, tf.float64, tf.int32, tf.uint8, tf.int16, tf.int8, tf.complex64, tf.int64, tf.qint8, tf.quint8, tf.qint32, tf.bfloat16, tf.qint16, tf.quint16, tf.uint16, tf.complex128, tf.half, tf.uint32, tf.uint64`.
      The data type of accumulated gradients. Needs to correspond to the type
      of the accumulator.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (indices, values, shape).

    indices: A `Tensor` of type `int64`.
    values: A `Tensor` of type `dtype`.
    shape: A `Tensor` of type `int64`.
  \sparse_accumulator_take_gradient op does not support eager execution. Arg 'handle' is a ref.r`   r  rd   N)r0   r   r1   r2   r3   rI   rf   r4   r5   rJ   rg   rK   rL   $_SparseAccumulatorTakeGradientOutputr   rh   s               r;    sparse_accumulator_take_gradientr    s    6 
			0h..0$#\\
u
vv


UG
,%'88'6B/44A!QX QK'""$s))'23F::L'vwH066w?'	.r=   z%raw_ops.SparseAccumulatorTakeGradientc                     t        d      )Nr  r?   rk   s        r;   /sparse_accumulator_take_gradient_eager_fallbackr     s    sttr=   %TV_SparseConditionalAccumulator_dtypec                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  | d      } t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d	      }t        j                  d
| |||||      \  }}}	}
|
dd }t        j                         r{d|	j                  d      d|	j                  d      d|	j                  d      d|	j                  d      d	|	j                  d	      f
}|	j                  }t        j                  d
|||       |\  }|S )a0  A conditional accumulator for aggregating sparse gradients.

  The accumulator accepts gradients marked with local_step greater or
  equal to the most recent global_step known to the accumulator. The
  average can be extracted from the accumulator, provided sufficient
  gradients have been accumulated. Extracting the average automatically
  resets the aggregate to 0, and increments the global_step recorded by
  the accumulator.

  Args:
    dtype: A `tf.DType` from: `tf.float32, tf.float64, tf.int32, tf.uint8, tf.int16, tf.int8, tf.complex64, tf.int64, tf.qint8, tf.quint8, tf.qint32, tf.bfloat16, tf.qint16, tf.quint16, tf.uint16, tf.complex128, tf.half, tf.uint32, tf.uint64`.
      The type of the value being accumulated.
    shape: A `tf.TensorShape` or list of `ints`. The shape of the values.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this accumulator is placed in the given container.
      Otherwise, a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      If non-empty, this accumulator will be shared under the given name
      across multiple sessions.
    reduction_type: An optional `string` from: `"MEAN", "SUM"`. Defaults to `"MEAN"`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Zsparse_conditional_accumulator op does not support eager execution. Arg 'handle' is a ref.r`   r   Nrn   rp   rq   r   r   SparseConditionalAccumulatorr   r   r   s                 r;   sparse_conditional_accumulatorr    sy   4 
			0h..0$#\\
s
tt


UG
,%


eW
-%I	;7)K!!+}=+N$$^5EF.'88&e52;4?7E-13!QX QK'""$s))'2Gll7#[#,,{2KS\\-8:Jll+,.F ::L&fgG('	.r=   z$raw_ops.SparseConditionalAccumulatorc                     t        d      )Nr  r?   r   s          r;   -sparse_conditional_accumulator_eager_fallbackr  D  s    qrrr=   ) TV_Stack_elem_typer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   	elem_type
stack_namec                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  | d      } |d}t        j                  |d      }t        j                  d| ||      \  }}}}|dd }t        j                         rHd|j                  d      d|j                  d      f}	|j                  }
t        j                  d|
|	|       |\  }|S )zDeprecated, use StackV2.

  Args:
    elem_type: A `tf.DType`.
    stack_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Astack op does not support eager execution. Arg 'handle' is a ref.r  Nrn   r  Stack)r  r  r.   )r0   r   r1   r2   r3   rI   rf   r   r4   r5   rJ   rg   r   rK   rL   )r  r  r.   r6   r7   r8   r9   r:   rN   rO   rP   s              r;   _stackr  I  s     
			0h..0$#\\
Z
[[  K8)J  \:*'889$H!QXQK'""$3--k:Lll<(*F::Lvw0('	.r=   zraw_ops.Stackc                     t        d      )Nr  r?   r  r  r.   r@   s       r;   _stack_eager_fallbackr  l  s    XYYr=   c                     t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| |      \  }}}}|S )zDeprecated, use StackCloseV2.

  Args:
    handle: A `Tensor` of type mutable `string`.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  Gstack_close op does not support eager execution. Arg 'handle' is a ref.
StackCloserF   r/   r'   r.   r6   r7   r8   r9   r:   s          r;   stack_closer  o  s`     
			0h..0$#\\
`
aa'88V$0!QX	*r=   zraw_ops.StackClosec                     t        d      )Nr  r?   rS   s      r;   stack_close_eager_fallbackr    r  r=   c                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d||       }|S t        j                  d| |      \  }}}}|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||      S # t        j                  $ r Y w xY w)zDelete the stack from its resource container.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a stack.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  StackCloseV2Nr   rF   )r0   r   r1   r2   r   r   r   r   r   r   r   stack_close_v2_eager_fallbackr   r4   r5   r   s	            r;   stack_close_v2r    s     
			0h..0$#\\11ndF,gn (88vD2!QX	* && -
##At,,## 
*
t' '## 
r   zraw_ops.StackCloseV2c                     t        j                  | t        j                        } | g}d }t	        j
                  dd||||      }d }|S )Ns   StackCloseV2r   r   r   r   r   r,  rI   r   r   s         r;   r  r    sM    !!&'*:*:;&,&_a#)s?''	.r=   ) TV_StackPop_elem_typer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }t        j                  d| ||      \  }}}}|dd }t        j                         r7d|j                  d      f}	|j                  }
t        j                  d|
|	|       |\  }|S )zDeprecated, use StackPopV2.

  Args:
    handle: A `Tensor` of type mutable `string`.
    elem_type: A `tf.DType`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `elem_type`.
  Estack_pop op does not support eager execution. Arg 'handle' is a ref.r  StackPopr'   r  r.   Nre   )r'   r  r.   r6   r7   r8   r9   r:   rN   rO   rP   s              r;   	stack_popr    s     
			0h..0$#\\
^
__  K8)'886YTC!QXQK'""$3--k:;F::LL&'3('	.r=   zraw_ops.StackPopc                     t        d      )Nr  r?   )r'   r  r.   r@   s       r;   stack_pop_eager_fallbackr    s    \]]r=   ) TV_StackPopV2_elem_typer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| d|      }|S t        j                  |d      }t        j                   d| ||      \  }}}}	|	dd }t        j"                         r7d|j%                  d      f}
|j&                  }t        j(                  d||
|       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||      S # t        j                  $ r Y w xY w)a  Pop the element at the top of the stack.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a stack.
    elem_type: A `tf.DType`. The type of the elem that is popped.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `elem_type`.
  
StackPopV2r  N)r  r.   r@   r  )r0   r   r1   r2   r   r   r   r   r   r   r   stack_pop_v2_eager_fallbackr   rI   rf   r4   r5   rJ   rg   rK   rL   )r'   r  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s               r;   stack_pop_v2r    sS    
			0h..0$#\\11lD&+yBgn   K8)'88VytE!QXQK'""$3--k:;F::LlFG5('	.) && -
##At,,## 
(
IDd< <## 
rK  zraw_ops.StackPopV2c                    t        j                  |d      }t        j                  | t        j
                        } | g}d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Nr  s
   StackPopV2r  r   r  )	rI   rf   r   r   r   r,  r   rJ   rL   )r'   r  r.   r@   rP   rO   rN   s          r;   r  r    s      K8)!!&'*:*:;&,#&]Al#)s?'""$lFG5('	.r=   ) TV_StackPush_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   elemswap_memoryc                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      |d}t        j                  |d      }t        j                  d| |||      \  }}}}|dd }	t        j                         rHd|j                  d      d|j                  d      f}
|j                  }t        j                  d||
|	       |	\  }	|	S )a  Deprecated, use StackPushV2.

  Args:
    handle: A `Tensor` of type mutable `string`.
    elem: A `Tensor`.
    swap_memory: An optional `bool`. Defaults to `False`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor`. Has the same type as `elem`.
  Fstack_push op does not support eager execution. Arg 'handle' is a ref.NFr  	StackPushr'   r  r  r.   r   )r0   r   r1   r2   r3   rI   r   r4   r5   rJ   rg   r   rK   rL   )r'   r  r  r.   r6   r7   r8   r9   r:   rN   rO   rP   s               r;   
stack_pushr    s     
			0h..0$#\\
_
``K"";>+'88F; !QX QK'""$3%%c*M  /1F::L\674('	.r=   zraw_ops.StackPushc                     t        d      )Nr  r?   )r'   r  r  r.   r@   s        r;   stack_push_eager_fallbackr  7  r  r=   ) TV_StackPushV2_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |d|      }|S |d}t        j                  |d      }t        j                   d| |||      \  }}}	}
|
dd }t        j"                         rHd|	j%                  d      d|	j'                  d      f}|	j(                  }t        j*                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||      S # t        j                  $ r Y w xY w)ay  Push an element onto the stack.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a stack.
    elem: A `Tensor`. The tensor to be pushed onto the stack.
    swap_memory: An optional `bool`. Defaults to `False`.
      Swap `elem` to CPU. Default to false.
    name: A name for the operation (optional).

  Returns:
    A `Tensor`. Has the same type as `elem`.
  StackPushV2r  N)r  r.   r@   Fr  r   )r0   r   r1   r2   r   r   r   r   r   r   r   stack_push_v2_eager_fallbackr   rI   r   r4   r5   rJ   rg   r   rK   rL   )r'   r  r  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                r;   stack_push_v2r  <  sz    
			0h..0$#\\11mT64Mgn K"";>+'88f4[ "!QX QK'""$3%%c*M  /1F::L|VW6('	.1 && -
##At,,## 
)
$KdF F## 
s0    C= =ED++EEE E/.E/zraw_ops.StackPushV2c                 f   |d}t        j                  |d      }t        j                  |g|g       \  }\  }t        j                  | t
        j                        } | |g}d|d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )NFr  r   s   StackPushV2r  r   r  )
rI   r   r  r   r   r   r,  r   rJ   rL   )	r'   r  r  r.   r@   r  rP   rO   rN   s	            r;   r  r  m  s    K"";>+44dVS"E'7D!!&'*:*:;&$,-5&^Q|#)s?'""$|VW6('	.r=   ) TV_StackV2_elem_typer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   max_sizec           
         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| d|d|      }|S t        j                  |d      }|d}t        j                  |d      }t!        j"                  d| |||      \  }}}	}
|
dd }t        j$                         rHd|	j'                  d      d|	j)                  d      f}|	j*                  }t        j,                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||      S # t        j                  $ r Y 'w xY w)a?  A stack that produces elements in first-in last-out order.

  Args:
    max_size: A `Tensor` of type `int32`.
      The maximum size of the stack if non-negative. If negative, the stack
      size is unlimited.
    elem_type: A `tf.DType`. The type of the elements on the stack.
    stack_name: An optional `string`. Defaults to `""`.
      Overrides the name used for the temporary stack resource. Default
      value is the name of the 'Stack' op (which is guaranteed unique).
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `resource`.
  StackV2r  r  Nr  rn   )r  r  r  r.   )r0   r   r1   r2   r   r   r   r   r   r   r   stack_v2_eager_fallbackr   rI   rf   r   r4   r5   rJ   rg   r   rK   rL   )r  r  r  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                r;   stack_v2r    s     
			0h..0$#\\11ixig n   K8)J  \:*'88H	(t5!QX QK'""$3--k:Lll<(*F::L<2('	.5 && -
##At,,## 
$
iJT  ## 
s0    D E'EEEE/ /FFzraw_ops.StackV2c                 V   t        j                  |d      }|d}t        j                  |d      }t        j                  | t
        j                        } | g}d|d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Nr  rn   r  s   StackV2r  r   r	  )
rI   rf   r   r   r   r   r  r   rJ   rL   )r  r  r  r.   r@   rP   rO   rN   s           r;   r
  r
    s      K8)J  \:*##Hgmm<(,L*=&Z<v!$41'""$<2('	.r=   c                    t         j                   xs t        j                         }|j                  }|j                  r#	 t	        j
                  |d|| d|d|d|d|      }|S |d}t        j                  |d      }|d}t        j                  |d      }|d	}t        j                  |d      }|d	}t        j                  |d      }t!        j"                  d| |||||
      \  }
}
}}|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        | ||||||      S # t        j                  $ r Y w xY w)ac  Stage values similar to a lightweight Enqueue.

  The basic functionality of this Op is similar to a queue with many
  fewer capabilities and options.  This Op is optimized for performance.

  Args:
    values: A list of `Tensor` objects. a list of tensors
      dtypes A list of data types that inserted values should adhere to.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
      Maximum number of elements in the Staging Area. If > 0, inserts
      on the container will block when the capacity is reached.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
      The maximum number of bytes allowed for Tensors in the Staging Area.
      If > 0, inserts will block until sufficient space is available.
    container: An optional `string`. Defaults to `""`.
      If non-empty, this queue is placed in the given container. Otherwise,
      a default container is used.
    shared_name: An optional `string`. Defaults to `""`.
      It is necessary to match this name to the matching Unstage Op.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  Stagero   rM  rp   rq   N)ro   rM  rp   rq   r.   r@   r   rn   )r   ro   rM  rp   rq   r.   )r0   r   r1   r2   r   r   r   r   r   r   r   stage_eager_fallbackr   rI   r~   r   r4   r5   )r   ro   rM  rp   rq   r.   r6   r7   rN   r   r8   r9   r:   s                r;   stager    s   2 
			0h..0$#\\11gtVZ>k9m[Jg n Hx4(L""<@,I	;7)K!!+}=+'88$+DJ!QX 
*5 && -
##At,,## 
!
8,;TtM M ## 
s0    !C- -D4 DD43D48E
 
E E zraw_ops.Stagec           
      p   |d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }t        j                  | |      \  }} t	        |       }d|d|d|d|d|f
}	t        j
                  dd||	||	      }
d }
|
S )
Nr   ro   rM  rn   rp   rq   r   s   Stager   )rI   r~   r   r  rz   r   )r   ro   rM  rp   rq   r.   r@   _attr_dtypesrP   rO   rN   s              r;   r  r    s    Hx4(L""<@,I	;7)K!!+}=+!@@M,f,.,Y{D&XqV!$41''	.r=   c                 b   t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d|d|d| d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||      \  }}}}|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        ||| ||||      S # t        j                  $ r Y Ew xY wc c}
w )rO  
StageClearro   rM  r   rp   rq   NrQ  @Expected list for 'dtypes' argument to 'stage_clear' Op, not %r.r   rn   rS  )r0   r   r1   r2   r   r   r   r   r   r   r   stage_clear_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rU  s                 r;   stage_clearr    s    
			0h..0$#\\	11lD*hhYg n 
FT5M	*
	$&,	-. . 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88Vh#/9"-D:!QX 
*A && -
##At,,## 
',v;TtM M ## 
 ?rW  zraw_ops.StageClearc           
         t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }g }d|d|d| d|d|f
}	t	        j                  d	d||	||
      }
d }
|
S c c}w )Nr  r   r   ro   rM  rn   rp   rq   s
   StageClearr   rY  rZ  s              r;   r  r  Y  s   	FT5M	*
	$&,	-. . 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+,.,+y->&]Al#)s?''	.' ?r[  indexc                    t         j                   xs t        j                         }|j                  }|j                  r%	 t	        j
                  |d|| d|d|d|d|d|      }	|	S t        |t        t        f      st!        d	|z        |D cg c]  }t#        j$                  |d       }}|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| ||||||      \  }}}}|dd }	|	s|S t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||	       |	S # t        j                  $ r }
t        j                  |
|       Y d}
~
nd}
~
wt        j                  $ r Y nw xY w	 t        | |||||||      S # t        j                  $ r Y w xY wc c}w )a  Op peeks at the values at the specified index.  If the

  underlying container does not contain sufficient elements
  this op will block until it does.   This Op is optimized for
  performance.

  Args:
    index: A `Tensor` of type `int32`.
    dtypes: A list of `tf.DTypes` that has length `>= 1`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
    shared_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `dtypes`.
  	StagePeekro   rM  r   rp   rq   NrQ  ?Expected list for 'dtypes' argument to 'stage_peek' Op, not %r.r   rn   )r  r   ro   rM  rp   rq   r.   )r0   r   r1   r2   r   r   r   r   r   r   r   stage_peek_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   )r  r   ro   rM  rp   rq   r.   r6   r7   rN   r   r   r8   r9   r:   rO   rP   s                    r;   
stage_peekr  t  sm   & 
			0h..0$#\\	11k4
HnhYg n 
FT5M	*
	#%+	,- - 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'885(".)!,49!QX QK'	J""$#++J7/ll8$k3<<3LS\\-8:F ::L\674	.W && -
##At,,## 
&
(f;TtM M ## 
 ?s6    #G IH"G==HHH- -IIzraw_ops.StagePeekc           
      t   t        |t        t        f      st        d|z        |D cg c]  }t	        j
                  |d       }}|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }t        j                  | t        j                        } | g}	d|d|d|d|d|f
}
t	        j                  d	t        |      |	|
||
      }t	        j                         rt	        j                  d|	|
|       |S c c}w )Nr  r   r   ro   rM  rn   rp   rq   s	   StagePeekr   r  )ry   rz   r{   r|   rI   rf   r~   r   r   r   r   r  r   r  rJ   rL   )r  r   ro   rM  rp   rq   r.   r@   r   rP   rO   rN   s               r;   r  r    sH   	FT5M	*
	#%+	,- - 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+

 
 
6%,.,+y->&\3v;|#)s?'""$\674	.- ?s   D5c                    t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d|d|d| d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||      \  }}}}|dd }t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        ||| ||||      S # t        j                  $ r Y w xY wc c}
w )rv  	StageSizero   rM  r   rp   rq   NrQ  ?Expected list for 'dtypes' argument to 'stage_size' Op, not %r.r   rn   rS  )r0   r   r1   r2   r   r   r   r   r   r   r   stage_size_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   ra  s                   r;   
stage_sizer$    sf    
			0h..0$#\\	11k4X~hYg n 
FT5M	*
	#%+	,- - 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88FX".)!,49!QX QK'""$#++J7/ll8$k3<<3LS\\-8:F ::L\674('	.U && -
##At,,## 
&,v;TtM M ## 
 ?rc  zraw_ops.StageSizec           
          t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }g }d|d|d| d|d|f
}	t	        j                  d	d
||	||      }
t	        j                         rt	        j                  d||	|
       |
\  }
|
S c c}w )Nr"  r   r   ro   rM  rn   rp   rq   s	   StageSizer  r   r!  re  rZ  s              r;   r#  r#  $  s3   	FT5M	*
	#%+	,- - 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+,.,+y->&\1\#)s?'""$\674('	.- ?rf  ) TV_TensorArray_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   sizedynamic_sizeclear_after_readtensor_array_namec                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d	      }|d}t        j                  |d
      }t        j                  d| ||||||      \  }	}	}
}|dd }t        j                         r{d|
j                  d      d|
j                  d      d|
j                  d      d	|
j                  d	      d
|
j                  d
      f
}|
j                   }t        j"                  d|||       |\  }|S )a  TODO: add doc.

  Args:
    size: A `Tensor` of type `int32`.
    dtype: A `tf.DType`.
    dynamic_size: An optional `bool`. Defaults to `False`.
    clear_after_read: An optional `bool`. Defaults to `True`.
    tensor_array_name: An optional `string`. Defaults to `""`.
    element_shape: An optional `tf.TensorShape` or list of `ints`. Defaults to `None`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Htensor_array op does not support eager execution. Arg 'handle' is a ref.r`   NFr(  Tr)  rn   r*  element_shapeTensorArray)r'  r`   r(  r)  r*  r-  r.   )r0   r   r1   r2   r3   rI   rf   r   r   r}   r4   r5   rJ   rg   r   r   rK   rL   )r'  r`   r(  r)  r*  r-  r.   r6   r7   r8   r9   r:   rN   rO   rP   s                  r;   tensor_arrayr/  D  s    
			0h..0$#\\
a
bb


UG
,%L##L.A,''(8:LM''(9;NOM%%m_E-'88DL(8):%2	?!QX
 QK'""$s))'2N  02D  !346Ill./ll?+	-F
 ::L|VW6('	.r=   zraw_ops.TensorArrayc                     t        d      )Nr,  r?   )r'  r`   r(  r)  r*  r-  r.   r@   s           r;   tensor_array_eager_fallbackr1  z  s    _``r=   c                     t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| |      \  }}}}|S )zTODO: add doc.

  Args:
    handle: A `Tensor` of type mutable `string`.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  Ntensor_array_close op does not support eager execution. Arg 'handle' is a ref.TensorArrayCloserF   r/   r  s          r;   tensor_array_closer5  }  s`     
			0h..0$#\\
g
hh'8866!QX	*r=   zraw_ops.TensorArrayClosec                     t        d      )Nr3  r?   rS   s      r;   !tensor_array_close_eager_fallbackr7    r   r=   c                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d||       }|S t        j                  d| |      \  }}}}|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||      S # t        j                  $ r Y w xY w)zDeprecated. Use TensorArrayCloseV3

  Args:
    handle: A `Tensor` of type `string`.
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  TensorArrayCloseV2Nr   rF   )r0   r   r1   r2   r   r   r   r   r   r   r   $tensor_array_close_v2_eager_fallbackr   r4   r5   r   s	            r;   tensor_array_close_v2r;    s     
			0h..0$#\\11"D&2gn (88V$8!QX	* && -
##At,,## 
1
t' '## 
r   zraw_ops.TensorArrayCloseV2c                     t        j                  | t        j                        } | g}d }t	        j
                  dd||||      }d }|S )Ns   TensorArrayCloseV2r   r   r   r   s         r;   r:  r:    sL    !!&'..9&,&2Al#)s?''	.r=   c                    t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d||       }|S t        j                  d| |      \  }}}}|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||      S # t        j                  $ r Y w xY w)ah  Delete the TensorArray from its resource container.

  This enables the user to close and release the resource in the middle
  of a step/run.

  Args:
    handle: A `Tensor` of type `resource`.
      The handle to a TensorArray (output of TensorArray or TensorArrayGrad).
    name: A name for the operation (optional).

  Returns:
    The created Operation.
  TensorArrayCloseV3Nr   rF   )r0   r   r1   r2   r   r   r   r   r   r   r   $tensor_array_close_v3_eager_fallbackr   r4   r5   r   s	            r;   tensor_array_close_v3r@    s     
			0h..0$#\\11"D&2gn (88V$8!QX	* && -
##At,,## 
1
t' '## 
r   zraw_ops.TensorArrayCloseV3c                     t        j                  | t        j                        } | g}d }t	        j
                  dd||||      }d }|S )Ns   TensorArrayCloseV3r   r   r  r   s         r;   r?  r?    sN    !!&'*:*:;&,&2Al#)s?''	.r=   TensorArrayConcatlengths) TV_TensorArrayConcat_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   flow_inc                 $   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }|d}t        j                  |d      }t        j                  d| ||||      \  }}}}	|	dd }
t        j                         rHd|j                  d      d|j                  d      f}|j                  }t        j                  d|||
       t        j!                  |
      }
|
S )a  TODO: add doc.

  Args:
    handle: A `Tensor` of type mutable `string`.
    flow_in: A `Tensor` of type `float32`.
    dtype: A `tf.DType`.
    element_shape_except0: An optional `tf.TensorShape` or list of `ints`. Defaults to `None`.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (value, lengths).

    value: A `Tensor` of type `dtype`.
    lengths: A `Tensor` of type `int64`.
  Otensor_array_concat op does not support eager execution. Arg 'handle' is a ref.r`   Nelement_shape_except0rB  r'   rE  r`   rH  r.   )r0   r   r1   r2   r3   rI   rf   r}   r4   r5   rJ   rg   r   rK   rL   _TensorArrayConcatOutputr   )r'   rE  r`   rH  r.   r6   r7   r8   r9   r:   rN   rO   rP   s                r;   tensor_array_concatrK    s	     
			0h..0$#\\
h
ii


UG
,%" "--.CE\]'88FG53H"&(!QX QK'""$s))'24Kll235F::L\67<$**73'	.r=   zraw_ops.TensorArrayConcatc                     t        d      )NrG  r?   )r'   rE  r`   rH  r.   r@   s         r;   "tensor_array_concat_eager_fallbackrM    r   r=   TensorArrayConcatV2) TV_TensorArrayConcatV2_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                 d   t         j                   xs t        j                         }|j                  }|j                  r5	 t	        j
                  |d|| |d|d|	      }t        j                  |      }|S t        j                   |d      }|d}t        j"                  |d      }t%        j&                  d| ||||      \  }	}	}
}|dd }t        j(                         rHd|
j+                  d      d|
j-                  d      f}|
j.                  }t        j0                  d|||       t        j                  |      }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y :w xY w)a  Deprecated. Use TensorArrayConcatV3

  Args:
    handle: A `Tensor` of type `string`.
    flow_in: A `Tensor` of type `float32`.
    dtype: A `tf.DType`.
    element_shape_except0: An optional `tf.TensorShape` or list of `ints`. Defaults to `None`.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (value, lengths).

    value: A `Tensor` of type `dtype`.
    lengths: A `Tensor` of type `int64`.
  rN  r`   rH  Nr`   rH  r.   r@   rI  )r0   r   r1   r2   r   r   _TensorArrayConcatV2Outputr   r   r   r   r   r   %tensor_array_concat_v2_eager_fallbackr   rI   rf   r}   r4   r5   rJ   rg   r   rK   rL   r'   rE  r`   rH  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                 r;   tensor_array_concat_v2rU  (  s     
			0h..0$#\\	11#T67GU!68g +009gn 

UG
,%" "--.CE\]'88fgU5J$(*!QX QK'""$s))'24Kll235F::L|VW>&,,W5'	.7 && -
##At,,## 
2
' 5DdL L ## 
0    3D< <FE**FFF F/.F/zraw_ops.TensorArrayConcatV2c                    t        j                  |d      }|d }t        j                  |d      }t        j                  | t
        j                        } t        j                  |t
        j                        }| |g}d|d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       t        j                  |      }|S )Nr`   rH  s   TensorArrayConcatV2r   r   rN  )rI   rf   r}   r   r   r   r   r  r   rJ   rL   rR  r   	r'   rE  r`   rH  r.   r@   rP   rO   rN   s	            r;   rS  rS  a  s    


UG
,%" "--.CE\]!!&'..9&""7GOO<''",U35JK&3Q|#)s?'""$|VW>&,,W5'	.r=   TensorArrayConcatV3) TV_TensorArrayConcatV3_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                 d   t         j                   xs t        j                         }|j                  }|j                  r5	 t	        j
                  |d|| |d|d|	      }t        j                  |      }|S t        j                   |d      }|d}t        j"                  |d      }t%        j&                  d| ||||      \  }	}	}
}|dd }t        j(                         rHd|
j+                  d      d|
j-                  d      f}|
j.                  }t        j0                  d|||       t        j                  |      }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y :w xY w)a  Concat the elements from the TensorArray into value `value`.

  Takes `T` elements of shapes

    ```
    (n0 x d0 x d1 x ...), (n1 x d0 x d1 x ...), ..., (n(T-1) x d0 x d1 x ...)
    ```

  and concatenates them into a Tensor of shape:

    ```
    (n0 + n1 + ... + n(T-1) x d0 x d1 x ...)
    ```

  All elements must have the same shape (excepting the first dimension).

  Args:
    handle: A `Tensor` of type `resource`. The handle to a TensorArray.
    flow_in: A `Tensor` of type `float32`.
      A float scalar that enforces proper chaining of operations.
    dtype: A `tf.DType`. The type of the elem that is returned.
    element_shape_except0: An optional `tf.TensorShape` or list of `ints`. Defaults to `None`.
      The expected shape of an element, if known,
      excluding the first dimension. Used to validate the shapes of
      TensorArray elements. If this shape is not fully specified, concatenating
      zero-size TensorArrays is an error.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (value, lengths).

    value: A `Tensor` of type `dtype`.
    lengths: A `Tensor` of type `int64`.
  rY  r`   rH  NrQ  rI  )r0   r   r1   r2   r   r   _TensorArrayConcatV3Outputr   r   r   r   r   r   %tensor_array_concat_v3_eager_fallbackr   rI   rf   r}   r4   r5   rJ   rg   r   rK   rL   rT  s                 r;   tensor_array_concat_v3r^  y  s   F 
			0h..0$#\\	11#T67GU!68g +009gn 

UG
,%" "--.CE\]'88fgU5J$(*!QX QK'""$s))'24Kll235F::L|VW>&,,W5'	.7 && -
##At,,## 
2
' 5DdL L ## 
rV  zraw_ops.TensorArrayConcatV3c                    t        j                  |d      }|d }t        j                  |d      }t        j                  | t
        j                        } t        j                  |t
        j                        }| |g}d|d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       t        j                  |      }|S )Nr`   rH  s   TensorArrayConcatV3r   r   rY  )rI   rf   r}   r   r   r   r,  r  r   rJ   rL   r\  r   rX  s	            r;   r]  r]    s    


UG
,%" "--.CE\]!!&'*:*:;&""7GOO<''",U35JK&3Q|#)s?'""$|VW>&,,W5'	.r=   ) TV_TensorArrayGather_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c           	         t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }|d}t        j                  |d      }t        j                  d| |||||      \  }}}	}
|
dd }t        j                         rHd|	j                  d      d|	j                  d      f}|	j                  }t        j                  d|||       |\  }|S )aj  TODO: add doc.

  Args:
    handle: A `Tensor` of type mutable `string`.
    indices: A `Tensor` of type `int32`.
    flow_in: A `Tensor` of type `float32`.
    dtype: A `tf.DType`.
    element_shape: An optional `tf.TensorShape` or list of `ints`. Defaults to `None`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `dtype`.
  Otensor_array_gather op does not support eager execution. Arg 'handle' is a ref.r`   Nr-  TensorArrayGatherr'   r   rE  r`   r-  r.   r0   r   r1   r2   r3   rI   rf   r}   r4   r5   rJ   rg   r   rK   rL   )r'   r   rE  r`   r-  r.   r6   r7   r8   r9   r:   rN   rO   rP   s                 r;   tensor_array_gatherrf    s     
			0h..0$#\\
h
ii


UG
,%M%%m_E-'88FGW#("&(!QX QK'""$s))'2Oll?+-F::L\67<('	.r=   zraw_ops.TensorArrayGatherc                     t        d      )Nrb  r?   )r'   r   rE  r`   r-  r.   r@   s          r;   "tensor_array_gather_eager_fallbackrh    r   r=   ) TV_TensorArrayGatherV2_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  r!	 t	        j
                  |d|| ||d|d|
      }|S t        j                  |d      }|d}t        j                  |d      }t!        j"                  d| |||||      \  }
}
}}|dd }t        j$                         rHd|j'                  d      d|j)                  d      f}|j*                  }t        j,                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        | ||||||      S # t        j                  $ r Y +w xY w)aw  Deprecated. Use TensorArrayGatherV3

  Args:
    handle: A `Tensor` of type `string`.
    indices: A `Tensor` of type `int32`.
    flow_in: A `Tensor` of type `float32`.
    dtype: A `tf.DType`.
    element_shape: An optional `tf.TensorShape` or list of `ints`. Defaults to `None`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `dtype`.
  TensorArrayGatherV2r`   r-  Nr`   r-  r.   r@   rd  )r0   r   r1   r2   r   r   r   r   r   r   r   %tensor_array_gather_v2_eager_fallbackr   rI   rf   r}   r4   r5   rJ   rg   r   rK   rL   r'   r   rE  r`   r-  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                  r;   tensor_array_gather_v2ro    s    
			0h..0$#\\11#T67GW/g n 

UG
,%M%%m_E-'88fg'.e-:G!QX QK'""$s))'2Oll?+-F::L|VW>('	.7 && -
##At,,## 
2
'7%}  ## 
0    D E+EEE#E5 5FFzraw_ops.TensorArrayGatherV2c                    t        j                  |d      }|d }t        j                  |d      }t        j                  | t
        j                        } t        j                  |t
        j                        }t        j                  |t
        j                        }| ||g}d|d|f}t        j                  dd||||      }	t        j                         rt        j                  d|||	       |	\  }	|	S )Nr`   r-  s   TensorArrayGatherV2r  r   rk  )rI   rf   r}   r   r   r   r   r  r  r   rJ   rL   
r'   r   rE  r`   r-  r.   r@   rP   rO   rN   s
             r;   rm  rm  <  s    


UG
,%M%%m_E-!!&'..9&""7GMM:'""7GOO<''7+,UO];&3Q|#)s?'""$|VW>('	.r=   ) TV_TensorArrayGatherV3_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  r!	 t	        j
                  |d|| ||d|d|
      }|S t        j                  |d      }|d}t        j                  |d      }t!        j"                  d| |||||      \  }
}
}}|dd }t        j$                         rHd|j'                  d      d|j)                  d      f}|j*                  }t        j,                  d|||       |\  }|S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        | ||||||      S # t        j                  $ r Y +w xY w)ap  Gather specific elements from the TensorArray into output `value`.

  All elements selected by `indices` must have the same shape.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a TensorArray.
    indices: A `Tensor` of type `int32`.
      The locations in the TensorArray from which to read tensor elements.
    flow_in: A `Tensor` of type `float32`.
      A float scalar that enforces proper chaining of operations.
    dtype: A `tf.DType`. The type of the elem that is returned.
    element_shape: An optional `tf.TensorShape` or list of `ints`. Defaults to `None`.
      The expected shape of an element, if known. Used to
      validate the shapes of TensorArray elements. If this shape is not
      fully specified, gathering zero-size TensorArrays is an error.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `dtype`.
  TensorArrayGatherV3r`   r-  Nrl  rd  )r0   r   r1   r2   r   r   r   r   r   r   r   %tensor_array_gather_v3_eager_fallbackr   rI   rf   r}   r4   r5   rJ   rg   r   rK   rL   rn  s                  r;   tensor_array_gather_v3rw  Q  s   * 
			0h..0$#\\11#T67GW/g n 

UG
,%M%%m_E-'88fg'.e-:G!QX QK'""$s))'2Oll?+-F::L|VW>('	.7 && -
##At,,## 
2
'7%}  ## 
rp  zraw_ops.TensorArrayGatherV3c                    t        j                  |d      }|d }t        j                  |d      }t        j                  | t
        j                        } t        j                  |t
        j                        }t        j                  |t
        j                        }| ||g}d|d|f}t        j                  dd||||      }	t        j                         rt        j                  d|||	       |	\  }	|	S )Nr`   r-  s   TensorArrayGatherV3r  r   ru  )rI   rf   r}   r   r   r   r,  r  r  r   rJ   rL   rr  s
             r;   rv  rv    s    


UG
,%M%%m_E-!!&'*:*:;&""7GMM:'""7GOO<''7+,UO];&3Q|#)s?'""$|VW>('	.r=   sourcec                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }t        j                  d| |||      \  }}}}|dd }	t        j                         r7d|j                  d      f}
|j                  }t        j                  d||
|	       |	\  }	|	S )zTODO: add doc.

  Args:
    handle: A `Tensor` of type `string`.
    flow_in: A `Tensor` of type `float32`.
    source: A `string`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type mutable `string`.
  Rtensor_array_grad op does not support eager execution. Arg 'grad_handle' is a ref.ry  TensorArrayGradr'   rE  ry  r.   N)r0   r   r1   r2   r3   rI   r   r4   r5   rJ   r   rK   rL   )r'   rE  ry  r.   r6   r7   r8   r9   r:   rN   rO   rP   s               r;   tensor_array_gradr~    s     
			0h..0$#\\
k
llVX.&'88&'& $&!QX QK'""$X./F::L<:('	.r=   zraw_ops.TensorArrayGradc                     t        d      )Nr{  r?   )r'   rE  ry  r.   r@   s        r;    tensor_array_grad_eager_fallbackr    s    ijjr=   c           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |d|      }|S t        j                  |d      }t        j                   d| |||      \  }}}	}
|
dd }t        j"                         r7d|	j%                  d      f}|	j&                  }t        j(                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||      S # t        j                  $ r Y w xY w)zDeprecated. Use TensorArrayGradV3

  Args:
    handle: A `Tensor` of type `string`.
    flow_in: A `Tensor` of type `float32`.
    source: A `string`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `string`.
  TensorArrayGradV2ry  Nry  r.   r@   r}  )r0   r   r1   r2   r   r   r   r   r   r   r   #tensor_array_grad_v2_eager_fallbackr   rI   r   r4   r5   rJ   r   rK   rL   r'   rE  ry  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                r;   tensor_array_grad_v2r    sZ    
			0h..0$#\\11!4(FLgn VX.&'88FGF"&(!QX QK'""$X./F::L\67<('	.+ && -
##At,,## 
0
'&t? ?## 
r  zraw_ops.TensorArrayGradV2c                 h   t        j                  |d      }t        j                  | t        j
                        } t        j                  |t        j                        }| |g}d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Nry  s   TensorArrayGradV2r  r   r  )
rI   r   r   r   r   r   r  r   rJ   rL   r'   rE  ry  r.   r@   rP   rO   rN   s           r;   r  r    s    VX.&!!&'..9&""7GOO<''",f&11\#)s?'""$\67<('	.r=   TensorArrayGradV3grad_handleflow_outc           	         t         j                   xs t        j                         }|j                  }|j                  r3	 t	        j
                  |d|| |d|      }t        j                  |      }|S t        j                   |d      }t#        j$                  d| |||      \  }}}	}
|
dd }t        j&                         r7d|	j)                  d      f}|	j*                  }t        j,                  d|||       t        j                  |      }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||      S # t        j                  $ r Y w xY w)a-
  Creates a TensorArray for storing the gradients of values in the given handle.

  If the given TensorArray gradient already exists, returns a reference to it.

  Locks the size of the original TensorArray by disabling its dynamic size flag.

  **A note about the input flow_in:**

  The handle flow_in forces the execution of the gradient lookup to occur
  only after certain other operations have occurred.  For example, when
  the forward TensorArray is dynamically sized, writes to this TensorArray
  may resize the object.  The gradient TensorArray is statically sized based
  on the size of the forward TensorArray when this operation executes.
  Furthermore, the size of the forward TensorArray is frozen by this call.
  As a result, the flow is used to ensure that the call to generate the gradient
  TensorArray only happens after all writes are executed.

  In the case of dynamically sized TensorArrays, gradient computation should
  only be performed on read operations that have themselves been chained via
  flow to occur only after all writes have executed. That way the final size
  of the forward TensorArray is known when this operation is called.

  **A note about the source attribute:**

  TensorArray gradient calls use an accumulator TensorArray object.  If
  multiple gradients are calculated and run in the same session, the multiple
  gradient nodes may accidentally flow through the same accumulator TensorArray.
  This double counts and generally breaks the TensorArray gradient flow.

  The solution is to identify which gradient call this particular
  TensorArray gradient is being called in.  This is performed by identifying
  a unique string (e.g. "gradients", "gradients_1", ...) from the input
  gradient Tensor's name.  This string is used as a suffix when creating
  the TensorArray gradient object here (the attribute `source`).

  The attribute `source` is added as a suffix to the forward TensorArray's
  name when performing the creation / lookup, so that each separate gradient
  calculation gets its own TensorArray accumulator.

  Args:
    handle: A `Tensor` of type `resource`.
      The handle to the forward TensorArray.
    flow_in: A `Tensor` of type `float32`.
      A float scalar that enforces proper chaining of operations.
    source: A `string`.
      The gradient source string, used to decide which gradient TensorArray
      to return.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (grad_handle, flow_out).

    grad_handle: A `Tensor` of type `resource`.
    flow_out: A `Tensor` of type `float32`.
  r  ry  Nr  r}  )r0   r   r1   r2   r   r   _TensorArrayGradV3Outputr   r   r   r   r   r   #tensor_array_grad_v3_eager_fallbackr   rI   r   r4   r5   rJ   r   rK   rL   r  s                r;   tensor_array_grad_v3r    st   p 
			0h..0$#\\11!4(FLg(..w7gn VX.&'88FGF"&(!QX QK'""$X./F::L\67<$**73'	.+ && -
##At,,## 
0
'&t? ?## 
s0    1D E!D<<EEE) )F ?F zraw_ops.TensorArrayGradV3c                    t        j                  |d      }t        j                  | t        j
                        } t        j                  |t        j                        }| |g}d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       t        j                  |      }|S )Nry  s   TensorArrayGradV3r   r   r  )rI   r   r   r   r   r,  r  r   rJ   rL   r  r   r  s           r;   r  r  _  s    VX.&!!&'*:*:;&""7GOO<''",f&11\#)s?'""$\67<$**73'	.r=   TensorArrayGradWithShapeshape_to_prependc           
         t         j                   xs t        j                         }|j                  }|j                  r4	 t	        j
                  |d|| ||d|      }t        j                  |      }|S t        j                   |d      }t#        j$                  d| ||||      \  }	}	}
}|dd }t        j&                         r7d|
j)                  d      f}|
j*                  }t        j,                  d|||       t        j                  |      }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y w xY w)a  Creates a TensorArray for storing multiple gradients of values in the given handle.

  Similar to TensorArrayGradV3. However it creates an accumulator with an
  expanded shape compared to the input TensorArray whose gradient is being
  computed. This enables multiple gradients for the same TensorArray to be
  calculated using the same accumulator.

  Args:
    handle: A `Tensor` of type `resource`.
      The handle to the forward TensorArray.
    flow_in: A `Tensor` of type `float32`.
      A float scalar that enforces proper chaining of operations.
    shape_to_prepend: A `Tensor` of type `int32`.
      An int32 vector representing a shape. Elements in the gradient accumulator will
      have shape which is this shape_to_prepend value concatenated with shape of the
      elements in the TensorArray corresponding to the input handle.
    source: A `string`.
      The gradient source string, used to decide which gradient TensorArray
      to return.
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (grad_handle, flow_out).

    grad_handle: A `Tensor` of type `resource`.
    flow_out: A `Tensor` of type `float32`.
  r  ry  Nr  )r'   rE  r  ry  r.   )r0   r   r1   r2   r   r   _TensorArrayGradWithShapeOutputr   r   r   r   r   r   +tensor_array_grad_with_shape_eager_fallbackr   rI   r   r4   r5   rJ   r   rK   rL   )r'   rE  r  ry  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                 r;   tensor_array_grad_with_shaper  r  s   8 
			0h..0$#\\	11($(F,g 055g>gn VX.&'88"675E+1>!QX QK'""$X./F::L"L&'C+11':'	./ && -
##At,,## 
8
'+F  ## 
s0    2D E#D>>EEE, ,FFz raw_ops.TensorArrayGradWithShapec                    t        j                  |d      }t        j                  | t        j
                        } t        j                  |t        j                        }t        j                  |t        j                        }| ||g}d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       t        j                  |      }|S )Nry  s   TensorArrayGradWithShaper   r   r  )rI   r   r   r   r   r,  r  r  r   rJ   rL   r  r   )	r'   rE  r  ry  r.   r@   rP   rO   rN   s	            r;   r  r    s    VX.&!!&'*:*:;&""7GOO<'++,<gmmL'#34,f&8!$0C"&(' ""$"L&'C+11':'	.r=   ) TV_TensorArrayPack_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }|d}t        j                  |d      }t        j                  d| ||||      \  }}}}	|	dd }
t        j                         rHd|j                  d      d|j                  d      f}|j                  }t        j                  d|||
       |
\  }
|
S )aA  TODO: add doc.

  Args:
    handle: A `Tensor` of type mutable `string`.
    flow_in: A `Tensor` of type `float32`.
    dtype: A `tf.DType`.
    element_shape: An optional `tf.TensorShape` or list of `ints`. Defaults to `None`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `dtype`.
  Mtensor_array_pack op does not support eager execution. Arg 'handle' is a ref.r`   Nr-  TensorArrayPack)r'   rE  r`   r-  r.   re  )r'   rE  r`   r-  r.   r6   r7   r8   r9   r:   rN   rO   rP   s                r;   tensor_array_packr    s     
			0h..0$#\\
f
gg


UG
,%M%%m_E-'88&')6TC!QX QK'""$s))'2Oll?+-F::L<:('	.r=   zraw_ops.TensorArrayPackc                     t        d      )Nr  r?   )r'   rE  r`   r-  r.   r@   s         r;    tensor_array_pack_eager_fallbackr    r   r=   ) TV_TensorArrayRead_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  |d      }t        j                  d| ||||      \  }}}}	|	dd }
t        j                         r7d|j                  d      f}|j                  }t        j                  d|||
       |
\  }
|
S )a  TODO: add doc.

  Args:
    handle: A `Tensor` of type mutable `string`.
    index: A `Tensor` of type `int32`.
    flow_in: A `Tensor` of type `float32`.
    dtype: A `tf.DType`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `dtype`.
  Mtensor_array_read op does not support eager execution. Arg 'handle' is a ref.r`   TensorArrayReadr'   r  rE  r`   r.   Nre   )r'   r  rE  r`   r.   r6   r7   r8   r9   r:   rN   rO   rP   s                r;   tensor_array_readr    s     
			0h..0$#\\
f
gg


UG
,%'88&w!&T3!QX QK'""$s))'23F::L<:('	.r=   zraw_ops.TensorArrayReadc                     t        d      )Nr  r?   )r'   r  rE  r`   r.   r@   s         r;    tensor_array_read_eager_fallbackr    r   r=   ) TV_TensorArrayReadV2_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c           
         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| ||d|      }|S t        j                  |d      }t        j                   d| ||||      \  }	}	}
}|dd }t        j"                         r7d|
j%                  d      f}|
j&                  }t        j(                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y w xY w)a  Deprecated. Use TensorArrayReadV3

  Args:
    handle: A `Tensor` of type `string`.
    index: A `Tensor` of type `int32`.
    flow_in: A `Tensor` of type `float32`.
    dtype: A `tf.DType`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `dtype`.
  TensorArrayReadV2r`   NrH  r  )r0   r   r1   r2   r   r   r   r   r   r   r   #tensor_array_read_v2_eager_fallbackr   rI   rf   r4   r5   rJ   rg   rK   rL   r'   r  rE  r`   r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                 r;   tensor_array_read_v2r    sf    
			0h..0$#\\11!4g n 

UG
,%'88F%#(t5!QX QK'""$s))'23F::L\67<('	.+ && -
##At,,## 
0
%DdD D## 
0    C* *D1=DD10D15E EEzraw_ops.TensorArrayReadV2c                    t        j                  |d      }t        j                  | t        j
                        } t        j                  |t        j                        }t        j                  |t        j                        }| ||g}d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Nr`   s   TensorArrayReadV2r  r   r  )rI   rf   r   r   r   r   r  r  r   rJ   rL   	r'   r  rE  r`   r.   r@   rP   rO   rN   s	            r;   r  r  G  s    


UG
,%!!&'..9&

 
 
6%""7GOO<'%),U&11\#)s?'""$\67<('	.r=   ) TV_TensorArrayReadV3_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c           
         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| ||d|      }|S t        j                  |d      }t        j                   d| ||||      \  }	}	}
}|dd }t        j"                         r7d|
j%                  d      f}|
j&                  }t        j(                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y w xY w)a  Read an element from the TensorArray into output `value`.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a TensorArray.
    index: A `Tensor` of type `int32`.
    flow_in: A `Tensor` of type `float32`.
      A float scalar that enforces proper chaining of operations.
    dtype: A `tf.DType`. The type of the elem that is returned.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `dtype`.
  TensorArrayReadV3r`   NrH  r  )r0   r   r1   r2   r   r   r   r   r   r   r   #tensor_array_read_v3_eager_fallbackr   rI   rf   r4   r5   rJ   rg   rK   rL   r  s                 r;   tensor_array_read_v3r  Y  sf    
			0h..0$#\\11!4g n 

UG
,%'88F%#(t5!QX QK'""$s))'23F::L\67<('	.+ && -
##At,,## 
0
%DdD D## 
r  zraw_ops.TensorArrayReadV3c                    t        j                  |d      }t        j                  | t        j
                        } t        j                  |t        j                        }t        j                  |t        j                        }| ||g}d|f}t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Nr`   s   TensorArrayReadV3r  r   r  )rI   rf   r   r   r   r,  r  r  r   rJ   rL   r  s	            r;   r  r    s    


UG
,%!!&'*:*:;&

 
 
6%""7GOO<'%),U&11\#)s?'""$\67<('	.r=   ) TV_TensorArrayScatter_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| ||||      \  }}}}	|	dd }
t        j                         r7d|j                  d      f}|j                  }t        j                  d|||
       |
\  }
|
S )a  TODO: add doc.

  Args:
    handle: A `Tensor` of type mutable `string`.
    indices: A `Tensor` of type `int32`.
    value: A `Tensor`.
    flow_in: A `Tensor` of type `float32`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `float32`.
  Ptensor_array_scatter op does not support eager execution. Arg 'handle' is a ref.TensorArrayScatterr'   r   r4  rE  r.   Nr   r0   r   r1   r2   r3   r4   r5   rI   rJ   rg   rK   rL   )r'   r   r4  rE  r.   r6   r7   r8   r9   r:   rN   rO   rP   s                r;   tensor_array_scatterr    s     
			0h..0$#\\
i
jj'88VWE&-D:!QX QK'""$3%%c*+F::LlFG=('	.r=   zraw_ops.TensorArrayScatterc                     t        d      )Nr  r?   )r'   r   r4  rE  r.   r@   s         r;   #tensor_array_scatter_eager_fallbackr    ro  r=   ) TV_TensorArrayScatterV2_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |||      }|S t        j                  d| ||||      \  }	}	}
}|dd }t        j                          r7d|
j#                  d      f}|
j$                  }t        j&                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y w xY w)a!  Deprecated. Use TensorArrayScatterV3

  Args:
    handle: A `Tensor` of type `string`.
    indices: A `Tensor` of type `int32`.
    value: A `Tensor`.
    flow_in: A `Tensor` of type `float32`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `float32`.
  TensorArrayScatterV2Nr   r  r   )r0   r   r1   r2   r   r   r   r   r   r   r   &tensor_array_scatter_v2_eager_fallbackr   r4   r5   rI   rJ   rg   rK   rL   r'   r   r4  rE  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                 r;   tensor_array_scatter_v2r    sP    
			0h..0$#\\11$dFGUGMgn (88vwe(/d<!QX QK'""$3%%c*+F::Lfg?('	.) && -
##At,,## 
3
'5'$@ @## 
0    C D&DDDD/ /EEzraw_ops.TensorArrayScatterV2c                    t        j                  |g|g       \  }\  }t        j                  | t        j
                        } t        j                  |t        j                        }t        j                  |t        j                        }| |||g}d|f}t        j                  dd||||      }	t        j                         rt        j                  d|||	       |	\  }	|	S )Nr   s   TensorArrayScatterV2r  r   r  rI   r  r   r   r   r   r  r  r   rJ   rL   
r'   r   r4  rE  r.   r@   r  rP   rO   rN   s
             r;   r  r    s    55ugsBG'8E!!&'..9&""7GMM:'""7GOO<''5'2,>&4a#)s?'""$fg?('	.r=   ) TV_TensorArrayScatterV3_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |||      }|S t        j                  d| ||||      \  }	}	}
}|dd }t        j                          r7d|
j#                  d      f}|
j$                  }t        j&                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y w xY w)af  Scatter the data from the input value into specific TensorArray elements.

  `indices` must be a vector, its length must match the first dim of `value`.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a TensorArray.
    indices: A `Tensor` of type `int32`.
      The locations at which to write the tensor elements.
    value: A `Tensor`. The concatenated tensor to write to the TensorArray.
    flow_in: A `Tensor` of type `float32`.
      A float scalar that enforces proper chaining of operations.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `float32`.
  TensorArrayScatterV3Nr   r  r   )r0   r   r1   r2   r   r   r   r   r   r   r   &tensor_array_scatter_v3_eager_fallbackr   r4   r5   rI   rJ   rg   rK   rL   r  s                 r;   tensor_array_scatter_v3r     sP   " 
			0h..0$#\\11$dFGUGMgn (88vwe(/d<!QX QK'""$3%%c*+F::Lfg?('	.) && -
##At,,## 
3
'5'$@ @## 
r  zraw_ops.TensorArrayScatterV3c                    t        j                  |g|g       \  }\  }t        j                  | t        j
                        } t        j                  |t        j                        }t        j                  |t        j                        }| |||g}d|f}t        j                  dd||||      }	t        j                         rt        j                  d|||	       |	\  }	|	S )Nr   s   TensorArrayScatterV3r  r   r  rI   r  r   r   r   r,  r  r  r   rJ   rL   r  s
             r;   r  r  1  s    55ugsBG'8E!!&'*:*:;&""7GMM:'""7GOO<''5'2,>&4a#)s?'""$fg?('	.r=   c                 Z   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| ||      \  }}}}|dd }t        j                         r&d}	|j                  }
t        j                  d|
|	|       |\  }|S )zTODO: add doc.

  Args:
    handle: A `Tensor` of type mutable `string`.
    flow_in: A `Tensor` of type `float32`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  Mtensor_array_size op does not support eager execution. Arg 'handle' is a ref.TensorArraySizer'   rE  r.   NrG   rH   )r'   rE  r.   r6   r7   r8   r9   r:   rN   rO   rP   s              r;   tensor_array_sizer  A  s     
			0h..0$#\\
f
gg'88&'F!QXQK'""$F::L<:('	.r=   zraw_ops.TensorArraySizec                     t        d      )Nr  r?   )r'   rE  r.   r@   s       r;    tensor_array_size_eager_fallbackr  _  r   r=   c                 b   t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |      }|S t        j                  d| ||      \  }}}}	|	dd }t        j                          r&d}
|j"                  }t        j$                  d||
|       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||      S # t        j                  $ r Y w xY w)zDeprecated. Use TensorArraySizeV3

  Args:
    handle: A `Tensor` of type `string`.
    flow_in: A `Tensor` of type `float32`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  TensorArraySizeV2Nr   r  rG   )r0   r   r1   r2   r   r   r   r   r   r   r   #tensor_array_size_v2_eager_fallbackr   r4   r5   rI   rJ   rK   rL   r'   rE  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s               r;   tensor_array_size_v2r  b  s/    
			0h..0$#\\11!4:gn (88FG$H!QXQK'""$F::L\67<('	.' && -
##At,,## 
0
'$0 0## 
0    B> >DC,,DD	D D.-D.zraw_ops.TensorArraySizeV2c                 8   t        j                  | t        j                        } t        j                  |t        j                        }| |g}d }t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Ns   TensorArraySizeV2r  r   r  )	r   r   r   r   r  rI   r   rJ   rL   r'   rE  r.   r@   rP   rO   rN   s          r;   r  r    s    !!&'..9&""7GOO<''",&11\#)s?'""$\67<('	.r=   c                 b   t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |      }|S t        j                  d| ||      \  }}}}	|	dd }t        j                          r&d}
|j"                  }t        j$                  d||
|       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||      S # t        j                  $ r Y w xY w)au  Get the current size of the TensorArray.

  Args:
    handle: A `Tensor` of type `resource`.
      The handle to a TensorArray (output of TensorArray or TensorArrayGrad).
    flow_in: A `Tensor` of type `float32`.
      A float scalar that enforces proper chaining of operations.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `int32`.
  TensorArraySizeV3Nr   r  rG   )r0   r   r1   r2   r   r   r   r   r   r   r   #tensor_array_size_v3_eager_fallbackr   r4   r5   rI   rJ   rK   rL   r  s               r;   tensor_array_size_v3r    s/    
			0h..0$#\\11!4:gn (88FG$H!QXQK'""$F::L\67<('	.' && -
##At,,## 
0
'$0 0## 
r  zraw_ops.TensorArraySizeV3c                 8   t        j                  | t        j                        } t        j                  |t        j                        }| |g}d }t        j                  dd||||      }t        j                         rt        j                  d|||       |\  }|S )Ns   TensorArraySizeV3r  r   r  )	r   r   r   r,  r  rI   r   rJ   rL   r  s          r;   r  r    s    !!&'*:*:;&""7GOO<''",&11\#)s?'""$\67<('	.r=   ) TV_TensorArraySplit_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| ||||      \  }}}}	|	dd }
t        j                         r7d|j                  d      f}|j                  }t        j                  d|||
       |
\  }
|
S )a  TODO: add doc.

  Args:
    handle: A `Tensor` of type mutable `string`.
    value: A `Tensor`.
    lengths: A `Tensor` of type `int64`.
    flow_in: A `Tensor` of type `float32`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `float32`.
  Ntensor_array_split op does not support eager execution. Arg 'handle' is a ref.TensorArraySplitr'   r4  rC  rE  r.   Nr   r  )r'   r4  rC  rE  r.   r6   r7   r8   r9   r:   rN   rO   rP   s                r;   tensor_array_splitr    s     
			0h..0$#\\
g
hh'886$+$8!QX QK'""$3%%c*+F::LL&';('	.r=   zraw_ops.TensorArraySplitc                     t        d      )Nr  r?   )r'   r4  rC  rE  r.   r@   s         r;   !tensor_array_split_eager_fallbackr    r   r=   ) TV_TensorArraySplitV2_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |||      }|S t        j                  d| ||||      \  }	}	}
}|dd }t        j                          r7d|
j#                  d      f}|
j$                  }t        j&                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y w xY w)a  Deprecated. Use TensorArraySplitV3

  Args:
    handle: A `Tensor` of type `string`.
    value: A `Tensor`.
    lengths: A `Tensor` of type `int64`.
    flow_in: A `Tensor` of type `float32`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `float32`.
  TensorArraySplitV2Nr   r  r   )r0   r   r1   r2   r   r   r   r   r   r   r   $tensor_array_split_v2_eager_fallbackr   r4   r5   rI   rJ   rg   rK   rL   r'   r4  rC  rE  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                 r;   tensor_array_split_v2r    sP    
			0h..0$#\\11"D&%'Kgn (88V5'&-D:!QX QK'""$3%%c*+F::LlFG=('	.) && -
##At,,## 
1
%'$@ @## 
r  zraw_ops.TensorArraySplitV2c                    t        j                  |g|g       \  }\  }t        j                  | t        j
                        } t        j                  |t        j                        }t        j                  |t        j                        }| |||g}d|f}t        j                  dd||||      }	t        j                         rt        j                  d|||	       |	\  }	|	S )Nr   s   TensorArraySplitV2r  r   r  )rI   r  r   r   r   r   rr  r  r   rJ   rL   
r'   r4  rC  rE  r.   r@   r  rP   rO   rN   s
             r;   r  r  )  s    55ugsBG'8E!!&'..9&""7GMM:'""7GOO<'%'2,>&2Al#)s?'""$lFG=('	.r=   ) TV_TensorArraySplitV3_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |||      }|S t        j                  d| ||||      \  }	}	}
}|dd }t        j                          r7d|
j#                  d      f}|
j$                  }t        j&                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y w xY w)a  Split the data from the input value into TensorArray elements.

  Assuming that `lengths` takes on values

    ```
    (n0, n1, ..., n(T-1))
    ```

  and that `value` has shape

    ```
    (n0 + n1 + ... + n(T-1) x d0 x d1 x ...),
    ```

  this splits values into a TensorArray with T tensors.

  TensorArray index t will be the subtensor of values with starting position

    ```
    (n0 + n1 + ... + n(t-1), 0, 0, ...)
    ```

  and having size

    ```
    nt x d0 x d1 x ...
    ```

  Args:
    handle: A `Tensor` of type `resource`. The handle to a TensorArray.
    value: A `Tensor`. The concatenated tensor to write to the TensorArray.
    lengths: A `Tensor` of type `int64`.
      The vector of lengths, how to split the rows of value into the
      TensorArray.
    flow_in: A `Tensor` of type `float32`.
      A float scalar that enforces proper chaining of operations.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `float32`.
  TensorArraySplitV3Nr   r  r   )r0   r   r1   r2   r   r   r   r   r   r   r   $tensor_array_split_v3_eager_fallbackr   r4   r5   rI   rJ   rg   rK   rL   r  s                 r;   tensor_array_split_v3r  ;  sQ   T 
			0h..0$#\\11"D&%'Kgn (88V5'&-D:!QX QK'""$3%%c*+F::LlFG=('	.) && -
##At,,## 
1
%'$@ @## 
r  zraw_ops.TensorArraySplitV3c                    t        j                  |g|g       \  }\  }t        j                  | t        j
                        } t        j                  |t        j                        }t        j                  |t        j                        }| |||g}d|f}t        j                  dd||||      }	t        j                         rt        j                  d|||	       |	\  }	|	S )Nr   s   TensorArraySplitV3r  r   r  )rI   r  r   r   r   r,  rr  r  r   rJ   rL   r  s
             r;   r  r    s    55ugsBG'8E!!&'*:*:;&""7GMM:'""7GOO<'%'2,>&2Al#)s?'""$lFG=('	.r=   ) TV_TensorArrayUnpack_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                 ~   t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| |||      \  }}}}|dd }	t        j                         r7d|j                  d      f}
|j                  }t        j                  d||
|	       |	\  }	|	S )zTODO: add doc.

  Args:
    handle: A `Tensor` of type mutable `string`.
    value: A `Tensor`.
    flow_in: A `Tensor` of type `float32`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `float32`.
  Otensor_array_unpack op does not support eager execution. Arg 'handle' is a ref.TensorArrayUnpack)r'   r4  rE  r.   Nr   r  )r'   r4  rE  r.   r6   r7   r8   r9   r:   rN   rO   rP   s               r;   tensor_array_unpackr    s     
			0h..0$#\\
h
ii'88F%"&(!QX QK'""$3%%c*+F::L\67<('	.r=   zraw_ops.TensorArrayUnpackc                     t        d      )Nr  r?   )r'   r4  rE  r.   r@   s        r;   "tensor_array_unpack_eager_fallbackr     r   r=   ) TV_TensorArrayV2_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                 ,   t         j                   xs t        j                         }|j                  }|j                  r%	 t	        j
                  |d|| d|d|d|d|d|      }	|	S t        j                  |d      }|d}t        j                  |d      }|d	}t        j                   |d      }|d
}t        j                   |d      }|d}t        j"                  |d      }t%        j&                  d| ||||||      \  }}}}|dd }	t        j(                         r{d|j+                  d      d|j-                  d      d|j/                  d      d|j/                  d      d|j-                  d      f
}|j0                  }t        j2                  d|||	       |	\  }	|	S # t        j                  $ r }
t        j                  |
|       Y d}
~
nd}
~
wt        j                  $ r Y nw xY w	 t        | |||||||      S # t        j                  $ r Y w xY w)a  Deprecated. Use TensorArrayV3

  Args:
    size: A `Tensor` of type `int32`.
    dtype: A `tf.DType`.
    element_shape: An optional `tf.TensorShape` or list of `ints`. Defaults to `None`.
    dynamic_size: An optional `bool`. Defaults to `False`.
    clear_after_read: An optional `bool`. Defaults to `True`.
    tensor_array_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `string`.
  TensorArrayV2r`   r-  r(  r)  r*  N)r`   r-  r(  r)  r*  r.   r@   FTrn   )r'  r`   r-  r(  r)  r*  r.   )r0   r   r1   r2   r   r   r   r   r   r   r   tensor_array_v2_eager_fallbackr   rI   rf   r}   r   r   r4   r5   rJ   rg   r   r   rK   rL   )r'  r`   r-  r(  r)  r*  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                   r;   tensor_array_v2r    sG    
			0h..0$#\\	11otT7E?~|5G-/@Bg n 

UG
,%M%%m_E-L##L.A,''(8:LM''(9;NO'88d%}&2*:+<4	I!QX
 QK'""$s))'2Oll?+^  02D  !346Ill./	1F
 ::Lvw8('	.S && -
##At,,## 
+
e=#6F-DdD D ## 
s0    #F G%1GG%$G%)G< <HHzraw_ops.TensorArrayV2c           
         t        j                  |d      }|d }t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }t        j                  | t        j                        } | g}d|d|d|d|d|f
}	t        j                  d	d
||	||      }
t        j                         rt        j                  d||	|
       |
\  }
|
S )Nr`   r-  Fr(  Tr)  rn   r*  s   TensorArrayV2r  r   r  )rI   rf   r}   r   r   r   r   r   r  r   rJ   rL   )r'  r`   r-  r(  r)  r*  r.   r@   rP   rO   rN   s              r;   r  r    s   


UG
,%M%%m_E-L##L.A,''(8:LM''(9;NO			gmm	4$,UO]N"$46I& -q#)s?'""$vw8('	.r=   TensorArrayV3flow) TV_TensorArrayV3_dtyper   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   identical_element_shapesc                    t         j                   xs t        j                         }|j                  }	|	j                  r<	 t	        j
                  |d|| d|d|d|d|d|d|      }
t        j                  |
      }
|
S t        j                   |d      }|d}t        j"                  |d      }|d
}t        j$                  |d      }|d}t        j$                  |d      }|d
}t        j$                  |d      }|d}t        j&                  |d      }t)        j*                  d| |||||||	      \  }}}}|dd }
t        j,                         rd|j/                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      d|j1                  d      f}|j4                  }t        j6                  d|||
       t        j                  |
      }
|
S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | ||||||||		      S # t        j                  $ r Y w xY w)a  An array of Tensors of given size.

  Write data via Write and read via Read or Pack.

  Args:
    size: A `Tensor` of type `int32`. The size of the array.
    dtype: A `tf.DType`. The type of the elements on the tensor_array.
    element_shape: An optional `tf.TensorShape` or list of `ints`. Defaults to `None`.
      The expected shape of an element, if known. Used to
      validate the shapes of TensorArray elements. If this shape is not
      fully specified, gathering zero-size TensorArrays is an error.
    dynamic_size: An optional `bool`. Defaults to `False`.
      A boolean that determines whether writes to the TensorArray
      are allowed to grow the size.  By default, this is not allowed.
    clear_after_read: An optional `bool`. Defaults to `True`.
      If true (default), Tensors in the TensorArray are cleared
      after being read.  This disables multiple read semantics but allows early
      release of memory.
    identical_element_shapes: An optional `bool`. Defaults to `False`.
      If true (default is false), then all
      elements in the TensorArray will be expected to have identical shapes.
      This allows certain behaviors, like dynamically checking for
      consistent shapes on write, and being able to fill in properly
      shaped zero tensors on stack -- even if the element_shape attribute
      is not fully defined.
    tensor_array_name: An optional `string`. Defaults to `""`.
      Overrides the name used for the temporary tensor_array
      resource. Default value is the name of the 'TensorArray' op (which
      is guaranteed unique).
    name: A name for the operation (optional).

  Returns:
    A tuple of `Tensor` objects (handle, flow).

    handle: A `Tensor` of type `resource`.
    flow: A `Tensor` of type `float32`.
  r  r`   r-  r(  r)  r
  r*  N)r`   r-  r(  r)  r
  r*  r.   r@   FTrn   )r'  r`   r-  r(  r)  r
  r*  r.   )r0   r   r1   r2   r   r   _TensorArrayV3Outputr   r   r   r   r   r   tensor_array_v3_eager_fallbackr   rI   rf   r}   r   r   r4   r5   rJ   rg   r   r   rK   rL   )r'  r`   r-  r(  r)  r
  r*  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                    r;   tensor_array_v3r  $  s   L 
			0h..0$#\\11otT7E?~|5G4 "57H	Jg
 %**73gn 

UG
,%M%%m_E-L##L.A,''(8:LM%$%//0HJde''(9;NO'88d%}&2*:2J+<4I!QX QK'""$s))'2Oll?+^  02D  !34(  !;<!3<<0C#DFF ::Lvw8 &&w/'	.a && -
##At,,## 
+
e=#6F#;-Dd	D D
 ## 
s0    :G2 2H9H  H98H9=I I('I(zraw_ops.TensorArrayV3c	                 X   t        j                  |d      }|d }t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d      }|d}t        j                  |d	      }t        j                  | t        j                        } | g}	d|d|d|d|d|d	|f}
t        j                  d
d|	|
||      }t        j                         rt        j                  d|	|
|       t        j                  |      }|S )Nr`   r-  Fr(  Tr)  r
  rn   r*  s   TensorArrayV3r   r   r  )rI   rf   r}   r   r   r   r   r   r  r   rJ   rL   r  r   )r'  r`   r-  r(  r)  r
  r*  r.   r@   rP   rO   rN   s               r;   r  r    sM   


UG
,%M%%m_E-L##L.A,''(8:LM%$%//0HJde''(9;NO			gmm	4$,UO]N"$468K& -q#)s?'""$vw8 &&w/'	.r=   ) TV_TensorArrayWrite_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c                    t         j                   xs t        j                         }|j                  }|j                  rt	        d      t        j                  d| ||||      \  }}}}	|	dd }
t        j                         r7d|j                  d      f}|j                  }t        j                  d|||
       |
\  }
|
S )a  TODO: add doc.

  Args:
    handle: A `Tensor` of type mutable `string`.
    index: A `Tensor` of type `int32`.
    value: A `Tensor`.
    flow_in: A `Tensor` of type `float32`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `float32`.
  Ntensor_array_write op does not support eager execution. Arg 'handle' is a ref.TensorArrayWriter'   r  r4  rE  r.   Nr   r  )r'   r  r4  rE  r.   r6   r7   r8   r9   r:   rN   rO   rP   s                r;   tensor_array_writer    s     
			0h..0$#\\
g
hh'886e$+$8!QX QK'""$3%%c*+F::LL&';('	.r=   zraw_ops.TensorArrayWritec                     t        d      )Nr  r?   )r'   r  r4  rE  r.   r@   s         r;   !tensor_array_write_eager_fallbackr    r   r=   ) TV_TensorArrayWriteV2_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |||      }|S t        j                  d| ||||      \  }	}	}
}|dd }t        j                          r7d|
j#                  d      f}|
j$                  }t        j&                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y w xY w)a  Deprecated. Use TensorArrayGradV3

  Args:
    handle: A `Tensor` of type `string`.
    index: A `Tensor` of type `int32`.
    value: A `Tensor`.
    flow_in: A `Tensor` of type `float32`.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `float32`.
  TensorArrayWriteV2Nr   r  r   )r0   r   r1   r2   r   r   r   r   r   r   r   $tensor_array_write_v2_eager_fallbackr   r4   r5   rI   rJ   rg   rK   rL   r'   r  r4  rE  r.   r6   r7   rN   r   r8   r9   r:   rO   rP   s                 r;   tensor_array_write_v2r    sN    
			0h..0$#\\11"D&%Ign (88V5&-D:!QX QK'""$3%%c*+F::LlFG=('	.) && -
##At,,## 
1
%d> >## 
r  zraw_ops.TensorArrayWriteV2c                    t        j                  |g|g       \  }\  }t        j                  | t        j
                        } t        j                  |t        j                        }t        j                  |t        j                        }| |||g}d|f}t        j                  dd||||      }	t        j                         rt        j                  d|||	       |	\  }	|	S )Nr   s   TensorArrayWriteV2r  r   r  r  
r'   r  r4  rE  r.   r@   r  rP   rO   rN   s
             r;   r  r    s    55ugsBG'8E!!&'..9&

 
 
6%""7GOO<'%0,>&2Al#)s?'""$lFG=('	.r=   ) TV_TensorArrayWriteV3_Tr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r   r   r#   r$   r   r%   r&   r   c           	         t         j                   xs t        j                         }|j                  }|j                  r	 t	        j
                  |d|| |||      }|S t        j                  d| ||||      \  }	}	}
}|dd }t        j                          r7d|
j#                  d      f}|
j$                  }t        j&                  d|||       |\  }|S # t        j                  $ r }t        j                  ||       Y d}~nd}~wt        j                  $ r Y nw xY w	 t        | |||||      S # t        j                  $ r Y w xY w)a  Push an element onto the tensor_array.

  Args:
    handle: A `Tensor` of type `resource`. The handle to a TensorArray.
    index: A `Tensor` of type `int32`.
      The position to write to inside the TensorArray.
    value: A `Tensor`. The tensor to write to the TensorArray.
    flow_in: A `Tensor` of type `float32`.
      A float scalar that enforces proper chaining of operations.
    name: A name for the operation (optional).

  Returns:
    A `Tensor` of type `float32`.
  TensorArrayWriteV3Nr   r  r   )r0   r   r1   r2   r   r   r   r   r   r   r   $tensor_array_write_v3_eager_fallbackr   r4   r5   rI   rJ   rg   rK   rL   r  s                 r;   tensor_array_write_v3r$    sN    
			0h..0$#\\11"D&%Ign (88V5&-D:!QX QK'""$3%%c*+F::LlFG=('	.) && -
##At,,## 
1
%d> >## 
r  zraw_ops.TensorArrayWriteV3c                    t        j                  |g|g       \  }\  }t        j                  | t        j
                        } t        j                  |t        j                        }t        j                  |t        j                        }| |||g}d|f}t        j                  dd||||      }	t        j                         rt        j                  d|||	       |	\  }	|	S )Nr   s   TensorArrayWriteV3r  r   r"  r  r  s
             r;   r#  r#  @  s    55ugsBG'8E!!&'*:*:;&

 
 
6%""7GOO<'%0,>&2Al#)s?'""$lFG=('	.r=   c                    t         j                   xs t        j                         }|j                  }|j                  r$	 t	        j
                  |d|d|d|d| d|d|      }|S t        | t        t        f      st!        d	| z        | D 
cg c]  }
t#        j$                  |
d       } }
|d
}t#        j&                  |d      }|d
}t#        j&                  |d      }|d}t#        j(                  |d      }|d}t#        j(                  |d      }t+        j,                  d| |||||      \  }}}}|dd }|s|S t#        j.                         r{d|j1                  d      d|j1                  d      d|j3                  d      d|j3                  d      d|j3                  d      f
}|j4                  }t#        j6                  d|||       |S # t        j                  $ r }	t        j                  |	|       Y d}	~	nd}	~	wt        j                  $ r Y nw xY w	 t        ||| ||||      S # t        j                  $ r Y w xY wc c}
w )aS  Op is similar to a lightweight Dequeue.

  The basic functionality is similar to dequeue with many fewer
  capabilities and options.  This Op is optimized for performance.

  Args:
    dtypes: A list of `tf.DTypes` that has length `>= 1`.
    capacity: An optional `int` that is `>= 0`. Defaults to `0`.
    memory_limit: An optional `int` that is `>= 0`. Defaults to `0`.
    container: An optional `string`. Defaults to `""`.
    shared_name: An optional `string`. Defaults to `""`.
    name: A name for the operation (optional).

  Returns:
    A list of `Tensor` objects of type `dtypes`.
  Unstagero   rM  r   rp   rq   NrQ  <Expected list for 'dtypes' argument to 'unstage' Op, not %r.r   rn   rS  )r0   r   r1   r2   r   r   r   r   r   r   r   unstage_eager_fallbackr   ry   rz   r{   r|   rI   rf   r~   r   r4   r5   rJ   r   r   rK   rL   ra  s                   r;   unstager*  P  sg   " 
			0h..0$#\\	11iz8^hYg n 
FT5M	*
	 "(	)* * 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+'88&8 ,	*7!QX QK'	J""$#++J7/ll8$k3<<3LS\\-8:F ::L<2	.W && -
##At,,## 
#,v;TtM M ## 
 ?rc  zraw_ops.Unstagec           
      *   t        | t        t        f      st        d| z        | D cg c]  }t	        j
                  |d       } }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }|d}t	        j                  |d      }g }d|d|d| d|d|f
}	t	        j                  d	t        |       ||	||
      }
t	        j                         rt	        j                  d||	|
       |
S c c}w )Nr(  r   r   ro   rM  rn   rp   rq   s   Unstager   r'  )ry   rz   r{   r|   rI   rf   r~   r   r   r  rJ   rL   rZ  s              r;   r)  r)    s0   	FT5M	*
	 "(	)* * 8>>Hr8,>&>Hx4(L""<@,I	;7)K!!+}=+,.,+y->&ZV\#)s?'""$<2	.+ ?s   D)N)FN)FFrm   N)rn   rn   r   N)r   r   rn   rn   N)rm   N)r  r   r  r  r  rn   N)rn   N)FTrn   NN)NN)NFTrn   N)NFTFrn   N(  __doc__collectionstensorflow.pythonr   tensorflow.python.eagerr   r0   r   r   r   rI   tensorflow.python.frameworkr   r   tensorflow.security.fuzzing.pyr   _atypesr	   _op_def_registryr
   r   r   r4   "tensorflow.python.util.deprecationr   tensorflow.python.utilr   r    tensorflow.python.util.tf_exportr   typingr   r   r   typing_extensionsr   r   StringInt64r<   	to_raw_opr,   rA   Int32rQ   rE   rT   r[   rY   r]   r^   ri   rc   rl   intstrr   rv   r   boolr   r   r   r   r   r   r   r   r   r   r   r   r   
namedtupler   r   r   r   r   r   r   r   r   r   r   r   add_fallback_dispatch_listadd_type_based_api_dispatcherr   r   _tf_type_based_dispatcherDispatchr   r   r  r  r	  r  r  r  r  r  Resourcer&  r!  r$  r0  r/  r2  r3  r:  r6  r8  r?  rC  rA  rB  rE  rJ  rG  rI  rV  rP  rT  rb  r^  r`  rn  ri  rl  rz  rw  ry  r  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r"  r  r!  r(  r%  r'  r0  r,  r3  r7  r6  r9  r?  r;  r=  rI  rG  rH  BoolrN  rM  rP  rU  rR  rS  r\  r[  r^  rb  r`  ra  rk  ri  rn  ru  rq  rt  floatr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r$  r!  r#  r&  r/  r.  r1  r5  r4  r7  r;  r9  r:  r@  r>  r?  rJ  rD  Float32rK  rB  rM  rR  rO  rU  rN  rS  r\  rZ  r^  rY  r]  r`  rf  rc  rh  ri  ro  rk  rm  rs  rw  ru  rv  r~  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  r   r$  r"  r#  r*  r'  r)  rG   r=   r;   <module>rI     sCh  
  6 7 1 7 9 F K 3 I C 8 6 % % '$+,OQcey  |O  Qb  du  wE  GV  Xg  ix  zH  JZ  \l  n}  P  Rb  dt  vF  HX  Zi  %j !ygnn1D'E S\]`bibobo]oSp   }F  GJ  Lm  Gm  }n 2 I9%GHXrIst oiW^^@S6T obkloqxq~q~l~b o  LU  VY  [|  V|  L} o	#w~~2E(F V_`celerer`rVs 4 KI&IJ>4>>ZuKvw pygnnAT7U penort{  uB  uB  pB  fC p	#w~~2E(F YbcfhohuhucuYv 2 I9%GHXsItu pygnnAT7U phqruw~  xE  xE  sE  iF p $++MOacw  zM  O`  bs  uC  ET  Ve  gv  xF  HX  Zj  l{  }N  P`  br  tD  FV  Xg  $h  %iW^^0C&D %T]^acjcpcp^pTq %  {[ %  kt  ux  zZ  uZ  k[ %N G)$EF~t~~VoGpq nYsGNN?R5S nclmpryrrm  dA n  Jj n  zC  DG  Ii  Di  zj n %'Rr[]dh J J3 JWZ Jmvwz  }D  }K  }K  xK  nL JX ')%
&~t~~g'>
?\c \c \`c \s|  ~A  CJ  CQ  CQ  ~Q  tR \!)C$78 !RV !D 1y/01NOb33F)G bbf bIc7>>.A$B R[\_ahanan\nRo 4 C	"AB>4>>RiCjk l9S'..=P3Q lajknpwp}p}k}a~ l !  P
 	#w~~*= > iPSU\UcUcPcFd nwx{  ~T  yT  oU   hk @ ;I9:>4>>J];^_ hygnn9L/M hU^_bdkdrdr_rUs h  ~G  HK  Mc  Hc  ~d h  wz hygnn)<= YWZ\c\i\iWiMj 4 9978HZ9[\ giW^^8K.L g\efikrkxkxfx\y g///!# 
HiW^^(;< HIVY[b[h[hVhLi H  OS H  os H  FI HT 7)56~t~~FW7XYfYsGNN7J-K f[dehjqjwjwew[x f  _c f  z~ f  LO f #**KM_au  xK  M^  `q  sA  CR  Tc  et  vD  FV  Xh  jy  {L  N^  `p  rB  DT  Ve  #f :#B :UX :il :  AD :  [d  eh  jq  jx  jx  ex  [y :x E#CD^T^^TkElm l2Q leh lwz l  MP l  `i  jm  ov  o}  o}  j}  `~ l)C,?"@ > ?i =>~t~~Nc?de 3;N1O     N
 
%%
((
tIc+@&@A tyY\^e^k^kYkOl t  B t   ) &tl 9978HY9Z[ $5$O$O$X$X !9S:O5O+P ^ghkmtmzmzhz^{   NQ    H
 
%%
((
JId3i&>? JyQUVYQZ\nQnGo J  @I  JM  Oa  Ja  @b J  ) &JX 3	12>4>>.3QR!/!I!I!R!R 9T#Y5M+N V_`deh`ik}`}V~   OX  Y\  ^p  Yp  Oq 8 (*"^`gk BC Bc BZ] Bpyz}  @G  @N  @N  {N  qO BH +I)*>4>>*+EF	_ _QT _cf _v  AD  FM  FT  FT  AT  wU _ +-2Racjn Qs Q Q]` Qs|  ~A  CJ  CS  CS  ~S  tT Qf /i-.~t~~m/LMC TW fi   zC  DG  IP  IY  IY  DY  zZ D3(8(8#89 SVX_XfXfSfIg 4 +I)*>4>>*+EF	_	#w7G7G2G(H _XabegngugubuXv _    N
 $i-B(BC $S\]`bibpbp]pSq $L 9978HZ9[\ 
Ys<Q7Q-R 
bkloqxqql  cA 
 "  R
 $30G+G!H $XabegngwgwbwXx $L =Y;<^T^^La=bc 
	#?V:V0W 
gpqtv}  wG  wG  rG  hH 
 $  V
 'ygnn)<= 'F_ 'oxy|  X  zX  pY 'R 9978HZ9[\ iW^^8K.L Un   H  IL  Ng  Ig  h 7s 73 7C 7X[ 7p )9'(	)BCs # RU dg 6A AS Ac Abe A  yB  CF  HO  HU  HU  CU  yV AF ;I9:>4>>J];^_  C \_ nq   BK  LO  QX  Q^  Q^  L^  B_ <H)C./ H)CDV:W Hjm H  B H  PS H  dg HT ')%
&~t~~h'?
@3+=!> SVX_XeXeSeIf z}   NQ   ^a   ps >Ac A# A3 AWZ Amvwz  }D  }J  }J  xJ  nK AF ')%
&~t~~h'?
@c  QT cf v  AD  FM  FS  FS  AS  wT <A9S'--/0 A9S'--EW;X Asv A  HK A  Y\ A  mp AD )9'(	)BC)C,>"? )TWY`YfYfTfJg   DG   WZ   gj   y| >HYsGMM12 HYsGMMGY=Z Hmp H  BE H  SV H  gj HT -Y+,^T^^K-HI
Ic7==.@$A IVY[b[h[hVhLi   ~A   QT   ad   sv < 0//
H 
K	#w}}*< = KPS Kdg Kux K  JM KZ 7)56~t~~FX7YZygmm9K/L `c sv   DG   VY B7s 73 7C 7`c 7p 7)56~t~~FW7XYs # Z] lo 6B BS BVY Bjm B  AJ  KN  PW  P]  P]  K]  A^ BH I9%GHXsItu  TW dg vy   JS  TW  Y`  Yf  Yf  Tf  Jg >J)C$67 J)CQXQ^Q^L^B_ Jru J  GJ J  X[ J  lo JX 534^T^^DT5UV33E)F QZ[^`g`m`m[mQn   CF   VY   fi   x{ @Ac A# A3 A_b Au~  @C  EL  ER  ER  @R  vS AF 534^T^^DT5UVc  Y\ kn   H  IL  NU  N[  N[  I[  \ <D9S'--%78 D9SRYR_R_M_C` D{~ D  PS D  ad D  ux DJ 7)56~t~~FW7XY)C4F*G R[\_ahanan\nRo   LO   _b   or   AD >IYsGMM'9: IYsT[TaTaOaEb Iux I  JM I  [^ I  or IV ;I9:>4>>J];^_ Ic7==6H,I T]^acjcpcp^pTq   FI   Y\   il   {~ > !7 6 6
H! 
M	#w}}2D(E MX[ Mlo M  ~A M  RU M^ E#CD^T^^TnEop ygmmAS7T hk {~   LO   ^a B 02RTfhos JC Jc Jbe J  yB  CF  HO  HV  HV  CV  yW JX 9978HZ9[\ g gY\ gkn g  H  IL  NU  N\  N\  I\  ] g 352UWikrv Ys YQT Yeh Y  |E  FI  KR  K[  K[  F[  |\ Yv =Y;<^T^^La=bc C \_ nq   BK  LO  QX  Qa  Qa  La  Bb D %  X
 qYtCy'--/G%H qPYZ^_bZceZ  QA q  QZ  [^  `z  [z  Q{ qf C	"AB>4>>RiCjk Id3i>V4W _himnqir  uO  jO  `P   `i  jm  oI  jI  `J 8 ,.Bbbdko H H# H^a Ht}  B  DK  DR  DR  R  uS HT 3	12>4>>.3QRcS cUX cgj c  {D  EH  JQ  JX  JX  EX  {Y c /1rQSegnr W3 WS Wad W  xA  BE  GN  GW  GW  BW  xX Wr 7)56~t~~FW7XY X[ jm   ~G  HK  MT  M]  M]  H]  ~^ D	#w~~"56 PT @ -Y+,^T^^K-HI
`ygnn1D'E ``d `-9S'*:*:%:; -UY -\ 1y/01OP
)C9I9I4I*J 
ei 
.)C$78 .VY .` 1y/01NOb33F)G bfi b7ygnn)<= 7)CQXQ^Q^L^B_ 7  ~A 7r 9978HZ9[\ giW^^8K.L gQZ[^`g`m`m[mQn g  NQ gG)C1A1A,A"B GyQTV]VcVcQcGd G  CF GR =Y;<^T^^La=bc 3@P@P;P1Q V_`celerer`rVs   SV ,;	#w~~*= > ;9SRYR_R_M_C` ;  B ;z 9978H[9\] hygnn9L/M hR[\_ahanan\nRo h  OR hK9S'2B2B-B#C K	RUW^WdWdRdHe K  DG KZ =Y;<^T^^Lb=cd )CAQAQ<Q2R W`adfmfsfsasWt   TW ,>YsG,<,<'<= >[^ >@ 534^T^^DT5UVIc7;K;K6K,L kn *!)C$78 !QT !D 1y/01NOb33F)G bad b&ygnn)<= &VY &N 9978HZ9[\ giW^^8K.L gfi g3)C1A1A,A"B 3[^ 3h =Y;<^T^^La=bc 3@P@P;P1Q kn .YsG,<,<'<= .VY .^ 534^T^^DT5UVIc7;K;K6K,L fi Ic7>>&9: )TWY`YeYeTeJf : 3	12>4>>/3RSd9S'..5H+I dYbcfhohthtctYu d'yg.>.>)>? 'yY\^e^j^jYjOk 'R 7)56~t~~FX7YZ
iW=M=M8M.N 
^ghkmtmymyhy^z 
ygnn!45 YsT[TaTaOaEb 4 +I)*>4>>*+EF	_iW^^0C&D _T]^acjcpcp^pTq _$)C)9)9$9: $)TWY`YfYfTfJg $L /i-.~t~~m/LM
38H8H3H)I 
YbcfhohuhucuYv 
 24"\]hiuv  GI  []  dh Xc XX[ Xdg Xqt X  CF X  WZ X  mv  wz  |C  |J  |J  wJ  mK Xt =Y;<^T^^L`=ab i3 icf inq iz} i  KN i  ]` i  py  z}  F  M  M  zM  pN i 57R_`klxy  JL  ^`  gk i i[^ igj itw i  FI i  Z] i  py  z}  F  O  O  zO  pP iV Ay!?@PgAhi )c )fi )qt )  ~A )  NQ )  `c )  s|  }@  BI  BR  BR  }R  sS )XYs YS YW\ Yqt Y  NQ Y  ad Y  z} Y  PY  Z]  _f  _m  _m  Zm  Pn Yv /i-.~t~~l/KLc S di   ~A   UX   fi   }@   PY  Z]  _f  _m  _m  Zm  Pn D -44_as  vJ  L_  ar  tE  GU  Wf  hw  yH  JX  Zj  l|  ~M  O`  br  tD  FV  Xh  jy  -z )&	#w?O?O:O0P &^ghkmtmzmzhz^{ &  HQ  RU  W@  R@  HA &N $Y9-W#XYgY]YgYg  iL  ZM  $N  
ygN^N^I^?_ 
mvwz  }D  }J  }J  xJ  nK 
  W`  ad  fO  aO  WP 
$3@P@P;P1Q $ajknpwp}p}k}a~ $L %[I.Y$Z[i[_[i[i  kO  \P  %Q !	#wO_O_J_@` pyz}  @G  @M  @M  {M  qN %3@P@P;P1Q %dmnqsz  tA  tA  oA  eB %L $Y9-W#XYgY]YgYg  iM  ZN  $O  		#wO_O_J_@` 	s|  ~A  CJ  CP  CP  ~P  tQ 	 ,33]_q  tH  J]  _p  rC  ES  Ud  fu  wF  HV  Xh  jz  |K  M^  `p  rB  DT  Vf  hw  ,x (3yg>N>N9N/O 3_hilnun{n{i{_| 3  Fn 3  ~G  HK  Mu  Hu  ~v 3j #W),U"VWeW[WeWe  gI  XJ  #K iWM]M]H]>^ nwx{  ~E  ~K  ~K  yK  oL   U}   MV  WZ  \D  WD  ME   +22[]o  rF  H[  ]n  pA  CQ  Sb  ds  uD  FT  Vf  hx  zI  K\  ^n  p@  BR  Td  fu  +v 'M,S Mfi Mz} M  RU M  lu  vy  {B  {K  {K  vK  lL M^ "U+S!TUcUYUcUc  eE  VF  "G ;b vy   IL   ^a   qz  {~  @G  @P  @P  {P  qQ 2 +22[]o  rF  H[  ]n  pA  CQ  Sb  ds  uD  FT  Vf  hx  zI  K\  ^n  p@  BR  Td  fu  +v ')iW^^8K.L )ZcdgipivivdvZw )  LU  VY  [b  [h  [h  Vh  Li )  |E  FI  Kr  Fr  |s )  EN  OR  T[  Ta  Ta  Oa  Eb )  uy )T "U+S!TUcUYUcUc  eF  VG  "H vYsGNNGZ=[ virsvx  yF  yF  tF  jG v  [d  eh  jq  jw  jw  ew  [x v  KT  UX  ZA  UA  KB v  T]  ^a  cj  cp  cp  ^p  Tq v  DH v'={'='=#"($ $
 *11Y[m  pD  FY  [l  n  AO  Q`  bq  sB  DR  Td  fv  xG  IZ  \l  n~  @P  Rb  ds  *t &,YsGNN7J-K ,[dehjqjwjwew[x ,  Bh ,\ !S	*Q RSaSWSaSa  cC  TD  !E uIc7>>FY<Z ujstw  zA  zG  zG  uG  kH u  Qw u )00WYk  nB  DW  Yj  l}  M  O^  `o  q@  BP  Rb  dt  vE  GX  Zj  l|  ~N  P`  bq  )r %:*O :be :vy :  NQ :  hq  ru  w~  wE  wE  rE  hF :x  Qy)OPQ_QUQ_Q_`~Q   A s9^ sru s  EH s  Z] s  mv  wz  |C  |J  |J  wJ  mK s   H
 ( S 9UXZaZhZhUhKi @ 	#	/">4>>&#9:Z%7 ZS ZXabegngugubuXv Z	#w~~"56 $ -Y+,^T^^K-HI
`ygnn1D'E `9S'*:*:%:; < 1y/01OP)C9I9I4I*J     N
 iW^^ 34 AV fops  vK  qK  gL 8 )9'(	)BC^YsGNN/B%C ^Pe ^u~  @C  EZ  @Z  v[ ^ "  R
 &3(8(8#89 &F] &mvwz  }T  xT  nU &P -Y+,^T^^L-IJ
	#w7G7G2G(H Ul   }F  GJ  Lc  Gc  }d    @
ygnn!45 YsNGZ=[ im   DM  NQ  Sa  Na  Db B +I)*>4>>*+EF	_iW^^0C&D _IVY[iViLj _y} _  NW  X[  ]k  Xk  Nl _   D
 ,)C)9)9$9: ,)CQaLaBb ,pt ,  KT  UX  Zj  Uj  Kk ,\ /i-.~t~~m/LM38H8H3H)I QZ[^`p[pQq   AE   U^  _b  dt  _t  Uu "   L
 2ygmm!34 2AU 2be 2  yB  CF  HO  HX  HX  CX  yY 2h ')%
&~t~~h'?
@iW]]0B&C Pd ru   FO  PS  U\  Ue  Ue  Pe  Ff ";3 ;s ; ;TW ;x 	#	/">4>>%#893 c c `c .7 7S 7c 7Z] 7p -Y+,^T^^K-HI
 C TW fi 6GiW]] 23 Gc GZ] Gkn G  @C GR +I)*>4>>*+EF	YsGMM/A%B VY il y|   LO <A AC AS AY\ Aoxy|  F  L  L  zL  pM AF +I)*>4>>*+EF	 3 SV eh   yB  CF  HO  HU  HU  CU  yV <   L
 1ygmm!34 1=Q 1`d 1  ~B 1  [^ 1  EN  OR  T[  Tb  Tb  Ob  Ec 1f /i-.~t~~l/KLaiW]]0B&C aL` apt a  IM a  be a  DM  NQ  SZ  Sa  Sa  Na  Db aygnn)<= $ 9978HZ9[\ giW^^8K.L g)C,?"@ < =Y;<^T^^La=bc 3;N1O !)C1A1A,A"B !D =Y;<^T^^La=bc 3@P@P;P1Q  2;11i 
 %  X
 %	#w~~*= > %SVX_XgXgSgIh %  rL %N ;I9:>4>>J];^_ hygnn9L/M hXabegngvgvbvXw h  A[ h3[33i 
  '   \
 49S'..-@#A 4IVY[b[j[jVjLk 4  uQ 4l ?i =>~t~~Nd?ef )C<O2P [dehjqjyjyey[z   D` " 4[33i 
  '   \
 G9S'2B2B-B#C GiX[]d]l]lXlNm G  wS GR ?i =>~t~~Nd?ef )CAQAQ<Q2R ]fgjlsl{l{g{]|   Fb $ %  X
 #	#w~~*= > #SVX_XeXeSeIf #qz{~  AH  AP  AP  |P  rQ #  Zt #  Xa  be  gA  bA  XB #J ;I9:>4>>J];^_ hygnn9L/M hXabegngtgtbtXu h  AJ  KN  PW  P_  P_  K_  A` h  iC h  bk  lo  qK  lK  bL h  '   \
 19S'..-@#A 1IVY[b[h[hVhLi 1t}  B  DK  DS  DS  S  uT 1  ]y 1  ]f  gj  lH  gH  ]I 1f ?i =>~t~~Nd?ef )C<O2P [dehjqjwjwew[x   DM  NQ  SZ  Sb  Sb  Nb  Dc   lH   gp  qt  vR  qR  gS &  '   \
 89S'2B2B-B#C 8iX[]d]j]jXjNk 8v  AD  FM  FU  FU  AU  wV 8  _{ 8  _h  il  nJ  iJ  _K 8t ?i =>~t~~Nd?ef )CAQAQ<Q2R ]fgjlslylygy]z   FO  PS  U\  Ud  Ud  Pd  Fe   nJ   ir  sv  xT  sT  iU &iW^^(;< yQTV]VeVeQeGf ps   DM  NQ  SZ  Sa  Sa  Na  Db < 7)56~t~~FW7XYkYsGNN7J-K kV_`celetet`tVu k  @C k  S\  ]`  bi  bp  bp  ]p  Sq k(3+>!? ()TWY`YhYhThJi (sv (  GP  QT  V]  Vd  Vd  Qd  Ge (T ;I9:>4>>J^;_` 	#w~~:M0N YbcfhohwhwcwYx   CF   V_  `c  el  es  es  `s  Vt  2;11J! 
U30@0@+@!A UIVY[b[j[jVjLk Uux Un ;I9:>4>>J^;_` 	#w?O?O:O0P [dehjqjyjyey[z   EH  #9+"8"8J#! 
<38H8H3H)I <T]^acjcrcr^rTs <  HQ  RU  W^  Wd  Wd  Rd  He <  or <| I9%GHXtIuv 	#wGWGWBW8X clmpry  sB  sB  nB  dC   W`  ad  fm  fs  fs  as  Wt   ~A " #  T
 !iW^^(;< !yQTV]VeVeQeGf !  pH !  lu  vy  {S  vS  lT !F 7)56~t~~FW7XYfYsGNN7J-K fV_`celetet`tVu f  W f  v  @C  E]  @]  v^ f #  T
 iW^^(;< YsT[TaTaOaEb mvwz  }D  }L  }L  xL  nM   Vn   ~G  HK  Me  He  ~f > 7)56~t~~FW7XYfYsGNN7J-K fT]^acjcpcp^pTq f  }F  GJ  LS  L[  L[  G[  }\ f  e} f  MV  WZ  \t  Wt  Mu f %  X
 *3+>!? *	RUW^WdWdRdHe *pyz}  @G  @O  @O  {O  qP *  Ys *  CL  MP  Rl  Ml  Cm *X ;I9:>4>>J^;_` 	#w~~:M0N W`adfmfsfsasWt   @I  JM  OV  O^  O^  J^  @_   hB   R[  \_  a{  \{  R|   %  X
 +30@0@+@!A +)TWY`YfYfTfJg +r{|  BI  BQ  BQ  }Q  sR +  [u +  EN  OR  Tn  On  Eo +Z ;I9:>4>>J^;_` 	#w?O?O:O0P YbcfhohuhucuYv   BK  LO  QX  Q`  Q`  L`  Ba   jD   T]  ^a  c}  ^}  T~   "  R
 3+>!? )TWY`YfYfTfJg pyz}  @W  {W  qX   cl  mp  ry  rA  rA  mA  cB   R[  \_  ah  ap  ap  \p  Rq < =Y;<^T^^L`=ab i	#w~~:M0N iYbcfhohuhucuYv i  @I  JM  Of  Jf  @g i  r{  |  AH  AP  AP  |P  rQ i  aj  kn  pw  p  p  k  a@ i $  V
 (Ic7>>.A$B (YWZ\c\i\iWiMj (s|  ~A  C\  ~\  t] (  hq  ru  w~  wF  wF  rF  hG (  W`  ad  fm  fu  fu  au  Wv (T Ay!?@PgAhi 9S'..=P3Q \efikrkxkxfx\y   CL  MP  Rk  Mk  Cl   w@  AD  FM  FU  FU  AU  wV   fo  ps  u|  uD  uD  pD  fE   $  V
 ,Ic73C3C.C$D ,yY\^e^k^kYkOl ,u~  @C  E^  @^  v_ ,  js  tw  y@  yH  yH  tH  jI ,  Yb  cf  ho  hw  hw  cw  Yx ,\ Ay!?@PgAhi 9S'BRBR=R3S ^ghkmtmzmzhz^{   EN  OR  Tm  Om  En   yB  CF  HO  HW  HW  CW  yX   hq  ru  w~  wF  wF  rF  hG  iW^^(;< yQTV]VeVeQeGf v  AD  FM  FS  FS  AS  wT 6 7)56~t~~FW7XYfYsGNN7J-K fV_`celetet`tVu f  FO  PS  U\  Ub  Ub  Pb  Fc f%3+>!? %)TWY`YhYhThJi %  zC  DG  IP  IV  IV  DV  zW %N ;I9:>4>>J^;_` 	#w~~:M0N YbcfhohwhwcwYx   IR  SV  X_  Xe  Xe  Se  If '30@0@+@!A 'IVY[b[j[jVjLk '  |E  FI  KR  KX  KX  FX  |Y 'R ;I9:>4>>J^;_` 	#w?O?O:O0P [dehjqjyjyey[z   KT  UX  Za  Zg  Zg  Ug  Kh     N
 ygnn)<= iPSUjPjFk v  AD  FM  FS  FS  AS  wT   _h  il  nu  n}  n}  i}  _~   NW  X[  ]d  ]l  ]l  Xl  Nm < 9978HZ9[\ giW^^8K.L gU^_bdy_yUz g  FO  PS  U\  Ub  Ub  Pb  Fc g  nw  x{  }D  }L  }L  xL  nM g  ]f  gj  ls  l{  l{  g{  ]| g "  R
 ()C,?"@ (SVXoSoIp (  |E  FI  KR  KX  KX  FX  |Y (  dm  nq  sz  sB  sB  nB  dC (  S\  ]`  bi  bq  bq  ]q  Sr (T =Y;<^T^^La=bc 3;N1O Xabeg~b~X   KT  UX  Za  Zg  Zg  Ug  Kh   s|  }@  BI  BQ  BQ  }Q  sR   bk  lo  qx  q@  q@  l@  bA   "  R
 E)C1A1A,A"B E9UXZqUqKr E  ~G  HK  MT  MZ  MZ  HZ  ~[ E  fo  ps  u|  uD  uD  pD  fE E  U^  _b  dk  ds  ds  _s  Ut EN =Y;<^T^^La=bc 3@P@P;P1Q Zcdg  jA  eA  [B   MV  WZ  \c  \i  \i  Wi  Mj   u~  B  DK  DS  DS  S  uT   dm  nq  sz  sB  sB  nB  dC   !  P
 	#w~~*= > yQTVlQlGm   yB  CF  HO  HW  HW  CW  yX   hq  ru  w~  wF  wF  rF  hG : ;I9:>4>>J];^_ hygnn9L/M hV_`ce{`{V| h  HQ  RU  W^  Wf  Wf  Rf  Hg h  w@  AD  FM  FU  FU  AU  wV h !  P
 A)C$67 A@V Ay} A  W[ A  tw A  JS  TW  Y`  Yg  Yg  Tg  Jh AF 3	12>4>>/3RS33E)F Oe   EI   ]a   vy   IR  SV  X_  Xf  Xf  Sf  Ig 6 .{--v 
 !  P
 a)C$67 a@V ay} a  W[ a  { a  Y\ aF 3	12>4>>/3RS33E)F Oe   EI   ]a   }A   VY @    N
 ygnn)<= iPSU\UbUbPbFc luvy  |Q  wQ  mR   ]f  gj  ls  l{  l{  g{  ]|   LU  VY  [b  [j  [j  Vj  Lk < 9978HZ9[\ giW^^8K.L gU^_bdkdqdq_qUr g  |E  FI  K`  F`  |a g  lu  vy  {B  {J  {J  vJ  lK g  [d  eh  jq  jy  jy  ey  [z g "  R
 ()C,?"@ (SVX_XeXeSeIf (oxy|  V  zV  pW (  bk  lo  qx  q@  q@  l@  bA (  QZ  [^  `g  `o  `o  [o  Qp (T =Y;<^T^^La=bc 3;N1O XabegngtgtbtXu   H  IL  Ne  Ie  f   qz  {~  @G  @O  @O  {O  qP   `i  jm  ov  o~  o~  j~  `   "  R
 *)C1A1A,A"B *9UXZaZgZgUgKh *qz{~  AX  |X  rY *  dm  nq  sz  sB  sB  nB  dC *  S\  ]`  bi  bq  bq  ]q  Sr *X =Y;<^T^^La=bc 3@P@P;P1Q ZcdgipivivdvZw   AJ  KN  Pg  Kg  Ah   s|  }@  BI  BQ  BQ  }Q  sR   bk  lo  qx  q@  q@  l@  bA  ES E E# EVY EN ')%
&~t~~g'>
?S  PS be r=   