dblX = tf.math.add(x, x);
+ return Signature.builder().input("x", x).output("dbl", dblX).build();
+ }
+}
+```
+
+Compile and execute:
+
+
+mvn -q compile exec:java
+
+
+The command prints TensorFlow version and a simple calculation.
+
+Success! TensorFlow Java is configured.
diff --git a/docs/docs/references.md b/docs/docs/references.md
new file mode 100644
index 00000000000..524b23dc675
--- /dev/null
+++ b/docs/docs/references.md
@@ -0,0 +1,8 @@
+---
+hide:
+ - navigation
+ - toc
+ - title
+---
+#
+
\ No newline at end of file
diff --git a/docs/docs/stylesheets/extra.css b/docs/docs/stylesheets/extra.css
new file mode 100644
index 00000000000..70aefe6843e
--- /dev/null
+++ b/docs/docs/stylesheets/extra.css
@@ -0,0 +1,14 @@
+:root > * {
+ /*--md-primary-fg-color: #EE782F;*/
+ /*--md-primary-fg-color--light: #455960;*/
+ /*--md-primary-fg-color--dark: #90030C;*/
+}
+
+.md-typeset h1, .md-typeset h2 {
+ font-weight: 800;
+ letter-spacing: -.01em;
+}
+
+.md-sidebar--primary {
+ display: none;
+}
\ No newline at end of file
diff --git a/docs/legacy_tools/build_java_api_docs.py b/docs/legacy_tools/build_java_api_docs.py
new file mode 100644
index 00000000000..77d3ba80f31
--- /dev/null
+++ b/docs/legacy_tools/build_java_api_docs.py
@@ -0,0 +1,132 @@
+# Lint as: python3
+# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+######################################################################################################################
+# IMPORTANT: Files in legacy_tools are no longer used to generate the TensorFlow-Java API docs as there are unfixed issues
+# when using DocLava outside of the Google environment. We are keeping these for reference in case they are useful later.
+######################################################################################################################
+
+
+"""Generate TensorFlow Java reference docs for TensorFlow.org."""
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+
+import pathlib
+import shutil
+import tempfile
+import io
+import requests
+import zipfile
+from git import Repo
+
+from absl import app
+from absl import flags
+
+from tensorflow_docs.api_generator import gen_java
+
+FLAGS = flags.FLAGS
+
+NDARRAY_VERSION = 'v1.0.0'
+JAVACPP_VERSION = '1.5.11'
+PROTOBUF_VERSION = 'v3.21.9'
+
+# __file__ is the path to this file
+TOOLS_DIR = pathlib.Path(__file__).resolve().parent
+DOCS_DIR = TOOLS_DIR.parent
+REPO_ROOT = DOCS_DIR.parent
+DOC_OUTPUT_DIR = DOCS_DIR.joinpath("output")
+
+SECTION_LABELS = {
+ 'org.tensorflow': 'Core',
+ 'org.tensorflow.ndarray': 'NdArray',
+ 'org.tensorflow.framework': 'Framework',
+}
+
+# These flags are required by infrastructure, not all of them are used.
+flags.DEFINE_string('output_dir', f"{DOC_OUTPUT_DIR}",
+ ("Use this branch as the root version and don't"
+ ' create in version directory'))
+
+flags.DEFINE_string('site_path', 'api_docs/',
+ 'Path prefix in the _toc.yaml')
+
+flags.DEFINE_string('code_url_prefix', None,
+ '[UNUSED] The url prefix for links to code.')
+
+flags.DEFINE_bool(
+ 'search_hints', True,
+ '[UNUSED] Include metadata search hints in the generated files')
+
+
+def checkout_repo(repo_url: str, target_dir_name: str, version: str):
+ local_repo_path = f"{REPO_ROOT}/{target_dir_name}"
+ if not pathlib.Path(local_repo_path).exists():
+ local_repo = Repo.clone_from(repo_url, local_repo_path)
+ else:
+ local_repo = Repo(local_repo_path)
+ local_repo.remotes['origin'].fetch()
+ local_repo.git.checkout(version)
+
+
+def overlay(from_root, to_root):
+ for from_path in pathlib.Path(from_root).rglob('*'):
+ relpath = from_path.relative_to(from_root)
+ to_path = to_root/relpath
+ if from_path.is_file():
+ assert not to_path.exists()
+ shutil.copyfile(from_path, to_path)
+ else:
+ to_path.mkdir(exist_ok=True)
+
+
+def main(unused_argv):
+ checkout_repo('https://github.com/tensorflow/java-ndarray', 'ndarray', NDARRAY_VERSION)
+ checkout_repo('https://github.com/bytedeco/javacpp', 'javacpp', JAVACPP_VERSION)
+ response = requests.get('https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.21.9/protobuf-java-3.21.9-sources.jar')
+ with zipfile.ZipFile(io.BytesIO(response.content)) as z:
+ z.extractall(f"{REPO_ROOT}/protobuf")
+ response = requests.get('https://repo1.maven.org/maven2/org/osgi/osgi.annotation/8.1.0/osgi.annotation-8.1.0-sources.jar')
+ with zipfile.ZipFile(io.BytesIO(response.content)) as z:
+ z.extractall(f"{REPO_ROOT}/osgi")
+
+ merged_source = pathlib.Path(tempfile.mkdtemp())
+ (merged_source / 'java/org').mkdir(parents=True)
+ shutil.copytree(REPO_ROOT/'tensorflow-core/tensorflow-core-api/src/main/java/org/tensorflow/', merged_source/'java/org/tensorflow')
+ overlay(REPO_ROOT/'tensorflow-core/tensorflow-core-api/src/gen/java/org/tensorflow', merged_source/'java/org/tensorflow')
+ overlay(REPO_ROOT/'tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow', merged_source/'java/org/tensorflow')
+ overlay(REPO_ROOT/'tensorflow-core/tensorflow-core-native/src/gen/java/org/tensorflow/', merged_source/'java/org/tensorflow/')
+ overlay(REPO_ROOT/'tensorflow-core/tensorflow-core-native/src/main/java/org/tensorflow/', merged_source/'java/org/tensorflow/')
+ shutil.copytree(REPO_ROOT/'tensorflow-framework/src/main/java/org/tensorflow/framework', merged_source/'java/org/tensorflow/framework')
+ shutil.copytree(REPO_ROOT/'ndarray/ndarray/src/main/java/org/tensorflow/ndarray', merged_source/'java/org/tensorflow/ndarray')
+ shutil.copytree(REPO_ROOT/'javacpp/src/main/java/org/bytedeco', merged_source/'java/org/bytedeco')
+ shutil.copytree(REPO_ROOT/'protobuf/com/', merged_source/'java/com')
+ shutil.copytree(REPO_ROOT/'osgi/org/osgi', merged_source/'java/org/osgi')
+
+ gen_java.gen_java_docs(
+ package='org.tensorflow',
+ source_path=merged_source / 'java',
+ output_dir=pathlib.Path(FLAGS.output_dir),
+ site_path=pathlib.Path(FLAGS.site_path),
+ section_labels=SECTION_LABELS,
+ # Uncomment for local testing:
+ script_path=pathlib.Path(TOOLS_DIR, 'run-javadoc-for-tf-local.sh'),
+ )
+
+
+if __name__ == '__main__':
+ flags.mark_flags_as_required(['output_dir'])
+ app.run(main)
diff --git a/docs/legacy_tools/requirements.txt b/docs/legacy_tools/requirements.txt
new file mode 100644
index 00000000000..4435ca4d4a9
--- /dev/null
+++ b/docs/legacy_tools/requirements.txt
@@ -0,0 +1,8 @@
+######################################################################################################################
+# IMPORTANT: Files in legacy_tools are no longer used to generate the TensorFlow-Java API docs as there are unfixed issues
+# when using DocLava outside of the Google environment. We are keeping these for reference in case they are useful later.
+######################################################################################################################
+
+GitPython
+requests
+tensorflow-docs
\ No newline at end of file
diff --git a/docs/legacy_tools/run-javadoc-for-tf-local.sh b/docs/legacy_tools/run-javadoc-for-tf-local.sh
new file mode 100644
index 00000000000..97d59ddfd6e
--- /dev/null
+++ b/docs/legacy_tools/run-javadoc-for-tf-local.sh
@@ -0,0 +1,104 @@
+#!/bin/bash
+
+######################################################################################################################
+# IMPORTANT: Files in legacy_tools are no longer used to generate the TensorFlow-Java API docs as there are unfixed issues
+# when using DocLava outside of the Google environment. We are keeping these for reference in case they are useful later.
+######################################################################################################################
+
+set -ex
+
+export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home # Or change to any JDK 11 home path
+
+# https://android.googlesource.com/platform/external/doclava/
+# There's a debian package:
+# https://packages.debian.org/unstable/doclava-aosp
+# Install with:
+#
+# $ sudo apt install doclava-aosp #v 6.0.1+r55-1+build1
+#
+# https://unix.stackexchange.com/questions/594841/how-do-i-assign-a-value-to-a-bash-variable-iff-that-variable-is-null-unassigned
+DOCLAVA_JAR=${DOCLAVA_JAR:-'tools/lib/doclava.jar'} # Build lib locally
+
+
+# Install java clear silver templates with:
+#
+# $ sudo apt install libjsilver-aosp-java #v 6.0.1+r55-1+build1
+JSILVER_JAR=${JSILVER_JAR:-'tools/lib/jsilver.jar'} # Build lib locally
+
+
+######### DELETE OUTPUT_DIR #################
+
+# Empty the output directory in case a class has been deleted
+rm -rf "${OUTPUT_DIR:?}"/*
+############ RUN DOCLAVA ###################
+
+# $FEDERATED_DOCS is a space-separated string of url,file pairs.
+read -a api_pairs <<< "${FEDERATED_DOCS}"
+FEDERATED_PARAMS=""
+for i in "${!api_pairs[@]}"; do
+ api_pair_str="${api_pairs[$i]}" # "url,api.txt"
+ read -a api_pair <<< "${api_pair_str//,/ }"
+ # Using the index as the API "name", build the federation params. Note that
+ # using 0 as an API name will evaluate to false and cause rendering bugs,
+ # so we preface with "api_".
+ FEDERATED_PARAMS+=" -federate api_${i} ${api_pair[0]}"
+ FEDERATED_PARAMS+=" -federationapi api_${i} ${api_pair[1]}"
+done
+
+# To install javadoc, for example, use
+#
+# sudo apt install openjdk-11-jdk
+#
+# doclava doesn't work with openjdk-13
+# ```
+# javadoc: error - Class com.google.doclava.Doclava is not a valid doclet.
+# Note: As of JDK 13, the com.sun.javadoc API is no longer supported.
+# ```
+# It's used here: https://android.googlesource.com/platform/external/doclava/+/refs/heads/master/src/com/google/doclava/Doclava.java
+
+# Each package in $PACKAGE needs to prefaced with -subpackages, so do that.
+SUBPACKAGES=""
+read -r -a packages <<< "${PACKAGE}"
+for pkg in "${packages[@]}"; do
+ SUBPACKAGES+=" -subpackages ${pkg}"
+done
+( # Capture the return code. it may be non-zero for minor errors.
+ /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin/javadoc \
+ -sourcepath "${SOURCE_PATH}" \
+ -docletpath "${DOCLAVA_JAR}:${JSILVER_JAR}" \
+ -doclet com.google.doclava.Doclava \
+ -toroot "${SITE_PATH}"/ \
+ -yaml _toc.yaml \
+ -templatedir "${TEMPLATES}" \
+ -public \
+ -d "${OUTPUT_DIR}" \
+ ${FEDERATED_PARAMS} \
+ ${SUBPACKAGES}
+)
+
+
+mv "${OUTPUT_DIR}"/reference/* "${OUTPUT_DIR}"
+
+###################################################################
+################### START OF POST-PROCESSING ######################
+###################################################################
+rm "${OUTPUT_DIR}/navtree_data.js" || true
+rm "${OUTPUT_DIR}/hierarchy.html" || true
+
+find ${OUTPUT_DIR} -name "*.html" | xargs sed -i '' "s|${SITE_PATH}/reference|${SITE_PATH}|g"
+find ${OUTPUT_DIR} -name "*.yaml" | xargs sed -i '' "s|${SITE_PATH}/reference|${SITE_PATH}|g"
+find ${OUTPUT_DIR} -name "*.html" | xargs sed -i '' "s|a href=\"reference/org/tensorflow|a href=\"${SITE_PATH}/org/tensorflow|g"
+find ${OUTPUT_DIR} -name "*.html" | xargs sed -i '' "s|a href=\"reference/com/google|a href=\"${SITE_PATH}/com/google|g"
+
+JAVA_LANG=https://docs.oracle.com/javase/8/docs/api
+find ${OUTPUT_DIR} -name "*.html" | xargs sed -i '' "s|a href=\"reference/java/lang|a href=\"${JAVA_LANG}/java/lang|g"
+
+find ${OUTPUT_DIR} -name "*.html" | xargs sed -i '' 's|||g'
+
+rm ${OUTPUT_DIR}/timestamp.js || true
+rm ${OUTPUT_DIR}/lists.js || true
+rm ${OUTPUT_DIR}/index.html || true
+
+cp ${TEMPLATES}/screen.css ${OUTPUT_DIR}/
+
+
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
new file mode 100644
index 00000000000..60d03a5f643
--- /dev/null
+++ b/docs/mkdocs.yml
@@ -0,0 +1,49 @@
+site_name: ''
+site_url: https://tensorflow.org
+repo_url: https://github.com/tensorflow/java
+site_description: Documentation of TensorFlow Java API and tools.
+copyright: "© TensorFlow Authors 2026"
+
+theme:
+ name: material
+ logo: assets/tensorflow.svg
+ features:
+ - navigation.indexes
+ - navigation.instant
+ - navigation.sections
+ - navigation.tabs
+ - navigation.tabs.sticky
+ - toc.follow
+ palette:
+ # Palette toggle for automatic mode
+ - media: "(prefers-color-scheme)"
+ toggle:
+ icon: material/brightness-auto
+ name: Switch to light mode
+ # Palette toggle for light mode
+ - media: "(prefers-color-scheme: light)"
+ scheme: default
+ primary: white
+ accent: orange
+ toggle:
+ icon: material/brightness-7
+ name: Switch to dark mode
+ # Palette toggle for dark mode
+ - media: "(prefers-color-scheme: dark)"
+ scheme: slate
+ primary: black
+ accent: orange
+ toggle:
+ icon: material/brightness-4
+ name: Switch to system preference
+
+extra_css:
+ - stylesheets/extra.css
+
+nav:
+ - Home:
+ - index.md
+ - Install:
+ - install.md
+ - API Reference:
+ - references.md
diff --git a/pom.xml b/pom.xml
index e26bb73311a..53e088b8c2e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,11 +1,13 @@
-
+
4.0.0
org.tensorflow
tensorflow-java
- 0.1.0-SNAPSHOT
+ 1.3.0-SNAPSHOT
pom
TensorFlow Java Parent
@@ -17,99 +19,523 @@
The Apache Software License, Version 2.0
- http://www.apache.org/licenses/LICENSE-2.0.txt
+ https://www.apache.org/licenses/LICENSE-2.0.txt
repo
- https://github.com/tensorflow/tensorflow.git
- git@github.com:tensorflow/tensorflow.git
- scm:git:https://github.com/tensorflow/tensorflow.git
+ https://github.com/tensorflow/java.git
+ scm:git@github.com:tensorflow/java.git
+ scm:git:https://github.com/tensorflow/java.git
- tensorflow-tools
+ tensorflow-ndarray
tensorflow-core
-
-
+ tensorflow-framework
- 1.8
- 1.8
- 4.12
- 1.21
+ ${os.name}-${os.arch}
+
+ UTF8
+ 11
+ 11
+ 11
+ 5.10.0
+ 1.37
+ 2.7
+ 2.25.0
+ true
+ true
+ true
+ 2.46.1
+
+
+ central-snapshots
+ Maven Central Snapshots
+ https://central.sonatype.com/repository/maven-snapshots/
+
+ false
+
+
+ true
+
+
+
+
+
+
+ central-snapshots
+ Maven Central Plugin Snapshots
+ https://central.sonatype.com/repository/maven-snapshots/
+
+ false
+
+
+ true
+
+
+
+
+
+
+ central
+ https://central.sonatype.com/repository/maven-snapshots
+
+
+ central
+ https://ossrh-staging-api.central.sonatype.com/service/local/staging/deployByRepositoryId/${stagingRepositoryId}/
+
+
+
- junit
- junit
+ org.junit.jupiter
+ junit-jupiter-api
+ ${junit.version}
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
${junit.version}
+ test
-
- org.openjdk.jmh
- jmh-core
- ${jmh.version}
- test
-
-
- org.openjdk.jmh
- jmh-generator-annprocess
- ${jmh.version}
+
+ org.openjdk.jmh
+ jmh-core
+ ${jmh.version}
test
-
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+ ${jmh.version}
+ test
+
-
+
+
+ dev
+
+ false
+
+
+
+
+
+ deploying
+
+ false
+ false
+
+
+
+
+
+ releasing
+
+ false
+
+
+
+
+ maven-javadoc-plugin
+ 3.12.0
+
+ ./docs/overview.md
+
+ Copyright 2015, 2026 The TensorFlow Authors. All Rights Reserved.
+
+ -Xmaxerrs
+ 65536
+ -Xmaxwarns
+ 65536
+
+ none
+ false
+ 256m
+ 2048m
+
+ https://protobuf.dev/reference/java/api-docs
+ https://bytedeco.org/javacpp/apidocs
+
+ true
+
+
+
+ javadoc-site
+
+ javadoc
+
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+
+
+
+
+ jdk17
+
+ 17
+ 17
+ 17
+
+
+
+
+
+ lint
+
+
+
+ lint.skip
+ !true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.11.0
+
+ true
+
+
+ -Xlint:all
+ -XDcompilePolicy=simple
+
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
+ -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
+
+
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
+ -J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
+
+
+
+ com.google.errorprone
+ error_prone_core
+ ${errorprone.version}
+
+
+
+
+
+
+
+
+
+
+ apply-format
+
+
+
+ com.diffplug.spotless
+ spotless-maven-plugin
+ ${spotless.version}
+
+
+
+
+ spotless-apply
+ initialize
+
+ apply
+
+
+
+
+
+
+
+
+
+
+ check-format
+
+
+
+ com.diffplug.spotless
+ spotless-maven-plugin
+ ${spotless.version}
+
+
+
+
+ spotless-check
+ initialize
+
+ check
+
+
+
+
+
+
+
+
+
+ linuxos
+
+ linux
+
+
+ linux
+ linux
+
+
+
+ linux-x86_64
+
+
+ linux
+ amd64
+
+
+ !javacpp.platform.extension
+
+
+
+
+ linux-x86_64-gpu
+
+
+ linux
+ amd64
+
+
+ javacpp.platform.extension
+ -gpu
+
+
+
+
+ linux-arm64
+
+
+ linux
+ aarch64
+
+
+ !javacpp.platform.extension
+
+
+
- ossrh
-
-
-
- ossrh
- https://oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
-
-
- bintray
-
-
-
- bintray
- https://api.bintray.com/maven/google/tensorflow/tensorflow/;publish=0
-
-
+ macosx
+
+ mac os x
+
+
+ darwin
+ macosx
+
+
+
+ macosx-x86_64
+
+
+ mac os x
+ x86_64
+
+
+
+
+ macosx-arm64
+
+
+ mac os x
+ aarch64
+
+
+
+
+ windowsos
+
+ windows
+
+
+ windows
+ windows
+
+
+
+ windows-x86_64
+
+
+ windows
+ x86_64
+
+
+
+
+ arm
+
+ arm
+
+
+ armhf
+
+
+
+ aarch64
+
+ aarch64
+
+
+ arm64
+
+
+
+ armv8
+
+ armv8
+
+
+ arm64
+
+
+
+ amd64
+
+ amd64
+
+
+ x86_64
+
+
+
+ x86-64
+
+ x86-64
+
+
+ x86_64
+
+
+
+
+ linux
+
+
+ unix
+ Linux
+
+
+
+ linux
+
+
+
+ darwin
+
+
+ unix
+ Mac OS X
+
+
+
+ darwin
+
+
+
+ windows
+
+
+ windows
+
+
+
+ windows
+
- TensorFlowers
+ SIG JVM
TensorFlow
- http://www.tensorflow.org
+ https://www.tensorflow.org
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-enforcer-plugin
+ 3.4.1
+
+
+ enforce
+
+
+
+
+ 3.6
+
+
+
+
+ enforce
+
+
+
+
+
org.apache.maven.plugins
maven-gpg-plugin
- 1.5
+ 3.2.8
sign-artifacts
@@ -119,8 +545,118 @@
-
+
+ bc
+
+
+
+ maven-source-plugin
+ 3.3.0
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ maven-javadoc-plugin
+ 3.12.0
+
+ ./docs/overview.md
+
+ Copyright 2015, 2026 The TensorFlow Authors. All Rights Reserved.
+
+ -Xmaxerrs
+ 65536
+ -Xmaxwarns
+ 65536
+
+ false
+ 256m
+ 2048m
+
+ https://protobuf.dev/reference/java/api-docs
+ https://bytedeco.org/javacpp/apidocs
+
+
+
+
+ javadoc-site
+
+ javadoc
+
+
+
+ attach-javadocs
+
+ jar
+
+
+
+
+
+ org.codehaus.mojo
+ versions-maven-plugin
+ ${versions-plugin.version}
+
+ false
+ true
+ true
+
+
+
+ com.diffplug.spotless
+ spotless-maven-plugin
+ ${spotless.version}
+
+ origin/master
+
+
+
+ 1.20.0
+
+
+
+
+
+
+ org.sonatype.central
+ central-publishing-maven-plugin
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 3.3.0
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.1.2
+
+
+ **/*Test.java
+
+ false
+
+
+
+ org.sonatype.central
+ central-publishing-maven-plugin
+ 0.11.0
+ true
+
+ central
+
+
+
+
diff --git a/tensorflow-core/pom.xml b/tensorflow-core/pom.xml
index ef5568bcadb..16fbb636058 100644
--- a/tensorflow-core/pom.xml
+++ b/tensorflow-core/pom.xml
@@ -22,7 +22,7 @@
org.tensorflow
tensorflow-java
- 0.1.0-SNAPSHOT
+ 1.3.0-SNAPSHOT
tensorflow-core
pom
@@ -31,744 +31,47 @@
Parent POM of TensorFlow core artifacts
+ tensorflow-core-native
tensorflow-core-generator
tensorflow-core-api
- tensorflow-core-platform${javacpp.platform.extension}
- ${os.adjusted.name}-${os.arch}
- false
- false
- false
+
+ 4.31.1
+
+ ${javacpp.platform}${javacpp.platform.extension}
${javacpp.platform}
- linux-armhf${javacpp.platform.extension}
- linux-arm64${javacpp.platform.extension}
- linux-ppc64le${javacpp.platform.extension}
- linux-x86${javacpp.platform.extension}
- linux-x86_64${javacpp.platform.extension}
- macosx-x86_64${javacpp.platform.extension}
- windows-x86${javacpp.platform.extension}
- windows-x86_64${javacpp.platform.extension}
- 1.5.2
- 0.21.2-${javacpp.version}
+ linux-armhf
+ linux-arm64
+ linux-x86_64
+ macosx-arm64
+ macosx-x86_64
+ windows-x86_64
+ linux-armhf${javacpp.platform.extension}
+ linux-arm64${javacpp.platform.extension}
+ linux-x86_64${javacpp.platform.extension}
+ macosx-arm64${javacpp.platform.extension}
+ macosx-x86_64${javacpp.platform.extension}
+ windows-x86_64${javacpp.platform.extension}
+ 1.5.12
- javacpp-platform-default
-
-
- !javacpp.platform
-
-
-
- ${os.name}-${os.arch}
-
-
-
-
- javacpp-platform-custom
-
-
- javacpp.platform
-
-
-
- ${javacpp.platform}${javacpp.platform.extension}
- ${javacpp.platform}${javacpp.platform.extension}
- ${javacpp.platform}${javacpp.platform.extension}
- ${javacpp.platform}${javacpp.platform.extension}
- ${javacpp.platform}${javacpp.platform.extension}
- ${javacpp.platform}${javacpp.platform.extension}
- ${javacpp.platform}${javacpp.platform.extension}
- ${javacpp.platform}${javacpp.platform.extension}
-
-
-
-
- javacpp-platform-host
-
-
- javacpp.platform.host
-
-
-
- ${os.name}-${os.arch}${javacpp.platform.extension}
- ${os.name}-${os.arch}${javacpp.platform.extension}
- ${os.name}-${os.arch}${javacpp.platform.extension}
- ${os.name}-${os.arch}${javacpp.platform.extension}
- ${os.name}-${os.arch}${javacpp.platform.extension}
- ${os.name}-${os.arch}${javacpp.platform.extension}
- ${os.name}-${os.arch}${javacpp.platform.extension}
- ${os.name}-${os.arch}${javacpp.platform.extension}
- ${os.name}-${os.arch}${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-true
-
-
- javacpp.platform.custom
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- javacpp-platform-none
-
-
- javacpp.platform.none
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- javacpp-platform-linux-armhf
-
-
- javacpp.platform
- linux-armhf
-
-
-
- ${javacpp.platform}${javacpp.platform.extension}
-
-
-
-
-
-
-
-
-
-
-
- javacpp-platform-linux-arm64
-
-
- javacpp.platform
- linux-arm64
-
-
-
-
- ${javacpp.platform}${javacpp.platform.extension}
-
-
-
-
-
-
-
-
-
-
- javacpp-platform-linux-ppc64le
-
-
- javacpp.platform
- linux-ppc64le
-
-
-
-
-
- ${javacpp.platform}${javacpp.platform.extension}
-
-
-
-
-
-
-
-
-
- javacpp-platform-linux-x86
-
-
- javacpp.platform
- linux-x86
-
-
-
-
-
-
- ${javacpp.platform}${javacpp.platform.extension}
-
-
-
-
-
-
-
-
- javacpp-platform-linux-x86_64
-
-
- javacpp.platform
- linux-x86_64
-
-
-
-
-
-
-
- ${javacpp.platform}${javacpp.platform.extension}
-
-
-
-
-
-
-
- javacpp-platform-macosx-x86_64
-
-
- javacpp.platform
- macosx-x86_64
-
-
-
-
-
-
-
-
- ${javacpp.platform}${javacpp.platform.extension}
-
-
-
-
-
-
- javacpp-platform-windows-x86
-
-
- javacpp.platform
- windows-x86
-
-
-
-
-
-
-
-
-
- ${javacpp.platform}${javacpp.platform.extension}
-
-
-
-
-
- javacpp-platform-windows-x86_64
-
-
- javacpp.platform
- windows-x86_64
-
-
-
-
-
-
-
-
-
-
- ${javacpp.platform}${javacpp.platform.extension}
-
-
-
-
-
- no-platform-dependency
-
-
- ${basedir}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- javacpp.platform.linux-armhf-true
-
-
- javacpp.platform.linux-armhf
-
-
-
- linux-armhf${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.linux-arm64-true
-
-
- javacpp.platform.linux-arm64
-
-
-
- linux-arm64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.linux-ppc64le-true
-
-
- javacpp.platform.linux-ppc64le
-
-
-
- linux-ppc64le${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.linux-x86-true
-
-
- javacpp.platform.linux-x86
-
-
-
- linux-x86${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.linux-x86_64-true
-
-
- javacpp.platform.linux-x86_64
-
-
-
- linux-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.macosx-x86_64-true
-
-
- javacpp.platform.macosx-x86_64
-
-
-
- macosx-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.windows-x86-true
-
-
- javacpp.platform.windows-x86
-
-
-
- windows-x86${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.windows-x86_64-true
-
-
- javacpp.platform.windows-x86_64
-
-
-
- windows-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-linux-arm
-
-
- javacpp.platform.host
-
- linux arm
-
-
- linux-armhf${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-linux-armhf
-
-
- javacpp.platform.host
-
- linux armhf
-
-
- linux-armhf${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-linux-aarch64
-
-
- javacpp.platform.host
-
- linux aarch64
-
-
- linux-arm64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-linux-armv8
-
-
- javacpp.platform.host
-
- linux armv8
-
-
- linux-arm64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-linux-arm64
-
-
- javacpp.platform.host
-
- linux arm64
-
-
- linux-arm64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-linux-ppc64le
-
-
- javacpp.platform.host
-
- linux ppc64le
-
-
- linux-ppc64le${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-linux-amd64
-
-
- javacpp.platform.host
-
- linux amd64
-
-
- linux-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-linux-x86-64
-
-
- javacpp.platform.host
-
- linux x86-64
-
-
- linux-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-linux-x86_64
-
-
- javacpp.platform.host
-
- linux x86_64
-
-
- linux-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-macosx-amd64
-
-
- javacpp.platform.host
-
- mac os x amd64
-
-
- macosx-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-macosx-x86-64
-
-
- javacpp.platform.host
-
- mac os x x86-64
-
-
- macosx-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-macosx-x86_64
-
-
- javacpp.platform.host
-
- mac os x x86_64
-
-
- macosx-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-windows-amd64
-
-
- javacpp.platform.host
-
- windows amd64
-
-
- windows-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-windows-x86-64
-
-
- javacpp.platform.host
-
- windows x86-64
-
-
- windows-x86_64${javacpp.platform.extension}
-
-
-
-
- javacpp.platform.custom-windows-x86_64
-
-
- javacpp.platform.host
-
- windows x86_64
-
-
- windows-x86_64${javacpp.platform.extension}
-
-
-
-
-
- linuxos
-
- linux
-
-
- linux
- linux
-
-
-
- macosx
-
- mac os x
-
-
- darwin
- macosx
-
-
-
- windowsos
-
- windows
-
-
- windows
- windows
-
-
-
- arm
-
- arm
-
-
- armhf
-
-
-
- aarch64
-
- aarch64
-
-
- arm64
-
-
-
- armv8
-
- armv8
-
-
- arm64
-
-
-
- i386
-
- i386
-
-
- x86
-
-
-
- i486
-
- i486
-
-
- x86
-
-
-
- i586
-
- i586
-
-
- x86
-
-
-
- i686
-
- i686
-
-
- x86
-
-
-
- amd64
-
- amd64
-
-
- x86_64
-
-
-
- x86-64
-
- x86-64
-
-
- x86_64
-
-
-
-
- linux
-
-
- unix
- Linux
-
-
-
- linux
-
-
-
- darwin
-
-
- unix
- Mac OS X
-
-
-
- darwin
-
-
-
- windows
-
-
- windows
-
-
-
- windows
-
+
+ deploying
+
+ tensorflow-core-platform
+
-
-
diff --git a/tensorflow-core/tensorflow-core-api/.bazelrc b/tensorflow-core/tensorflow-core-api/.bazelrc
deleted file mode 100644
index 4b673d3fcfb..00000000000
--- a/tensorflow-core/tensorflow-core-api/.bazelrc
+++ /dev/null
@@ -1,172 +0,0 @@
-# Android configs. Bazel needs to have --cpu and --fat_apk_cpu both set to the
-# target CPU to build transient dependencies correctly. See
-# https://docs.bazel.build/versions/master/user-manual.html#flag--fat_apk_cpu
-build:android --crosstool_top=//external:android/crosstool
-build:android --host_crosstool_top=@bazel_tools//tools/cpp:toolchain
-build:android_arm --config=android
-build:android_arm --cpu=armeabi-v7a
-build:android_arm --fat_apk_cpu=armeabi-v7a
-build:android_arm64 --config=android
-build:android_arm64 --cpu=arm64-v8a
-build:android_arm64 --fat_apk_cpu=arm64-v8a
-build:android_x86 --config=android
-build:android_x86 --cpu=x86
-build:android_x86 --fat_apk_cpu=x86
-build:android_x86_64 --config=android
-build:android_x86_64 --cpu=x86_64
-build:android_x86_64 --fat_apk_cpu=x86_64
-
-# Sets the default Apple platform to macOS.
-build --apple_platform_type=macos
-
-# Config to use a mostly-static build and disable modular op registration
-# support (this will revert to loading TensorFlow with RTLD_GLOBAL in Python).
-# By default, TensorFlow will build with a dependence on
-# //tensorflow:libtensorflow_framework.so.
-build:monolithic --define framework_shared_object=false
-
-# For projects which use TensorFlow as part of a Bazel build process, putting
-# nothing in a bazelrc will default to a monolithic build. The following line
-# opts in to modular op registration support by default.
-build --define framework_shared_object=true
-
-# Flags for open source build, always set to be true.
-build --define open_source_build=true
-test --define open_source_build=true
-
-# Please note that MKL on MacOS or windows is still not supported.
-# If you would like to use a local MKL instead of downloading, please set the
-# environment variable "TF_MKL_ROOT" every time before build.
-build:mkl --define=build_with_mkl=true --define=enable_mkl=true
-build:mkl --define=tensorflow_mkldnn_contraction_kernel=0
-build:mkl -c opt
-
-# This config option is used to enable MKL-DNN open source library only,
-# without depending on MKL binary version.
-build:mkl_open_source_only --define=build_with_mkl_dnn_only=true
-build:mkl_open_source_only --define=build_with_mkl_dnn_v1_only=true
-build:mkl_open_source_only --define=build_with_mkl=true --define=enable_mkl=true
-build:mkl_open_source_only --define=tensorflow_mkldnn_contraction_kernel=0
-
-build:download_clang --crosstool_top=@local_config_download_clang//:toolchain
-build:download_clang --define=using_clang=true
-build:download_clang --action_env TF_DOWNLOAD_CLANG=1
-# Instruct clang to use LLD for linking.
-# This only works with GPU builds currently, since Bazel sets -B/usr/bin in
-# auto-generated CPU crosstool, forcing /usr/bin/ld.lld to be preferred over
-# the downloaded one.
-build:download_clang_use_lld --linkopt='-fuse-ld=lld'
-
-# This config refers to building with CUDA available. It does not necessarily
-# mean that we build CUDA op kernels.
-build:using_cuda --define=using_cuda=true
-build:using_cuda --action_env TF_NEED_CUDA=1
-build:using_cuda --crosstool_top=@local_config_cuda//crosstool:toolchain
-
-# This config refers to building CUDA op kernels with nvcc.
-build:cuda --config=using_cuda
-build:cuda --define=using_cuda_nvcc=true
-
-# This config refers to building CUDA op kernels with clang.
-build:cuda_clang --config=using_cuda
-build:cuda_clang --define=using_cuda_clang=true
-build:cuda_clang --define=using_clang=true
-
-build:tensorrt --action_env TF_NEED_TENSORRT=1
-
-build:rocm --crosstool_top=@local_config_rocm//crosstool:toolchain
-build:rocm --define=using_rocm=true --define=using_rocm_hipcc=true
-build:rocm --action_env TF_NEED_ROCM=1
-
-build:sycl --crosstool_top=@local_config_sycl//crosstool:toolchain
-build:sycl --define=using_sycl=true
-build:sycl --action_env TF_NEED_OPENCL_SYCL=1
-
-build:sycl_nodouble --config=sycl
-build:sycl_nodouble --cxxopt -DTENSORFLOW_SYCL_NO_DOUBLE
-
-build:sycl_nodouble --config=sycl
-build:sycl_asan --copt -fno-omit-frame-pointer --copt -fsanitize-coverage=3 --copt -DGPR_NO_DIRECT_SYSCALLS --linkopt -fPIC --linkopt -fsanitize=address
-
-build:sycl_nodouble --config=sycl
-build:sycl_trisycl --define=using_trisycl=true
-
-# Options extracted from configure script
-build:gdr --define=with_gdr_support=true
-build:ngraph --define=with_ngraph_support=true
-build:verbs --define=with_verbs_support=true
-build:numa --define=with_numa_support=true
-
-# Options to disable default on features
-build:noaws --define=no_aws_support=true
-build:nogcp --define=no_gcp_support=true
-build:nohdfs --define=no_hdfs_support=true
-build:nokafka --define=no_kafka_support=true
-build:noignite --define=no_ignite_support=true
-build:nonccl --define=no_nccl_support=true
-
-build --define=use_fast_cpp_protos=true
-build --define=allow_oversize_protos=true
-
-build --spawn_strategy=standalone
-build --strategy=Genrule=standalone
-build -c opt
-
-# Make Bazel print out all options from rc files.
-build --announce_rc
-
-# Other build flags.
-build --define=grpc_no_ares=true
-
-# Modular TF build options
-build:dynamic_kernels --define=dynamic_loaded_kernels=true
-build:dynamic_kernels --copt=-DAUTOLOAD_DYNAMIC_KERNELS
-
-# Build TF with C++ 17 features.
-build:c++17 --cxxopt=-std=c++1z
-build:c++17 --cxxopt=-stdlib=libc++
-build:c++1z --config=c++17
-
-# Default paths for TF_SYSTEM_LIBS
-build --define=PREFIX=/usr
-build --define=LIBDIR=$(PREFIX)/lib
-build --define=INCLUDEDIR=$(PREFIX)/include
-
-# Suppress all warning messages.
-build:short_logs --output_filter=DONT_MATCH_ANYTHING
-
-# Options when using remote execution
-build:rbe --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
-build:rbe --auth_enabled=true
-build:rbe --auth_scope=https://www.googleapis.com/auth/cloud-source-tools
-build:rbe --define=EXECUTOR=remote
-build:rbe --flaky_test_attempts=3
-build:rbe --jobs=200
-build:rbe --remote_accept_cached=true
-build:rbe --remote_cache=remotebuildexecution.googleapis.com
-build:rbe --remote_executor=remotebuildexecution.googleapis.com
-build:rbe --remote_local_fallback=false
-build:rbe --remote_timeout=600
-build:rbe --spawn_strategy=remote
-build:rbe --strategy=Genrule=remote
-build:rbe --strategy=Closure=remote
-build:rbe --strategy=Javac=remote
-build:rbe --strategy=TestRunner=remote
-build:rbe --tls_enabled
-test:rbe --test_env=USER=anon
-
-# Options to build TensorFlow 1.x or 2.x.
-build:v1 --define=tf_api_version=1
-build:v2 --define=tf_api_version=2
-test:v1 --test_env=TF2_BEHAVIOR=0
-test:v2 --test_env=TF2_BEHAVIOR=1
-build --config=v2
-test --config=v2
-
-# Default options should come above this line
-
-# Options from ./configure
-try-import %workspace%/.tf_configure.bazelrc
-
-# Put user-specific options in .bazelrc.user
-try-import %workspace%/.bazelrc.user
diff --git a/tensorflow-core/tensorflow-core-api/BUILD b/tensorflow-core/tensorflow-core-api/BUILD
deleted file mode 100644
index 5fb3d1b53d0..00000000000
--- a/tensorflow-core/tensorflow-core-api/BUILD
+++ /dev/null
@@ -1,59 +0,0 @@
-load("@org_tensorflow//tensorflow:tensorflow.bzl", "tf_copts", "tf_cc_binary")
-load(":tensorflow-java.bzl", "tf_java_op_gen_srcjar")
-
-tf_java_op_gen_srcjar(
- name = "java_op_gen_sources",
- api_def_srcs = [
- "@org_tensorflow//tensorflow/core/api_def:base_api_def",
- ":java_api_def",
- ],
- base_package = "org.tensorflow.op",
- gen_tool = ":java_op_gen_tool",
-)
-
-tf_cc_binary(
- name = "java_op_gen_tool",
- srcs = [
- "src/bazel/op_generator/op_gen_main.cc",
- ],
- copts = tf_copts(),
- linkopts = select({
- "@org_tensorflow//tensorflow:windows": [],
- "//conditions:default": ["-lm"],
- }),
- linkstatic = 1,
- deps = [
- ":java_op_gen_lib",
- "@org_tensorflow//tensorflow/core:framework",
- "@org_tensorflow//tensorflow/core:lib",
- "@org_tensorflow//tensorflow/core:ops",
- ],
-)
-
-cc_library(
- name = "java_op_gen_lib",
- srcs = [
- "src/bazel/op_generator/op_generator.cc",
- "src/bazel/op_generator/op_specs.cc",
- "src/bazel/op_generator/source_writer.cc",
- ],
- hdrs = [
- "src/bazel/op_generator/java_defs.h",
- "src/bazel/op_generator/op_generator.h",
- "src/bazel/op_generator/op_specs.h",
- "src/bazel/op_generator/source_writer.h",
- ],
- copts = tf_copts(),
- deps = [
- "@org_tensorflow//tensorflow/core:framework",
- "@org_tensorflow//tensorflow/core:lib",
- "@org_tensorflow//tensorflow/core:op_gen_lib",
- "@org_tensorflow//tensorflow/core:protos_all_cc",
- "@com_googlesource_code_re2//:re2",
- ],
-)
-
-filegroup(
- name = "java_api_def",
- srcs = glob(["src/bazel/api_def/*"])
-)
diff --git a/tensorflow-core/tensorflow-core-api/LICENSE b/tensorflow-core/tensorflow-core-api/LICENSE
deleted file mode 100644
index 69a5e5f0649..00000000000
--- a/tensorflow-core/tensorflow-core-api/LICENSE
+++ /dev/null
@@ -1,8062 +0,0 @@
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR third_party/icu/data/LICENSE
---------------------------------------------------------------------------------
-COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
-
-Copyright © 1991-2018 Unicode, Inc. All rights reserved.
-Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Unicode data files and any associated documentation
-(the "Data Files") or Unicode software and any associated documentation
-(the "Software") to deal in the Data Files or Software
-without restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, and/or sell copies of
-the Data Files or Software, and to permit persons to whom the Data Files
-or Software are furnished to do so, provided that either
-(a) this copyright and permission notice appear with all copies
-of the Data Files or Software, or
-(b) this copyright and permission notice appear in associated
-Documentation.
-
-THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
-ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT OF THIRD PARTY RIGHTS.
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
-NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
-DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THE DATA FILES OR SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale,
-use or other dealings in these Data Files or Software without prior
-written authorization of the copyright holder.
-
----------------------
-
-Third-Party Software Licenses
-
-This section contains third-party software notices and/or additional
-terms for licensed third-party software components included within ICU
-libraries.
-
-1. ICU License - ICU 1.8.1 to ICU 57.1
-
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright (c) 1995-2016 International Business Machines Corporation and others
-All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, and/or sell copies of the Software, and to permit persons
-to whom the Software is furnished to do so, provided that the above
-copyright notice(s) and this permission notice appear in all copies of
-the Software and that both the above copyright notice(s) and this
-permission notice appear in supporting documentation.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
-SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder
-shall not be used in advertising or otherwise to promote the sale, use
-or other dealings in this Software without prior written authorization
-of the copyright holder.
-
-All trademarks and registered trademarks mentioned herein are the
-property of their respective owners.
-
-2. Chinese/Japanese Word Break Dictionary Data (cjdict.txt)
-
- # The Google Chrome software developed by Google is licensed under
- # the BSD license. Other software included in this distribution is
- # provided under other licenses, as set forth below.
- #
- # The BSD License
- # http://opensource.org/licenses/bsd-license.php
- # Copyright (C) 2006-2008, Google Inc.
- #
- # All rights reserved.
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions are met:
- #
- # Redistributions of source code must retain the above copyright notice,
- # this list of conditions and the following disclaimer.
- # Redistributions in binary form must reproduce the above
- # copyright notice, this list of conditions and the following
- # disclaimer in the documentation and/or other materials provided with
- # the distribution.
- # Neither the name of Google Inc. nor the names of its
- # contributors may be used to endorse or promote products derived from
- # this software without specific prior written permission.
- #
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- # BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- #
- #
- # The word list in cjdict.txt are generated by combining three word lists
- # listed below with further processing for compound word breaking. The
- # frequency is generated with an iterative training against Google web
- # corpora.
- #
- # * Libtabe (Chinese)
- # - https://sourceforge.net/project/?group_id=1519
- # - Its license terms and conditions are shown below.
- #
- # * IPADIC (Japanese)
- # - http://chasen.aist-nara.ac.jp/chasen/distribution.html
- # - Its license terms and conditions are shown below.
- #
- # ---------COPYING.libtabe ---- BEGIN--------------------
- #
- # /*
- # * Copyright (c) 1999 TaBE Project.
- # * Copyright (c) 1999 Pai-Hsiang Hsiao.
- # * All rights reserved.
- # *
- # * Redistribution and use in source and binary forms, with or without
- # * modification, are permitted provided that the following conditions
- # * are met:
- # *
- # * . Redistributions of source code must retain the above copyright
- # * notice, this list of conditions and the following disclaimer.
- # * . Redistributions in binary form must reproduce the above copyright
- # * notice, this list of conditions and the following disclaimer in
- # * the documentation and/or other materials provided with the
- # * distribution.
- # * . Neither the name of the TaBE Project nor the names of its
- # * contributors may be used to endorse or promote products derived
- # * from this software without specific prior written permission.
- # *
- # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- # * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- # * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- # * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- # * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- # * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- # * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- # * OF THE POSSIBILITY OF SUCH DAMAGE.
- # */
- #
- # /*
- # * Copyright (c) 1999 Computer Systems and Communication Lab,
- # * Institute of Information Science, Academia
- # * Sinica. All rights reserved.
- # *
- # * Redistribution and use in source and binary forms, with or without
- # * modification, are permitted provided that the following conditions
- # * are met:
- # *
- # * . Redistributions of source code must retain the above copyright
- # * notice, this list of conditions and the following disclaimer.
- # * . Redistributions in binary form must reproduce the above copyright
- # * notice, this list of conditions and the following disclaimer in
- # * the documentation and/or other materials provided with the
- # * distribution.
- # * . Neither the name of the Computer Systems and Communication Lab
- # * nor the names of its contributors may be used to endorse or
- # * promote products derived from this software without specific
- # * prior written permission.
- # *
- # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- # * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- # * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- # * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- # * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- # * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- # * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- # * OF THE POSSIBILITY OF SUCH DAMAGE.
- # */
- #
- # Copyright 1996 Chih-Hao Tsai @ Beckman Institute,
- # University of Illinois
- # c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4
- #
- # ---------------COPYING.libtabe-----END--------------------------------
- #
- #
- # ---------------COPYING.ipadic-----BEGIN-------------------------------
- #
- # Copyright 2000, 2001, 2002, 2003 Nara Institute of Science
- # and Technology. All Rights Reserved.
- #
- # Use, reproduction, and distribution of this software is permitted.
- # Any copy of this software, whether in its original form or modified,
- # must include both the above copyright notice and the following
- # paragraphs.
- #
- # Nara Institute of Science and Technology (NAIST),
- # the copyright holders, disclaims all warranties with regard to this
- # software, including all implied warranties of merchantability and
- # fitness, in no event shall NAIST be liable for
- # any special, indirect or consequential damages or any damages
- # whatsoever resulting from loss of use, data or profits, whether in an
- # action of contract, negligence or other tortuous action, arising out
- # of or in connection with the use or performance of this software.
- #
- # A large portion of the dictionary entries
- # originate from ICOT Free Software. The following conditions for ICOT
- # Free Software applies to the current dictionary as well.
- #
- # Each User may also freely distribute the Program, whether in its
- # original form or modified, to any third party or parties, PROVIDED
- # that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear
- # on, or be attached to, the Program, which is distributed substantially
- # in the same form as set out herein and that such intended
- # distribution, if actually made, will neither violate or otherwise
- # contravene any of the laws and regulations of the countries having
- # jurisdiction over the User or the intended distribution itself.
- #
- # NO WARRANTY
- #
- # The program was produced on an experimental basis in the course of the
- # research and development conducted during the project and is provided
- # to users as so produced on an experimental basis. Accordingly, the
- # program is provided without any warranty whatsoever, whether express,
- # implied, statutory or otherwise. The term "warranty" used herein
- # includes, but is not limited to, any warranty of the quality,
- # performance, merchantability and fitness for a particular purpose of
- # the program and the nonexistence of any infringement or violation of
- # any right of any third party.
- #
- # Each user of the program will agree and understand, and be deemed to
- # have agreed and understood, that there is no warranty whatsoever for
- # the program and, accordingly, the entire risk arising from or
- # otherwise connected with the program is assumed by the user.
- #
- # Therefore, neither ICOT, the copyright holder, or any other
- # organization that participated in or was otherwise related to the
- # development of the program and their respective officials, directors,
- # officers and other employees shall be held liable for any and all
- # damages, including, without limitation, general, special, incidental
- # and consequential damages, arising out of or otherwise in connection
- # with the use or inability to use the program or any product, material
- # or result produced or otherwise obtained by using the program,
- # regardless of whether they have been advised of, or otherwise had
- # knowledge of, the possibility of such damages at any time during the
- # project or thereafter. Each user will be deemed to have agreed to the
- # foregoing by his or her commencement of use of the program. The term
- # "use" as used herein includes, but is not limited to, the use,
- # modification, copying and distribution of the program and the
- # production of secondary products from the program.
- #
- # In the case where the program, whether in its original form or
- # modified, was distributed or delivered to or received by a user from
- # any person, organization or entity other than ICOT, unless it makes or
- # grants independently of ICOT any specific warranty to the user in
- # writing, such person, organization or entity, will also be exempted
- # from and not be held liable to the user for any such damages as noted
- # above as far as the program is concerned.
- #
- # ---------------COPYING.ipadic-----END----------------------------------
-
-3. Lao Word Break Dictionary Data (laodict.txt)
-
- # Copyright (c) 2013 International Business Machines Corporation
- # and others. All Rights Reserved.
- #
- # Project: http://code.google.com/p/lao-dictionary/
- # Dictionary: http://lao-dictionary.googlecode.com/git/Lao-Dictionary.txt
- # License: http://lao-dictionary.googlecode.com/git/Lao-Dictionary-LICENSE.txt
- # (copied below)
- #
- # This file is derived from the above dictionary, with slight
- # modifications.
- # ----------------------------------------------------------------------
- # Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell.
- # All rights reserved.
- #
- # Redistribution and use in source and binary forms, with or without
- # modification,
- # are permitted provided that the following conditions are met:
- #
- #
- # Redistributions of source code must retain the above copyright notice, this
- # list of conditions and the following disclaimer. Redistributions in
- # binary form must reproduce the above copyright notice, this list of
- # conditions and the following disclaimer in the documentation and/or
- # other materials provided with the distribution.
- #
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- # OF THE POSSIBILITY OF SUCH DAMAGE.
- # --------------------------------------------------------------------------
-
-4. Burmese Word Break Dictionary Data (burmesedict.txt)
-
- # Copyright (c) 2014 International Business Machines Corporation
- # and others. All Rights Reserved.
- #
- # This list is part of a project hosted at:
- # github.com/kanyawtech/myanmar-karen-word-lists
- #
- # --------------------------------------------------------------------------
- # Copyright (c) 2013, LeRoy Benjamin Sharon
- # All rights reserved.
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions
- # are met: Redistributions of source code must retain the above
- # copyright notice, this list of conditions and the following
- # disclaimer. Redistributions in binary form must reproduce the
- # above copyright notice, this list of conditions and the following
- # disclaimer in the documentation and/or other materials provided
- # with the distribution.
- #
- # Neither the name Myanmar Karen Word Lists, nor the names of its
- # contributors may be used to endorse or promote products derived
- # from this software without specific prior written permission.
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
- # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
- # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- # SUCH DAMAGE.
- # --------------------------------------------------------------------------
-
-5. Time Zone Database
-
- ICU uses the public domain data and code derived from Time Zone
-Database for its time zone support. The ownership of the TZ database
-is explained in BCP 175: Procedure for Maintaining the Time Zone
-Database section 7.
-
- # 7. Database Ownership
- #
- # The TZ database itself is not an IETF Contribution or an IETF
- # document. Rather it is a pre-existing and regularly updated work
- # that is in the public domain, and is intended to remain in the
- # public domain. Therefore, BCPs 78 [RFC5378] and 79 [RFC3979] do
- # not apply to the TZ Database or contributions that individuals make
- # to it. Should any claims be made and substantiated against the TZ
- # Database, the organization that is providing the IANA
- # Considerations defined in this RFC, under the memorandum of
- # understanding with the IETF, currently ICANN, may act in accordance
- # with all competent court orders. No ownership claims will be made
- # by ICANN or the IETF Trust on the database or the code. Any person
- # making a contribution to the database or code waives all rights to
- # future claims in that contribution or in the TZ Database.
-
-6. Google double-conversion
-
-Copyright 2006-2011, the V8 project authors. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
- * Neither the name of Google Inc. nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------------
-END LICENSE FOR third_party/icu/data/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR third_party/hadoop/LICENSE.txt
---------------------------------------------------------------------------------
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-
-APACHE HADOOP SUBCOMPONENTS:
-
-The Apache Hadoop project contains subcomponents with separate copyright
-notices and license terms. Your use of the source code for the these
-subcomponents is subject to the terms and conditions of the following
-licenses.
-
-For the org.apache.hadoop.util.bloom.* classes:
-
-/**
- *
- * Copyright (c) 2005, European Commission project OneLab under contract
- * 034819 (http://www.one-lab.org)
- * All rights reserved.
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- * - Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * - Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the distribution.
- * - Neither the name of the University Catholique de Louvain - UCL
- * nor the names of its contributors may be used to endorse or
- * promote products derived from this software without specific prior
- * written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-For portions of the native implementation of slicing-by-8 CRC calculation
-in src/main/native/src/org/apache/hadoop/util:
-
-/**
- * Copyright 2008,2009,2010 Massachusetts Institute of Technology.
- * All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- */
-
- For src/main/native/src/org/apache/hadoop/io/compress/lz4/lz4.c:
-
-/*
- LZ4 - Fast LZ compression algorithm
- Copyright (C) 2011, Yann Collet.
- BSD License
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
---------------------------------------------------------------------------------
-END LICENSE FOR third_party/hadoop/LICENSE.txt
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR third_party/eigen3/LICENSE
---------------------------------------------------------------------------------
-Eigen is primarily MPL2 licensed. See COPYING.MPL2 and these links:
- http://www.mozilla.org/MPL/2.0/
- http://www.mozilla.org/MPL/2.0/FAQ.html
-
-Some files contain third-party code under BSD or LGPL licenses, whence
-the other COPYING.* files here.
-
-All the LGPL code is either LGPL 2.1-only, or LGPL 2.1-or-later.
-For this reason, the COPYING.LGPL file contains the LGPL 2.1 text.
-
-If you want to guarantee that the Eigen code that you are #including
-is licensed under the MPL2 and possibly more permissive licenses (like
-BSD), #define this preprocessor symbol: EIGEN_MPL2_ONLY
-For example, with most compilers, you could add this to your project
- CXXFLAGS: -DEIGEN_MPL2_ONLY
-This will cause a compilation error to be generated if you #include
-any code that is LGPL licensed.
-
-----------------------------------------------------------------------
-Following applies to:
-./test/mapstaticmethods.cpp
-./test/schur_real.cpp
-./test/prec_inverse_4x4.cpp
-./test/smallvectors.cpp
-./test/redux.cpp
-./test/special_numbers.cpp
-./test/adjoint.cpp
-./test/resize.cpp
-./test/mixingtypes.cpp
-./test/product_trmv.cpp
-./test/sparse_solvers.cpp
-./test/cholesky.cpp
-./test/geo_quaternion.cpp
-./test/miscmatrices.cpp
-./test/stddeque.cpp
-./test/integer_types.cpp
-./test/product_large.cpp
-./test/eigensolver_generic.cpp
-./test/householder.cpp
-./test/geo_orthomethods.cpp
-./test/array_for_matrix.cpp
-./test/sparseLM.cpp
-./test/upperbidiagonalization.cpp
-./test/nomalloc.cpp
-./test/packetmath.cpp
-./test/jacobisvd.cpp
-./test/geo_transformations.cpp
-./test/swap.cpp
-./test/eigensolver_selfadjoint.cpp
-./test/inverse.cpp
-./test/product_selfadjoint.cpp
-./test/product_trsolve.cpp
-./test/product_extra.cpp
-./test/sparse_solver.h
-./test/mapstride.cpp
-./test/mapped_matrix.cpp
-./test/geo_eulerangles.cpp
-./test/eigen2support.cpp
-./test/denseLM.cpp
-./test/stdvector.cpp
-./test/nesting_ops.cpp
-./test/sparse_permutations.cpp
-./test/zerosized.cpp
-./test/exceptions.cpp
-./test/vectorwiseop.cpp
-./test/cwiseop.cpp
-./test/basicstuff.cpp
-./test/product_trmm.cpp
-./test/linearstructure.cpp
-./test/sparse_product.cpp
-./test/stdvector_overload.cpp
-./test/stable_norm.cpp
-./test/umeyama.cpp
-./test/unalignedcount.cpp
-./test/triangular.cpp
-./test/product_mmtr.cpp
-./test/sparse_basic.cpp
-./test/sparse_vector.cpp
-./test/meta.cpp
-./test/real_qz.cpp
-./test/ref.cpp
-./test/eigensolver_complex.cpp
-./test/cholmod_support.cpp
-./test/conjugate_gradient.cpp
-./test/sparse.h
-./test/simplicial_cholesky.cpp
-./test/bicgstab.cpp
-./test/dynalloc.cpp
-./test/product_notemporary.cpp
-./test/geo_hyperplane.cpp
-./test/lu.cpp
-./test/qr.cpp
-./test/hessenberg.cpp
-./test/sizeof.cpp
-./test/main.h
-./test/selfadjoint.cpp
-./test/permutationmatrices.cpp
-./test/superlu_support.cpp
-./test/qtvector.cpp
-./test/geo_homogeneous.cpp
-./test/determinant.cpp
-./test/array_reverse.cpp
-./test/unalignedassert.cpp
-./test/stdlist.cpp
-./test/product_symm.cpp
-./test/corners.cpp
-./test/dontalign.cpp
-./test/visitor.cpp
-./test/geo_alignedbox.cpp
-./test/diagonalmatrices.cpp
-./test/product_small.cpp
-./test/eigensolver_generalized_real.cpp
-./test/umfpack_support.cpp
-./test/first_aligned.cpp
-./test/qr_fullpivoting.cpp
-./test/array_replicate.cpp
-./test/geo_parametrizedline.cpp
-./test/eigen2/eigen2_unalignedassert.cpp
-./test/eigen2/eigen2_prec_inverse_4x4.cpp
-./test/eigen2/eigen2_alignedbox.cpp
-./test/eigen2/eigen2_sparse_product.cpp
-./test/eigen2/eigen2_meta.cpp
-./test/eigen2/eigen2_nomalloc.cpp
-./test/eigen2/eigen2_visitor.cpp
-./test/eigen2/eigen2_packetmath.cpp
-./test/eigen2/eigen2_svd.cpp
-./test/eigen2/eigen2_mixingtypes.cpp
-./test/eigen2/eigen2_qr.cpp
-./test/eigen2/eigen2_cwiseop.cpp
-./test/eigen2/eigen2_geometry_with_eigen2_prefix.cpp
-./test/eigen2/eigen2_smallvectors.cpp
-./test/eigen2/eigen2_commainitializer.cpp
-./test/eigen2/eigen2_sparse_solvers.cpp
-./test/eigen2/eigen2_hyperplane.cpp
-./test/eigen2/eigen2_eigensolver.cpp
-./test/eigen2/eigen2_linearstructure.cpp
-./test/eigen2/eigen2_sizeof.cpp
-./test/eigen2/eigen2_parametrizedline.cpp
-./test/eigen2/eigen2_lu.cpp
-./test/eigen2/eigen2_adjoint.cpp
-./test/eigen2/eigen2_geometry.cpp
-./test/eigen2/eigen2_stdvector.cpp
-./test/eigen2/eigen2_newstdvector.cpp
-./test/eigen2/eigen2_submatrices.cpp
-./test/eigen2/sparse.h
-./test/eigen2/eigen2_swap.cpp
-./test/eigen2/eigen2_triangular.cpp
-./test/eigen2/eigen2_basicstuff.cpp
-./test/eigen2/gsl_helper.h
-./test/eigen2/eigen2_dynalloc.cpp
-./test/eigen2/eigen2_array.cpp
-./test/eigen2/eigen2_map.cpp
-./test/eigen2/main.h
-./test/eigen2/eigen2_miscmatrices.cpp
-./test/eigen2/eigen2_product_large.cpp
-./test/eigen2/eigen2_first_aligned.cpp
-./test/eigen2/eigen2_cholesky.cpp
-./test/eigen2/eigen2_determinant.cpp
-./test/eigen2/eigen2_sum.cpp
-./test/eigen2/eigen2_inverse.cpp
-./test/eigen2/eigen2_regression.cpp
-./test/eigen2/eigen2_product_small.cpp
-./test/eigen2/eigen2_qtvector.cpp
-./test/eigen2/eigen2_sparse_vector.cpp
-./test/eigen2/product.h
-./test/eigen2/eigen2_sparse_basic.cpp
-./test/eigen2/eigen2_bug_132.cpp
-./test/array.cpp
-./test/product_syrk.cpp
-./test/commainitializer.cpp
-./test/conservative_resize.cpp
-./test/qr_colpivoting.cpp
-./test/nullary.cpp
-./test/bandmatrix.cpp
-./test/pastix_support.cpp
-./test/product.h
-./test/block.cpp
-./test/vectorization_logic.cpp
-./test/jacobi.cpp
-./test/diagonal.cpp
-./test/schur_complex.cpp
-./test/sizeoverflow.cpp
-./bench/BenchTimer.h
-./bench/benchFFT.cpp
-./bench/eig33.cpp
-./bench/spbench/spbenchsolver.h
-./bench/spbench/spbenchstyle.h
-./lapack/complex_double.cpp
-./lapack/cholesky.cpp
-./lapack/lapack_common.h
-./lapack/eigenvalues.cpp
-./lapack/single.cpp
-./lapack/lu.cpp
-./lapack/complex_single.cpp
-./lapack/double.cpp
-./demos/mix_eigen_and_c/binary_library.cpp
-./demos/mix_eigen_and_c/binary_library.h
-./demos/mix_eigen_and_c/example.c
-./demos/mandelbrot/mandelbrot.cpp
-./demos/mandelbrot/mandelbrot.h
-./demos/opengl/icosphere.cpp
-./demos/opengl/icosphere.h
-./demos/opengl/camera.cpp
-./demos/opengl/quaternion_demo.h
-./demos/opengl/camera.h
-./demos/opengl/trackball.h
-./demos/opengl/gpuhelper.h
-./demos/opengl/trackball.cpp
-./demos/opengl/gpuhelper.cpp
-./demos/opengl/quaternion_demo.cpp
-./debug/gdb/printers.py
-./unsupported/test/minres.cpp
-./unsupported/test/openglsupport.cpp
-./unsupported/test/jacobisvd.cpp
-./unsupported/test/dgmres.cpp
-./unsupported/test/matrix_square_root.cpp
-./unsupported/test/bdcsvd.cpp
-./unsupported/test/matrix_exponential.cpp
-./unsupported/test/forward_adolc.cpp
-./unsupported/test/polynomialsolver.cpp
-./unsupported/test/matrix_function.cpp
-./unsupported/test/sparse_extra.cpp
-./unsupported/test/matrix_functions.h
-./unsupported/test/svd_common.h
-./unsupported/test/FFTW.cpp
-./unsupported/test/alignedvector3.cpp
-./unsupported/test/autodiff.cpp
-./unsupported/test/gmres.cpp
-./unsupported/test/BVH.cpp
-./unsupported/test/levenberg_marquardt.cpp
-./unsupported/test/matrix_power.cpp
-./unsupported/test/kronecker_product.cpp
-./unsupported/test/splines.cpp
-./unsupported/test/polynomialutils.cpp
-./unsupported/bench/bench_svd.cpp
-./unsupported/Eigen/IterativeSolvers
-./unsupported/Eigen/src/IterativeSolvers/DGMRES.h
-./unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h
-./unsupported/Eigen/src/IterativeSolvers/GMRES.h
-./unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h
-./unsupported/Eigen/src/IterativeSolvers/Scaling.h
-./unsupported/Eigen/src/IterativeSolvers/MINRES.h
-./unsupported/Eigen/src/SparseExtra/RandomSetter.h
-./unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h
-./unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h
-./unsupported/Eigen/src/SparseExtra/MarketIO.h
-./unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h
-./unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h
-./unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h
-./unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h
-./unsupported/Eigen/src/BVH/BVAlgorithms.h
-./unsupported/Eigen/src/BVH/KdBVH.h
-./unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h
-./unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h
-./unsupported/Eigen/src/AutoDiff/AutoDiffVector.h
-./unsupported/Eigen/src/Splines/Spline.h
-./unsupported/Eigen/src/Splines/SplineFitting.h
-./unsupported/Eigen/src/Splines/SplineFwd.h
-./unsupported/Eigen/src/SVD/JacobiSVD.h
-./unsupported/Eigen/src/SVD/BDCSVD.h
-./unsupported/Eigen/src/SVD/SVDBase.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h
-./unsupported/Eigen/src/MatrixFunctions/StemFunction.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixPower.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h
-./unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h
-./unsupported/Eigen/src/MoreVectorization/MathFunctions.h
-./unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h
-./unsupported/Eigen/src/FFT/ei_fftw_impl.h
-./unsupported/Eigen/src/FFT/ei_kissfft_impl.h
-./unsupported/Eigen/src/Polynomials/PolynomialSolver.h
-./unsupported/Eigen/src/Polynomials/Companion.h
-./unsupported/Eigen/src/Polynomials/PolynomialUtils.h
-./unsupported/Eigen/src/NumericalDiff/NumericalDiff.h
-./unsupported/Eigen/src/Skyline/SkylineProduct.h
-./unsupported/Eigen/src/Skyline/SkylineMatrixBase.h
-./unsupported/Eigen/src/Skyline/SkylineStorage.h
-./unsupported/Eigen/src/Skyline/SkylineUtil.h
-./unsupported/Eigen/src/Skyline/SkylineInplaceLU.h
-./unsupported/Eigen/src/Skyline/SkylineMatrix.h
-./unsupported/Eigen/SparseExtra
-./unsupported/Eigen/AdolcForward
-./unsupported/Eigen/KroneckerProduct
-./unsupported/Eigen/NonLinearOptimization
-./unsupported/Eigen/BVH
-./unsupported/Eigen/OpenGLSupport
-./unsupported/Eigen/ArpackSupport
-./unsupported/Eigen/AutoDiff
-./unsupported/Eigen/Splines
-./unsupported/Eigen/MPRealSupport
-./unsupported/Eigen/MatrixFunctions
-./unsupported/Eigen/MoreVectorization
-./unsupported/Eigen/LevenbergMarquardt
-./unsupported/Eigen/AlignedVector3
-./unsupported/Eigen/FFT
-./unsupported/Eigen/Polynomials
-./unsupported/Eigen/NumericalDiff
-./unsupported/Eigen/Skyline
-./COPYING.README
-./COPYING.README
-./LICENSE
-./LICENSE
-./LICENSE
-./Eigen/Eigen2Support
-./Eigen/src/Eigen2Support/VectorBlock.h
-./Eigen/src/Eigen2Support/Cwise.h
-./Eigen/src/Eigen2Support/Minor.h
-./Eigen/src/Eigen2Support/Lazy.h
-./Eigen/src/Eigen2Support/Memory.h
-./Eigen/src/Eigen2Support/MathFunctions.h
-./Eigen/src/Eigen2Support/Geometry/AlignedBox.h
-./Eigen/src/Eigen2Support/Geometry/Hyperplane.h
-./Eigen/src/Eigen2Support/Geometry/Quaternion.h
-./Eigen/src/Eigen2Support/Geometry/Rotation2D.h
-./Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h
-./Eigen/src/Eigen2Support/Geometry/RotationBase.h
-./Eigen/src/Eigen2Support/Geometry/Translation.h
-./Eigen/src/Eigen2Support/Geometry/Scaling.h
-./Eigen/src/Eigen2Support/Geometry/AngleAxis.h
-./Eigen/src/Eigen2Support/Geometry/Transform.h
-./Eigen/src/Eigen2Support/TriangularSolver.h
-./Eigen/src/Eigen2Support/LU.h
-./Eigen/src/Eigen2Support/QR.h
-./Eigen/src/Eigen2Support/SVD.h
-./Eigen/src/Eigen2Support/Meta.h
-./Eigen/src/Eigen2Support/Block.h
-./Eigen/src/Eigen2Support/Macros.h
-./Eigen/src/Eigen2Support/LeastSquares.h
-./Eigen/src/Eigen2Support/CwiseOperators.h
-./Eigen/src/Jacobi/Jacobi.h
-./Eigen/src/misc/Kernel.h
-./Eigen/src/misc/SparseSolve.h
-./Eigen/src/misc/Solve.h
-./Eigen/src/misc/Image.h
-./Eigen/src/SparseCore/SparseColEtree.h
-./Eigen/src/SparseCore/SparseTranspose.h
-./Eigen/src/SparseCore/SparseUtil.h
-./Eigen/src/SparseCore/SparseCwiseBinaryOp.h
-./Eigen/src/SparseCore/SparseDiagonalProduct.h
-./Eigen/src/SparseCore/SparseProduct.h
-./Eigen/src/SparseCore/SparseDot.h
-./Eigen/src/SparseCore/SparseCwiseUnaryOp.h
-./Eigen/src/SparseCore/SparseSparseProductWithPruning.h
-./Eigen/src/SparseCore/SparseBlock.h
-./Eigen/src/SparseCore/SparseDenseProduct.h
-./Eigen/src/SparseCore/CompressedStorage.h
-./Eigen/src/SparseCore/SparseMatrixBase.h
-./Eigen/src/SparseCore/MappedSparseMatrix.h
-./Eigen/src/SparseCore/SparseTriangularView.h
-./Eigen/src/SparseCore/SparseView.h
-./Eigen/src/SparseCore/SparseFuzzy.h
-./Eigen/src/SparseCore/TriangularSolver.h
-./Eigen/src/SparseCore/SparseSelfAdjointView.h
-./Eigen/src/SparseCore/SparseMatrix.h
-./Eigen/src/SparseCore/SparseVector.h
-./Eigen/src/SparseCore/AmbiVector.h
-./Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
-./Eigen/src/SparseCore/SparseRedux.h
-./Eigen/src/SparseCore/SparsePermutation.h
-./Eigen/src/Eigenvalues/RealSchur.h
-./Eigen/src/Eigenvalues/ComplexEigenSolver.h
-./Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
-./Eigen/src/Eigenvalues/ComplexSchur.h
-./Eigen/src/Eigenvalues/RealQZ.h
-./Eigen/src/Eigenvalues/EigenSolver.h
-./Eigen/src/Eigenvalues/HessenbergDecomposition.h
-./Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
-./Eigen/src/Eigenvalues/Tridiagonalization.h
-./Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
-./Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
-./Eigen/src/SuperLUSupport/SuperLUSupport.h
-./Eigen/src/StlSupport/StdDeque.h
-./Eigen/src/StlSupport/StdVector.h
-./Eigen/src/StlSupport/StdList.h
-./Eigen/src/StlSupport/details.h
-./Eigen/src/SparseQR/SparseQR.h
-./Eigen/src/LU/Inverse.h
-./Eigen/src/LU/arch/Inverse_SSE.h
-./Eigen/src/LU/Determinant.h
-./Eigen/src/LU/PartialPivLU.h
-./Eigen/src/LU/FullPivLU.h
-./Eigen/src/UmfPackSupport/UmfPackSupport.h
-./Eigen/src/OrderingMethods/Ordering.h
-./Eigen/src/OrderingMethods/Eigen_Colamd.h
-./Eigen/src/QR/HouseholderQR.h
-./Eigen/src/QR/ColPivHouseholderQR.h
-./Eigen/src/QR/FullPivHouseholderQR.h
-./Eigen/src/SVD/JacobiSVD.h
-./Eigen/src/SVD/UpperBidiagonalization.h
-./Eigen/src/Geometry/OrthoMethods.h
-./Eigen/src/Geometry/AlignedBox.h
-./Eigen/src/Geometry/Hyperplane.h
-./Eigen/src/Geometry/Quaternion.h
-./Eigen/src/Geometry/EulerAngles.h
-./Eigen/src/Geometry/Rotation2D.h
-./Eigen/src/Geometry/ParametrizedLine.h
-./Eigen/src/Geometry/RotationBase.h
-./Eigen/src/Geometry/arch/Geometry_SSE.h
-./Eigen/src/Geometry/Umeyama.h
-./Eigen/src/Geometry/Homogeneous.h
-./Eigen/src/Geometry/Translation.h
-./Eigen/src/Geometry/Scaling.h
-./Eigen/src/Geometry/AngleAxis.h
-./Eigen/src/Geometry/Transform.h
-./Eigen/src/plugins/BlockMethods.h
-./Eigen/src/plugins/CommonCwiseUnaryOps.h
-./Eigen/src/plugins/CommonCwiseBinaryOps.h
-./Eigen/src/plugins/MatrixCwiseUnaryOps.h
-./Eigen/src/plugins/MatrixCwiseBinaryOps.h
-./Eigen/src/Householder/Householder.h
-./Eigen/src/Householder/HouseholderSequence.h
-./Eigen/src/Householder/BlockHouseholder.h
-./Eigen/src/Core/VectorBlock.h
-./Eigen/src/Core/Matrix.h
-./Eigen/src/Core/Ref.h
-./Eigen/src/Core/SelfAdjointView.h
-./Eigen/src/Core/MathFunctions.h
-./Eigen/src/Core/GlobalFunctions.h
-./Eigen/src/Core/MapBase.h
-./Eigen/src/Core/EigenBase.h
-./Eigen/src/Core/GenericPacketMath.h
-./Eigen/src/Core/NestByValue.h
-./Eigen/src/Core/CwiseUnaryOp.h
-./Eigen/src/Core/SolveTriangular.h
-./Eigen/src/Core/Fuzzy.h
-./Eigen/src/Core/Visitor.h
-./Eigen/src/Core/Map.h
-./Eigen/src/Core/NoAlias.h
-./Eigen/src/Core/Diagonal.h
-./Eigen/src/Core/StableNorm.h
-./Eigen/src/Core/CoreIterators.h
-./Eigen/src/Core/products/Parallelizer.h
-./Eigen/src/Core/products/SelfadjointMatrixVector.h
-./Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
-./Eigen/src/Core/products/TriangularSolverMatrix.h
-./Eigen/src/Core/products/GeneralMatrixMatrix.h
-./Eigen/src/Core/products/SelfadjointProduct.h
-./Eigen/src/Core/products/CoeffBasedProduct.h
-./Eigen/src/Core/products/TriangularMatrixVector.h
-./Eigen/src/Core/products/SelfadjointMatrixMatrix.h
-./Eigen/src/Core/products/TriangularSolverVector.h
-./Eigen/src/Core/products/SelfadjointRank2Update.h
-./Eigen/src/Core/products/GeneralBlockPanelKernel.h
-./Eigen/src/Core/products/GeneralMatrixVector.h
-./Eigen/src/Core/products/TriangularMatrixMatrix.h
-./Eigen/src/Core/Reverse.h
-./Eigen/src/Core/BooleanRedux.h
-./Eigen/src/Core/Replicate.h
-./Eigen/src/Core/arch/AltiVec/PacketMath.h
-./Eigen/src/Core/arch/AltiVec/Complex.h
-./Eigen/src/Core/arch/SSE/PacketMath.h
-./Eigen/src/Core/arch/SSE/Complex.h
-./Eigen/src/Core/arch/SSE/MathFunctions.h
-./Eigen/src/Core/arch/NEON/PacketMath.h
-./Eigen/src/Core/arch/NEON/Complex.h
-./Eigen/src/Core/arch/Default/Settings.h
-./Eigen/src/Core/CwiseUnaryView.h
-./Eigen/src/Core/Array.h
-./Eigen/src/Core/ArrayWrapper.h
-./Eigen/src/Core/Swap.h
-./Eigen/src/Core/Transpositions.h
-./Eigen/src/Core/Random.h
-./Eigen/src/Core/IO.h
-./Eigen/src/Core/SelfCwiseBinaryOp.h
-./Eigen/src/Core/VectorwiseOp.h
-./Eigen/src/Core/Select.h
-./Eigen/src/Core/ArrayBase.h
-./Eigen/src/Core/DenseCoeffsBase.h
-./Eigen/src/Core/DiagonalProduct.h
-./Eigen/src/Core/Assign.h
-./Eigen/src/Core/Redux.h
-./Eigen/src/Core/ForceAlignedAccess.h
-./Eigen/src/Core/BandMatrix.h
-./Eigen/src/Core/PlainObjectBase.h
-./Eigen/src/Core/DenseBase.h
-./Eigen/src/Core/Flagged.h
-./Eigen/src/Core/CwiseBinaryOp.h
-./Eigen/src/Core/ProductBase.h
-./Eigen/src/Core/TriangularMatrix.h
-./Eigen/src/Core/Transpose.h
-./Eigen/src/Core/DiagonalMatrix.h
-./Eigen/src/Core/Dot.h
-./Eigen/src/Core/Functors.h
-./Eigen/src/Core/PermutationMatrix.h
-./Eigen/src/Core/NumTraits.h
-./Eigen/src/Core/MatrixBase.h
-./Eigen/src/Core/DenseStorage.h
-./Eigen/src/Core/util/Memory.h
-./Eigen/src/Core/util/StaticAssert.h
-./Eigen/src/Core/util/BlasUtil.h
-./Eigen/src/Core/util/MatrixMapper.h
-./Eigen/src/Core/util/XprHelper.h
-./Eigen/src/Core/util/ForwardDeclarations.h
-./Eigen/src/Core/util/Meta.h
-./Eigen/src/Core/util/Macros.h
-./Eigen/src/Core/util/Constants.h
-./Eigen/src/Core/CwiseNullaryOp.h
-./Eigen/src/Core/Block.h
-./Eigen/src/Core/GeneralProduct.h
-./Eigen/src/Core/CommaInitializer.h
-./Eigen/src/Core/ReturnByValue.h
-./Eigen/src/Core/Stride.h
-./Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
-./Eigen/src/SparseLU/SparseLU_column_dfs.h
-./Eigen/src/SparseLU/SparseLU_panel_dfs.h
-./Eigen/src/SparseLU/SparseLU_relax_snode.h
-./Eigen/src/SparseLU/SparseLU_panel_bmod.h
-./Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
-./Eigen/src/SparseLU/SparseLU_Utils.h
-./Eigen/src/SparseLU/SparseLU_gemm_kernel.h
-./Eigen/src/SparseLU/SparseLU_kernel_bmod.h
-./Eigen/src/SparseLU/SparseLU_pivotL.h
-./Eigen/src/SparseLU/SparseLU_Memory.h
-./Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
-./Eigen/src/SparseLU/SparseLUImpl.h
-./Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
-./Eigen/src/SparseLU/SparseLU_Structs.h
-./Eigen/src/SparseLU/SparseLU.h
-./Eigen/src/SparseLU/SparseLU_column_bmod.h
-./Eigen/src/SparseLU/SparseLU_pruneL.h
-./Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
-./Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
-./Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
-./Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
-./Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
-./Eigen/src/SparseCholesky/SimplicialCholesky.h
-./Eigen/src/Cholesky/LDLT.h
-./Eigen/src/Cholesky/LLT.h
-./Eigen/src/CholmodSupport/CholmodSupport.h
-./Eigen/src/PaStiXSupport/PaStiXSupport.h
-./Eigen/src/MetisSupport/MetisSupport.h
-./Eigen/StdVector
-./Eigen/Core
-./Eigen/SparseLU
-./Eigen/StdList
-./Eigen/StdDeque
-./Eigen/SparseCholesky
-./scripts/relicense.py
-./scripts/relicense.py
-./blas/BandTriangularSolver.h
-./blas/PackedTriangularMatrixVector.h
-./blas/complex_double.cpp
-./blas/level2_real_impl.h
-./blas/level1_cplx_impl.h
-./blas/level1_impl.h
-./blas/level1_real_impl.h
-./blas/level3_impl.h
-./blas/single.cpp
-./blas/level2_cplx_impl.h
-./blas/PackedSelfadjointProduct.h
-./blas/Rank2Update.h
-./blas/complex_single.cpp
-./blas/PackedTriangularSolverVector.h
-./blas/double.cpp
-./blas/common.h
-./blas/level2_impl.h
-./blas/GeneralRank1Update.h
-
-Mozilla Public License Version 2.0
-==================================
-
-1. Definitions
---------------
-
-1.1. "Contributor"
- means each individual or legal entity that creates, contributes to
- the creation of, or owns Covered Software.
-
-1.2. "Contributor Version"
- means the combination of the Contributions of others (if any) used
- by a Contributor and that particular Contributor's Contribution.
-
-1.3. "Contribution"
- means Covered Software of a particular Contributor.
-
-1.4. "Covered Software"
- means Source Code Form to which the initial Contributor has attached
- the notice in Exhibit A, the Executable Form of such Source Code
- Form, and Modifications of such Source Code Form, in each case
- including portions thereof.
-
-1.5. "Incompatible With Secondary Licenses"
- means
-
- (a) that the initial Contributor has attached the notice described
- in Exhibit B to the Covered Software; or
-
- (b) that the Covered Software was made available under the terms of
- version 1.1 or earlier of the License, but not also under the
- terms of a Secondary License.
-
-1.6. "Executable Form"
- means any form of the work other than Source Code Form.
-
-1.7. "Larger Work"
- means a work that combines Covered Software with other material, in
- a separate file or files, that is not Covered Software.
-
-1.8. "License"
- means this document.
-
-1.9. "Licensable"
- means having the right to grant, to the maximum extent possible,
- whether at the time of the initial grant or subsequently, any and
- all of the rights conveyed by this License.
-
-1.10. "Modifications"
- means any of the following:
-
- (a) any file in Source Code Form that results from an addition to,
- deletion from, or modification of the contents of Covered
- Software; or
-
- (b) any new file in Source Code Form that contains any Covered
- Software.
-
-1.11. "Patent Claims" of a Contributor
- means any patent claim(s), including without limitation, method,
- process, and apparatus claims, in any patent Licensable by such
- Contributor that would be infringed, but for the grant of the
- License, by the making, using, selling, offering for sale, having
- made, import, or transfer of either its Contributions or its
- Contributor Version.
-
-1.12. "Secondary License"
- means either the GNU General Public License, Version 2.0, the GNU
- Lesser General Public License, Version 2.1, the GNU Affero General
- Public License, Version 3.0, or any later versions of those
- licenses.
-
-1.13. "Source Code Form"
- means the form of the work preferred for making modifications.
-
-1.14. "You" (or "Your")
- means an individual or a legal entity exercising rights under this
- License. For legal entities, "You" includes any entity that
- controls, is controlled by, or is under common control with You. For
- purposes of this definition, "control" means (a) the power, direct
- or indirect, to cause the direction or management of such entity,
- whether by contract or otherwise, or (b) ownership of more than
- fifty percent (50%) of the outstanding shares or beneficial
- ownership of such entity.
-
-2. License Grants and Conditions
---------------------------------
-
-2.1. Grants
-
-Each Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark)
- Licensable by such Contributor to use, reproduce, make available,
- modify, display, perform, distribute, and otherwise exploit its
- Contributions, either on an unmodified basis, with Modifications, or
- as part of a Larger Work; and
-
-(b) under Patent Claims of such Contributor to make, use, sell, offer
- for sale, have made, import, and otherwise transfer either its
- Contributions or its Contributor Version.
-
-2.2. Effective Date
-
-The licenses granted in Section 2.1 with respect to any Contribution
-become effective for each Contribution on the date the Contributor first
-distributes such Contribution.
-
-2.3. Limitations on Grant Scope
-
-The licenses granted in this Section 2 are the only rights granted under
-this License. No additional rights or licenses will be implied from the
-distribution or licensing of Covered Software under this License.
-Notwithstanding Section 2.1(b) above, no patent license is granted by a
-Contributor:
-
-(a) for any code that a Contributor has removed from Covered Software;
- or
-
-(b) for infringements caused by: (i) Your and any other third party's
- modifications of Covered Software, or (ii) the combination of its
- Contributions with other software (except as part of its Contributor
- Version); or
-
-(c) under Patent Claims infringed by Covered Software in the absence of
- its Contributions.
-
-This License does not grant any rights in the trademarks, service marks,
-or logos of any Contributor (except as may be necessary to comply with
-the notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
-No Contributor makes additional grants as a result of Your choice to
-distribute the Covered Software under a subsequent version of this
-License (see Section 10.2) or under the terms of a Secondary License (if
-permitted under the terms of Section 3.3).
-
-2.5. Representation
-
-Each Contributor represents that the Contributor believes its
-Contributions are its original creation(s) or it has sufficient rights
-to grant the rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
-This License is not intended to limit any rights You have under
-applicable copyright doctrines of fair use, fair dealing, or other
-equivalents.
-
-2.7. Conditions
-
-Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
-in Section 2.1.
-
-3. Responsibilities
--------------------
-
-3.1. Distribution of Source Form
-
-All distribution of Covered Software in Source Code Form, including any
-Modifications that You create or to which You contribute, must be under
-the terms of this License. You must inform recipients that the Source
-Code Form of the Covered Software is governed by the terms of this
-License, and how they can obtain a copy of this License. You may not
-attempt to alter or restrict the recipients' rights in the Source Code
-Form.
-
-3.2. Distribution of Executable Form
-
-If You distribute Covered Software in Executable Form then:
-
-(a) such Covered Software must also be made available in Source Code
- Form, as described in Section 3.1, and You must inform recipients of
- the Executable Form how they can obtain a copy of such Source Code
- Form by reasonable means in a timely manner, at a charge no more
- than the cost of distribution to the recipient; and
-
-(b) You may distribute such Executable Form under the terms of this
- License, or sublicense it under different terms, provided that the
- license for the Executable Form does not attempt to limit or alter
- the recipients' rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
-You may create and distribute a Larger Work under terms of Your choice,
-provided that You also comply with the requirements of this License for
-the Covered Software. If the Larger Work is a combination of Covered
-Software with a work governed by one or more Secondary Licenses, and the
-Covered Software is not Incompatible With Secondary Licenses, this
-License permits You to additionally distribute such Covered Software
-under the terms of such Secondary License(s), so that the recipient of
-the Larger Work may, at their option, further distribute the Covered
-Software under the terms of either this License or such Secondary
-License(s).
-
-3.4. Notices
-
-You may not remove or alter the substance of any license notices
-(including copyright notices, patent notices, disclaimers of warranty,
-or limitations of liability) contained within the Source Code Form of
-the Covered Software, except that You may alter any license notices to
-the extent required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
-You may choose to offer, and to charge a fee for, warranty, support,
-indemnity or liability obligations to one or more recipients of Covered
-Software. However, You may do so only on Your own behalf, and not on
-behalf of any Contributor. You must make it absolutely clear that any
-such warranty, support, indemnity, or liability obligation is offered by
-You alone, and You hereby agree to indemnify every Contributor for any
-liability incurred by such Contributor as a result of warranty, support,
-indemnity or liability terms You offer. You may include additional
-disclaimers of warranty and limitations of liability specific to any
-jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
----------------------------------------------------
-
-If it is impossible for You to comply with any of the terms of this
-License with respect to some or all of the Covered Software due to
-statute, judicial order, or regulation then You must: (a) comply with
-the terms of this License to the maximum extent possible; and (b)
-describe the limitations and the code they affect. Such description must
-be placed in a text file included with all distributions of the Covered
-Software under this License. Except to the extent prohibited by statute
-or regulation, such description must be sufficiently detailed for a
-recipient of ordinary skill to be able to understand it.
-
-5. Termination
---------------
-
-5.1. The rights granted under this License will terminate automatically
-if You fail to comply with any of its terms. However, if You become
-compliant, then the rights granted under this License from a particular
-Contributor are reinstated (a) provisionally, unless and until such
-Contributor explicitly and finally terminates Your grants, and (b) on an
-ongoing basis, if such Contributor fails to notify You of the
-non-compliance by some reasonable means prior to 60 days after You have
-come back into compliance. Moreover, Your grants from a particular
-Contributor are reinstated on an ongoing basis if such Contributor
-notifies You of the non-compliance by some reasonable means, this is the
-first time You have received notice of non-compliance with this License
-from such Contributor, and You become compliant prior to 30 days after
-Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
-infringement claim (excluding declaratory judgment actions,
-counter-claims, and cross-claims) alleging that a Contributor Version
-directly or indirectly infringes any patent, then the rights granted to
-You by any and all Contributors for the Covered Software under Section
-2.1 of this License shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all
-end user license agreements (excluding distributors and resellers) which
-have been validly granted by You or Your distributors under this License
-prior to termination shall survive termination.
-
-************************************************************************
-* *
-* 6. Disclaimer of Warranty *
-* ------------------------- *
-* *
-* Covered Software is provided under this License on an "as is" *
-* basis, without warranty of any kind, either expressed, implied, or *
-* statutory, including, without limitation, warranties that the *
-* Covered Software is free of defects, merchantable, fit for a *
-* particular purpose or non-infringing. The entire risk as to the *
-* quality and performance of the Covered Software is with You. *
-* Should any Covered Software prove defective in any respect, You *
-* (not any Contributor) assume the cost of any necessary servicing, *
-* repair, or correction. This disclaimer of warranty constitutes an *
-* essential part of this License. No use of any Covered Software is *
-* authorized under this License except under this disclaimer. *
-* *
-************************************************************************
-
-************************************************************************
-* *
-* 7. Limitation of Liability *
-* -------------------------- *
-* *
-* Under no circumstances and under no legal theory, whether tort *
-* (including negligence), contract, or otherwise, shall any *
-* Contributor, or anyone who distributes Covered Software as *
-* permitted above, be liable to You for any direct, indirect, *
-* special, incidental, or consequential damages of any character *
-* including, without limitation, damages for lost profits, loss of *
-* goodwill, work stoppage, computer failure or malfunction, or any *
-* and all other commercial damages or losses, even if such party *
-* shall have been informed of the possibility of such damages. This *
-* limitation of liability shall not apply to liability for death or *
-* personal injury resulting from such party's negligence to the *
-* extent applicable law prohibits such limitation. Some *
-* jurisdictions do not allow the exclusion or limitation of *
-* incidental or consequential damages, so this exclusion and *
-* limitation may not apply to You. *
-* *
-************************************************************************
-
-8. Litigation
--------------
-
-Any litigation relating to this License may be brought only in the
-courts of a jurisdiction where the defendant maintains its principal
-place of business and such litigation shall be governed by laws of that
-jurisdiction, without reference to its conflict-of-law provisions.
-Nothing in this Section shall prevent a party's ability to bring
-cross-claims or counter-claims.
-
-9. Miscellaneous
-----------------
-
-This License represents the complete agreement concerning the subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the extent
-necessary to make it enforceable. Any law or regulation which provides
-that the language of a contract shall be construed against the drafter
-shall not be used to construe this License against a Contributor.
-
-10. Versions of the License
----------------------------
-
-10.1. New Versions
-
-Mozilla Foundation is the license steward. Except as provided in Section
-10.3, no one other than the license steward has the right to modify or
-publish new versions of this License. Each version will be given a
-distinguishing version number.
-
-10.2. Effect of New Versions
-
-You may distribute the Covered Software under the terms of the version
-of the License under which You originally received the Covered Software,
-or under the terms of any subsequent version published by the license
-steward.
-
-10.3. Modified Versions
-
-If you create software not governed by this License, and you want to
-create a new license for such software, you may create and use a
-modified version of this License if you rename the license and remove
-any references to the name of the license steward (except to note that
-such modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary
-Licenses
-
-If You choose to distribute Source Code Form that is Incompatible With
-Secondary Licenses under the terms of this version of the License, the
-notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
--------------------------------------------
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular
-file, then You may include the notice in a location (such as a LICENSE
-file in a relevant directory) where a recipient would be likely to look
-for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
- This Source Code Form is "Incompatible With Secondary Licenses", as
- defined by the Mozilla Public License, v. 2.0.
-
-----------------------------------------------------------------------
-Following applies to:
-./doc/UsingIntelMKL.dox
-./doc/UsingIntelMKL.dox
-./Eigen/src/Eigenvalues/ComplexSchur_MKL.h
-./Eigen/src/Eigenvalues/ComplexSchur_MKL.h
-./Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
-./Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
-./Eigen/src/Eigenvalues/RealSchur_MKL.h
-./Eigen/src/Eigenvalues/RealSchur_MKL.h
-./Eigen/src/LU/arch/Inverse_SSE.h
-./Eigen/src/LU/arch/Inverse_SSE.h
-./Eigen/src/LU/PartialPivLU_MKL.h
-./Eigen/src/LU/PartialPivLU_MKL.h
-./Eigen/src/QR/HouseholderQR_MKL.h
-./Eigen/src/QR/HouseholderQR_MKL.h
-./Eigen/src/QR/ColPivHouseholderQR_MKL.h
-./Eigen/src/QR/ColPivHouseholderQR_MKL.h
-./Eigen/src/SVD/JacobiSVD_MKL.h
-./Eigen/src/SVD/JacobiSVD_MKL.h
-./Eigen/src/PardisoSupport/PardisoSupport.h
-./Eigen/src/PardisoSupport/PardisoSupport.h
-./Eigen/src/Core/Assign_MKL.h
-./Eigen/src/Core/Assign_MKL.h
-./Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
-./Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
-./Eigen/src/Core/products/GeneralMatrixVector_MKL.h
-./Eigen/src/Core/products/GeneralMatrixVector_MKL.h
-./Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
-./Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
-./Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
-./Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
-./Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
-./Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
-./Eigen/src/Core/products/TriangularMatrixVector_MKL.h
-./Eigen/src/Core/products/TriangularMatrixVector_MKL.h
-./Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
-./Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
-./Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
-./Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
-./Eigen/src/Core/util/MKL_support.h
-./Eigen/src/Core/util/MKL_support.h
-./Eigen/src/Cholesky/LLT_MKL.h
-./Eigen/src/Cholesky/LLT_MKL.h
-
-/*
- Copyright (c) 2011, Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer. *
- Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the
- distribution. * Neither the name of Intel Corporation nor the
- names of its contributors may be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-----------------------------------------------------------------------
-Following applies to:
- everything under ./bench/btl
-
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds
-of works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal,
-family, or household purposes, or (2) anything designed or sold for
-incorporation into a dwelling. In determining whether a product is a
-consumer product, doubtful cases shall be resolved in favor of
-coverage. For a particular product received by a particular user,
-"normally used" refers to a typical or common use of that class of
-product, regardless of the status of the particular user or of the way
-in which the particular user actually uses, or expects or is expected
-to use, the product. A product is a consumer product regardless of
-whether the product has substantial commercial, industrial or
-non-consumer uses, unless such uses represent the only significant
-mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to
-install and execute modified versions of a covered work in that User
-Product from a modified version of its Corresponding Source. The
-information must suffice to ensure that the continued functioning of
-the modified object code is in no case prevented or interfered with
-solely because modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include
-a requirement to continue to provide support service, warranty, or
-updates for a work that has been modified or installed by the
-recipient, or for the User Product in which it has been modified or
-installed. Access to a network may be denied when the modification
-itself materially and adversely affects the operation of the network
-or violates the rules and protocols for communication across the
-network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material
-you add to a covered work, you may (if authorized by the copyright
-holders of that material) supplement the terms of this License with
-terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions
- of it) with contractual assumptions of liability to the recipient,
- for any liability that these contractual assumptions directly
- impose on those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement
-or otherwise) that contradict the conditions of this License, they do
-not excuse you from the conditions of this License. If you cannot
-convey a covered work so as to satisfy simultaneously your obligations
-under this License and any other pertinent obligations, then as a
-consequence you may not convey it at all. For example, if you agree
-to terms that obligate you to collect a royalty for further conveying
-from those to whom you convey the Program, the only way you could
-satisfy both those terms and this License would be to refrain entirely
-from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
-WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
-DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
-CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES
-AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
-DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
-DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
-(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
-INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
-THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
-OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation, either version 3 of the
- License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see
- .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C) This program comes
- with ABSOLUTELY NO WARRANTY; for details type `show w'. This is
- free software, and you are welcome to redistribute it under
- certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License. Of course, your
-program's commands might be different; for a GUI interface, you would
-use an "about box".
-
- You should also get your employer (if you work as a programmer) or
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. For more information on this, and how to apply and follow
-the GNU GPL, see .
-
- The GNU General Public License does not permit incorporating your
-program into proprietary programs. If your program is a subroutine
-library, you may consider it more useful to permit linking proprietary
-applications with the library. If this is what you want to do, use
-the GNU Lesser General Public License instead of this License. But
-first, please read .
-
-
-----------------------------------------------------------------------
-Following applies to:
-./test/metis_support.cpp
-./test/sparselu.cpp
-./unsupported/test/mpreal/mpreal.h
-./unsupported/Eigen/src/IterativeSolvers/IterationController.h
-./unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h
-./unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h
-./Eigen/src/OrderingMethods/Amd.h
-./Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
-
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
- This version of the GNU Lesser General Public License incorporates
-the terms and conditions of version 3 of the GNU General Public
-License, supplemented by the additional permissions listed below.
-
- 0. Additional Definitions.
-
- As used herein, "this License" refers to version 3 of the GNU Lesser
-General Public License, and the "GNU GPL" refers to version 3 of the
-GNU General Public License.
-
- "The Library" refers to a covered work governed by this License,
-other than an Application or a Combined Work as defined below.
-
- An "Application" is any work that makes use of an interface provided
-by the Library, but which is not otherwise based on the Library.
-Defining a subclass of a class defined by the Library is deemed a mode
-of using an interface provided by the Library.
-
- A "Combined Work" is a work produced by combining or linking an
-Application with the Library. The particular version of the Library
-with which the Combined Work was made is also called the "Linked
-Version".
-
- The "Minimal Corresponding Source" for a Combined Work means the
-Corresponding Source for the Combined Work, excluding any source code
-for portions of the Combined Work that, considered in isolation, are
-based on the Application, and not on the Linked Version.
-
- The "Corresponding Application Code" for a Combined Work means the
-object code and/or source code for the Application, including any data
-and utility programs needed for reproducing the Combined Work from the
-Application, but excluding the System Libraries of the Combined Work.
-
- 1. Exception to Section 3 of the GNU GPL.
-
- You may convey a covered work under sections 3 and 4 of this License
-without being bound by section 3 of the GNU GPL.
-
- 2. Conveying Modified Versions.
-
- If you modify a copy of the Library, and, in your modifications, a
-facility refers to a function or data to be supplied by an Application
-that uses the facility (other than as an argument passed when the
-facility is invoked), then you may convey a copy of the modified
-version:
-
- a) under this License, provided that you make a good faith effort to
- ensure that, in the event an Application does not supply the
- function or data, the facility still operates, and performs
- whatever part of its purpose remains meaningful, or
-
- b) under the GNU GPL, with none of the additional permissions of
- this License applicable to that copy.
-
- 3. Object Code Incorporating Material from Library Header Files.
-
- The object code form of an Application may incorporate material from
-a header file that is part of the Library. You may convey such object
-code under terms of your choice, provided that, if the incorporated
-material is not limited to numerical parameters, data structure
-layouts and accessors, or small macros, inline functions and templates
-(ten or fewer lines in length), you do both of the following:
-
- a) Give prominent notice with each copy of the object code that the
- Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the object code with a copy of the GNU GPL and this
- license document.
-
- 4. Combined Works.
-
- You may convey a Combined Work under terms of your choice that,
-taken together, effectively do not restrict modification of the
-portions of the Library contained in the Combined Work and reverse
-engineering for debugging such modifications, if you also do each of
-the following:
-
- a) Give prominent notice with each copy of the Combined Work that
- the Library is used in it and that the Library and its use are
- covered by this License.
-
- b) Accompany the Combined Work with a copy of the GNU GPL and this
- license document.
-
- c) For a Combined Work that displays copyright notices during
- execution, include the copyright notice for the Library among
- these notices, as well as a reference directing the user to the
- copies of the GNU GPL and this license document.
-
- d) Do one of the following:
-
- 0) Convey the Minimal Corresponding Source under the terms of
- this License, and the Corresponding Application Code in a form
- suitable for, and under terms that permit, the user to
- recombine or relink the Application with a modified version of
- the Linked Version to produce a modified Combined Work, in the
- manner specified by section 6 of the GNU GPL for conveying
- Corresponding Source.
-
- 1) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (a) uses at run time
- a copy of the Library already present on the user's computer
- system, and (b) will operate properly with a modified version
- of the Library that is interface-compatible with the Linked
- Version.
-
- e) Provide Installation Information, but only if you would otherwise
- be required to provide such information under section 6 of the
- GNU GPL, and only to the extent that such information is
- necessary to install and execute a modified version of the
- Combined Work produced by recombining or relinking the
- Application with a modified version of the Linked Version. (If
- you use option 4d0, the Installation Information must accompany
- the Minimal Corresponding Source and Corresponding Application
- Code. If you use option 4d1, you must provide the Installation
- Information in the manner specified by section 6 of the GNU GPL
- for conveying Corresponding Source.)
-
- 5. Combined Libraries.
-
- You may place library facilities that are a work based on the
-Library side by side in a single library together with other library
-facilities that are not Applications and are not covered by this
-License, and convey such a combined library under terms of your
-choice, if you do both of the following:
-
- a) Accompany the combined library with a copy of the same work based
- on the Library, uncombined with any other library facilities,
- conveyed under the terms of this License.
-
- b) Give prominent notice with the combined library that part of it
- is a work based on the Library, and explaining where to find the
- accompanying uncombined form of the same work.
-
- 6. Revised Versions of the GNU Lesser General Public License.
-
- The Free Software Foundation may publish revised and/or new versions
-of the GNU Lesser General Public License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Library as you received it specifies that a certain numbered version
-of the GNU Lesser General Public License "or any later version"
-applies to it, you have the option of following the terms and
-conditions either of that published version or of any later version
-published by the Free Software Foundation. If the Library as you
-received it does not specify a version number of the GNU Lesser
-General Public License, you may choose any version of the GNU Lesser
-General Public License ever published by the Free Software Foundation.
-
- If the Library as you received it specifies that a proxy can decide
-whether future versions of the GNU Lesser General Public License shall
-apply, that proxy's public statement of acceptance of any version is
-permanent authorization for you to choose that version for the
-Library.
-
-
-----------------------------------------------------------------------
-Following applies to:
-./unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h
-./unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h
-./unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h
-./unsupported/Eigen/src/LevenbergMarquardt/LMpar.h
-./unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h
-
-Minpack Copyright Notice (1999) University of Chicago. All rights
-reserved
-
-Redistribution and use in source and binary forms, with or
-without modification, are permitted provided that the
-following conditions are met:
-
-1. Redistributions of source code must retain the above
-copyright notice, this list of conditions and the following
-disclaimer.
-
-2. Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following
-disclaimer in the documentation and/or other materials
-provided with the distribution.
-
-3. The end-user documentation included with the
-redistribution, if any, must include the following
-acknowledgment:
-
- "This product includes software developed by the
- University of Chicago, as Operator of Argonne National
- Laboratory.
-
-Alternately, this acknowledgment may appear in the software
-itself, if and wherever such third-party acknowledgments
-normally appear.
-
-4. WARRANTY DISCLAIMER. THE SOFTWARE IS SUPPLIED "AS IS"
-WITHOUT WARRANTY OF ANY KIND. THE COPYRIGHT HOLDER, THE
-UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND
-THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE
-OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY
-OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
-USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF
-THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4)
-DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION
-UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL
-BE CORRECTED.
-
-5. LIMITATION OF LIABILITY. IN NO EVENT WILL THE COPYRIGHT
-HOLDER, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF
-ENERGY, OR THEIR EMPLOYEES: BE LIABLE FOR ANY INDIRECT,
-INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF
-ANY KIND OR NATURE, INCLUDING BUT NOT LIMITED TO LOSS OF
-PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER, WHETHER
-SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT
-(INCLUDING NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE,
-EVEN IF ANY OF SAID PARTIES HAS BEEN WARNED OF THE
-POSSIBILITY OF SUCH LOSS OR DAMAGES.
---------------------------------------------------------------------------------
-END LICENSE FOR third_party/eigen3/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR third_party/fft2d/LICENSE
---------------------------------------------------------------------------------
-Copyright(C) 1997,2001 Takuya OOURA (email: ooura@kurims.kyoto-u.ac.jp).
-You may use, copy, modify this code for any purpose and
-without fee. You may distribute this ORIGINAL package.
---------------------------------------------------------------------------------
-END LICENSE FOR third_party/fft2d/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/boringssl/LICENSE
---------------------------------------------------------------------------------
-BoringSSL is a fork of OpenSSL. As such, large parts of it fall under OpenSSL
-licensing. Files that are completely new have a Google copyright and an ISC
-license. This license is reproduced at the bottom of this file.
-
-Contributors to BoringSSL are required to follow the CLA rules for Chromium:
-https://cla.developers.google.com/clas
-
-Files in third_party/ have their own licenses, as described therein. The MIT
-license, for third_party/fiat, which, unlike other third_party directories, is
-compiled into non-test libraries, is included below.
-
-The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the
-OpenSSL License and the original SSLeay license apply to the toolkit. See below
-for the actual license texts. Actually both licenses are BSD-style Open Source
-licenses. In case of any license issues related to OpenSSL please contact
-openssl-core@openssl.org.
-
-The following are Google-internal bug numbers where explicit permission from
-some authors is recorded for use of their work. (This is purely for our own
-record keeping.)
- 27287199
- 27287880
- 27287883
-
- OpenSSL License
- ---------------
-
-/* ====================================================================
- * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. All advertising materials mentioning features or use of this
- * software must display the following acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
- *
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For written permission, please contact
- * openssl-core@openssl.org.
- *
- * 5. Products derived from this software may not be called "OpenSSL"
- * nor may "OpenSSL" appear in their names without prior written
- * permission of the OpenSSL Project.
- *
- * 6. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by the OpenSSL Project
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
- *
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- * ====================================================================
- *
- * This product includes cryptographic software written by Eric Young
- * (eay@cryptsoft.com). This product includes software written by Tim
- * Hudson (tjh@cryptsoft.com).
- *
- */
-
- Original SSLeay License
- -----------------------
-
-/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
- * This package is an SSL implementation written
- * by Eric Young (eay@cryptsoft.com).
- * The implementation was written so as to conform with Netscapes SSL.
- *
- * This library is free for commercial and non-commercial use as long as
- * the following conditions are aheared to. The following conditions
- * apply to all code found in this distribution, be it the RC4, RSA,
- * lhash, DES, etc., code; not just the SSL code. The SSL documentation
- * included with this distribution is covered by the same copyright terms
- * except that the holder is Tim Hudson (tjh@cryptsoft.com).
- *
- * Copyright remains Eric Young's, and as such any Copyright notices in
- * the code are not to be removed.
- * If this package is used in a product, Eric Young should be given attribution
- * as the author of the parts of the library used.
- * This can be in the form of a textual message at program startup or
- * in documentation (online or textual) provided with the package.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * "This product includes cryptographic software written by
- * Eric Young (eay@cryptsoft.com)"
- * The word 'cryptographic' can be left out if the rouines from the library
- * being used are not cryptographic related :-).
- * 4. If you include any Windows specific code (or a derivative thereof) from
- * the apps directory (application code) you must include an acknowledgement:
- * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
- *
- * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * The licence and distribution terms for any publically available version or
- * derivative of this code cannot be changed. i.e. this code cannot simply be
- * copied and put under another distribution licence
- * [including the GNU Public Licence.]
- */
-
-
-ISC license used for completely new code in BoringSSL:
-
-/* Copyright (c) 2015, Google Inc.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
- * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-
-
-The code in third_party/fiat carries the MIT license:
-
-Copyright (c) 2015-2016 the fiat-crypto authors (see
-https://github.com/mit-plv/fiat-crypto/blob/master/AUTHORS).
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-
-Licenses for support code
--------------------------
-
-Parts of the TLS test suite are under the Go license. This code is not included
-in BoringSSL (i.e. libcrypto and libssl) when compiled, however, so
-distributing code linked against BoringSSL does not trigger this license:
-
-Copyright (c) 2009 The Go Authors. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-BoringSSL uses the Chromium test infrastructure to run a continuous build,
-trybots etc. The scripts which manage this, and the script for generating build
-metadata, are under the Chromium license. Distributing code linked against
-BoringSSL does not trigger this license.
-
-Copyright 2015 The Chromium Authors. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------------
-END LICENSE FOR external/boringssl/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/com_googlesource_code_re2/LICENSE
---------------------------------------------------------------------------------
-// Copyright (c) 2009 The RE2 Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------------
-END LICENSE FOR external/com_googlesource_code_re2/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/curl/COPYING
---------------------------------------------------------------------------------
-COPYRIGHT AND PERMISSION NOTICE
-
-Copyright (c) 1996 - 2018, Daniel Stenberg, , and many
-contributors, see the THANKS file.
-
-All rights reserved.
-
-Permission to use, copy, modify, and distribute this software for any purpose
-with or without fee is hereby granted, provided that the above copyright
-notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
-NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
-OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall not
-be used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization of the copyright holder.
---------------------------------------------------------------------------------
-END LICENSE FOR external/curl/COPYING
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/double_conversion/LICENSE
---------------------------------------------------------------------------------
-Copyright 2006-2011, the V8 project authors. All rights reserved.
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
- * Neither the name of Google Inc. nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------------
-END LICENSE FOR external/double_conversion/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/eigen_archive/COPYING.MPL2
---------------------------------------------------------------------------------
-Mozilla Public License Version 2.0
-==================================
-
-1. Definitions
---------------
-
-1.1. "Contributor"
- means each individual or legal entity that creates, contributes to
- the creation of, or owns Covered Software.
-
-1.2. "Contributor Version"
- means the combination of the Contributions of others (if any) used
- by a Contributor and that particular Contributor's Contribution.
-
-1.3. "Contribution"
- means Covered Software of a particular Contributor.
-
-1.4. "Covered Software"
- means Source Code Form to which the initial Contributor has attached
- the notice in Exhibit A, the Executable Form of such Source Code
- Form, and Modifications of such Source Code Form, in each case
- including portions thereof.
-
-1.5. "Incompatible With Secondary Licenses"
- means
-
- (a) that the initial Contributor has attached the notice described
- in Exhibit B to the Covered Software; or
-
- (b) that the Covered Software was made available under the terms of
- version 1.1 or earlier of the License, but not also under the
- terms of a Secondary License.
-
-1.6. "Executable Form"
- means any form of the work other than Source Code Form.
-
-1.7. "Larger Work"
- means a work that combines Covered Software with other material, in
- a separate file or files, that is not Covered Software.
-
-1.8. "License"
- means this document.
-
-1.9. "Licensable"
- means having the right to grant, to the maximum extent possible,
- whether at the time of the initial grant or subsequently, any and
- all of the rights conveyed by this License.
-
-1.10. "Modifications"
- means any of the following:
-
- (a) any file in Source Code Form that results from an addition to,
- deletion from, or modification of the contents of Covered
- Software; or
-
- (b) any new file in Source Code Form that contains any Covered
- Software.
-
-1.11. "Patent Claims" of a Contributor
- means any patent claim(s), including without limitation, method,
- process, and apparatus claims, in any patent Licensable by such
- Contributor that would be infringed, but for the grant of the
- License, by the making, using, selling, offering for sale, having
- made, import, or transfer of either its Contributions or its
- Contributor Version.
-
-1.12. "Secondary License"
- means either the GNU General Public License, Version 2.0, the GNU
- Lesser General Public License, Version 2.1, the GNU Affero General
- Public License, Version 3.0, or any later versions of those
- licenses.
-
-1.13. "Source Code Form"
- means the form of the work preferred for making modifications.
-
-1.14. "You" (or "Your")
- means an individual or a legal entity exercising rights under this
- License. For legal entities, "You" includes any entity that
- controls, is controlled by, or is under common control with You. For
- purposes of this definition, "control" means (a) the power, direct
- or indirect, to cause the direction or management of such entity,
- whether by contract or otherwise, or (b) ownership of more than
- fifty percent (50%) of the outstanding shares or beneficial
- ownership of such entity.
-
-2. License Grants and Conditions
---------------------------------
-
-2.1. Grants
-
-Each Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark)
- Licensable by such Contributor to use, reproduce, make available,
- modify, display, perform, distribute, and otherwise exploit its
- Contributions, either on an unmodified basis, with Modifications, or
- as part of a Larger Work; and
-
-(b) under Patent Claims of such Contributor to make, use, sell, offer
- for sale, have made, import, and otherwise transfer either its
- Contributions or its Contributor Version.
-
-2.2. Effective Date
-
-The licenses granted in Section 2.1 with respect to any Contribution
-become effective for each Contribution on the date the Contributor first
-distributes such Contribution.
-
-2.3. Limitations on Grant Scope
-
-The licenses granted in this Section 2 are the only rights granted under
-this License. No additional rights or licenses will be implied from the
-distribution or licensing of Covered Software under this License.
-Notwithstanding Section 2.1(b) above, no patent license is granted by a
-Contributor:
-
-(a) for any code that a Contributor has removed from Covered Software;
- or
-
-(b) for infringements caused by: (i) Your and any other third party's
- modifications of Covered Software, or (ii) the combination of its
- Contributions with other software (except as part of its Contributor
- Version); or
-
-(c) under Patent Claims infringed by Covered Software in the absence of
- its Contributions.
-
-This License does not grant any rights in the trademarks, service marks,
-or logos of any Contributor (except as may be necessary to comply with
-the notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
-No Contributor makes additional grants as a result of Your choice to
-distribute the Covered Software under a subsequent version of this
-License (see Section 10.2) or under the terms of a Secondary License (if
-permitted under the terms of Section 3.3).
-
-2.5. Representation
-
-Each Contributor represents that the Contributor believes its
-Contributions are its original creation(s) or it has sufficient rights
-to grant the rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
-This License is not intended to limit any rights You have under
-applicable copyright doctrines of fair use, fair dealing, or other
-equivalents.
-
-2.7. Conditions
-
-Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
-in Section 2.1.
-
-3. Responsibilities
--------------------
-
-3.1. Distribution of Source Form
-
-All distribution of Covered Software in Source Code Form, including any
-Modifications that You create or to which You contribute, must be under
-the terms of this License. You must inform recipients that the Source
-Code Form of the Covered Software is governed by the terms of this
-License, and how they can obtain a copy of this License. You may not
-attempt to alter or restrict the recipients' rights in the Source Code
-Form.
-
-3.2. Distribution of Executable Form
-
-If You distribute Covered Software in Executable Form then:
-
-(a) such Covered Software must also be made available in Source Code
- Form, as described in Section 3.1, and You must inform recipients of
- the Executable Form how they can obtain a copy of such Source Code
- Form by reasonable means in a timely manner, at a charge no more
- than the cost of distribution to the recipient; and
-
-(b) You may distribute such Executable Form under the terms of this
- License, or sublicense it under different terms, provided that the
- license for the Executable Form does not attempt to limit or alter
- the recipients' rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
-You may create and distribute a Larger Work under terms of Your choice,
-provided that You also comply with the requirements of this License for
-the Covered Software. If the Larger Work is a combination of Covered
-Software with a work governed by one or more Secondary Licenses, and the
-Covered Software is not Incompatible With Secondary Licenses, this
-License permits You to additionally distribute such Covered Software
-under the terms of such Secondary License(s), so that the recipient of
-the Larger Work may, at their option, further distribute the Covered
-Software under the terms of either this License or such Secondary
-License(s).
-
-3.4. Notices
-
-You may not remove or alter the substance of any license notices
-(including copyright notices, patent notices, disclaimers of warranty,
-or limitations of liability) contained within the Source Code Form of
-the Covered Software, except that You may alter any license notices to
-the extent required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
-You may choose to offer, and to charge a fee for, warranty, support,
-indemnity or liability obligations to one or more recipients of Covered
-Software. However, You may do so only on Your own behalf, and not on
-behalf of any Contributor. You must make it absolutely clear that any
-such warranty, support, indemnity, or liability obligation is offered by
-You alone, and You hereby agree to indemnify every Contributor for any
-liability incurred by such Contributor as a result of warranty, support,
-indemnity or liability terms You offer. You may include additional
-disclaimers of warranty and limitations of liability specific to any
-jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
----------------------------------------------------
-
-If it is impossible for You to comply with any of the terms of this
-License with respect to some or all of the Covered Software due to
-statute, judicial order, or regulation then You must: (a) comply with
-the terms of this License to the maximum extent possible; and (b)
-describe the limitations and the code they affect. Such description must
-be placed in a text file included with all distributions of the Covered
-Software under this License. Except to the extent prohibited by statute
-or regulation, such description must be sufficiently detailed for a
-recipient of ordinary skill to be able to understand it.
-
-5. Termination
---------------
-
-5.1. The rights granted under this License will terminate automatically
-if You fail to comply with any of its terms. However, if You become
-compliant, then the rights granted under this License from a particular
-Contributor are reinstated (a) provisionally, unless and until such
-Contributor explicitly and finally terminates Your grants, and (b) on an
-ongoing basis, if such Contributor fails to notify You of the
-non-compliance by some reasonable means prior to 60 days after You have
-come back into compliance. Moreover, Your grants from a particular
-Contributor are reinstated on an ongoing basis if such Contributor
-notifies You of the non-compliance by some reasonable means, this is the
-first time You have received notice of non-compliance with this License
-from such Contributor, and You become compliant prior to 30 days after
-Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
-infringement claim (excluding declaratory judgment actions,
-counter-claims, and cross-claims) alleging that a Contributor Version
-directly or indirectly infringes any patent, then the rights granted to
-You by any and all Contributors for the Covered Software under Section
-2.1 of this License shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all
-end user license agreements (excluding distributors and resellers) which
-have been validly granted by You or Your distributors under this License
-prior to termination shall survive termination.
-
-************************************************************************
-* *
-* 6. Disclaimer of Warranty *
-* ------------------------- *
-* *
-* Covered Software is provided under this License on an "as is" *
-* basis, without warranty of any kind, either expressed, implied, or *
-* statutory, including, without limitation, warranties that the *
-* Covered Software is free of defects, merchantable, fit for a *
-* particular purpose or non-infringing. The entire risk as to the *
-* quality and performance of the Covered Software is with You. *
-* Should any Covered Software prove defective in any respect, You *
-* (not any Contributor) assume the cost of any necessary servicing, *
-* repair, or correction. This disclaimer of warranty constitutes an *
-* essential part of this License. No use of any Covered Software is *
-* authorized under this License except under this disclaimer. *
-* *
-************************************************************************
-
-************************************************************************
-* *
-* 7. Limitation of Liability *
-* -------------------------- *
-* *
-* Under no circumstances and under no legal theory, whether tort *
-* (including negligence), contract, or otherwise, shall any *
-* Contributor, or anyone who distributes Covered Software as *
-* permitted above, be liable to You for any direct, indirect, *
-* special, incidental, or consequential damages of any character *
-* including, without limitation, damages for lost profits, loss of *
-* goodwill, work stoppage, computer failure or malfunction, or any *
-* and all other commercial damages or losses, even if such party *
-* shall have been informed of the possibility of such damages. This *
-* limitation of liability shall not apply to liability for death or *
-* personal injury resulting from such party's negligence to the *
-* extent applicable law prohibits such limitation. Some *
-* jurisdictions do not allow the exclusion or limitation of *
-* incidental or consequential damages, so this exclusion and *
-* limitation may not apply to You. *
-* *
-************************************************************************
-
-8. Litigation
--------------
-
-Any litigation relating to this License may be brought only in the
-courts of a jurisdiction where the defendant maintains its principal
-place of business and such litigation shall be governed by laws of that
-jurisdiction, without reference to its conflict-of-law provisions.
-Nothing in this Section shall prevent a party's ability to bring
-cross-claims or counter-claims.
-
-9. Miscellaneous
-----------------
-
-This License represents the complete agreement concerning the subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the extent
-necessary to make it enforceable. Any law or regulation which provides
-that the language of a contract shall be construed against the drafter
-shall not be used to construe this License against a Contributor.
-
-10. Versions of the License
----------------------------
-
-10.1. New Versions
-
-Mozilla Foundation is the license steward. Except as provided in Section
-10.3, no one other than the license steward has the right to modify or
-publish new versions of this License. Each version will be given a
-distinguishing version number.
-
-10.2. Effect of New Versions
-
-You may distribute the Covered Software under the terms of the version
-of the License under which You originally received the Covered Software,
-or under the terms of any subsequent version published by the license
-steward.
-
-10.3. Modified Versions
-
-If you create software not governed by this License, and you want to
-create a new license for such software, you may create and use a
-modified version of this License if you rename the license and remove
-any references to the name of the license steward (except to note that
-such modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary
-Licenses
-
-If You choose to distribute Source Code Form that is Incompatible With
-Secondary Licenses under the terms of this version of the License, the
-notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
--------------------------------------------
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular
-file, then You may include the notice in a location (such as a LICENSE
-file in a relevant directory) where a recipient would be likely to look
-for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
- This Source Code Form is "Incompatible With Secondary Licenses", as
- defined by the Mozilla Public License, v. 2.0.
---------------------------------------------------------------------------------
-END LICENSE FOR external/eigen_archive/COPYING.MPL2
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/farmhash_archive/COPYING
---------------------------------------------------------------------------------
-// Copyright (c) 2014 Google, Inc.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-// THE SOFTWARE.
---------------------------------------------------------------------------------
-END LICENSE FOR external/farmhash_archive/COPYING
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/fft2d/fft/readme.txt
---------------------------------------------------------------------------------
-General Purpose FFT (Fast Fourier/Cosine/Sine Transform) Package
-
-Description:
- A package to calculate Discrete Fourier/Cosine/Sine Transforms of
- 1-dimensional sequences of length 2^N.
-
-Files:
- fft4g.c : FFT Package in C - Fast Version I (radix 4,2)
- fft4g.f : FFT Package in Fortran - Fast Version I (radix 4,2)
- fft4g_h.c : FFT Package in C - Simple Version I (radix 4,2)
- fft8g.c : FFT Package in C - Fast Version II (radix 8,4,2)
- fft8g.f : FFT Package in Fortran - Fast Version II (radix 8,4,2)
- fft8g_h.c : FFT Package in C - Simple Version II (radix 8,4,2)
- fftsg.c : FFT Package in C - Fast Version III (Split-Radix)
- fftsg.f : FFT Package in Fortran - Fast Version III (Split-Radix)
- fftsg_h.c : FFT Package in C - Simple Version III (Split-Radix)
- readme.txt : Readme File
- sample1/ : Test Directory
- Makefile : for gcc, cc
- Makefile.f77: for Fortran
- testxg.c : Test Program for "fft*g.c"
- testxg.f : Test Program for "fft*g.f"
- testxg_h.c : Test Program for "fft*g_h.c"
- sample2/ : Benchmark Directory
- Makefile : for gcc, cc
- Makefile.pth: POSIX Thread version
- pi_fft.c : PI(= 3.1415926535897932384626...) Calculation Program
- for a Benchmark Test for "fft*g.c"
-
-Difference of the Files:
- C and Fortran versions are equal and
- the same routines are in each version.
- "fft4g*.*" are optimized for most machines.
- "fft8g*.*" are fast on the UltraSPARC.
- "fftsg*.*" are optimized for the machines that
- have the multi-level (L1,L2,etc) cache.
- The simple versions "fft*g_h.c" use no work area, but
- the fast versions "fft*g.*" use work areas.
- The fast versions "fft*g.*" have the same specification.
-
-Routines in the Package:
- cdft: Complex Discrete Fourier Transform
- rdft: Real Discrete Fourier Transform
- ddct: Discrete Cosine Transform
- ddst: Discrete Sine Transform
- dfct: Cosine Transform of RDFT (Real Symmetric DFT)
- dfst: Sine Transform of RDFT (Real Anti-symmetric DFT)
-
-Usage:
- Please refer to the comments in the "fft**.*" file which
- you want to use. Brief explanations are in the block
- comments of each package. The examples are also given in
- the test programs.
-
-Method:
- -------- cdft --------
- fft4g*.*, fft8g*.*:
- A method of in-place, radix 2^M, Sande-Tukey (decimation in
- frequency). Index of the butterfly loop is in bit
- reverse order to keep continuous memory access.
- fftsg*.*:
- A method of in-place, Split-Radix, recursive fast
- algorithm.
- -------- rdft --------
- A method with a following butterfly operation appended to "cdft".
- In forward transform :
- A[k] = sum_j=0^n-1 a[j]*W(n)^(j*k), 0<=k<=n/2,
- W(n) = exp(2*pi*i/n),
- this routine makes an array x[] :
- x[j] = a[2*j] + i*a[2*j+1], 0<=j \. All Rights Reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-- Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-- Neither the name of the libjpeg-turbo Project nor the names of its
- contributors may be used to endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS",
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-
-The zlib License
-================
-
-Copyright (C) \, \.
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
-
-
-Why Three Licenses?
-===================
-
-The zlib License could have been used instead of the Modified (3-clause) BSD
-License, and since the IJG License effectively subsumes the distribution
-conditions of the zlib License, this would have effectively placed
-libjpeg-turbo binary distributions under the IJG License. However, the IJG
-License specifically refers to the Independent JPEG Group and does not extend
-attribution and endorsement protections to other entities. Thus, it was
-desirable to choose a license that granted us the same protections for new code
-that were granted to the IJG for code derived from their software.
---------------------------------------------------------------------------------
-END LICENSE FOR external/jpeg/LICENSE.md
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/llvm/LICENSE.TXT
---------------------------------------------------------------------------------
-==============================================================================
-LLVM Release License
-==============================================================================
-University of Illinois/NCSA
-Open Source License
-
-Copyright (c) 2003-2018 University of Illinois at Urbana-Champaign.
-All rights reserved.
-
-Developed by:
-
- LLVM Team
-
- University of Illinois at Urbana-Champaign
-
- http://llvm.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimers.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimers in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the names of the LLVM Team, University of Illinois at
- Urbana-Champaign, nor the names of its contributors may be used to
- endorse or promote products derived from this Software without specific
- prior written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
-SOFTWARE.
-
-==============================================================================
-Copyrights and Licenses for Third Party Software Distributed with LLVM:
-==============================================================================
-The LLVM software contains code written by third parties. Such software will
-have its own individual LICENSE.TXT file in the directory in which it appears.
-This file will describe the copyrights, license, and restrictions which apply
-to that code.
-
-The disclaimer of warranty in the University of Illinois Open Source License
-applies to all code in the LLVM Distribution, and nothing in any of the
-other licenses gives permission to use the names of the LLVM Team or the
-University of Illinois to endorse or promote products derived from this
-Software.
-
-The following pieces of software have additional or alternate copyrights,
-licenses, and/or restrictions:
-
-Program Directory
-------- ---------
-Google Test llvm/utils/unittest/googletest
-OpenBSD regex llvm/lib/Support/{reg*, COPYRIGHT.regex}
-pyyaml tests llvm/test/YAMLParser/{*.data, LICENSE.TXT}
-ARM contributions llvm/lib/Target/ARM/LICENSE.TXT
-md5 contributions llvm/lib/Support/MD5.cpp llvm/include/llvm/Support/MD5.h
---------------------------------------------------------------------------------
-END LICENSE FOR external/llvm/LICENSE.TXT
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/lmdb/LICENSE
---------------------------------------------------------------------------------
-The OpenLDAP Public License
- Version 2.8, 17 August 2003
-
-Redistribution and use of this software and associated documentation
-("Software"), with or without modification, are permitted provided
-that the following conditions are met:
-
-1. Redistributions in source form must retain copyright statements
- and notices,
-
-2. Redistributions in binary form must reproduce applicable copyright
- statements and notices, this list of conditions, and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution, and
-
-3. Redistributions must contain a verbatim copy of this document.
-
-The OpenLDAP Foundation may revise this license from time to time.
-Each revision is distinguished by a version number. You may use
-this Software under terms of this license revision or under the
-terms of any subsequent revision of the license.
-
-THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS
-CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
-SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S)
-OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-The names of the authors and copyright holders must not be used in
-advertising or otherwise to promote the sale, use or other dealing
-in this Software without specific, written prior permission. Title
-to copyright in this Software shall at all times remain with copyright
-holders.
-
-OpenLDAP is a registered trademark of the OpenLDAP Foundation.
-
-Copyright 1999-2003 The OpenLDAP Foundation, Redwood City,
-California, USA. All Rights Reserved. Permission to copy and
-distribute verbatim copies of this document is granted.
---------------------------------------------------------------------------------
-END LICENSE FOR external/lmdb/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/local_config_sycl/sycl/LICENSE.text
---------------------------------------------------------------------------------
-
----------------------------------------------------------------------
-
-SOFTWARE LICENSE AGREEMENT
-
----------------------------------------------------------------------
----------------------------------------------------------------------
-
-By downloading, installing, copying, or otherwise using the
-ComputeCpp Community Edition software, including any associated
-components, media, printed materials, and electronic documentation
-("Software"), the user agrees to the following terms and conditions
-of this Software License Agreement ("Agreement"). Please read the
-terms of this Agreement carefully before beginning your download, as
-pressing the "I AGREE" button at the end of this Agreement will
-confirm your assent. If you do not agree to these terms, then
-Codeplay Software Limited is unwilling to license the Software to
-you; so please press the "CANCEL" button to cancel your download.
-
- 1. License. Codeplay Software Ltd., a company incorporated in
- England and Wales with registered number 04567874 and having its
- registered office at Regent House, 316 Beulah Hill, London,
- United Kingdom, SE19 3HF ("Codeplay") hereby grants the user,
- free of charge, a non-exclusive worldwide license to use and
- replicate (but not modify) the Software for any use, whether
- commercial or non-commercial, in accordance with this Agreement.
- Codeplay reserves all rights to the Software that are not
- expressly granted by this Agreement.
- 2. Redistribution. The user may copy and redistribute unmodified
- copies of only those components of the Software which are
- specified below ("Redistributable Components"), in object code
- form, as part of the user’s software applications or libraries
- ("Applications"). The user acknowledges and agrees that it has no
- right to modify the Redistributable Components in any way. Any
- use of the Redistributable Components within the user’s
- Applications will continue to be subject to the terms and
- conditions of this Agreement, and the user must also distribute a
- copy of this Agreement and reproduce and include all notices of
- copyrights or other proprietary rights in the Software. The
- user’s redistribution of the Redistributable Components will not
- entitle it to any payment from Codeplay. The user may not
- transfer any of its rights or obligations under this Agreement.
-
-+-------------------------------------------+
-|Redistributable Component|File Name |
-|-------------------------+-----------------|
-|Runtime (for Linux) |libComputeCpp.so |
-|-------------------------+-----------------|
-|Runtime (for Windows) |libComputeCpp.dll|
-+-------------------------------------------+
-
- 3. Restrictions. The user shall not:
-
- a. circumvent or bypass any technological protection measures in
- or relating to the Software;
- b. use the Software to perform any unauthorized transfer of
- information or for any illegal purpose;
- c. de-compile, decrypt, disassemble, hack, emulate, exploit or
- reverse-engineer the Software (other than to the limited
- extent permitted by law);
- d. copy or redistribute any components of the Software that are
- not listed in the table of Redistributable Components;
- e. publish, rent, lease, sell, export, import, or lend the
- Software;
- f. represent in any way that it is selling the Software itself
- or any license to use the Software, nor refer to Codeplay or
- ComputeCpp within its marketing materials, without the
- express prior written permission of Codeplay.
- 4. Support. Codeplay does not provide any guarantees of support for
- the Software to the user. Codeplay will use reasonable endeavors
- to respond to users' support requests, for the most recent
- release only, via the community support website at https://
- computecpp.codeplay.com.
- 5. Intellectual Property. The Software is owned by Codeplay or its
- licensors, and is protected by the copyright laws of the United
- Kingdom and other countries and international treaty provisions.
- Codeplay (and/or its licensors, as the case may be) retains all
- copyrights, trade secrets and other proprietary rights in the
- Software, including the rights to make and license the use of all
- copies. To the extent that any patents owned by Codeplay or its
- licensors relate to any component of the Software, the license
- granted to the user in accordance with this Agreement allows for
- the lawful use of such patents but only for the purposes of this
- Agreement and not further or otherwise. Therefore, the user may
- make no copies of the Software, or the written materials that
- accompany the Software, or reproduce it in any way, except as set
- forth above.
- 6. Terms. This Agreement is effective until terminated. Codeplay or
- the user may terminate it immediately at any time. Any violation
- of the terms of this Agreement by the user will result in
- immediate termination by Codeplay. Upon termination, the user
- must return or destroy the Software and accompanying materials
- and notify Codeplay of its actions by email to info@codeplay.com.
- 7. NO WARRANTIES. Codeplay expressly disclaims any warranty for the
- Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
- ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
- AND NON-INFRINGEMENT. IN NO EVENT SHALL CODEPLAY BE LIABLE FOR
- ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- CONTRACT, DELICT OR TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE. In particular, Codeplay provides no guarantees of
- application performance on the target hardware.
- 8. General. The invalidity of any portion or provision of this
- Agreement shall not affect any other portions or provisions. This
- Agreement shall be governed by the laws of Scotland. This
- Agreement is the complete and exclusive agreement between the
- user and Codeplay regarding the Software, and it supersedes any
- prior agreement, oral or written, and any other communication
- between the user and Codeplay relating to the subject matter of
- the Agreement. Any amendment or modification of this Agreement
- must be in writing and signed by both parties. If the user does
- not agree to the terms of this Agreement, the user must not
- install or use the Software.
- 9. Third Party Licenses. The following licenses are for third-party
- components included in the software.
-
- a. License for Clang/LLVM compiler technology components:
-
-==============================================================================
-
-LLVM Release License
-
-==============================================================================
-
-University of Illinois/NCSA
-
-Open Source License
-
-Copyright (c) 2007-2014 University of Illinois at Urbana-Champaign.
-
-All rights reserved.
-
-Developed by:
-
- LLVM Team
-
- University of Illinois at Urbana-Champaign
-
- http://llvm.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimers.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimers in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the names of the LLVM Team, University of Illinois at
- Urbana-Champaign, nor the names of its contributors may be used to
- endorse or promote products derived from this Software without specific
- prior written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
-SOFTWARE.
-
-==============================================================================
-
- b. License for OpenBSD regex components:
-
-$OpenBSD: COPYRIGHT,v 1.3 2003/06/02 20:18:36 millert Exp $
-Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved.
-This software is not subject to any license of the American Telephone
-and Telegraph Company or of the Regents of the University of California.
-Permission is granted to anyone to use this software for any purpose on
-any computer system, and to alter it and redistribute it, subject
-to the following restrictions:
-
-1. The author is not responsible for the consequences of use of this
- software, no matter how awful, even if they arise from flaws in it.
-
-2. The origin of this software must not be misrepresented, either by
- explicit claim or by omission. Since few users ever read sources,
- credits must appear in the documentation.
-
-3. Altered versions must be plainly marked as such, and must not be
- misrepresented as being the original software. Since few users
- ever read sources, credits must appear in the documentation.
-
-4. This notice may not be removed or altered.
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-/*-
- * Copyright (c) 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)COPYRIGHT8.1 (Berkeley) 3/16/94
- */
-
- c. License for MD5 components:
-
-/*
- * This code is derived from (original license follows):
- *
- * This is an OpenSSL-compatible implementation of the RSA Data Security, Inc.
- * MD5 Message-Digest Algorithm (RFC 1321).
- *
- * Homepage:
- * http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
- *
- * Author:
- * Alexander Peslyak, better known as Solar Designer
- *
- * This software was written by Alexander Peslyak in 2001. No copyright is
- * claimed, and the software is hereby placed in the public domain.
- * In case this attempt to disclaim copyright and place the software in the
- * public domain is deemed null and void, then the software is
- * Copyright (c) 2001 Alexander Peslyak and it is hereby released to the
- * general public under the following terms:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted.
- *
- * There's ABSOLUTELY NO WARRANTY, express or implied.
- *
- * (This is a heavily cut-down "BSD license".)
- *
- * This differs from Colin Plumb's older public domain implementation in that
- * no exactly 32-bit integer data type is required (any 32-bit or wider
- * unsigned integer data type will do), there's no compile-time endianness
- * configuration, and the function prototypes match OpenSSL's. No code from
- * Colin Plumb's implementation has been reused; this comment merely compares
- * the properties of the two independent implementations.
- *
- * The primary goals of this implementation are portability and ease of use.
- * It is meant to be fast, but not as fast as possible. Some known
- * optimizations are not included to reduce source code size and avoid
- * compile-time configuration.
- */
-
-
---------------------------------------------------------------------------------
-END LICENSE FOR external/local_config_sycl/sycl/LICENSE.text
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/nasm/LICENSE
---------------------------------------------------------------------------------
-NASM is now licensed under the 2-clause BSD license, also known as the
-simplified BSD license.
-
- Copyright 1996-2010 the NASM Authors - All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following
- conditions are met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------------
-END LICENSE FOR external/nasm/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/nsync/LICENSE
---------------------------------------------------------------------------------
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
---------------------------------------------------------------------------------
-END LICENSE FOR external/nsync/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/png_archive/LICENSE
---------------------------------------------------------------------------------
-
-This copy of the libpng notices is provided for your convenience. In case of
-any discrepancy between this copy and the notices in the file png.h that is
-included in the libpng distribution, the latter shall prevail.
-
-COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
-
-If you modify libpng you may insert additional notices immediately following
-this sentence.
-
-This code is released under the libpng license.
-
-libpng versions 1.0.7, July 1, 2000 through 1.6.34, September 29, 2017 are
-Copyright (c) 2000-2002, 2004, 2006-2017 Glenn Randers-Pehrson, are
-derived from libpng-1.0.6, and are distributed according to the same
-disclaimer and license as libpng-1.0.6 with the following individuals
-added to the list of Contributing Authors:
-
- Simon-Pierre Cadieux
- Eric S. Raymond
- Mans Rullgard
- Cosmin Truta
- Gilles Vollant
- James Yu
- Mandar Sahastrabuddhe
- Google Inc.
- Vadim Barkov
-
-and with the following additions to the disclaimer:
-
- There is no warranty against interference with your enjoyment of the
- library or against infringement. There is no warranty that our
- efforts or the library will fulfill any of your particular purposes
- or needs. This library is provided with all faults, and the entire
- risk of satisfactory quality, performance, accuracy, and effort is with
- the user.
-
-Some files in the "contrib" directory and some configure-generated
-files that are distributed with libpng have other copyright owners and
-are released under other open source licenses.
-
-libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are
-Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from
-libpng-0.96, and are distributed according to the same disclaimer and
-license as libpng-0.96, with the following individuals added to the list
-of Contributing Authors:
-
- Tom Lane
- Glenn Randers-Pehrson
- Willem van Schaik
-
-libpng versions 0.89, June 1996, through 0.96, May 1997, are
-Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88,
-and are distributed according to the same disclaimer and license as
-libpng-0.88, with the following individuals added to the list of
-Contributing Authors:
-
- John Bowler
- Kevin Bracey
- Sam Bushell
- Magnus Holmgren
- Greg Roelofs
- Tom Tanner
-
-Some files in the "scripts" directory have other copyright owners
-but are released under this license.
-
-libpng versions 0.5, May 1995, through 0.88, January 1996, are
-Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
-
-For the purposes of this copyright and license, "Contributing Authors"
-is defined as the following set of individuals:
-
- Andreas Dilger
- Dave Martindale
- Guy Eric Schalnat
- Paul Schmidt
- Tim Wegner
-
-The PNG Reference Library is supplied "AS IS". The Contributing Authors
-and Group 42, Inc. disclaim all warranties, expressed or implied,
-including, without limitation, the warranties of merchantability and of
-fitness for any purpose. The Contributing Authors and Group 42, Inc.
-assume no liability for direct, indirect, incidental, special, exemplary,
-or consequential damages, which may result from the use of the PNG
-Reference Library, even if advised of the possibility of such damage.
-
-Permission is hereby granted to use, copy, modify, and distribute this
-source code, or portions hereof, for any purpose, without fee, subject
-to the following restrictions:
-
- 1. The origin of this source code must not be misrepresented.
-
- 2. Altered versions must be plainly marked as such and must not
- be misrepresented as being the original source.
-
- 3. This Copyright notice may not be removed or altered from any
- source or altered source distribution.
-
-The Contributing Authors and Group 42, Inc. specifically permit, without
-fee, and encourage the use of this source code as a component to
-supporting the PNG file format in commercial products. If you use this
-source code in a product, acknowledgment is not required but would be
-appreciated.
-
-END OF COPYRIGHT NOTICE, DISCLAIMER, and LICENSE.
-
-TRADEMARK:
-
-The name "libpng" has not been registered by the Copyright owner
-as a trademark in any jurisdiction. However, because libpng has
-been distributed and maintained world-wide, continually since 1995,
-the Copyright owner claims "common-law trademark protection" in any
-jurisdiction where common-law trademark is recognized.
-
-OSI CERTIFICATION:
-
-Libpng is OSI Certified Open Source Software. OSI Certified Open Source is
-a certification mark of the Open Source Initiative. OSI has not addressed
-the additional disclaimers inserted at version 1.0.7.
-
-EXPORT CONTROL:
-
-The Copyright owner believes that the Export Control Classification
-Number (ECCN) for libpng is EAR99, which means not subject to export
-controls or International Traffic in Arms Regulations (ITAR) because
-it is open source, publicly available software, that does not contain
-any encryption software. See the EAR, paragraphs 734.3(b)(3) and
-734.7(b).
-
-Glenn Randers-Pehrson
-glennrp at users.sourceforge.net
-September 29, 2017
---------------------------------------------------------------------------------
-END LICENSE FOR external/png_archive/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/protobuf_archive/LICENSE
---------------------------------------------------------------------------------
-Copyright 2008 Google Inc. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Code generated by the Protocol Buffer compiler is owned by the owner
-of the input file used when generating it. This code is not
-standalone and requires a support library to be linked with it. This
-support library is itself covered by the above license.
---------------------------------------------------------------------------------
-END LICENSE FOR external/protobuf_archive/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/snappy/COPYING
---------------------------------------------------------------------------------
-Copyright 2011, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
- * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-===
-
-Some of the benchmark data in testdata/ is licensed differently:
-
- - fireworks.jpeg is Copyright 2013 Steinar H. Gunderson, and
- is licensed under the Creative Commons Attribution 3.0 license
- (CC-BY-3.0). See https://creativecommons.org/licenses/by/3.0/
- for more information.
-
- - kppkn.gtb is taken from the Gaviota chess tablebase set, and
- is licensed under the MIT License. See
- https://sites.google.com/site/gaviotachessengine/Home/endgame-tablebases-1
- for more information.
-
- - paper-100k.pdf is an excerpt (bytes 92160 to 194560) from the paper
- “Combinatorial Modeling of Chromatin Features Quantitatively Predicts DNA
- Replication Timing in _Drosophila_” by Federico Comoglio and Renato Paro,
- which is licensed under the CC-BY license. See
- http://www.ploscompbiol.org/static/license for more ifnormation.
-
- - alice29.txt, asyoulik.txt, plrabn12.txt and lcet10.txt are from Project
- Gutenberg. The first three have expired copyrights and are in the public
- domain; the latter does not have expired copyright, but is still in the
- public domain according to the license information
- (http://www.gutenberg.org/ebooks/53).
---------------------------------------------------------------------------------
-END LICENSE FOR external/snappy/COPYING
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/zlib_archive/zlib.h
---------------------------------------------------------------------------------
-/* zlib.h -- interface of the 'zlib' general purpose compression library
- version 1.2.11, January 15th, 2017
-
- Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly Mark Adler
- jloup@gzip.org madler@alumni.caltech.edu
-
-
- The data format used by the zlib library is described by RFCs (Request for
- Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950
- (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format).
-*/
-
-#ifndef ZLIB_H
-#define ZLIB_H
-
-#include "zconf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ZLIB_VERSION "1.2.11"
-#define ZLIB_VERNUM 0x12b0
-#define ZLIB_VER_MAJOR 1
-#define ZLIB_VER_MINOR 2
-#define ZLIB_VER_REVISION 11
-#define ZLIB_VER_SUBREVISION 0
-
-/*
- The 'zlib' compression library provides in-memory compression and
- decompression functions, including integrity checks of the uncompressed data.
- This version of the library supports only one compression method (deflation)
- but other algorithms will be added later and will have the same stream
- interface.
-
- Compression can be done in a single step if the buffers are large enough,
- or can be done by repeated calls of the compression function. In the latter
- case, the application must provide more input and/or consume the output
- (providing more output space) before each call.
-
- The compressed data format used by default by the in-memory functions is
- the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped
- around a deflate stream, which is itself documented in RFC 1951.
-
- The library also supports reading and writing files in gzip (.gz) format
- with an interface similar to that of stdio using the functions that start
- with "gz". The gzip format is different from the zlib format. gzip is a
- gzip wrapper, documented in RFC 1952, wrapped around a deflate stream.
-
- This library can optionally read and write gzip and raw deflate streams in
- memory as well.
-
- The zlib format was designed to be compact and fast for use in memory
- and on communications channels. The gzip format was designed for single-
- file compression on file systems, has a larger header than zlib to maintain
- directory information, and uses a different, slower check method than zlib.
-
- The library does not install any signal handler. The decoder checks
- the consistency of the compressed data, so the library should never crash
- even in the case of corrupted input.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void (*free_func) OF((voidpf opaque, voidpf address));
-
-struct internal_state;
-
-typedef struct z_stream_s {
- z_const Bytef *next_in; /* next input byte */
- uInt avail_in; /* number of bytes available at next_in */
- uLong total_in; /* total number of input bytes read so far */
-
- Bytef *next_out; /* next output byte will go here */
- uInt avail_out; /* remaining free space at next_out */
- uLong total_out; /* total number of bytes output so far */
-
- z_const char *msg; /* last error message, NULL if no error */
- struct internal_state FAR *state; /* not visible by applications */
-
- alloc_func zalloc; /* used to allocate the internal state */
- free_func zfree; /* used to free the internal state */
- voidpf opaque; /* private data object passed to zalloc and zfree */
-
- int data_type; /* best guess about the data type: binary or text
- for deflate, or the decoding state for inflate */
- uLong adler; /* Adler-32 or CRC-32 value of the uncompressed data */
- uLong reserved; /* reserved for future use */
-} z_stream;
-
-typedef z_stream FAR *z_streamp;
-
-/*
- gzip header information passed to and from zlib routines. See RFC 1952
- for more details on the meanings of these fields.
-*/
-typedef struct gz_header_s {
- int text; /* true if compressed data believed to be text */
- uLong time; /* modification time */
- int xflags; /* extra flags (not used when writing a gzip file) */
- int os; /* operating system */
- Bytef *extra; /* pointer to extra field or Z_NULL if none */
- uInt extra_len; /* extra field length (valid if extra != Z_NULL) */
- uInt extra_max; /* space at extra (only when reading header) */
- Bytef *name; /* pointer to zero-terminated file name or Z_NULL */
- uInt name_max; /* space at name (only when reading header) */
- Bytef *comment; /* pointer to zero-terminated comment or Z_NULL */
- uInt comm_max; /* space at comment (only when reading header) */
- int hcrc; /* true if there was or will be a header crc */
- int done; /* true when done reading gzip header (not used
- when writing a gzip file) */
-} gz_header;
-
-typedef gz_header FAR *gz_headerp;
-
-/*
- The application must update next_in and avail_in when avail_in has dropped
- to zero. It must update next_out and avail_out when avail_out has dropped
- to zero. The application must initialize zalloc, zfree and opaque before
- calling the init function. All other fields are set by the compression
- library and must not be updated by the application.
-
- The opaque value provided by the application will be passed as the first
- parameter for calls of zalloc and zfree. This can be useful for custom
- memory management. The compression library attaches no meaning to the
- opaque value.
-
- zalloc must return Z_NULL if there is not enough memory for the object.
- If zlib is used in a multi-threaded application, zalloc and zfree must be
- thread safe. In that case, zlib is thread-safe. When zalloc and zfree are
- Z_NULL on entry to the initialization function, they are set to internal
- routines that use the standard library functions malloc() and free().
-
- On 16-bit systems, the functions zalloc and zfree must be able to allocate
- exactly 65536 bytes, but will not be required to allocate more than this if
- the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, pointers
- returned by zalloc for objects of exactly 65536 bytes *must* have their
- offset normalized to zero. The default allocation function provided by this
- library ensures this (see zutil.c). To reduce memory requirements and avoid
- any allocation of 64K objects, at the expense of compression ratio, compile
- the library with -DMAX_WBITS=14 (see zconf.h).
-
- The fields total_in and total_out can be used for statistics or progress
- reports. After compression, total_in holds the total size of the
- uncompressed data and may be saved for use by the decompressor (particularly
- if the decompressor wants to decompress everything in a single step).
-*/
-
- /* constants */
-
-#define Z_NO_FLUSH 0
-#define Z_PARTIAL_FLUSH 1
-#define Z_SYNC_FLUSH 2
-#define Z_FULL_FLUSH 3
-#define Z_FINISH 4
-#define Z_BLOCK 5
-#define Z_TREES 6
-/* Allowed flush values; see deflate() and inflate() below for details */
-
-#define Z_OK 0
-#define Z_STREAM_END 1
-#define Z_NEED_DICT 2
-#define Z_ERRNO (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR (-3)
-#define Z_MEM_ERROR (-4)
-#define Z_BUF_ERROR (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative values
- * are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION 0
-#define Z_BEST_SPEED 1
-#define Z_BEST_COMPRESSION 9
-#define Z_DEFAULT_COMPRESSION (-1)
-/* compression levels */
-
-#define Z_FILTERED 1
-#define Z_HUFFMAN_ONLY 2
-#define Z_RLE 3
-#define Z_FIXED 4
-#define Z_DEFAULT_STRATEGY 0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY 0
-#define Z_TEXT 1
-#define Z_ASCII Z_TEXT /* for compatibility with 1.2.2 and earlier */
-#define Z_UNKNOWN 2
-/* Possible values of the data_type field for deflate() */
-
-#define Z_DEFLATED 8
-/* The deflate compression method (the only one supported in this version) */
-
-#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */
-
-#define zlib_version zlibVersion()
-/* for compatibility with versions < 1.0.2 */
-
-
- /* basic functions */
-
-ZEXTERN const char * ZEXPORT zlibVersion OF((void));
-/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
- If the first character differs, the library code actually used is not
- compatible with the zlib.h header file used by the application. This check
- is automatically made by deflateInit and inflateInit.
- */
-
-/*
-ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level));
-
- Initializes the internal stream state for compression. The fields
- zalloc, zfree and opaque must be initialized before by the caller. If
- zalloc and zfree are set to Z_NULL, deflateInit updates them to use default
- allocation functions.
-
- The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
- 1 gives best speed, 9 gives best compression, 0 gives no compression at all
- (the input data is simply copied a block at a time). Z_DEFAULT_COMPRESSION
- requests a default compromise between speed and compression (currently
- equivalent to level 6).
-
- deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_STREAM_ERROR if level is not a valid compression level, or
- Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
- with the version assumed by the caller (ZLIB_VERSION). msg is set to null
- if there is no error message. deflateInit does not perform any compression:
- this will be done by deflate().
-*/
-
-
-ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
-/*
- deflate compresses as much data as possible, and stops when the input
- buffer becomes empty or the output buffer becomes full. It may introduce
- some output latency (reading input without producing any output) except when
- forced to flush.
-
- The detailed semantics are as follows. deflate performs one or both of the
- following actions:
-
- - Compress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), next_in and avail_in are updated and
- processing will resume at this point for the next call of deflate().
-
- - Generate more output starting at next_out and update next_out and avail_out
- accordingly. This action is forced if the parameter flush is non zero.
- Forcing flush frequently degrades the compression ratio, so this parameter
- should be set only when necessary. Some output may be provided even if
- flush is zero.
-
- Before the call of deflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming more
- output, and updating avail_in or avail_out accordingly; avail_out should
- never be zero before the call. The application can consume the compressed
- output when it wants, for example when the output buffer is full (avail_out
- == 0), or after each call of deflate(). If deflate returns Z_OK and with
- zero avail_out, it must be called again after making room in the output
- buffer because there might be more output pending. See deflatePending(),
- which can be used if desired to determine whether or not there is more ouput
- in that case.
-
- Normally the parameter flush is set to Z_NO_FLUSH, which allows deflate to
- decide how much data to accumulate before producing output, in order to
- maximize compression.
-
- If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
- flushed to the output buffer and the output is aligned on a byte boundary, so
- that the decompressor can get all input data available so far. (In
- particular avail_in is zero after the call if enough output space has been
- provided before the call.) Flushing may degrade compression for some
- compression algorithms and so it should be used only when necessary. This
- completes the current deflate block and follows it with an empty stored block
- that is three bits plus filler bits to the next byte, followed by four bytes
- (00 00 ff ff).
-
- If flush is set to Z_PARTIAL_FLUSH, all pending output is flushed to the
- output buffer, but the output is not aligned to a byte boundary. All of the
- input data so far will be available to the decompressor, as for Z_SYNC_FLUSH.
- This completes the current deflate block and follows it with an empty fixed
- codes block that is 10 bits long. This assures that enough bytes are output
- in order for the decompressor to finish the block before the empty fixed
- codes block.
-
- If flush is set to Z_BLOCK, a deflate block is completed and emitted, as
- for Z_SYNC_FLUSH, but the output is not aligned on a byte boundary, and up to
- seven bits of the current block are held to be written as the next byte after
- the next deflate block is completed. In this case, the decompressor may not
- be provided enough bits at this point in order to complete decompression of
- the data provided so far to the compressor. It may need to wait for the next
- block to be emitted. This is for advanced applications that need to control
- the emission of deflate blocks.
-
- If flush is set to Z_FULL_FLUSH, all output is flushed as with
- Z_SYNC_FLUSH, and the compression state is reset so that decompression can
- restart from this point if previous compressed data has been damaged or if
- random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
- compression.
-
- If deflate returns with avail_out == 0, this function must be called again
- with the same value of the flush parameter and more output space (updated
- avail_out), until the flush is complete (deflate returns with non-zero
- avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that
- avail_out is greater than six to avoid repeated flush markers due to
- avail_out == 0 on return.
-
- If the parameter flush is set to Z_FINISH, pending input is processed,
- pending output is flushed and deflate returns with Z_STREAM_END if there was
- enough output space. If deflate returns with Z_OK or Z_BUF_ERROR, this
- function must be called again with Z_FINISH and more output space (updated
- avail_out) but no more input data, until it returns with Z_STREAM_END or an
- error. After deflate has returned Z_STREAM_END, the only possible operations
- on the stream are deflateReset or deflateEnd.
-
- Z_FINISH can be used in the first deflate call after deflateInit if all the
- compression is to be done in a single step. In order to complete in one
- call, avail_out must be at least the value returned by deflateBound (see
- below). Then deflate is guaranteed to return Z_STREAM_END. If not enough
- output space is provided, deflate will not return Z_STREAM_END, and it must
- be called again as described above.
-
- deflate() sets strm->adler to the Adler-32 checksum of all input read
- so far (that is, total_in bytes). If a gzip stream is being generated, then
- strm->adler will be the CRC-32 checksum of the input read so far. (See
- deflateInit2 below.)
-
- deflate() may update strm->data_type if it can make a good guess about
- the input data type (Z_BINARY or Z_TEXT). If in doubt, the data is
- considered binary. This field is only for information purposes and does not
- affect the compression algorithm in any manner.
-
- deflate() returns Z_OK if some progress has been made (more input
- processed or more output produced), Z_STREAM_END if all input has been
- consumed and all output has been produced (only when flush is set to
- Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
- if next_in or next_out was Z_NULL or the state was inadvertently written over
- by the application), or Z_BUF_ERROR if no progress is possible (for example
- avail_in or avail_out was zero). Note that Z_BUF_ERROR is not fatal, and
- deflate() can be called again with more input and more output space to
- continue compressing.
-*/
-
-
-ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any pending
- output.
-
- deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
- stream state was inconsistent, Z_DATA_ERROR if the stream was freed
- prematurely (some input or output was discarded). In the error case, msg
- may be set but then points to a static string (which must not be
- deallocated).
-*/
-
-
-/*
-ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm));
-
- Initializes the internal stream state for decompression. The fields
- next_in, avail_in, zalloc, zfree and opaque must be initialized before by
- the caller. In the current version of inflate, the provided input is not
- read or consumed. The allocation of a sliding window will be deferred to
- the first call of inflate (if the decompression does not complete on the
- first call). If zalloc and zfree are set to Z_NULL, inflateInit updates
- them to use default allocation functions.
-
- inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
- version assumed by the caller, or Z_STREAM_ERROR if the parameters are
- invalid, such as a null pointer to the structure. msg is set to null if
- there is no error message. inflateInit does not perform any decompression.
- Actual decompression will be done by inflate(). So next_in, and avail_in,
- next_out, and avail_out are unused and unchanged. The current
- implementation of inflateInit() does not process any header information --
- that is deferred until inflate() is called.
-*/
-
-
-ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
-/*
- inflate decompresses as much data as possible, and stops when the input
- buffer becomes empty or the output buffer becomes full. It may introduce
- some output latency (reading input without producing any output) except when
- forced to flush.
-
- The detailed semantics are as follows. inflate performs one or both of the
- following actions:
-
- - Decompress more input starting at next_in and update next_in and avail_in
- accordingly. If not all input can be processed (because there is not
- enough room in the output buffer), then next_in and avail_in are updated
- accordingly, and processing will resume at this point for the next call of
- inflate().
-
- - Generate more output starting at next_out and update next_out and avail_out
- accordingly. inflate() provides as much output as possible, until there is
- no more input data or no more space in the output buffer (see below about
- the flush parameter).
-
- Before the call of inflate(), the application should ensure that at least
- one of the actions is possible, by providing more input and/or consuming more
- output, and updating the next_* and avail_* values accordingly. If the
- caller of inflate() does not provide both available input and available
- output space, it is possible that there will be no progress made. The
- application can consume the uncompressed output when it wants, for example
- when the output buffer is full (avail_out == 0), or after each call of
- inflate(). If inflate returns Z_OK and with zero avail_out, it must be
- called again after making room in the output buffer because there might be
- more output pending.
-
- The flush parameter of inflate() can be Z_NO_FLUSH, Z_SYNC_FLUSH, Z_FINISH,
- Z_BLOCK, or Z_TREES. Z_SYNC_FLUSH requests that inflate() flush as much
- output as possible to the output buffer. Z_BLOCK requests that inflate()
- stop if and when it gets to the next deflate block boundary. When decoding
- the zlib or gzip format, this will cause inflate() to return immediately
- after the header and before the first block. When doing a raw inflate,
- inflate() will go ahead and process the first block, and will return when it
- gets to the end of that block, or when it runs out of data.
-
- The Z_BLOCK option assists in appending to or combining deflate streams.
- To assist in this, on return inflate() always sets strm->data_type to the
- number of unused bits in the last byte taken from strm->next_in, plus 64 if
- inflate() is currently decoding the last block in the deflate stream, plus
- 128 if inflate() returned immediately after decoding an end-of-block code or
- decoding the complete header up to just before the first byte of the deflate
- stream. The end-of-block will not be indicated until all of the uncompressed
- data from that block has been written to strm->next_out. The number of
- unused bits may in general be greater than seven, except when bit 7 of
- data_type is set, in which case the number of unused bits will be less than
- eight. data_type is set as noted here every time inflate() returns for all
- flush options, and so can be used to determine the amount of currently
- consumed input in bits.
-
- The Z_TREES option behaves as Z_BLOCK does, but it also returns when the
- end of each deflate block header is reached, before any actual data in that
- block is decoded. This allows the caller to determine the length of the
- deflate block header for later use in random access within a deflate block.
- 256 is added to the value of strm->data_type when inflate() returns
- immediately after reaching the end of the deflate block header.
-
- inflate() should normally be called until it returns Z_STREAM_END or an
- error. However if all decompression is to be performed in a single step (a
- single call of inflate), the parameter flush should be set to Z_FINISH. In
- this case all pending input is processed and all pending output is flushed;
- avail_out must be large enough to hold all of the uncompressed data for the
- operation to complete. (The size of the uncompressed data may have been
- saved by the compressor for this purpose.) The use of Z_FINISH is not
- required to perform an inflation in one step. However it may be used to
- inform inflate that a faster approach can be used for the single inflate()
- call. Z_FINISH also informs inflate to not maintain a sliding window if the
- stream completes, which reduces inflate's memory footprint. If the stream
- does not complete, either because not all of the stream is provided or not
- enough output space is provided, then a sliding window will be allocated and
- inflate() can be called again to continue the operation as if Z_NO_FLUSH had
- been used.
-
- In this implementation, inflate() always flushes as much output as
- possible to the output buffer, and always uses the faster approach on the
- first call. So the effects of the flush parameter in this implementation are
- on the return value of inflate() as noted below, when inflate() returns early
- when Z_BLOCK or Z_TREES is used, and when inflate() avoids the allocation of
- memory for a sliding window when Z_FINISH is used.
-
- If a preset dictionary is needed after this call (see inflateSetDictionary
- below), inflate sets strm->adler to the Adler-32 checksum of the dictionary
- chosen by the compressor and returns Z_NEED_DICT; otherwise it sets
- strm->adler to the Adler-32 checksum of all output produced so far (that is,
- total_out bytes) and returns Z_OK, Z_STREAM_END or an error code as described
- below. At the end of the stream, inflate() checks that its computed Adler-32
- checksum is equal to that saved by the compressor and returns Z_STREAM_END
- only if the checksum is correct.
-
- inflate() can decompress and check either zlib-wrapped or gzip-wrapped
- deflate data. The header type is detected automatically, if requested when
- initializing with inflateInit2(). Any information contained in the gzip
- header is not retained unless inflateGetHeader() is used. When processing
- gzip-wrapped deflate data, strm->adler32 is set to the CRC-32 of the output
- produced so far. The CRC-32 is checked against the gzip trailer, as is the
- uncompressed length, modulo 2^32.
-
- inflate() returns Z_OK if some progress has been made (more input processed
- or more output produced), Z_STREAM_END if the end of the compressed data has
- been reached and all uncompressed output has been produced, Z_NEED_DICT if a
- preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
- corrupted (input stream not conforming to the zlib format or incorrect check
- value, in which case strm->msg points to a string with a more specific
- error), Z_STREAM_ERROR if the stream structure was inconsistent (for example
- next_in or next_out was Z_NULL, or the state was inadvertently written over
- by the application), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR
- if no progress was possible or if there was not enough room in the output
- buffer when Z_FINISH is used. Note that Z_BUF_ERROR is not fatal, and
- inflate() can be called again with more input and more output space to
- continue decompressing. If Z_DATA_ERROR is returned, the application may
- then call inflateSync() to look for a good compression block if a partial
- recovery of the data is to be attempted.
-*/
-
-
-ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm));
-/*
- All dynamically allocated data structures for this stream are freed.
- This function discards any unprocessed input and does not flush any pending
- output.
-
- inflateEnd returns Z_OK if success, or Z_STREAM_ERROR if the stream state
- was inconsistent.
-*/
-
-
- /* Advanced functions */
-
-/*
- The following functions are needed only in some special applications.
-*/
-
-/*
-ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm,
- int level,
- int method,
- int windowBits,
- int memLevel,
- int strategy));
-
- This is another version of deflateInit with more compression options. The
- fields next_in, zalloc, zfree and opaque must be initialized before by the
- caller.
-
- The method parameter is the compression method. It must be Z_DEFLATED in
- this version of the library.
-
- The windowBits parameter is the base two logarithm of the window size
- (the size of the history buffer). It should be in the range 8..15 for this
- version of the library. Larger values of this parameter result in better
- compression at the expense of memory usage. The default value is 15 if
- deflateInit is used instead.
-
- For the current implementation of deflate(), a windowBits value of 8 (a
- window size of 256 bytes) is not supported. As a result, a request for 8
- will result in 9 (a 512-byte window). In that case, providing 8 to
- inflateInit2() will result in an error when the zlib header with 9 is
- checked against the initialization of inflate(). The remedy is to not use 8
- with deflateInit2() with this initialization, or at least in that case use 9
- with inflateInit2().
-
- windowBits can also be -8..-15 for raw deflate. In this case, -windowBits
- determines the window size. deflate() will then generate raw deflate data
- with no zlib header or trailer, and will not compute a check value.
-
- windowBits can also be greater than 15 for optional gzip encoding. Add
- 16 to windowBits to write a simple gzip header and trailer around the
- compressed data instead of a zlib wrapper. The gzip header will have no
- file name, no extra data, no comment, no modification time (set to zero), no
- header crc, and the operating system will be set to the appropriate value,
- if the operating system was determined at compile time. If a gzip stream is
- being written, strm->adler is a CRC-32 instead of an Adler-32.
-
- For raw deflate or gzip encoding, a request for a 256-byte window is
- rejected as invalid, since only the zlib header provides a means of
- transmitting the window size to the decompressor.
-
- The memLevel parameter specifies how much memory should be allocated
- for the internal compression state. memLevel=1 uses minimum memory but is
- slow and reduces compression ratio; memLevel=9 uses maximum memory for
- optimal speed. The default value is 8. See zconf.h for total memory usage
- as a function of windowBits and memLevel.
-
- The strategy parameter is used to tune the compression algorithm. Use the
- value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
- filter (or predictor), Z_HUFFMAN_ONLY to force Huffman encoding only (no
- string match), or Z_RLE to limit match distances to one (run-length
- encoding). Filtered data consists mostly of small values with a somewhat
- random distribution. In this case, the compression algorithm is tuned to
- compress them better. The effect of Z_FILTERED is to force more Huffman
- coding and less string matching; it is somewhat intermediate between
- Z_DEFAULT_STRATEGY and Z_HUFFMAN_ONLY. Z_RLE is designed to be almost as
- fast as Z_HUFFMAN_ONLY, but give better compression for PNG image data. The
- strategy parameter only affects the compression ratio but not the
- correctness of the compressed output even if it is not set appropriately.
- Z_FIXED prevents the use of dynamic Huffman codes, allowing for a simpler
- decoder for special applications.
-
- deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_STREAM_ERROR if any parameter is invalid (such as an invalid
- method), or Z_VERSION_ERROR if the zlib library version (zlib_version) is
- incompatible with the version assumed by the caller (ZLIB_VERSION). msg is
- set to null if there is no error message. deflateInit2 does not perform any
- compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
- const Bytef *dictionary,
- uInt dictLength));
-/*
- Initializes the compression dictionary from the given byte sequence
- without producing any compressed output. When using the zlib format, this
- function must be called immediately after deflateInit, deflateInit2 or
- deflateReset, and before any call of deflate. When doing raw deflate, this
- function must be called either before any call of deflate, or immediately
- after the completion of a deflate block, i.e. after all input has been
- consumed and all output has been delivered when using any of the flush
- options Z_BLOCK, Z_PARTIAL_FLUSH, Z_SYNC_FLUSH, or Z_FULL_FLUSH. The
- compressor and decompressor must use exactly the same dictionary (see
- inflateSetDictionary).
-
- The dictionary should consist of strings (byte sequences) that are likely
- to be encountered later in the data to be compressed, with the most commonly
- used strings preferably put towards the end of the dictionary. Using a
- dictionary is most useful when the data to be compressed is short and can be
- predicted with good accuracy; the data can then be compressed better than
- with the default empty dictionary.
-
- Depending on the size of the compression data structures selected by
- deflateInit or deflateInit2, a part of the dictionary may in effect be
- discarded, for example if the dictionary is larger than the window size
- provided in deflateInit or deflateInit2. Thus the strings most likely to be
- useful should be put at the end of the dictionary, not at the front. In
- addition, the current implementation of deflate will use at most the window
- size minus 262 bytes of the provided dictionary.
-
- Upon return of this function, strm->adler is set to the Adler-32 value
- of the dictionary; the decompressor may later use this value to determine
- which dictionary has been used by the compressor. (The Adler-32 value
- applies to the whole dictionary even if only a subset of the dictionary is
- actually used by the compressor.) If a raw deflate was requested, then the
- Adler-32 value is not computed and strm->adler is not set.
-
- deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
- parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is
- inconsistent (for example if deflate has already been called for this stream
- or if not at a block boundary for raw deflate). deflateSetDictionary does
- not perform any compression: this will be done by deflate().
-*/
-
-ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm,
- Bytef *dictionary,
- uInt *dictLength));
-/*
- Returns the sliding dictionary being maintained by deflate. dictLength is
- set to the number of bytes in the dictionary, and that many bytes are copied
- to dictionary. dictionary must have enough space, where 32768 bytes is
- always enough. If deflateGetDictionary() is called with dictionary equal to
- Z_NULL, then only the dictionary length is returned, and nothing is copied.
- Similary, if dictLength is Z_NULL, then it is not set.
-
- deflateGetDictionary() may return a length less than the window size, even
- when more than the window size in input has been provided. It may return up
- to 258 bytes less in that case, due to how zlib's implementation of deflate
- manages the sliding window and lookahead for matches, where matches can be
- up to 258 bytes long. If the application needs the last window-size bytes of
- input, then that would need to be saved by the application outside of zlib.
-
- deflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the
- stream state is inconsistent.
-*/
-
-ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest,
- z_streamp source));
-/*
- Sets the destination stream as a complete copy of the source stream.
-
- This function can be useful when several compression strategies will be
- tried, for example when there are several ways of pre-processing the input
- data with a filter. The streams that will be discarded should then be freed
- by calling deflateEnd. Note that deflateCopy duplicates the internal
- compression state which can be quite large, so this strategy is slow and can
- consume lots of memory.
-
- deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
- (such as zalloc being Z_NULL). msg is left unchanged in both source and
- destination.
-*/
-
-ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
-/*
- This function is equivalent to deflateEnd followed by deflateInit, but
- does not free and reallocate the internal compression state. The stream
- will leave the compression level and any other attributes that may have been
- set unchanged.
-
- deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being Z_NULL).
-*/
-
-ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm,
- int level,
- int strategy));
-/*
- Dynamically update the compression level and compression strategy. The
- interpretation of level and strategy is as in deflateInit2(). This can be
- used to switch between compression and straight copy of the input data, or
- to switch to a different kind of input data requiring a different strategy.
- If the compression approach (which is a function of the level) or the
- strategy is changed, and if any input has been consumed in a previous
- deflate() call, then the input available so far is compressed with the old
- level and strategy using deflate(strm, Z_BLOCK). There are three approaches
- for the compression levels 0, 1..3, and 4..9 respectively. The new level
- and strategy will take effect at the next call of deflate().
-
- If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does
- not have enough output space to complete, then the parameter change will not
- take effect. In this case, deflateParams() can be called again with the
- same parameters and more output space to try again.
-
- In order to assure a change in the parameters on the first try, the
- deflate stream should be flushed using deflate() with Z_BLOCK or other flush
- request until strm.avail_out is not zero, before calling deflateParams().
- Then no more input data should be provided before the deflateParams() call.
- If this is done, the old level and strategy will be applied to the data
- compressed before deflateParams(), and the new level and strategy will be
- applied to the the data compressed after deflateParams().
-
- deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream
- state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if
- there was not enough output space to complete the compression of the
- available input data before a change in the strategy or approach. Note that
- in the case of a Z_BUF_ERROR, the parameters are not changed. A return
- value of Z_BUF_ERROR is not fatal, in which case deflateParams() can be
- retried with more output space.
-*/
-
-ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm,
- int good_length,
- int max_lazy,
- int nice_length,
- int max_chain));
-/*
- Fine tune deflate's internal compression parameters. This should only be
- used by someone who understands the algorithm used by zlib's deflate for
- searching for the best matching string, and even then only by the most
- fanatic optimizer trying to squeeze out the last compressed bit for their
- specific input data. Read the deflate.c source code for the meaning of the
- max_lazy, good_length, nice_length, and max_chain parameters.
-
- deflateTune() can be called after deflateInit() or deflateInit2(), and
- returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream.
- */
-
-ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm,
- uLong sourceLen));
-/*
- deflateBound() returns an upper bound on the compressed size after
- deflation of sourceLen bytes. It must be called after deflateInit() or
- deflateInit2(), and after deflateSetHeader(), if used. This would be used
- to allocate an output buffer for deflation in a single pass, and so would be
- called before deflate(). If that first deflate() call is provided the
- sourceLen input bytes, an output buffer allocated to the size returned by
- deflateBound(), and the flush value Z_FINISH, then deflate() is guaranteed
- to return Z_STREAM_END. Note that it is possible for the compressed size to
- be larger than the value returned by deflateBound() if flush options other
- than Z_FINISH or Z_NO_FLUSH are used.
-*/
-
-ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm,
- unsigned *pending,
- int *bits));
-/*
- deflatePending() returns the number of bytes and bits of output that have
- been generated, but not yet provided in the available output. The bytes not
- provided would be due to the available output space having being consumed.
- The number of bits of output not provided are between 0 and 7, where they
- await more bits to join them in order to fill out a full byte. If pending
- or bits are Z_NULL, then those values are not set.
-
- deflatePending returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent.
- */
-
-ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm,
- int bits,
- int value));
-/*
- deflatePrime() inserts bits in the deflate output stream. The intent
- is that this function is used to start off the deflate output with the bits
- leftover from a previous deflate stream when appending to it. As such, this
- function can only be used for raw deflate, and must be used before the first
- deflate() call after a deflateInit2() or deflateReset(). bits must be less
- than or equal to 16, and that many of the least significant bits of value
- will be inserted in the output.
-
- deflatePrime returns Z_OK if success, Z_BUF_ERROR if there was not enough
- room in the internal buffer to insert the bits, or Z_STREAM_ERROR if the
- source stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm,
- gz_headerp head));
-/*
- deflateSetHeader() provides gzip header information for when a gzip
- stream is requested by deflateInit2(). deflateSetHeader() may be called
- after deflateInit2() or deflateReset() and before the first call of
- deflate(). The text, time, os, extra field, name, and comment information
- in the provided gz_header structure are written to the gzip header (xflag is
- ignored -- the extra flags are set according to the compression level). The
- caller must assure that, if not Z_NULL, name and comment are terminated with
- a zero byte, and that if extra is not Z_NULL, that extra_len bytes are
- available there. If hcrc is true, a gzip header crc is included. Note that
- the current versions of the command-line version of gzip (up through version
- 1.3.x) do not support header crc's, and will report that it is a "multi-part
- gzip file" and give up.
-
- If deflateSetHeader is not used, the default gzip header has text false,
- the time set to zero, and os set to 255, with no extra, name, or comment
- fields. The gzip header is returned to the default state by deflateReset().
-
- deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm,
- int windowBits));
-
- This is another version of inflateInit with an extra parameter. The
- fields next_in, avail_in, zalloc, zfree and opaque must be initialized
- before by the caller.
-
- The windowBits parameter is the base two logarithm of the maximum window
- size (the size of the history buffer). It should be in the range 8..15 for
- this version of the library. The default value is 15 if inflateInit is used
- instead. windowBits must be greater than or equal to the windowBits value
- provided to deflateInit2() while compressing, or it must be equal to 15 if
- deflateInit2() was not used. If a compressed stream with a larger window
- size is given as input, inflate() will return with the error code
- Z_DATA_ERROR instead of trying to allocate a larger window.
-
- windowBits can also be zero to request that inflate use the window size in
- the zlib header of the compressed stream.
-
- windowBits can also be -8..-15 for raw inflate. In this case, -windowBits
- determines the window size. inflate() will then process raw deflate data,
- not looking for a zlib or gzip header, not generating a check value, and not
- looking for any check values for comparison at the end of the stream. This
- is for use with other formats that use the deflate compressed data format
- such as zip. Those formats provide their own check values. If a custom
- format is developed using the raw deflate format for compressed data, it is
- recommended that a check value such as an Adler-32 or a CRC-32 be applied to
- the uncompressed data as is done in the zlib, gzip, and zip formats. For
- most applications, the zlib format should be used as is. Note that comments
- above on the use in deflateInit2() applies to the magnitude of windowBits.
-
- windowBits can also be greater than 15 for optional gzip decoding. Add
- 32 to windowBits to enable zlib and gzip decoding with automatic header
- detection, or add 16 to decode only the gzip format (the zlib format will
- return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a
- CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see
- below), inflate() will not automatically decode concatenated gzip streams.
- inflate() will return Z_STREAM_END at the end of the gzip stream. The state
- would need to be reset to continue decoding a subsequent gzip stream.
-
- inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
- version assumed by the caller, or Z_STREAM_ERROR if the parameters are
- invalid, such as a null pointer to the structure. msg is set to null if
- there is no error message. inflateInit2 does not perform any decompression
- apart from possibly reading the zlib header if present: actual decompression
- will be done by inflate(). (So next_in and avail_in may be modified, but
- next_out and avail_out are unused and unchanged.) The current implementation
- of inflateInit2() does not process any header information -- that is
- deferred until inflate() is called.
-*/
-
-ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm,
- const Bytef *dictionary,
- uInt dictLength));
-/*
- Initializes the decompression dictionary from the given uncompressed byte
- sequence. This function must be called immediately after a call of inflate,
- if that call returned Z_NEED_DICT. The dictionary chosen by the compressor
- can be determined from the Adler-32 value returned by that call of inflate.
- The compressor and decompressor must use exactly the same dictionary (see
- deflateSetDictionary). For raw inflate, this function can be called at any
- time to set the dictionary. If the provided dictionary is smaller than the
- window and there is already data in the window, then the provided dictionary
- will amend what's there. The application must insure that the dictionary
- that was used for compression is provided.
-
- inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
- parameter is invalid (e.g. dictionary being Z_NULL) or the stream state is
- inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
- expected one (incorrect Adler-32 value). inflateSetDictionary does not
- perform any decompression: this will be done by subsequent calls of
- inflate().
-*/
-
-ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm,
- Bytef *dictionary,
- uInt *dictLength));
-/*
- Returns the sliding dictionary being maintained by inflate. dictLength is
- set to the number of bytes in the dictionary, and that many bytes are copied
- to dictionary. dictionary must have enough space, where 32768 bytes is
- always enough. If inflateGetDictionary() is called with dictionary equal to
- Z_NULL, then only the dictionary length is returned, and nothing is copied.
- Similary, if dictLength is Z_NULL, then it is not set.
-
- inflateGetDictionary returns Z_OK on success, or Z_STREAM_ERROR if the
- stream state is inconsistent.
-*/
-
-ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm));
-/*
- Skips invalid compressed data until a possible full flush point (see above
- for the description of deflate with Z_FULL_FLUSH) can be found, or until all
- available input is skipped. No output is provided.
-
- inflateSync searches for a 00 00 FF FF pattern in the compressed data.
- All full flush points have this pattern, but not all occurrences of this
- pattern are full flush points.
-
- inflateSync returns Z_OK if a possible full flush point has been found,
- Z_BUF_ERROR if no more input was provided, Z_DATA_ERROR if no flush point
- has been found, or Z_STREAM_ERROR if the stream structure was inconsistent.
- In the success case, the application may save the current current value of
- total_in which indicates where valid compressed data was found. In the
- error case, the application may repeatedly call inflateSync, providing more
- input each time, until success or end of the input data.
-*/
-
-ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest,
- z_streamp source));
-/*
- Sets the destination stream as a complete copy of the source stream.
-
- This function can be useful when randomly accessing a large stream. The
- first pass through the stream can periodically record the inflate state,
- allowing restarting inflate at those points when randomly accessing the
- stream.
-
- inflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
- (such as zalloc being Z_NULL). msg is left unchanged in both source and
- destination.
-*/
-
-ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm));
-/*
- This function is equivalent to inflateEnd followed by inflateInit,
- but does not free and reallocate the internal decompression state. The
- stream will keep attributes that may have been set by inflateInit2.
-
- inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being Z_NULL).
-*/
-
-ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm,
- int windowBits));
-/*
- This function is the same as inflateReset, but it also permits changing
- the wrap and window size requests. The windowBits parameter is interpreted
- the same as it is for inflateInit2. If the window size is changed, then the
- memory allocated for the window is freed, and the window will be reallocated
- by inflate() if needed.
-
- inflateReset2 returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent (such as zalloc or state being Z_NULL), or if
- the windowBits parameter is invalid.
-*/
-
-ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm,
- int bits,
- int value));
-/*
- This function inserts bits in the inflate input stream. The intent is
- that this function is used to start inflating at a bit position in the
- middle of a byte. The provided bits will be used before any bytes are used
- from next_in. This function should only be used with raw inflate, and
- should be used before the first inflate() call after inflateInit2() or
- inflateReset(). bits must be less than or equal to 16, and that many of the
- least significant bits of value will be inserted in the input.
-
- If bits is negative, then the input stream bit buffer is emptied. Then
- inflatePrime() can be called again to put bits in the buffer. This is used
- to clear out bits leftover after feeding inflate a block description prior
- to feeding inflate codes.
-
- inflatePrime returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent.
-*/
-
-ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm));
-/*
- This function returns two values, one in the lower 16 bits of the return
- value, and the other in the remaining upper bits, obtained by shifting the
- return value down 16 bits. If the upper value is -1 and the lower value is
- zero, then inflate() is currently decoding information outside of a block.
- If the upper value is -1 and the lower value is non-zero, then inflate is in
- the middle of a stored block, with the lower value equaling the number of
- bytes from the input remaining to copy. If the upper value is not -1, then
- it is the number of bits back from the current bit position in the input of
- the code (literal or length/distance pair) currently being processed. In
- that case the lower value is the number of bytes already emitted for that
- code.
-
- A code is being processed if inflate is waiting for more input to complete
- decoding of the code, or if it has completed decoding but is waiting for
- more output space to write the literal or match data.
-
- inflateMark() is used to mark locations in the input data for random
- access, which may be at bit positions, and to note those cases where the
- output of a code may span boundaries of random access blocks. The current
- location in the input stream can be determined from avail_in and data_type
- as noted in the description for the Z_BLOCK flush parameter for inflate.
-
- inflateMark returns the value noted above, or -65536 if the provided
- source stream state was inconsistent.
-*/
-
-ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm,
- gz_headerp head));
-/*
- inflateGetHeader() requests that gzip header information be stored in the
- provided gz_header structure. inflateGetHeader() may be called after
- inflateInit2() or inflateReset(), and before the first call of inflate().
- As inflate() processes the gzip stream, head->done is zero until the header
- is completed, at which time head->done is set to one. If a zlib stream is
- being decoded, then head->done is set to -1 to indicate that there will be
- no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be
- used to force inflate() to return immediately after header processing is
- complete and before any actual data is decompressed.
-
- The text, time, xflags, and os fields are filled in with the gzip header
- contents. hcrc is set to true if there is a header CRC. (The header CRC
- was valid if done is set to one.) If extra is not Z_NULL, then extra_max
- contains the maximum number of bytes to write to extra. Once done is true,
- extra_len contains the actual extra field length, and extra contains the
- extra field, or that field truncated if extra_max is less than extra_len.
- If name is not Z_NULL, then up to name_max characters are written there,
- terminated with a zero unless the length is greater than name_max. If
- comment is not Z_NULL, then up to comm_max characters are written there,
- terminated with a zero unless the length is greater than comm_max. When any
- of extra, name, or comment are not Z_NULL and the respective field is not
- present in the header, then that field is set to Z_NULL to signal its
- absence. This allows the use of deflateSetHeader() with the returned
- structure to duplicate the header. However if those fields are set to
- allocated memory, then the application will need to save those pointers
- elsewhere so that they can be eventually freed.
-
- If inflateGetHeader is not used, then the header information is simply
- discarded. The header is always checked for validity, including the header
- CRC if present. inflateReset() will reset the process to discard the header
- information. The application would need to call inflateGetHeader() again to
- retrieve the header from the next gzip stream.
-
- inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source
- stream state was inconsistent.
-*/
-
-/*
-ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits,
- unsigned char FAR *window));
-
- Initialize the internal stream state for decompression using inflateBack()
- calls. The fields zalloc, zfree and opaque in strm must be initialized
- before the call. If zalloc and zfree are Z_NULL, then the default library-
- derived memory allocation routines are used. windowBits is the base two
- logarithm of the window size, in the range 8..15. window is a caller
- supplied buffer of that size. Except for special applications where it is
- assured that deflate was used with small window sizes, windowBits must be 15
- and a 32K byte window must be supplied to be able to decompress general
- deflate streams.
-
- See inflateBack() for the usage of these routines.
-
- inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of
- the parameters are invalid, Z_MEM_ERROR if the internal state could not be
- allocated, or Z_VERSION_ERROR if the version of the library does not match
- the version of the header file.
-*/
-
-typedef unsigned (*in_func) OF((void FAR *,
- z_const unsigned char FAR * FAR *));
-typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned));
-
-ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm,
- in_func in, void FAR *in_desc,
- out_func out, void FAR *out_desc));
-/*
- inflateBack() does a raw inflate with a single call using a call-back
- interface for input and output. This is potentially more efficient than
- inflate() for file i/o applications, in that it avoids copying between the
- output and the sliding window by simply making the window itself the output
- buffer. inflate() can be faster on modern CPUs when used with large
- buffers. inflateBack() trusts the application to not change the output
- buffer passed by the output function, at least until inflateBack() returns.
-
- inflateBackInit() must be called first to allocate the internal state
- and to initialize the state with the user-provided window buffer.
- inflateBack() may then be used multiple times to inflate a complete, raw
- deflate stream with each call. inflateBackEnd() is then called to free the
- allocated state.
-
- A raw deflate stream is one with no zlib or gzip header or trailer.
- This routine would normally be used in a utility that reads zip or gzip
- files and writes out uncompressed files. The utility would decode the
- header and process the trailer on its own, hence this routine expects only
- the raw deflate stream to decompress. This is different from the default
- behavior of inflate(), which expects a zlib header and trailer around the
- deflate stream.
-
- inflateBack() uses two subroutines supplied by the caller that are then
- called by inflateBack() for input and output. inflateBack() calls those
- routines until it reads a complete deflate stream and writes out all of the
- uncompressed data, or until it encounters an error. The function's
- parameters and return types are defined above in the in_func and out_func
- typedefs. inflateBack() will call in(in_desc, &buf) which should return the
- number of bytes of provided input, and a pointer to that input in buf. If
- there is no input available, in() must return zero -- buf is ignored in that
- case -- and inflateBack() will return a buffer error. inflateBack() will
- call out(out_desc, buf, len) to write the uncompressed data buf[0..len-1].
- out() should return zero on success, or non-zero on failure. If out()
- returns non-zero, inflateBack() will return with an error. Neither in() nor
- out() are permitted to change the contents of the window provided to
- inflateBackInit(), which is also the buffer that out() uses to write from.
- The length written by out() will be at most the window size. Any non-zero
- amount of input may be provided by in().
-
- For convenience, inflateBack() can be provided input on the first call by
- setting strm->next_in and strm->avail_in. If that input is exhausted, then
- in() will be called. Therefore strm->next_in must be initialized before
- calling inflateBack(). If strm->next_in is Z_NULL, then in() will be called
- immediately for input. If strm->next_in is not Z_NULL, then strm->avail_in
- must also be initialized, and then if strm->avail_in is not zero, input will
- initially be taken from strm->next_in[0 .. strm->avail_in - 1].
-
- The in_desc and out_desc parameters of inflateBack() is passed as the
- first parameter of in() and out() respectively when they are called. These
- descriptors can be optionally used to pass any information that the caller-
- supplied in() and out() functions need to do their job.
-
- On return, inflateBack() will set strm->next_in and strm->avail_in to
- pass back any unused input that was provided by the last in() call. The
- return values of inflateBack() can be Z_STREAM_END on success, Z_BUF_ERROR
- if in() or out() returned an error, Z_DATA_ERROR if there was a format error
- in the deflate stream (in which case strm->msg is set to indicate the nature
- of the error), or Z_STREAM_ERROR if the stream was not properly initialized.
- In the case of Z_BUF_ERROR, an input or output error can be distinguished
- using strm->next_in which will be Z_NULL only if in() returned an error. If
- strm->next_in is not Z_NULL, then the Z_BUF_ERROR was due to out() returning
- non-zero. (in() will always be called before out(), so strm->next_in is
- assured to be defined if out() returns non-zero.) Note that inflateBack()
- cannot return Z_OK.
-*/
-
-ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm));
-/*
- All memory allocated by inflateBackInit() is freed.
-
- inflateBackEnd() returns Z_OK on success, or Z_STREAM_ERROR if the stream
- state was inconsistent.
-*/
-
-ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void));
-/* Return flags indicating compile-time options.
-
- Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other:
- 1.0: size of uInt
- 3.2: size of uLong
- 5.4: size of voidpf (pointer)
- 7.6: size of z_off_t
-
- Compiler, assembler, and debug options:
- 8: ZLIB_DEBUG
- 9: ASMV or ASMINF -- use ASM code
- 10: ZLIB_WINAPI -- exported functions use the WINAPI calling convention
- 11: 0 (reserved)
-
- One-time table building (smaller code, but not thread-safe if true):
- 12: BUILDFIXED -- build static block decoding tables when needed
- 13: DYNAMIC_CRC_TABLE -- build CRC calculation tables when needed
- 14,15: 0 (reserved)
-
- Library content (indicates missing functionality):
- 16: NO_GZCOMPRESS -- gz* functions cannot compress (to avoid linking
- deflate code when not needed)
- 17: NO_GZIP -- deflate can't write gzip streams, and inflate can't detect
- and decode gzip streams (to avoid linking crc code)
- 18-19: 0 (reserved)
-
- Operation variations (changes in library functionality):
- 20: PKZIP_BUG_WORKAROUND -- slightly more permissive inflate
- 21: FASTEST -- deflate algorithm with only one, lowest compression level
- 22,23: 0 (reserved)
-
- The sprintf variant used by gzprintf (zero is best):
- 24: 0 = vs*, 1 = s* -- 1 means limited to 20 arguments after the format
- 25: 0 = *nprintf, 1 = *printf -- 1 means gzprintf() not secure!
- 26: 0 = returns value, 1 = void -- 1 means inferred string length returned
-
- Remainder:
- 27-31: 0 (reserved)
- */
-
-#ifndef Z_SOLO
-
- /* utility functions */
-
-/*
- The following utility functions are implemented on top of the basic
- stream-oriented functions. To simplify the interface, some default options
- are assumed (compression level and memory usage, standard memory allocation
- functions). The source code of these utility functions can be modified if
- you need special options.
-*/
-
-ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen));
-/*
- Compresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total size
- of the destination buffer, which must be at least the value returned by
- compressBound(sourceLen). Upon exit, destLen is the actual size of the
- compressed data. compress() is equivalent to compress2() with a level
- parameter of Z_DEFAULT_COMPRESSION.
-
- compress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer.
-*/
-
-ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen,
- int level));
-/*
- Compresses the source buffer into the destination buffer. The level
- parameter has the same meaning as in deflateInit. sourceLen is the byte
- length of the source buffer. Upon entry, destLen is the total size of the
- destination buffer, which must be at least the value returned by
- compressBound(sourceLen). Upon exit, destLen is the actual size of the
- compressed data.
-
- compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
- memory, Z_BUF_ERROR if there was not enough room in the output buffer,
- Z_STREAM_ERROR if the level parameter is invalid.
-*/
-
-ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen));
-/*
- compressBound() returns an upper bound on the compressed size after
- compress() or compress2() on sourceLen bytes. It would be used before a
- compress() or compress2() call to allocate the destination buffer.
-*/
-
-ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong sourceLen));
-/*
- Decompresses the source buffer into the destination buffer. sourceLen is
- the byte length of the source buffer. Upon entry, destLen is the total size
- of the destination buffer, which must be large enough to hold the entire
- uncompressed data. (The size of the uncompressed data must have been saved
- previously by the compressor and transmitted to the decompressor by some
- mechanism outside the scope of this compression library.) Upon exit, destLen
- is the actual size of the uncompressed data.
-
- uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
- enough memory, Z_BUF_ERROR if there was not enough room in the output
- buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In
- the case where there is not enough room, uncompress() will fill the output
- buffer with the uncompressed data up to that point.
-*/
-
-ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen,
- const Bytef *source, uLong *sourceLen));
-/*
- Same as uncompress, except that sourceLen is a pointer, where the
- length of the source is *sourceLen. On return, *sourceLen is the number of
- source bytes consumed.
-*/
-
- /* gzip file access functions */
-
-/*
- This library supports reading and writing files in gzip (.gz) format with
- an interface similar to that of stdio, using the functions that start with
- "gz". The gzip format is different from the zlib format. gzip is a gzip
- wrapper, documented in RFC 1952, wrapped around a deflate stream.
-*/
-
-typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */
-
-/*
-ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode));
-
- Opens a gzip (.gz) file for reading or writing. The mode parameter is as
- in fopen ("rb" or "wb") but can also include a compression level ("wb9") or
- a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only
- compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F'
- for fixed code compression as in "wb9F". (See the description of
- deflateInit2 for more information about the strategy parameter.) 'T' will
- request transparent writing or appending with no compression and not using
- the gzip format.
-
- "a" can be used instead of "w" to request that the gzip stream that will
- be written be appended to the file. "+" will result in an error, since
- reading and writing to the same gzip file is not supported. The addition of
- "x" when writing will create the file exclusively, which fails if the file
- already exists. On systems that support it, the addition of "e" when
- reading or writing will set the flag to close the file on an execve() call.
-
- These functions, as well as gzip, will read and decode a sequence of gzip
- streams in a file. The append function of gzopen() can be used to create
- such a file. (Also see gzflush() for another way to do this.) When
- appending, gzopen does not test whether the file begins with a gzip stream,
- nor does it look for the end of the gzip streams to begin appending. gzopen
- will simply append a gzip stream to the existing file.
-
- gzopen can be used to read a file which is not in gzip format; in this
- case gzread will directly read from the file without decompression. When
- reading, this will be detected automatically by looking for the magic two-
- byte gzip header.
-
- gzopen returns NULL if the file could not be opened, if there was
- insufficient memory to allocate the gzFile state, or if an invalid mode was
- specified (an 'r', 'w', or 'a' was not provided, or '+' was provided).
- errno can be checked to determine if the reason gzopen failed was that the
- file could not be opened.
-*/
-
-ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode));
-/*
- gzdopen associates a gzFile with the file descriptor fd. File descriptors
- are obtained from calls like open, dup, creat, pipe or fileno (if the file
- has been previously opened with fopen). The mode parameter is as in gzopen.
-
- The next call of gzclose on the returned gzFile will also close the file
- descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor
- fd. If you want to keep fd open, use fd = dup(fd_keep); gz = gzdopen(fd,
- mode);. The duplicated descriptor should be saved to avoid a leak, since
- gzdopen does not close fd if it fails. If you are using fileno() to get the
- file descriptor from a FILE *, then you will have to use dup() to avoid
- double-close()ing the file descriptor. Both gzclose() and fclose() will
- close the associated file descriptor, so they need to have different file
- descriptors.
-
- gzdopen returns NULL if there was insufficient memory to allocate the
- gzFile state, if an invalid mode was specified (an 'r', 'w', or 'a' was not
- provided, or '+' was provided), or if fd is -1. The file descriptor is not
- used until the next gz* read, write, seek, or close operation, so gzdopen
- will not detect if fd is invalid (unless fd is -1).
-*/
-
-ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size));
-/*
- Set the internal buffer size used by this library's functions. The
- default buffer size is 8192 bytes. This function must be called after
- gzopen() or gzdopen(), and before any other calls that read or write the
- file. The buffer memory allocation is always deferred to the first read or
- write. Three times that size in buffer space is allocated. A larger buffer
- size of, for example, 64K or 128K bytes will noticeably increase the speed
- of decompression (reading).
-
- The new buffer size also affects the maximum length for gzprintf().
-
- gzbuffer() returns 0 on success, or -1 on failure, such as being called
- too late.
-*/
-
-ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy));
-/*
- Dynamically update the compression level or strategy. See the description
- of deflateInit2 for the meaning of these parameters. Previously provided
- data is flushed before the parameter change.
-
- gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not
- opened for writing, Z_ERRNO if there is an error writing the flushed data,
- or Z_MEM_ERROR if there is a memory allocation error.
-*/
-
-ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len));
-/*
- Reads the given number of uncompressed bytes from the compressed file. If
- the input file is not in gzip format, gzread copies the given number of
- bytes into the buffer directly from the file.
-
- After reaching the end of a gzip stream in the input, gzread will continue
- to read, looking for another gzip stream. Any number of gzip streams may be
- concatenated in the input file, and will all be decompressed by gzread().
- If something other than a gzip stream is encountered after a gzip stream,
- that remaining trailing garbage is ignored (and no error is returned).
-
- gzread can be used to read a gzip file that is being concurrently written.
- Upon reaching the end of the input, gzread will return with the available
- data. If the error code returned by gzerror is Z_OK or Z_BUF_ERROR, then
- gzclearerr can be used to clear the end of file indicator in order to permit
- gzread to be tried again. Z_OK indicates that a gzip stream was completed
- on the last gzread. Z_BUF_ERROR indicates that the input file ended in the
- middle of a gzip stream. Note that gzread does not return -1 in the event
- of an incomplete gzip stream. This error is deferred until gzclose(), which
- will return Z_BUF_ERROR if the last gzread ended in the middle of a gzip
- stream. Alternatively, gzerror can be used before gzclose to detect this
- case.
-
- gzread returns the number of uncompressed bytes actually read, less than
- len for end of file, or -1 for error. If len is too large to fit in an int,
- then nothing is read, -1 is returned, and the error state is set to
- Z_STREAM_ERROR.
-*/
-
-ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems,
- gzFile file));
-/*
- Read up to nitems items of size size from file to buf, otherwise operating
- as gzread() does. This duplicates the interface of stdio's fread(), with
- size_t request and return types. If the library defines size_t, then
- z_size_t is identical to size_t. If not, then z_size_t is an unsigned
- integer type that can contain a pointer.
-
- gzfread() returns the number of full items read of size size, or zero if
- the end of the file was reached and a full item could not be read, or if
- there was an error. gzerror() must be consulted if zero is returned in
- order to determine if there was an error. If the multiplication of size and
- nitems overflows, i.e. the product does not fit in a z_size_t, then nothing
- is read, zero is returned, and the error state is set to Z_STREAM_ERROR.
-
- In the event that the end of file is reached and only a partial item is
- available at the end, i.e. the remaining uncompressed data length is not a
- multiple of size, then the final partial item is nevetheless read into buf
- and the end-of-file flag is set. The length of the partial item read is not
- provided, but could be inferred from the result of gztell(). This behavior
- is the same as the behavior of fread() implementations in common libraries,
- but it prevents the direct use of gzfread() to read a concurrently written
- file, reseting and retrying on end-of-file, when size is not 1.
-*/
-
-ZEXTERN int ZEXPORT gzwrite OF((gzFile file,
- voidpc buf, unsigned len));
-/*
- Writes the given number of uncompressed bytes into the compressed file.
- gzwrite returns the number of uncompressed bytes written or 0 in case of
- error.
-*/
-
-ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size,
- z_size_t nitems, gzFile file));
-/*
- gzfwrite() writes nitems items of size size from buf to file, duplicating
- the interface of stdio's fwrite(), with size_t request and return types. If
- the library defines size_t, then z_size_t is identical to size_t. If not,
- then z_size_t is an unsigned integer type that can contain a pointer.
-
- gzfwrite() returns the number of full items written of size size, or zero
- if there was an error. If the multiplication of size and nitems overflows,
- i.e. the product does not fit in a z_size_t, then nothing is written, zero
- is returned, and the error state is set to Z_STREAM_ERROR.
-*/
-
-ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...));
-/*
- Converts, formats, and writes the arguments to the compressed file under
- control of the format string, as in fprintf. gzprintf returns the number of
- uncompressed bytes actually written, or a negative zlib error code in case
- of error. The number of uncompressed bytes written is limited to 8191, or
- one less than the buffer size given to gzbuffer(). The caller should assure
- that this limit is not exceeded. If it is exceeded, then gzprintf() will
- return an error (0) with nothing written. In this case, there may also be a
- buffer overflow with unpredictable consequences, which is possible only if
- zlib was compiled with the insecure functions sprintf() or vsprintf()
- because the secure snprintf() or vsnprintf() functions were not available.
- This can be determined using zlibCompileFlags().
-*/
-
-ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s));
-/*
- Writes the given null-terminated string to the compressed file, excluding
- the terminating null character.
-
- gzputs returns the number of characters written, or -1 in case of error.
-*/
-
-ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len));
-/*
- Reads bytes from the compressed file until len-1 characters are read, or a
- newline character is read and transferred to buf, or an end-of-file
- condition is encountered. If any characters are read or if len == 1, the
- string is terminated with a null character. If no characters are read due
- to an end-of-file or len < 1, then the buffer is left untouched.
-
- gzgets returns buf which is a null-terminated string, or it returns NULL
- for end-of-file or in case of error. If there was an error, the contents at
- buf are indeterminate.
-*/
-
-ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c));
-/*
- Writes c, converted to an unsigned char, into the compressed file. gzputc
- returns the value that was written, or -1 in case of error.
-*/
-
-ZEXTERN int ZEXPORT gzgetc OF((gzFile file));
-/*
- Reads one byte from the compressed file. gzgetc returns this byte or -1
- in case of end of file or error. This is implemented as a macro for speed.
- As such, it does not do all of the checking the other functions do. I.e.
- it does not check to see if file is NULL, nor whether the structure file
- points to has been clobbered or not.
-*/
-
-ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file));
-/*
- Push one character back onto the stream to be read as the first character
- on the next read. At least one character of push-back is allowed.
- gzungetc() returns the character pushed, or -1 on failure. gzungetc() will
- fail if c is -1, and may fail if a character has been pushed but not read
- yet. If gzungetc is used immediately after gzopen or gzdopen, at least the
- output buffer size of pushed characters is allowed. (See gzbuffer above.)
- The pushed character will be discarded if the stream is repositioned with
- gzseek() or gzrewind().
-*/
-
-ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush));
-/*
- Flushes all pending output into the compressed file. The parameter flush
- is as in the deflate() function. The return value is the zlib error number
- (see function gzerror below). gzflush is only permitted when writing.
-
- If the flush parameter is Z_FINISH, the remaining data is written and the
- gzip stream is completed in the output. If gzwrite() is called again, a new
- gzip stream will be started in the output. gzread() is able to read such
- concatenated gzip streams.
-
- gzflush should be called only when strictly necessary because it will
- degrade compression if called too often.
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file,
- z_off_t offset, int whence));
-
- Sets the starting position for the next gzread or gzwrite on the given
- compressed file. The offset represents a number of bytes in the
- uncompressed data stream. The whence parameter is defined as in lseek(2);
- the value SEEK_END is not supported.
-
- If the file is opened for reading, this function is emulated but can be
- extremely slow. If the file is opened for writing, only forward seeks are
- supported; gzseek then compresses a sequence of zeroes up to the new
- starting position.
-
- gzseek returns the resulting offset location as measured in bytes from
- the beginning of the uncompressed stream, or -1 in case of error, in
- particular if the file is opened for writing and the new starting position
- would be before the current position.
-*/
-
-ZEXTERN int ZEXPORT gzrewind OF((gzFile file));
-/*
- Rewinds the given file. This function is supported only for reading.
-
- gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file));
-
- Returns the starting position for the next gzread or gzwrite on the given
- compressed file. This position represents a number of bytes in the
- uncompressed data stream, and is zero when starting, even if appending or
- reading a gzip stream from the middle of a file using gzdopen().
-
- gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-*/
-
-/*
-ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file));
-
- Returns the current offset in the file being read or written. This offset
- includes the count of bytes that precede the gzip stream, for example when
- appending or when using gzdopen() for reading. When reading, the offset
- does not include as yet unused buffered input. This information can be used
- for a progress indicator. On error, gzoffset() returns -1.
-*/
-
-ZEXTERN int ZEXPORT gzeof OF((gzFile file));
-/*
- Returns true (1) if the end-of-file indicator has been set while reading,
- false (0) otherwise. Note that the end-of-file indicator is set only if the
- read tried to go past the end of the input, but came up short. Therefore,
- just like feof(), gzeof() may return false even if there is no more data to
- read, in the event that the last read request was for the exact number of
- bytes remaining in the input file. This will happen if the input file size
- is an exact multiple of the buffer size.
-
- If gzeof() returns true, then the read functions will return no more data,
- unless the end-of-file indicator is reset by gzclearerr() and the input file
- has grown since the previous end of file was detected.
-*/
-
-ZEXTERN int ZEXPORT gzdirect OF((gzFile file));
-/*
- Returns true (1) if file is being copied directly while reading, or false
- (0) if file is a gzip stream being decompressed.
-
- If the input file is empty, gzdirect() will return true, since the input
- does not contain a gzip stream.
-
- If gzdirect() is used immediately after gzopen() or gzdopen() it will
- cause buffers to be allocated to allow reading the file to determine if it
- is a gzip file. Therefore if gzbuffer() is used, it should be called before
- gzdirect().
-
- When writing, gzdirect() returns true (1) if transparent writing was
- requested ("wT" for the gzopen() mode), or false (0) otherwise. (Note:
- gzdirect() is not needed when writing. Transparent writing must be
- explicitly requested, so the application already knows the answer. When
- linking statically, using gzdirect() will include all of the zlib code for
- gzip file reading and decompression, which may not be desired.)
-*/
-
-ZEXTERN int ZEXPORT gzclose OF((gzFile file));
-/*
- Flushes all pending output if necessary, closes the compressed file and
- deallocates the (de)compression state. Note that once file is closed, you
- cannot call gzerror with file, since its structures have been deallocated.
- gzclose must not be called more than once on the same file, just as free
- must not be called more than once on the same allocation.
-
- gzclose will return Z_STREAM_ERROR if file is not valid, Z_ERRNO on a
- file operation error, Z_MEM_ERROR if out of memory, Z_BUF_ERROR if the
- last read ended in the middle of a gzip stream, or Z_OK on success.
-*/
-
-ZEXTERN int ZEXPORT gzclose_r OF((gzFile file));
-ZEXTERN int ZEXPORT gzclose_w OF((gzFile file));
-/*
- Same as gzclose(), but gzclose_r() is only for use when reading, and
- gzclose_w() is only for use when writing or appending. The advantage to
- using these instead of gzclose() is that they avoid linking in zlib
- compression or decompression code that is not used when only reading or only
- writing respectively. If gzclose() is used, then both compression and
- decompression code will be included the application when linking to a static
- zlib library.
-*/
-
-ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum));
-/*
- Returns the error message for the last error which occurred on the given
- compressed file. errnum is set to zlib error number. If an error occurred
- in the file system and not in the compression library, errnum is set to
- Z_ERRNO and the application may consult errno to get the exact error code.
-
- The application must not modify the returned string. Future calls to
- this function may invalidate the previously returned string. If file is
- closed, then the string previously returned by gzerror will no longer be
- available.
-
- gzerror() should be used to distinguish errors from end-of-file for those
- functions above that do not distinguish those cases in their return values.
-*/
-
-ZEXTERN void ZEXPORT gzclearerr OF((gzFile file));
-/*
- Clears the error and end-of-file flags for file. This is analogous to the
- clearerr() function in stdio. This is useful for continuing to read a gzip
- file that is being written concurrently.
-*/
-
-#endif /* !Z_SOLO */
-
- /* checksum functions */
-
-/*
- These functions are not related to compression but are exported
- anyway because they might be useful in applications using the compression
- library.
-*/
-
-ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));
-/*
- Update a running Adler-32 checksum with the bytes buf[0..len-1] and
- return the updated checksum. If buf is Z_NULL, this function returns the
- required initial value for the checksum.
-
- An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed
- much faster.
-
- Usage example:
-
- uLong adler = adler32(0L, Z_NULL, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- adler = adler32(adler, buffer, length);
- }
- if (adler != original_adler) error();
-*/
-
-ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf,
- z_size_t len));
-/*
- Same as adler32(), but with a size_t length.
-*/
-
-/*
-ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2,
- z_off_t len2));
-
- Combine two Adler-32 checksums into one. For two sequences of bytes, seq1
- and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for
- each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of
- seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note
- that the z_off_t type (like off_t) is a signed integer. If len2 is
- negative, the result has no meaning or utility.
-*/
-
-ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len));
-/*
- Update a running CRC-32 with the bytes buf[0..len-1] and return the
- updated CRC-32. If buf is Z_NULL, this function returns the required
- initial value for the crc. Pre- and post-conditioning (one's complement) is
- performed within this function so it shouldn't be done by the application.
-
- Usage example:
-
- uLong crc = crc32(0L, Z_NULL, 0);
-
- while (read_buffer(buffer, length) != EOF) {
- crc = crc32(crc, buffer, length);
- }
- if (crc != original_crc) error();
-*/
-
-ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf,
- z_size_t len));
-/*
- Same as crc32(), but with a size_t length.
-*/
-
-/*
-ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2));
-
- Combine two CRC-32 check values into one. For two sequences of bytes,
- seq1 and seq2 with lengths len1 and len2, CRC-32 check values were
- calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32
- check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and
- len2.
-*/
-
-
- /* various hacks, don't look :) */
-
-/* deflateInit and inflateInit are macros to allow checking the zlib version
- * and the compiler's view of z_stream:
- */
-ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
- const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
- const char *version, int stream_size));
-ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method,
- int windowBits, int memLevel,
- int strategy, const char *version,
- int stream_size));
-ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits,
- const char *version, int stream_size));
-ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits,
- unsigned char FAR *window,
- const char *version,
- int stream_size));
-#ifdef Z_PREFIX_SET
-# define z_deflateInit(strm, level) \
- deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
-# define z_inflateInit(strm) \
- inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
-# define z_deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
- deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
- (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
-# define z_inflateInit2(strm, windowBits) \
- inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
- (int)sizeof(z_stream))
-# define z_inflateBackInit(strm, windowBits, window) \
- inflateBackInit_((strm), (windowBits), (window), \
- ZLIB_VERSION, (int)sizeof(z_stream))
-#else
-# define deflateInit(strm, level) \
- deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
-# define inflateInit(strm) \
- inflateInit_((strm), ZLIB_VERSION, (int)sizeof(z_stream))
-# define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
- deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
- (strategy), ZLIB_VERSION, (int)sizeof(z_stream))
-# define inflateInit2(strm, windowBits) \
- inflateInit2_((strm), (windowBits), ZLIB_VERSION, \
- (int)sizeof(z_stream))
-# define inflateBackInit(strm, windowBits, window) \
- inflateBackInit_((strm), (windowBits), (window), \
- ZLIB_VERSION, (int)sizeof(z_stream))
-#endif
-
-#ifndef Z_SOLO
-
-/* gzgetc() macro and its supporting function and exposed data structure. Note
- * that the real internal state is much larger than the exposed structure.
- * This abbreviated structure exposes just enough for the gzgetc() macro. The
- * user should not mess with these exposed elements, since their names or
- * behavior could change in the future, perhaps even capriciously. They can
- * only be used by the gzgetc() macro. You have been warned.
- */
-struct gzFile_s {
- unsigned have;
- unsigned char *next;
- z_off64_t pos;
-};
-ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */
-#ifdef Z_PREFIX_SET
-# undef z_gzgetc
-# define z_gzgetc(g) \
- ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g))
-#else
-# define gzgetc(g) \
- ((g)->have ? ((g)->have--, (g)->pos++, *((g)->next)++) : (gzgetc)(g))
-#endif
-
-/* provide 64-bit offset functions if _LARGEFILE64_SOURCE defined, and/or
- * change the regular functions to 64 bits if _FILE_OFFSET_BITS is 64 (if
- * both are true, the application gets the *64 functions, and the regular
- * functions are changed to 64 bits) -- in case these are set on systems
- * without large file support, _LFS64_LARGEFILE must also be true
- */
-#ifdef Z_LARGE64
- ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
- ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int));
- ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile));
- ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile));
- ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t));
- ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t));
-#endif
-
-#if !defined(ZLIB_INTERNAL) && defined(Z_WANT64)
-# ifdef Z_PREFIX_SET
-# define z_gzopen z_gzopen64
-# define z_gzseek z_gzseek64
-# define z_gztell z_gztell64
-# define z_gzoffset z_gzoffset64
-# define z_adler32_combine z_adler32_combine64
-# define z_crc32_combine z_crc32_combine64
-# else
-# define gzopen gzopen64
-# define gzseek gzseek64
-# define gztell gztell64
-# define gzoffset gzoffset64
-# define adler32_combine adler32_combine64
-# define crc32_combine crc32_combine64
-# endif
-# ifndef Z_LARGE64
- ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *));
- ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int));
- ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile));
- ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile));
- ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t));
- ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t));
-# endif
-#else
- ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *));
- ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int));
- ZEXTERN z_off_t ZEXPORT gztell OF((gzFile));
- ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile));
- ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
- ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-#endif
-
-#else /* Z_SOLO */
-
- ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t));
- ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t));
-
-#endif /* !Z_SOLO */
-
-/* undocumented functions */
-ZEXTERN const char * ZEXPORT zError OF((int));
-ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp));
-ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void));
-ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int));
-ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int));
-ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp));
-ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp));
-ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp));
-#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO)
-ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path,
- const char *mode));
-#endif
-#if defined(STDC) || defined(Z_HAVE_STDARG_H)
-# ifndef Z_SOLO
-ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file,
- const char *format,
- va_list va));
-# endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ZLIB_H */
---------------------------------------------------------------------------------
-END LICENSE FOR external/zlib_archive/zlib.h
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/grpc/LICENSE
---------------------------------------------------------------------------------
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
---------------------------------------------------------------------------------
-END LICENSE FOR external/grpc/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/grpc/third_party/address_sorting/LICENSE
---------------------------------------------------------------------------------
-Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-3. Neither the name of the project nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
---------------------------------------------------------------------------------
-END LICENSE FOR external/grpc/third_party/address_sorting/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/aws/LICENSE
---------------------------------------------------------------------------------
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
---------------------------------------------------------------------------------
-END LICENSE FOR external/aws/LICENSE
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
-BEGIN LICENSE FOR external/com_github_googlecloudplatform_google_cloud_cpp/LICENSE
---------------------------------------------------------------------------------
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
---------------------------------------------------------------------------------
-END LICENSE FOR external/com_github_googlecloudplatform_google_cloud_cpp/LICENSE
---------------------------------------------------------------------------------
diff --git a/tensorflow-core/tensorflow-core-api/WORKSPACE b/tensorflow-core/tensorflow-core-api/WORKSPACE
deleted file mode 100644
index 8dfcdf6d57c..00000000000
--- a/tensorflow-core/tensorflow-core-api/WORKSPACE
+++ /dev/null
@@ -1,50 +0,0 @@
-workspace(name = "tensorflow_core_api")
-
-#local_repository(
-# name = "tensorflow",
-# path = "/Users/klessard/Documents/Projects/MachineLearning/Sources/tensorflow",
-#)
-
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-http_archive(
- name = "org_tensorflow",
- patches = [
- ":tensorflow-windows.patch", # https://github.com/tensorflow/tensorflow/issues/25213
- ":tensorflow-api-def.patch"
- ],
- patch_args = ["-p1"],
- urls = [
- "https://mirror.bazel.build/github.com/tensorflow/tensorflow/archive/v2.1.0-rc2.tar.gz",
- "https://github.com/tensorflow/tensorflow/archive/v2.1.0-rc2.tar.gz",
- ],
- sha256 = "8f0c227024fe2dffc691e71f4498c217f604d045079db254a300720db1eb4693",
- strip_prefix = "tensorflow-2.1.0-rc2"
-)
-
-# START: Upstream TensorFlow dependencies
-# TensorFlow build depends on these dependencies.
-# Needs to be in-sync with TensorFlow sources.
-http_archive(
- name = "io_bazel_rules_closure",
- sha256 = "5b00383d08dd71f28503736db0500b6fb4dda47489ff5fc6bed42557c07c6ba9",
- strip_prefix = "rules_closure-308b05b2419edb5c8ee0471b67a40403df940149",
- urls = [
- "https://storage.googleapis.com/mirror.tensorflow.org/github.com/bazelbuild/rules_closure/archive/308b05b2419edb5c8ee0471b67a40403df940149.tar.gz",
- "https://github.com/bazelbuild/rules_closure/archive/308b05b2419edb5c8ee0471b67a40403df940149.tar.gz", # 2019-06-13
- ],
-)
-http_archive(
- name = "bazel_skylib",
- sha256 = "2ef429f5d7ce7111263289644d233707dba35e39696377ebab8b0bc701f7818e",
- urls = ["https://github.com/bazelbuild/bazel-skylib/releases/download/0.8.0/bazel-skylib.0.8.0.tar.gz"],
-)
-# END: Upstream TensorFlow dependencies
-load("@org_tensorflow//tensorflow:workspace.bzl", "tf_repositories")
-tf_repositories()
-
-load("@io_bazel_rules_closure//closure:defs.bzl", "closure_repositories")
-closure_repositories()
-
-load("@org_tensorflow//tensorflow:workspace.bzl", "tf_bind")
-tf_bind()
diff --git a/tensorflow-core/tensorflow-core-api/build.sh b/tensorflow-core/tensorflow-core-api/build.sh
deleted file mode 100755
index 5238676d46c..00000000000
--- a/tensorflow-core/tensorflow-core-api/build.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/bash
-# Script to build native TensorFlow libraries
-set -eu
-
-# Allows us to use ccache with Bazel on Mac
-export BAZEL_USE_CPP_ONLY_TOOLCHAIN=1
-
-export BAZEL_VC="${VCINSTALLDIR:-}"
-if [[ -d $BAZEL_VC ]]; then
- # Work around compiler issues on Windows documented mainly in configure.py but also elsewhere
- export BUILD_FLAGS="--copt=//arch:AVX `#--copt=//arch:AVX2` --copt=-DWIN32_LEAN_AND_MEAN --host_copt=-DWIN32_LEAN_AND_MEAN --copt=-DNOGDI --host_copt=-DNOGDI --define=override_eigen_strong_inline=true"
- # https://software.intel.com/en-us/articles/intel-optimization-for-tensorflow-installation-guide#wind_B_S
- export PATH=$PATH:$(pwd)/bazel-tensorflow-core-api/external/mkl_windows/lib/
- export PYTHON_BIN_PATH=$(which python.exe)
-else
- export BUILD_FLAGS="--copt=-msse4.1 --copt=-msse4.2 --copt=-mavx `#--copt=-mavx2 --copt=-mfma` --cxxopt=-std=c++14 --host_cxxopt=-std=c++14 --linkopt=-lstdc++ --host_linkopt=-lstdc++"
- export PYTHON_BIN_PATH=$(which python3)
-fi
-
-if [[ "${EXTENSION:-}" == *mkl* ]]; then
- export BUILD_FLAGS="$BUILD_FLAGS --config=mkl"
-fi
-
-if [[ "${EXTENSION:-}" == *gpu* ]]; then
- export BUILD_FLAGS="$BUILD_FLAGS --config=cuda"
- if [[ -z ${TF_CUDA_PATHS:-} ]] && [[ -d ${CUDA_PATH:-} ]]; then
- # Work around some issue with Bazel preventing it from detecting CUDA on Windows
- export TF_CUDA_PATHS="$CUDA_PATH"
- fi
-fi
-
-# Build C API of TensorFlow itself including a target to generate ops for Java
-bazel build $BUILD_FLAGS --python_path="$PYTHON_BIN_PATH" --config=monolithic --output_filter=DONT_MATCH_ANYTHING --verbose_failures @org_tensorflow//tensorflow:tensorflow :java_op_gen_sources
-ls -l bazel-bin/external/org_tensorflow/tensorflow/
-
-# Normalize some paths with symbolic links
-TENSORFLOW_SO=(bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.so.?.?.?)
-if [[ -f $TENSORFLOW_SO ]]; then
- ln -sf $(basename $TENSORFLOW_SO) bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.so
- ln -sf $(basename $TENSORFLOW_SO) bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.so.2
-fi
-TENSORFLOW_DYLIB=(bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.?.?.?.dylib)
-if [[ -f $TENSORFLOW_DYLIB ]]; then
- ln -sf $(basename $TENSORFLOW_DYLIB) bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.dylib
- ln -sf $(basename $TENSORFLOW_DYLIB) bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.2.dylib
-fi
-TENSORFLOW_LIBS=(bazel-bin/external/org_tensorflow/tensorflow/tensorflow.dll.if.lib bazel-bin/external/org_tensorflow/tensorflow/libtensorflow.dll.ifso)
-for TENSORFLOW_LIB in ${TENSORFLOW_LIBS[@]}; do
- if [[ -f $TENSORFLOW_LIB ]]; then
- ln -sf $(basename $TENSORFLOW_LIB) bazel-bin/external/org_tensorflow/tensorflow/tensorflow.lib
- fi
-done
-
-# Copy only main generated Java source files for ops
-mkdir -p src/gen/java/
-cp -r bazel-genfiles/ops/src/* src/gen/java/
diff --git a/tensorflow-core/tensorflow-core-api/external/tensorflow-api-def.patch b/tensorflow-core/tensorflow-core-api/external/tensorflow-api-def.patch
deleted file mode 100644
index 791e0e2e9c6..00000000000
--- a/tensorflow-core/tensorflow-core-api/external/tensorflow-api-def.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tensorflow/core/api_def/BUILD b/tensorflow/core/api_def/BUILD
-index f96645ad9f..63f94d3b87 100644
---- a/tensorflow/core/api_def/BUILD
-+++ b/tensorflow/core/api_def/BUILD
-@@ -28,7 +28,7 @@ package(
- filegroup(
- name = "base_api_def",
- srcs = glob(["base_api/*"]),
-- visibility = ["//tensorflow:internal"],
-+ visibility = ["//visibility:public"],
- )
-
- filegroup(
diff --git a/tensorflow-core/tensorflow-core-api/external/tensorflow-windows.patch b/tensorflow-core/tensorflow-core-api/external/tensorflow-windows.patch
deleted file mode 100644
index df96098954f..00000000000
--- a/tensorflow-core/tensorflow-core-api/external/tensorflow-windows.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -ruN tensorflow-1.14.0-rc1/third_party/mkl/mkl.BUILD tensorflow-1.14.0-rc1-windows/third_party/mkl/mkl.BUILD
---- tensorflow-1.14.0-rc1/third_party/mkl/mkl.BUILD 2019-06-08 11:23:20.000000000 +0900
-+++ tensorflow-1.14.0-rc1-windows/third_party/mkl/mkl.BUILD 2019-06-12 08:30:41.232683854 +0900
-@@ -35,11 +35,23 @@
- visibility = ["//visibility:public"],
- )
-
-+cc_import(
-+ name = "iomp5",
-+ interface_library = "lib/libiomp5md.lib",
-+ system_provided = 1,
-+)
-+
-+cc_import(
-+ name = "mklml",
-+ interface_library = "lib/mklml.lib",
-+ system_provided = 1,
-+)
-+
- cc_library(
- name = "mkl_libs_windows",
-- srcs = [
-- "lib/libiomp5md.lib",
-- "lib/mklml.lib",
-+ deps = [
-+ "iomp5",
-+ "mklml",
- ],
- linkopts = ["/FORCE:MULTIPLE"],
- visibility = ["//visibility:public"],
diff --git a/tensorflow-core/tensorflow-core-api/pom.xml b/tensorflow-core/tensorflow-core-api/pom.xml
index d5c82ff9179..09af0ac7cf4 100644
--- a/tensorflow-core/tensorflow-core-api/pom.xml
+++ b/tensorflow-core/tensorflow-core-api/pom.xml
@@ -6,48 +6,192 @@
org.tensorflow
tensorflow-core
- 0.1.0-SNAPSHOT
+ 1.3.0-SNAPSHOT
tensorflow-core-api
jar
- TensorFlow Core API Library
+ TensorFlow API
Platform-dependent native code and pure-Java code for the TensorFlow machine intelligence library.
+
+ 1.1.5
+ false
+ ${project.build.directory}/tf-text-download/
+
+
- org.bytedeco
- javacpp
- ${javacpp.version}
+ org.tensorflow
+ tensorflow-ndarray
+ ${project.version}
org.tensorflow
- tensorflow-core-generator
+ tensorflow-core-native
${project.version}
- true
org.tensorflow
- tensorflow-tools
+ tensorflow-core-native
${project.version}
+ ${native.classifier}
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+ org.openjdk.jmh
+ jmh-core
+ test
+
+
+ com.google.truth
+ truth
+ ${truth.version}
+ test
- junit
- junit
- 4.12
+ org.openjdk.jmh
+ jmh-generator-annprocess
test
+
+
+
+ generating
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+
+ generate-ops
+
+ java
+
+ generate-sources
+
+ false
+ true
+ org.tensorflow.generator.op.OpGenerator
+
+ -a
+ ${project.basedir}/src/api
+ -o
+ ${project.basedir}/src/gen/java
+ -c
+
+
+
+
+
+
+ org.tensorflow
+ tensorflow-core-generator
+ ${project.version}
+
+
+
+
+
+ maven-compiler-plugin
+ 3.11.0
+
+
+
+ default-compile
+
+
+ org.tensorflow.generator.op.processor.OperatorProcessor
+
+
+
+ org.tensorflow
+ tensorflow-core-generator
+ ${project.version}
+
+
+
+ ${project.basedir}/src/gen/annotations
+
+
+
+
+
+
+ maven-clean-plugin
+ 3.3.2
+
+
+
+ generated-sources-clean
+ clean
+
+ clean
+
+
+
+
+ src/gen
+
+
+
+
+
+
+
+
+
+
+
org.codehaus.mojo
build-helper-maven-plugin
- 3.0.0
+ 3.4.0
- add-source
+
+ add-gen-sources
generate-sources
add-source
@@ -55,256 +199,51 @@
${project.basedir}/src/gen/java
+ ${project.basedir}/src/gen/annotations
-
- maven-resources-plugin
- 3.1.0
-
-
- javacpp-parser
- generate-sources
-
- resources
-
-
-
-
-
- maven-compiler-plugin
- 3.8.0
-
-
- default-compile
-
-
- org.tensorflow.processor.operator.OperatorProcessor
-
-
- ${project.basedir}/src/gen/annotations
-
-
-
- javacpp-parser
- generate-sources
-
- compile
-
-
-
- org/tensorflow/internal/c_api/presets/*.java
-
-
-
-
-
-
- org.bytedeco
- javacpp
- ${javacpp.version}
-
- ${javacpp.platform.properties}
-
-
- platform.root
- ${javacpp.platform.root}
-
-
- platform.compiler
- ${javacpp.platform.compiler}
-
-
- platform.extension
- ${javacpp.platform.extension}
-
-
- ${project.build.outputDirectory}
-
- ${project.basedir}/
- ${project.basedir}/bazel-tensorflow-core-api/external/org_tensorflow/
-
-
- ${project.basedir}/bazel-bin/external/org_tensorflow/tensorflow/
-
-
- ${project.basedir}/bazel-tensorflow-core-api/external/mkl_linux/lib/
- ${project.basedir}/bazel-tensorflow-core-api/external/mkl_darwin/lib/
- ${project.basedir}/bazel-tensorflow-core-api/external/mkl_windows/lib/
-
-
- ${project.basedir}/src/main/native/eager_operation_builder_jni.cc
- ${project.basedir}/src/main/native/eager_operation_jni.cc
- ${project.basedir}/src/main/native/eager_session_jni.cc
- ${project.basedir}/src/main/native/exception_jni.cc
- ${project.basedir}/src/main/native/graph_jni.cc
- ${project.basedir}/src/main/native/graph_operation_builder_jni.cc
- ${project.basedir}/src/main/native/graph_operation_jni.cc
- ${project.basedir}/src/main/native/saved_model_bundle_jni.cc
- ${project.basedir}/src/main/native/server_jni.cc
- ${project.basedir}/src/main/native/session_jni.cc
- ${project.basedir}/src/main/native/tensorflow_jni.cc
- ${project.basedir}/src/main/native/tensor_jni.cc
- ${project.basedir}/src/main/native/utils_jni.cc
-
-
-
-
- javacpp-validate
- validate
-
- build
-
-
-
- javacpp-build
- initialize
-
- build
-
-
- ${javacpp.build.skip}
-
- bash
- ${project.basedir}/build.sh
-
-
- ${javacpp.platform.extension}
-
- ${project.basedir}
-
-
-
- javacpp-clean
- clean
-
- build
-
-
- ${javacpp.build.skip}
-
- bazel
- clean
-
- ${project.basedir}
-
-
-
- javacpp-parser
- generate-sources
-
- parse
-
-
- ${javacpp.parser.skip}
- ${project.basedir}/src/gen/java
- org.tensorflow.internal.c_api.presets.*
-
-
-
- javacpp-compiler
- process-classes
-
- build
-
-
- ${project.build.directory}/native/org/tensorflow/internal/c_api/${javacpp.platform}${javacpp.platform.extension}/
- ${javacpp.compiler.skip}
- org.tensorflow.internal.c_api.**
- true
- true
-
-
-
-
-
- maven-surefire-plugin
- 2.22.0
-
-
- -Djava.library.path=${project.build.directory}/native/org/tensorflow/internal/c_api/${javacpp.platform}${javacpp.platform.extension}
-
- ${project.build.directory}/native/
-
-
-
- maven-jar-plugin
- 3.1.0
-
-
- default-jar
- package
-
- jar
-
-
-
- org/tensorflow/**
-
-
-
-
- javacpp-${javacpp.platform}${javacpp.platform.extension}
- package
-
- jar
-
-
- ${javacpp.platform}${javacpp.platform.extension}
- true
-
-
- org/tensorflow/internal/c_api/${javacpp.platform}${javacpp.platform.extension}/
-
- ${project.build.directory}/native
-
- org/tensorflow/internal/c_api/${javacpp.platform}${javacpp.platform.extension}/*.exp
- org/tensorflow/internal/c_api/${javacpp.platform}${javacpp.platform.extension}/*.lib
- org/tensorflow/internal/c_api/${javacpp.platform}${javacpp.platform.extension}/*.obj
- org/tensorflow/internal/c_api/${javacpp.platform}${javacpp.platform.extension}/*mklml*
- org/tensorflow/internal/c_api/${javacpp.platform}${javacpp.platform.extension}/*iomp5*
- org/tensorflow/internal/c_api/${javacpp.platform}${javacpp.platform.extension}/*msvcr120*
-
-
-
-
-
+
maven-source-plugin
- 3.0.1
+ 3.3.0
attach-sources
- leave-disabled-to-not-generate-sources-twice-on-release
-
-
- attach-source
jar-no-fork
+
- maven-javadoc-plugin
- 3.0.1
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
- attach-javadocs
+
+ dist-download
+ test-compile
- jar
+ exec
- false
- 256m
- 2048m
-
- http://bytedeco.org/javacpp/apidocs
-
+ ${test.download.skip}
+ bash
+
+ scripts/test_download.sh
+ ${test.download.folder}
+
+
+ ${native.classifier}
+
+ ${project.basedir}
diff --git a/tensorflow-core/tensorflow-core-api/scripts/test_download.sh b/tensorflow-core/tensorflow-core-api/scripts/test_download.sh
new file mode 100755
index 00000000000..22666bb2b80
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/scripts/test_download.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+set -e
+
+DOWNLOAD_FOLDER="$1"
+
+case ${PLATFORM:-} in
+ 'linux-x86_64')
+ TEXT_WHEEL_URL='https://files.pythonhosted.org/packages/a9/b9/02707723d44e5d0fe5f7d27ba4237528bc654bac1b0f638efe37988584b1/tensorflow_text-2.20.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl'
+ ;;
+ 'linux-arm64')
+ TEXT_WHEEL_URL='https://files.pythonhosted.org/packages/17/99/b397038628a660a1446bb79c8be284443a28500d072227a77ebaeb5cd149/tensorflow_text-2.20.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl'
+ ;;
+ 'macosx-arm64')
+ TEXT_WHEEL_URL='https://files.pythonhosted.org/packages/61/b8/ccb0c3b048f268860f4c92f6bb7ab55c6af6c2fe4e26746c8dc384063915/tensorflow_text-2.20.1-cp313-cp313-macosx_11_0_arm64.whl'
+ ;;
+ *)
+ echo "TensorFlow Text distribution for ${PLATFORM} is not supported for download"
+ exit 0;
+esac
+
+mkdir -p "$DOWNLOAD_FOLDER"
+cd "$DOWNLOAD_FOLDER"
+
+if [[ -n "$TEXT_WHEEL_URL" ]]; then
+ echo "Downloading $TEXT_WHEEL_URL"
+ if [ ! -f 'tensorflow-text.whl' ]; then
+ curl -L $TEXT_WHEEL_URL --output 'tensorflow-text.whl'
+ fi
+ yes | unzip -q -u 'tensorflow-text.whl' # use 'yes' because for some reasons -u does not work on Windows
+fi
+
+ls -l .
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Abort.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Abort.pbtxt
new file mode 100644
index 00000000000..7d90f6d9fc7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Abort.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Abort"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Abs.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Abs.pbtxt
new file mode 100644
index 00000000000..5ae7934e3cf
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Abs.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Abs"
+ endpoint {
+ name: "math.Abs"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulateNV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulateNV2.pbtxt
new file mode 100644
index 00000000000..ae2d6e0c7fd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulateNV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AccumulateNV2"
+ endpoint {
+ name: "math.AccumulateN"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorApplyGradient.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorApplyGradient.pbtxt
new file mode 100644
index 00000000000..ecf18bfde4d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorApplyGradient.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AccumulatorApplyGradient"
+ endpoint {
+ name: "train.AccumulatorApplyGradient"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorNumAccumulated.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorNumAccumulated.pbtxt
new file mode 100644
index 00000000000..c9f5db313ee
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorNumAccumulated.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AccumulatorNumAccumulated"
+ endpoint {
+ name: "train.AccumulatorNumAccumulated"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorSetGlobalStep.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorSetGlobalStep.pbtxt
new file mode 100644
index 00000000000..53dbca3a28a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorSetGlobalStep.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AccumulatorSetGlobalStep"
+ endpoint {
+ name: "train.AccumulatorSetGlobalStep"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorTakeGradient.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorTakeGradient.pbtxt
new file mode 100644
index 00000000000..d8482bfef55
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AccumulatorTakeGradient.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AccumulatorTakeGradient"
+ endpoint {
+ name: "train.AccumulatorTakeGradient"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Acos.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Acos.pbtxt
new file mode 100644
index 00000000000..d730005b322
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Acos.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Acos"
+ endpoint {
+ name: "math.Acos"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Acosh.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Acosh.pbtxt
new file mode 100644
index 00000000000..7f880491eae
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Acosh.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Acosh"
+ endpoint {
+ name: "math.Acosh"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Add.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Add.pbtxt
new file mode 100644
index 00000000000..b213eb8dd32
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Add.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Add"
+ endpoint {
+ name: "math.Add"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AddManySparseToTensorsMap.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AddManySparseToTensorsMap.pbtxt
new file mode 100644
index 00000000000..8dcebf4c82b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AddManySparseToTensorsMap.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AddManySparseToTensorsMap"
+ endpoint {
+ name: "sparse.AddManySparseToTensorsMap"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AddN.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AddN.pbtxt
new file mode 100644
index 00000000000..8807e161276
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AddN.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AddN"
+ endpoint {
+ name: "math.AddN"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AddSparseToTensorsMap.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AddSparseToTensorsMap.pbtxt
new file mode 100644
index 00000000000..d46dc06cd51
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AddSparseToTensorsMap.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AddSparseToTensorsMap"
+ endpoint {
+ name: "sparse.AddSparseToTensorsMap"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_AddV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AddV2.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_AddV2.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_AddV2.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_AdjustContrast.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustContrast.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_AdjustContrast.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustContrast.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustContrastv2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustContrastv2.pbtxt
new file mode 100644
index 00000000000..bbf539a05de
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustContrastv2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AdjustContrastv2"
+ endpoint {
+ name: "image.AdjustContrast"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustHue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustHue.pbtxt
new file mode 100644
index 00000000000..9cfca205fb5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustHue.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AdjustHue"
+ endpoint {
+ name: "image.AdjustHue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustSaturation.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustSaturation.pbtxt
new file mode 100644
index 00000000000..679b1d48ab9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AdjustSaturation.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AdjustSaturation"
+ endpoint {
+ name: "image.AdjustSaturation"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_All.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_All.pbtxt
new file mode 100644
index 00000000000..89ab8929419
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_All.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "All"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AllCandidateSampler.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AllCandidateSampler.pbtxt
new file mode 100644
index 00000000000..2a260b630af
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AllCandidateSampler.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AllCandidateSampler"
+ endpoint {
+ name: "random.AllCandidateSampler"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AllToAll.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AllToAll.pbtxt
new file mode 100644
index 00000000000..1ce77f7d74a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AllToAll.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AllToAll"
+ endpoint {
+ name: "tpu.AllToAll"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Angle.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Angle.pbtxt
new file mode 100644
index 00000000000..fd3770221f8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Angle.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Angle"
+ endpoint {
+ name: "math.Angle"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousHashTable.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousHashTable.pbtxt
new file mode 100644
index 00000000000..5b60d123270
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousHashTable.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AnonymousHashTable"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousIterator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousIterator.pbtxt
new file mode 100644
index 00000000000..ae420ea5020
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousIterator.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "AnonymousIterator"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousIteratorV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousIteratorV2.pbtxt
new file mode 100644
index 00000000000..71b6959cf2d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousIteratorV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "AnonymousIteratorV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousIteratorV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousIteratorV3.pbtxt
new file mode 100644
index 00000000000..0f12f6f369c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousIteratorV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "AnonymousIteratorV3"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.AnonymousIterator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMemoryCache.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMemoryCache.pbtxt
new file mode 100644
index 00000000000..fcde7026956
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMemoryCache.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AnonymousMemoryCache"
+ endpoint {
+ name: "data.AnonymousMemoryCache"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMultiDeviceIterator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMultiDeviceIterator.pbtxt
new file mode 100644
index 00000000000..f7b39a05c9c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMultiDeviceIterator.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "AnonymousMultiDeviceIterator"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMultiDeviceIteratorV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMultiDeviceIteratorV3.pbtxt
new file mode 100644
index 00000000000..08238a57e52
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMultiDeviceIteratorV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "AnonymousMultiDeviceIteratorV3"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.AnonymousMultiDeviceIterator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMutableDenseHashTable.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMutableDenseHashTable.pbtxt
new file mode 100644
index 00000000000..fe75322c561
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMutableDenseHashTable.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AnonymousMutableDenseHashTable"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMutableHashTable.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMutableHashTable.pbtxt
new file mode 100644
index 00000000000..69f531da488
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMutableHashTable.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AnonymousMutableHashTable"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMutableHashTableOfTensors.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMutableHashTableOfTensors.pbtxt
new file mode 100644
index 00000000000..409abc6f6d0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousMutableHashTableOfTensors.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AnonymousMutableHashTableOfTensors"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousRandomSeedGenerator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousRandomSeedGenerator.pbtxt
new file mode 100644
index 00000000000..4c3c3cd98a6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousRandomSeedGenerator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AnonymousRandomSeedGenerator"
+ endpoint {
+ name: "random.AnonymousRandomSeedGenerator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousSeedGenerator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousSeedGenerator.pbtxt
new file mode 100644
index 00000000000..cf4c8f4f339
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AnonymousSeedGenerator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AnonymousSeedGenerator"
+ endpoint {
+ name: "random.AnonymousSeedGenerator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Any.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Any.pbtxt
new file mode 100644
index 00000000000..c96baa7525d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Any.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Any"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdaMax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdaMax.pbtxt
new file mode 100644
index 00000000000..b552249c876
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdaMax.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyAdaMax"
+ endpoint {
+ name: "train.ApplyAdaMax"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdadelta.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdadelta.pbtxt
new file mode 100644
index 00000000000..e16875bc976
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdadelta.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyAdadelta"
+ endpoint {
+ name: "train.ApplyAdadelta"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdagrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdagrad.pbtxt
new file mode 100644
index 00000000000..3de2b67d1b5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdagrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyAdagrad"
+ endpoint {
+ name: "train.ApplyAdagrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdagradDA.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdagradDA.pbtxt
new file mode 100644
index 00000000000..e51c4bd8155
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdagradDA.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyAdagradDA"
+ endpoint {
+ name: "train.ApplyAdagradDa"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdagradV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdagradV2.pbtxt
new file mode 100644
index 00000000000..cfa90ac82c2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdagradV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyAdagradV2"
+ endpoint {
+ name: "train.ApplyAdagradV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdam.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdam.pbtxt
new file mode 100644
index 00000000000..85ff2d1bad3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAdam.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyAdam"
+ endpoint {
+ name: "train.ApplyAdam"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAddSign.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAddSign.pbtxt
new file mode 100644
index 00000000000..21a5f40a078
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyAddSign.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyAddSign"
+ endpoint {
+ name: "train.ApplyAddSign"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyCenteredRMSProp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyCenteredRMSProp.pbtxt
new file mode 100644
index 00000000000..ec1b6380779
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyCenteredRMSProp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyCenteredRMSProp"
+ endpoint {
+ name: "train.ApplyCenteredRmsProp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ApplyFtrl.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyFtrl.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ApplyFtrl.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyFtrl.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyFtrlV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyFtrlV2.pbtxt
new file mode 100644
index 00000000000..08a86347aef
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyFtrlV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyFtrlV2"
+ endpoint {
+ name: "train.ApplyFtrl"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyGradientDescent.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyGradientDescent.pbtxt
new file mode 100644
index 00000000000..335095ef520
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyGradientDescent.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyGradientDescent"
+ endpoint {
+ name: "train.ApplyGradientDescent"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyMomentum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyMomentum.pbtxt
new file mode 100644
index 00000000000..4a7079316b4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyMomentum.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyMomentum"
+ endpoint {
+ name: "train.ApplyMomentum"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyPowerSign.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyPowerSign.pbtxt
new file mode 100644
index 00000000000..0a816803266
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyPowerSign.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyPowerSign"
+ endpoint {
+ name: "train.ApplyPowerSign"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyProximalAdagrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyProximalAdagrad.pbtxt
new file mode 100644
index 00000000000..774d00e707c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyProximalAdagrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyProximalAdagrad"
+ endpoint {
+ name: "train.ApplyProximalAdagrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyProximalGradientDescent.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyProximalGradientDescent.pbtxt
new file mode 100644
index 00000000000..3458df77763
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyProximalGradientDescent.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyProximalGradientDescent"
+ endpoint {
+ name: "train.ApplyProximalGradientDescent"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyRMSProp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyRMSProp.pbtxt
new file mode 100644
index 00000000000..259b5512e16
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApplyRMSProp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApplyRMSProp"
+ endpoint {
+ name: "train.ApplyRmsProp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApproxTopK.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApproxTopK.pbtxt
new file mode 100644
index 00000000000..51b0cc7c01f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApproxTopK.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApproxTopK"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ApproximateEqual.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApproximateEqual.pbtxt
new file mode 100644
index 00000000000..d392987d60a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ApproximateEqual.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ApproximateEqual"
+ endpoint {
+ name: "math.ApproximateEqual"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ArgMax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ArgMax.pbtxt
new file mode 100644
index 00000000000..5627186359b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ArgMax.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ArgMax"
+ endpoint {
+ name: "math.ArgMax"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ArgMin.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ArgMin.pbtxt
new file mode 100644
index 00000000000..e01e5f2e72b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ArgMin.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ArgMin"
+ endpoint {
+ name: "math.ArgMin"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AsString.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AsString.pbtxt
new file mode 100644
index 00000000000..a020c7aef85
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AsString.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AsString"
+ endpoint {
+ name: "dtypes.AsString"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Asin.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Asin.pbtxt
new file mode 100644
index 00000000000..7b71c08eede
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Asin.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Asin"
+ endpoint {
+ name: "math.Asin"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Asinh.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Asinh.pbtxt
new file mode 100644
index 00000000000..2a371a10071
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Asinh.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Asinh"
+ endpoint {
+ name: "math.Asinh"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Assert.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Assert.pbtxt
new file mode 100644
index 00000000000..44d1ce33dd7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Assert.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Assert"
+ endpoint {
+ name: "AssertThat"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AssertCardinalityDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssertCardinalityDataset.pbtxt
new file mode 100644
index 00000000000..fc93c13b627
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssertCardinalityDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "AssertCardinalityDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.AssertCardinalityDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AssertNextDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssertNextDataset.pbtxt
new file mode 100644
index 00000000000..d85694ae56e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssertNextDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "AssertNextDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.AssertNextDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AssertPrevDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssertPrevDataset.pbtxt
new file mode 100644
index 00000000000..246fdd58a4a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssertPrevDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AssertPrevDataset"
+ endpoint {
+ name: "data.AssertPrevDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Assign.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Assign.pbtxt
new file mode 100644
index 00000000000..51c43e54d2e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Assign.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Assign"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignAdd.pbtxt
new file mode 100644
index 00000000000..9f29218e945
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignAdd.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AssignAdd"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignAddVariableOp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignAddVariableOp.pbtxt
new file mode 100644
index 00000000000..f724f706878
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignAddVariableOp.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AssignAddVariableOp"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignSub.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignSub.pbtxt
new file mode 100644
index 00000000000..a492c335154
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignSub.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AssignSub"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignSubVariableOp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignSubVariableOp.pbtxt
new file mode 100644
index 00000000000..768f4c47169
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignSubVariableOp.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AssignSubVariableOp"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignVariableOp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignVariableOp.pbtxt
new file mode 100644
index 00000000000..9e61072ca68
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignVariableOp.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AssignVariableOp"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignVariableXlaConcatND.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignVariableXlaConcatND.pbtxt
new file mode 100644
index 00000000000..9bf3d7734a6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AssignVariableXlaConcatND.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AssignVariableXlaConcatND"
+ endpoint {
+ name: "xla.AssignVariableConcatND"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Atan.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Atan.pbtxt
new file mode 100644
index 00000000000..bb00076b52d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Atan.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Atan"
+ endpoint {
+ name: "math.Atan"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Atan2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Atan2.pbtxt
new file mode 100644
index 00000000000..f313a44b032
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Atan2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Atan2"
+ endpoint {
+ name: "math.Atan2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Atanh.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Atanh.pbtxt
new file mode 100644
index 00000000000..59e98471ce1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Atanh.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Atanh"
+ endpoint {
+ name: "math.Atanh"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AudioSpectrogram.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AudioSpectrogram.pbtxt
new file mode 100644
index 00000000000..8731927d50c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AudioSpectrogram.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AudioSpectrogram"
+ endpoint {
+ name: "audio.AudioSpectrogram"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_AudioSummary.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AudioSummary.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_AudioSummary.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_AudioSummary.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AudioSummaryV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AudioSummaryV2.pbtxt
new file mode 100644
index 00000000000..954dbf9bb50
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AudioSummaryV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AudioSummaryV2"
+ endpoint {
+ name: "summary.AudioSummary"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AutoShardDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AutoShardDataset.pbtxt
new file mode 100644
index 00000000000..75488eb84eb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AutoShardDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "AutoShardDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.AutoShardDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPool.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPool.pbtxt
new file mode 100644
index 00000000000..970557d9c96
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPool.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AvgPool"
+ endpoint {
+ name: "nn.AvgPool"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPool3D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPool3D.pbtxt
new file mode 100644
index 00000000000..be8667cf31c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPool3D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AvgPool3D"
+ endpoint {
+ name: "nn.AvgPool3d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPool3DGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPool3DGrad.pbtxt
new file mode 100644
index 00000000000..6bc2df28667
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPool3DGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AvgPool3DGrad"
+ endpoint {
+ name: "nn.AvgPool3dGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPoolGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPoolGrad.pbtxt
new file mode 100644
index 00000000000..097ba7213f1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_AvgPoolGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "AvgPoolGrad"
+ endpoint {
+ name: "nn.AvgPoolGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BandedTriangularSolve.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BandedTriangularSolve.pbtxt
new file mode 100644
index 00000000000..9cf217624c6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BandedTriangularSolve.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BandedTriangularSolve"
+ endpoint {
+ name: "linalg.BandedTriangularSolve"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Barrier.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Barrier.pbtxt
new file mode 100644
index 00000000000..7aada11ec00
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Barrier.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Barrier"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierClose.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierClose.pbtxt
new file mode 100644
index 00000000000..75d923401c4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierClose.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BarrierClose"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierIncompleteSize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierIncompleteSize.pbtxt
new file mode 100644
index 00000000000..53729fe5652
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierIncompleteSize.pbtxt
@@ -0,0 +1,8 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BarrierIncompleteSize"
+ out_arg {
+ name: "size"
+ rename_to: "output"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierInsertMany.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierInsertMany.pbtxt
new file mode 100644
index 00000000000..163cfbeae5b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierInsertMany.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BarrierInsertMany"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierReadySize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierReadySize.pbtxt
new file mode 100644
index 00000000000..f648bb15560
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierReadySize.pbtxt
@@ -0,0 +1,8 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BarrierReadySize"
+ out_arg {
+ name: "size"
+ rename_to: "output"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierTakeMany.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierTakeMany.pbtxt
new file mode 100644
index 00000000000..5c6508a6963
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BarrierTakeMany.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BarrierTakeMany"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Batch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Batch.pbtxt
new file mode 100644
index 00000000000..0204a66e576
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Batch.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "Batch"
+ visibility: VISIBLE
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchCholesky.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchCholesky.pbtxt
new file mode 100644
index 00000000000..c1cdb6b892e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchCholesky.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchCholesky"
+ endpoint {
+ name: "linalg.BatchCholesky"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchCholeskyGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchCholeskyGrad.pbtxt
new file mode 100644
index 00000000000..c8e9b4060e7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchCholeskyGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchCholeskyGrad"
+ endpoint {
+ name: "linalg.BatchCholeskyGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_BatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchDataset.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_BatchDataset.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_BatchDataset.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchDatasetV2.pbtxt
new file mode 100644
index 00000000000..4fb0ad6f29c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "BatchDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.BatchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFFT.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFFT.pbtxt
new file mode 100644
index 00000000000..cf02316b08c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFFT.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchFFT"
+ endpoint {
+ name: "signal.BatchFft"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFFT2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFFT2D.pbtxt
new file mode 100644
index 00000000000..4b09c73a82b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFFT2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchFFT2D"
+ endpoint {
+ name: "signal.BatchFft2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFFT3D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFFT3D.pbtxt
new file mode 100644
index 00000000000..0b4cdfac071
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFFT3D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchFFT3D"
+ endpoint {
+ name: "signal.BatchFft3d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFunction.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFunction.pbtxt
new file mode 100644
index 00000000000..2160e9f7b8a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchFunction.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchFunction"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchIFFT.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchIFFT.pbtxt
new file mode 100644
index 00000000000..491d21ad4c4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchIFFT.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchIFFT"
+ endpoint {
+ name: "signal.BatchIfft"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchIFFT2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchIFFT2D.pbtxt
new file mode 100644
index 00000000000..61a773b3f76
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchIFFT2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchIFFT2D"
+ endpoint {
+ name: "signal.BatchIfft2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchIFFT3D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchIFFT3D.pbtxt
new file mode 100644
index 00000000000..6111f4c6006
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchIFFT3D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchIFFT3D"
+ endpoint {
+ name: "signal.BatchIfft3d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatMul.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatMul.pbtxt
new file mode 100644
index 00000000000..f973cd5b664
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatMul.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "BatchMatMul"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatMulV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatMulV2.pbtxt
new file mode 100644
index 00000000000..a3fd55b55f5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatMulV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "BatchMatMulV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatMulV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatMulV3.pbtxt
new file mode 100644
index 00000000000..8a70e8e6e55
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatMulV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchMatMulV3"
+ endpoint {
+ name: "train.BatchMatMul"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixBandPart.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixBandPart.pbtxt
new file mode 100644
index 00000000000..af80b346df8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixBandPart.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchMatrixBandPart"
+ endpoint {
+ name: "linalg.BatchMatrixBandPart"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixDeterminant.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixDeterminant.pbtxt
new file mode 100644
index 00000000000..ac3c9b2a5ec
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixDeterminant.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchMatrixDeterminant"
+ endpoint {
+ name: "linalg.BatchMatrixDeterminant"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixDiag.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixDiag.pbtxt
new file mode 100644
index 00000000000..c30ccfb3e28
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixDiag.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchMatrixDiag"
+ endpoint {
+ name: "linalg.BatchMatrixDiag"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixDiagPart.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixDiagPart.pbtxt
new file mode 100644
index 00000000000..cf215430e8e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixDiagPart.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchMatrixDiagPart"
+ endpoint {
+ name: "linalg.BatchMatrixDiagPart"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixInverse.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixInverse.pbtxt
new file mode 100644
index 00000000000..113f9e268d7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixInverse.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchMatrixInverse"
+ endpoint {
+ name: "linalg.BatchMatrixInverse"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixSetDiag.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixSetDiag.pbtxt
new file mode 100644
index 00000000000..4d402f61466
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixSetDiag.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchMatrixSetDiag"
+ endpoint {
+ name: "linalg.BatchMatrixSetDiag"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixSolve.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixSolve.pbtxt
new file mode 100644
index 00000000000..2b5a9c70205
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixSolve.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchMatrixSolve"
+ endpoint {
+ name: "linalg.BatchMatrixSolve"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixSolveLs.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixSolveLs.pbtxt
new file mode 100644
index 00000000000..b95a4b7f1aa
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixSolveLs.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchMatrixSolveLs"
+ endpoint {
+ name: "linalg.BatchMatrixSolveLs"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixTriangularSolve.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixTriangularSolve.pbtxt
new file mode 100644
index 00000000000..39f614c58a2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchMatrixTriangularSolve.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchMatrixTriangularSolve"
+ endpoint {
+ name: "linalg.BatchMatrixTriangularSolve"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchNormWithGlobalNormalization.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchNormWithGlobalNormalization.pbtxt
new file mode 100644
index 00000000000..0b8ed84a609
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchNormWithGlobalNormalization.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchNormWithGlobalNormalization"
+ endpoint {
+ name: "nn.BatchNormWithGlobalNormalization"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchNormWithGlobalNormalizationGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchNormWithGlobalNormalizationGrad.pbtxt
new file mode 100644
index 00000000000..4aa3b421147
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchNormWithGlobalNormalizationGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchNormWithGlobalNormalizationGrad"
+ endpoint {
+ name: "nn.BatchNormWithGlobalNormalizationGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_BatchSelfAdjointEig.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchSelfAdjointEig.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_BatchSelfAdjointEig.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_BatchSelfAdjointEig.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchSelfAdjointEigV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchSelfAdjointEigV2.pbtxt
new file mode 100644
index 00000000000..4137098cf32
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchSelfAdjointEigV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchSelfAdjointEigV2"
+ endpoint {
+ name: "linalg.BatchSelfAdjointEig"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchSvd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchSvd.pbtxt
new file mode 100644
index 00000000000..73f619b157c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchSvd.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchSvd"
+ endpoint {
+ name: "linalg.BatchSvd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchToSpace.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchToSpace.pbtxt
new file mode 100644
index 00000000000..2cd926bf567
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchToSpace.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchToSpace"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchToSpaceND.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchToSpaceND.pbtxt
new file mode 100644
index 00000000000..93d4335ac31
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BatchToSpaceND.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BatchToSpaceND"
+ endpoint {
+ name: "BatchToSpaceNd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI0.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI0.pbtxt
new file mode 100644
index 00000000000..88301e94ba7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI0.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselI0"
+ endpoint {
+ name: "math.BesselI0"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI0e.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI0e.pbtxt
new file mode 100644
index 00000000000..f80adf8b7e6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI0e.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselI0e"
+ endpoint {
+ name: "math.BesselI0e"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI1.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI1.pbtxt
new file mode 100644
index 00000000000..bbba9f7549f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI1.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselI1"
+ endpoint {
+ name: "math.BesselI1"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI1e.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI1e.pbtxt
new file mode 100644
index 00000000000..e91b37684b8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselI1e.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselI1e"
+ endpoint {
+ name: "math.BesselI1e"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselJ0.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselJ0.pbtxt
new file mode 100644
index 00000000000..1898e526094
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselJ0.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselJ0"
+ endpoint {
+ name: "math.special.BesselJ0"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselJ1.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselJ1.pbtxt
new file mode 100644
index 00000000000..cbe95c525cc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselJ1.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselJ1"
+ endpoint {
+ name: "math.special.BesselJ1"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK0.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK0.pbtxt
new file mode 100644
index 00000000000..ba380554645
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK0.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselK0"
+ endpoint {
+ name: "math.special.BesselK0"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK0e.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK0e.pbtxt
new file mode 100644
index 00000000000..09659504093
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK0e.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselK0e"
+ endpoint {
+ name: "math.special.BesselK0e"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK1.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK1.pbtxt
new file mode 100644
index 00000000000..91c3f998864
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK1.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselK1"
+ endpoint {
+ name: "math.special.BesselK1"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK1e.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK1e.pbtxt
new file mode 100644
index 00000000000..334c1025b5f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselK1e.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselK1e"
+ endpoint {
+ name: "math.special.BesselK1e"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselY0.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselY0.pbtxt
new file mode 100644
index 00000000000..a813593994b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselY0.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselY0"
+ endpoint {
+ name: "math.special.BesselY0"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselY1.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselY1.pbtxt
new file mode 100644
index 00000000000..cb7a004e1a2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BesselY1.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BesselY1"
+ endpoint {
+ name: "math.special.BesselY1"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Betainc.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Betainc.pbtxt
new file mode 100644
index 00000000000..1931537fa76
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Betainc.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Betainc"
+ endpoint {
+ name: "math.Betainc"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BiasAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BiasAdd.pbtxt
new file mode 100644
index 00000000000..fa509206f83
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BiasAdd.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BiasAdd"
+ endpoint {
+ name: "nn.BiasAdd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BiasAddGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BiasAddGrad.pbtxt
new file mode 100644
index 00000000000..f36f4d41ca5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BiasAddGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BiasAddGrad"
+ endpoint {
+ name: "nn.BiasAddGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_BiasAddV1.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BiasAddV1.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_BiasAddV1.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_BiasAddV1.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_BigQueryReader.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BigQueryReader.pbtxt
similarity index 80%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_BigQueryReader.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_BigQueryReader.pbtxt
index 5b6e11687a2..b98f8304793 100644
--- a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_BigQueryReader.pbtxt
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BigQueryReader.pbtxt
@@ -1,4 +1,5 @@
op {
+ visibility: VISIBLE
graph_op_name: "BigQueryReader"
endpoint {
name: "io.BigQueryReader"
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Bincount.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Bincount.pbtxt
new file mode 100644
index 00000000000..d16999a510b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Bincount.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Bincount"
+ endpoint {
+ name: "math.Bincount"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Bitcast.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Bitcast.pbtxt
new file mode 100644
index 00000000000..0b55c90620a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Bitcast.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Bitcast"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BitwiseAnd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BitwiseAnd.pbtxt
new file mode 100644
index 00000000000..0b791ac5dda
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BitwiseAnd.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BitwiseAnd"
+ endpoint {
+ name: "bitwise.BitwiseAnd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BitwiseOr.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BitwiseOr.pbtxt
new file mode 100644
index 00000000000..45796b0bf30
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BitwiseOr.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BitwiseOr"
+ endpoint {
+ name: "bitwise.BitwiseOr"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BitwiseXor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BitwiseXor.pbtxt
new file mode 100644
index 00000000000..c83fee544c6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BitwiseXor.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BitwiseXor"
+ endpoint {
+ name: "bitwise.BitwiseXor"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTM.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTM.pbtxt
new file mode 100644
index 00000000000..4da75127e34
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTM.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "BlockLSTM"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTMGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTMGrad.pbtxt
new file mode 100644
index 00000000000..425aa327062
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTMGrad.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "BlockLSTMGrad"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTMGradV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTMGradV2.pbtxt
new file mode 100644
index 00000000000..d88c6c62f86
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTMGradV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BlockLSTMGradV2"
+ endpoint {
+ name: "nn.BlockLSTMGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTMV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTMV2.pbtxt
new file mode 100644
index 00000000000..f20e824d7dc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BlockLSTMV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BlockLSTMV2"
+ endpoint {
+ name: "nn.BlockLSTM"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesAggregateStats.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesAggregateStats.pbtxt
new file mode 100644
index 00000000000..58978e6b6ba
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesAggregateStats.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesAggregateStats"
+ endpoint {
+ name: "estimator.BoostedTreesAggregateStats"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesBucketize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesBucketize.pbtxt
new file mode 100644
index 00000000000..d55fffeb182
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesBucketize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesBucketize"
+ endpoint {
+ name: "estimator.BoostedTreesBucketize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCalculateBestFeatureSplit.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCalculateBestFeatureSplit.pbtxt
new file mode 100644
index 00000000000..43ce3d8a8b8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCalculateBestFeatureSplit.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesCalculateBestFeatureSplit"
+ endpoint {
+ name: "estimator.BoostedTreesCalculateBestFeatureSplit"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCalculateBestFeatureSplitV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCalculateBestFeatureSplitV2.pbtxt
new file mode 100644
index 00000000000..d920e9bf6b5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCalculateBestFeatureSplitV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesCalculateBestFeatureSplitV2"
+ endpoint {
+ name: "estimator.BoostedTreesCalculateBestFeatureSplitV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCalculateBestGainsPerFeature.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCalculateBestGainsPerFeature.pbtxt
new file mode 100644
index 00000000000..cab624efd61
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCalculateBestGainsPerFeature.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesCalculateBestGainsPerFeature"
+ endpoint {
+ name: "estimator.BoostedTreesCalculateBestGainsPerFeature"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCenterBias.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCenterBias.pbtxt
new file mode 100644
index 00000000000..055cb5b067d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCenterBias.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesCenterBias"
+ endpoint {
+ name: "estimator.BoostedTreesCenterBias"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCreateEnsemble.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCreateEnsemble.pbtxt
new file mode 100644
index 00000000000..01e25eb2270
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCreateEnsemble.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesCreateEnsemble"
+ endpoint {
+ name: "estimator.BoostedTreesCreateEnsemble"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCreateQuantileStreamResource.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCreateQuantileStreamResource.pbtxt
new file mode 100644
index 00000000000..7105d2a13ca
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesCreateQuantileStreamResource.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesCreateQuantileStreamResource"
+ endpoint {
+ name: "estimator.BoostedTreesCreateQuantileStreamResource"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesDeserializeEnsemble.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesDeserializeEnsemble.pbtxt
new file mode 100644
index 00000000000..7dbb508bad1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesDeserializeEnsemble.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesDeserializeEnsemble"
+ endpoint {
+ name: "estimator.BoostedTreesDeserializeEnsemble"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesEnsembleResourceHandleOp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesEnsembleResourceHandleOp.pbtxt
new file mode 100644
index 00000000000..43f0f618a9d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesEnsembleResourceHandleOp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesEnsembleResourceHandleOp"
+ endpoint {
+ name: "estimator.BoostedTreesEnsembleResourceHandleOp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesExampleDebugOutputs.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesExampleDebugOutputs.pbtxt
new file mode 100644
index 00000000000..0768f7ea464
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesExampleDebugOutputs.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesExampleDebugOutputs"
+ endpoint {
+ name: "estimator.BoostedTreesExampleDebugOutputs"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesFlushQuantileSummaries.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesFlushQuantileSummaries.pbtxt
new file mode 100644
index 00000000000..c5949350c42
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesFlushQuantileSummaries.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesFlushQuantileSummaries"
+ endpoint {
+ name: "estimator.BoostedTreesFlushQuantileSummaries"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesGetEnsembleStates.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesGetEnsembleStates.pbtxt
new file mode 100644
index 00000000000..1973e3ce0b6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesGetEnsembleStates.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesGetEnsembleStates"
+ endpoint {
+ name: "estimator.BoostedTreesGetEnsembleStates"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesMakeQuantileSummaries.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesMakeQuantileSummaries.pbtxt
new file mode 100644
index 00000000000..f4de8855e9a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesMakeQuantileSummaries.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesMakeQuantileSummaries"
+ endpoint {
+ name: "estimator.BoostedTreesMakeQuantileSummaries"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesMakeStatsSummary.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesMakeStatsSummary.pbtxt
new file mode 100644
index 00000000000..5414e2aae97
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesMakeStatsSummary.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesMakeStatsSummary"
+ endpoint {
+ name: "estimator.BoostedTreesMakeStatsSummary"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesPredict.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesPredict.pbtxt
new file mode 100644
index 00000000000..7c93fcfdfc2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesPredict.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesPredict"
+ endpoint {
+ name: "estimator.BoostedTreesPredict"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceAddSummaries.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceAddSummaries.pbtxt
new file mode 100644
index 00000000000..ab449a57d5c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceAddSummaries.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesQuantileStreamResourceAddSummaries"
+ endpoint {
+ name: "estimator.BoostedTreesQuantileStreamResourceAddSummaries"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceDeserialize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceDeserialize.pbtxt
new file mode 100644
index 00000000000..45103ae088a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceDeserialize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesQuantileStreamResourceDeserialize"
+ endpoint {
+ name: "estimator.BoostedTreesQuantileStreamResourceDeserialize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceFlush.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceFlush.pbtxt
new file mode 100644
index 00000000000..16b68e4ac83
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceFlush.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesQuantileStreamResourceFlush"
+ endpoint {
+ name: "estimator.BoostedTreesQuantileStreamResourceFlush"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceGetBucketBoundaries.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceGetBucketBoundaries.pbtxt
new file mode 100644
index 00000000000..990abb4effe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceGetBucketBoundaries.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesQuantileStreamResourceGetBucketBoundaries"
+ endpoint {
+ name: "estimator.BoostedTreesQuantileStreamResourceGetBucketBoundaries"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceHandleOp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceHandleOp.pbtxt
new file mode 100644
index 00000000000..12600896ec9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesQuantileStreamResourceHandleOp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesQuantileStreamResourceHandleOp"
+ endpoint {
+ name: "estimator.BoostedTreesQuantileStreamResourceHandleOp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesSerializeEnsemble.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesSerializeEnsemble.pbtxt
new file mode 100644
index 00000000000..5880c132063
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesSerializeEnsemble.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesSerializeEnsemble"
+ endpoint {
+ name: "estimator.BoostedTreesSerializeEnsemble"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesSparseAggregateStats.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesSparseAggregateStats.pbtxt
new file mode 100644
index 00000000000..109f3bae4e2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesSparseAggregateStats.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesSparseAggregateStats"
+ endpoint {
+ name: "estimator.BoostedTreesSparseAggregateStats"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesSparseCalculateBestFeatureSplit.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesSparseCalculateBestFeatureSplit.pbtxt
new file mode 100644
index 00000000000..aae4c225f7e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesSparseCalculateBestFeatureSplit.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesSparseCalculateBestFeatureSplit"
+ endpoint {
+ name: "estimator.BoostedTreesSparseCalculateBestFeatureSplit"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesTrainingPredict.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesTrainingPredict.pbtxt
new file mode 100644
index 00000000000..d4696dc6182
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesTrainingPredict.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesTrainingPredict"
+ endpoint {
+ name: "estimator.BoostedTreesTrainingPredict"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesUpdateEnsemble.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesUpdateEnsemble.pbtxt
new file mode 100644
index 00000000000..77f30bc409f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesUpdateEnsemble.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesUpdateEnsemble"
+ endpoint {
+ name: "estimator.BoostedTreesUpdateEnsemble"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesUpdateEnsembleV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesUpdateEnsembleV2.pbtxt
new file mode 100644
index 00000000000..df4e978b422
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BoostedTreesUpdateEnsembleV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "BoostedTreesUpdateEnsembleV2"
+ endpoint {
+ name: "estimator.BoostedTreesUpdateEnsembleV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BroadcastArgs.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BroadcastArgs.pbtxt
new file mode 100644
index 00000000000..ebc44eacd85
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BroadcastArgs.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BroadcastArgs"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BroadcastGradientArgs.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BroadcastGradientArgs.pbtxt
new file mode 100644
index 00000000000..6e6f0d1b9b7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BroadcastGradientArgs.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BroadcastGradientArgs"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BroadcastTo.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BroadcastTo.pbtxt
new file mode 100644
index 00000000000..c5b07af0a18
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BroadcastTo.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "BroadcastTo"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Bucketize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Bucketize.pbtxt
new file mode 100644
index 00000000000..a600ac3634d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Bucketize.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Bucketize"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_BytesProducedStatsDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_BytesProducedStatsDataset.pbtxt
new file mode 100644
index 00000000000..b9d81b54105
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_BytesProducedStatsDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "BytesProducedStatsDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.BytesProducedStatsDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CSRSparseMatrixComponents.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CSRSparseMatrixComponents.pbtxt
new file mode 100644
index 00000000000..24b7e34e16b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CSRSparseMatrixComponents.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CSRSparseMatrixComponents"
+ endpoint {
+ name: "linalg.sparse.CSRSparseMatrixComponents"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CSRSparseMatrixToDense.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CSRSparseMatrixToDense.pbtxt
new file mode 100644
index 00000000000..62baeff7b47
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CSRSparseMatrixToDense.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CSRSparseMatrixToDense"
+ endpoint {
+ name: "linalg.sparse.CSRSparseMatrixToDense"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CSRSparseMatrixToSparseTensor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CSRSparseMatrixToSparseTensor.pbtxt
new file mode 100644
index 00000000000..6be3fd9219b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CSRSparseMatrixToSparseTensor.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CSRSparseMatrixToSparseTensor"
+ endpoint {
+ name: "linalg.sparse.CSRSparseMatrixToSparseTensor"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CSVDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CSVDataset.pbtxt
new file mode 100644
index 00000000000..b4637f34b40
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CSVDataset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CSVDataset"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CSVDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CSVDatasetV2.pbtxt
new file mode 100644
index 00000000000..2c2848e9a74
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CSVDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "CSVDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.CSVDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCBeamSearchDecoder.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCBeamSearchDecoder.pbtxt
new file mode 100644
index 00000000000..113d683f6be
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCBeamSearchDecoder.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CTCBeamSearchDecoder"
+ endpoint {
+ name: "nn.CtcBeamSearchDecoder"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCGreedyDecoder.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCGreedyDecoder.pbtxt
new file mode 100644
index 00000000000..f82f1789f23
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCGreedyDecoder.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CTCGreedyDecoder"
+ endpoint {
+ name: "nn.CtcGreedyDecoder"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCLoss.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCLoss.pbtxt
new file mode 100644
index 00000000000..0c4d2f7843a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCLoss.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CTCLoss"
+ endpoint {
+ name: "nn.CtcLoss"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCLossV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCLossV2.pbtxt
new file mode 100644
index 00000000000..4ea107e1445
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CTCLossV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CTCLossV2"
+ endpoint {
+ name: "nn.CTCLossV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CacheDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CacheDataset.pbtxt
new file mode 100644
index 00000000000..4b4b9bb3b53
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CacheDataset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CacheDataset"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CacheDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CacheDatasetV2.pbtxt
new file mode 100644
index 00000000000..8c5b58383c3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CacheDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "CacheDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.CacheDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Case.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Case.pbtxt
new file mode 100644
index 00000000000..eb371486f04
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Case.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Case"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Cast.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cast.pbtxt
new file mode 100644
index 00000000000..bd6b1b27204
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cast.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Cast"
+ endpoint {
+ name: "dtypes.Cast"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Ceil.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Ceil.pbtxt
new file mode 100644
index 00000000000..41c23c44712
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Ceil.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Ceil"
+ endpoint {
+ name: "math.Ceil"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CheckNumerics.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CheckNumerics.pbtxt
new file mode 100644
index 00000000000..7bf14dcba10
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CheckNumerics.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CheckNumerics"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CheckNumericsV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CheckNumericsV2.pbtxt
new file mode 100644
index 00000000000..3085f985715
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CheckNumericsV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CheckNumericsV2"
+ endpoint {
+ name: "debugging.CheckNumerics"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CheckPinned.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CheckPinned.pbtxt
new file mode 100644
index 00000000000..fff873c9bbf
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CheckPinned.pbtxt
@@ -0,0 +1,6 @@
+op {
+ graph_op_name: "CheckPinned"
+ endpoint {
+ name: "CheckPinned"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Cholesky.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cholesky.pbtxt
new file mode 100644
index 00000000000..0c1f48317d1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cholesky.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Cholesky"
+ endpoint {
+ name: "linalg.Cholesky"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CholeskyGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CholeskyGrad.pbtxt
new file mode 100644
index 00000000000..22e4aa89a6f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CholeskyGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CholeskyGrad"
+ endpoint {
+ name: "linalg.CholeskyGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ChooseFastestBranchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ChooseFastestBranchDataset.pbtxt
new file mode 100644
index 00000000000..b3be1a9cd3b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ChooseFastestBranchDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ChooseFastestBranchDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ChooseFastestBranchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ChooseFastestDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ChooseFastestDataset.pbtxt
new file mode 100644
index 00000000000..a25508efebc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ChooseFastestDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ChooseFastestDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ChooseFastestDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ClipByValue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ClipByValue.pbtxt
new file mode 100644
index 00000000000..b6c8fae964f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ClipByValue.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ClipByValue"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CloseSummaryWriter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CloseSummaryWriter.pbtxt
new file mode 100644
index 00000000000..2d1ca9631d3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CloseSummaryWriter.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CloseSummaryWriter"
+ endpoint {
+ name: "summary.CloseSummaryWriter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollateTPUEmbeddingMemory.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollateTPUEmbeddingMemory.pbtxt
new file mode 100644
index 00000000000..7e2b1aef93b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollateTPUEmbeddingMemory.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CollateTPUEmbeddingMemory"
+ endpoint {
+ name: "tpu.CollateTPUEmbeddingMemory"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveAllToAllV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveAllToAllV2.pbtxt
new file mode 100644
index 00000000000..6460f0455c0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveAllToAllV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CollectiveAllToAllV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveAllToAllV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveAllToAllV3.pbtxt
new file mode 100644
index 00000000000..b2356ee5b36
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveAllToAllV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CollectiveAllToAllV3"
+ endpoint {
+ name: "collective.CollectiveAllToAll"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveAssignGroupV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveAssignGroupV2.pbtxt
new file mode 100644
index 00000000000..d414cd66079
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveAssignGroupV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CollectiveAssignGroupV2"
+ endpoint {
+ name: "collective.CollectiveAssignGroup"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastRecv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastRecv.pbtxt
new file mode 100644
index 00000000000..48feac2efa0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastRecv.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CollectiveBcastRecv"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastRecvV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastRecvV2.pbtxt
new file mode 100644
index 00000000000..be74a35b7f9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastRecvV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CollectiveBcastRecvV2"
+ endpoint {
+ name: "collective.CollectiveBcastRecv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastSend.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastSend.pbtxt
new file mode 100644
index 00000000000..3d444c00bf2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastSend.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CollectiveBcastSend"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastSendV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastSendV2.pbtxt
new file mode 100644
index 00000000000..1fb22afed54
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveBcastSendV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CollectiveBcastSendV2"
+ endpoint {
+ name: "collective.CollectiveBcastSend"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveGather.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveGather.pbtxt
new file mode 100644
index 00000000000..8479efea1a8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveGather.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CollectiveGather"
+ visibility: SKIP
+}
\ No newline at end of file
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveGatherV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveGatherV2.pbtxt
new file mode 100644
index 00000000000..d220f2ab11f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveGatherV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CollectiveGatherV2"
+ endpoint: {
+ name: "collective.CollectiveGather"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveInitializeCommunicator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveInitializeCommunicator.pbtxt
new file mode 100644
index 00000000000..fba9e620843
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveInitializeCommunicator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CollectiveInitializeCommunicator"
+ endpoint {
+ name: "collective.CollectiveInitializeCommunicator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectivePermute.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectivePermute.pbtxt
new file mode 100644
index 00000000000..5fa5a659df4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectivePermute.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CollectivePermute"
+ endpoint {
+ name: "collective.CollectivePermute"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduce.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduce.pbtxt
new file mode 100644
index 00000000000..e810cfb06da
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduce.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CollectiveReduce"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduceScatterV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduceScatterV2.pbtxt
new file mode 100644
index 00000000000..b36c3830ca1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduceScatterV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CollectiveReduceScatterV2"
+ endpoint {
+ name: "collective.CollectiveReduceScatter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduceV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduceV2.pbtxt
new file mode 100644
index 00000000000..4fe3c35b51e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduceV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CollectiveReduceV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduceV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduceV3.pbtxt
new file mode 100644
index 00000000000..3a2779461d2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CollectiveReduceV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CollectiveReduceV3"
+ endpoint {
+ name: "collective.CollectiveReduce"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CombinedNonMaxSuppression.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CombinedNonMaxSuppression.pbtxt
new file mode 100644
index 00000000000..836a46a42b2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CombinedNonMaxSuppression.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CombinedNonMaxSuppression"
+ endpoint {
+ name: "image.CombinedNonMaxSuppression"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_CompareAndBitpack.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CompareAndBitpack.pbtxt
similarity index 81%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_CompareAndBitpack.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_CompareAndBitpack.pbtxt
index d744fbbc90f..4e5a5e1a2af 100644
--- a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_CompareAndBitpack.pbtxt
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CompareAndBitpack.pbtxt
@@ -1,4 +1,5 @@
op {
+ visibility: VISIBLE
graph_op_name: "CompareAndBitpack"
endpoint {
name: "math.CompareAndBitpack"
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Complex.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Complex.pbtxt
new file mode 100644
index 00000000000..f649707afb8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Complex.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Complex"
+ endpoint {
+ name: "dtypes.Complex"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ComplexAbs.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComplexAbs.pbtxt
new file mode 100644
index 00000000000..be6aa59c92e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComplexAbs.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ComplexAbs"
+ endpoint {
+ name: "math.ComplexAbs"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CompositeTensorVariantFromComponents.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CompositeTensorVariantFromComponents.pbtxt
new file mode 100644
index 00000000000..adb638940d8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CompositeTensorVariantFromComponents.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CompositeTensorVariantFromComponents"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CompositeTensorVariantToComponents.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CompositeTensorVariantToComponents.pbtxt
new file mode 100644
index 00000000000..b34054ead77
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CompositeTensorVariantToComponents.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CompositeTensorVariantToComponents"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CompressElement.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CompressElement.pbtxt
new file mode 100644
index 00000000000..09a543581d2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CompressElement.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CompressElement"
+ endpoint {
+ name: "data.CompressElement"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeAccidentalHits.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeAccidentalHits.pbtxt
new file mode 100644
index 00000000000..8c4d834016b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeAccidentalHits.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ComputeAccidentalHits"
+ endpoint {
+ name: "nn.ComputeAccidentalHits"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeBatchSize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeBatchSize.pbtxt
new file mode 100644
index 00000000000..826f51ac87d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeBatchSize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ComputeBatchSize"
+ endpoint {
+ name: "train.ComputeBatchSize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataSize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataSize.pbtxt
new file mode 100644
index 00000000000..3bedfe49d78
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataSize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ComputeDedupDataSize"
+ visibility: SKIP
+ endpoint {
+ name: "tpu.ComputeDedupDataSize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataSizeV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataSizeV2.pbtxt
new file mode 100644
index 00000000000..af5bdc31f13
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataSizeV2.pbtxt
@@ -0,0 +1,6 @@
+op {
+ graph_op_name: "ComputeDedupDataSizeV2"
+ endpoint {
+ name: "tpu.ComputeDedupDataSize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataTupleMask.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataTupleMask.pbtxt
new file mode 100644
index 00000000000..cb0cd71c3f3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataTupleMask.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "ComputeDedupDataTupleMask"
+ endpoint {
+ name: "tpu.ComputeDedupDataTupleMask"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataTupleMaskV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataTupleMaskV2.pbtxt
new file mode 100644
index 00000000000..75e34703b13
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ComputeDedupDataTupleMaskV2.pbtxt
@@ -0,0 +1,6 @@
+op {
+ graph_op_name: "ComputeDedupDataTupleMaskV2"
+ endpoint {
+ name: "tpu.ComputeDedupDataTupleMask"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Concat.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Concat.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Concat.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Concat.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConcatOffset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConcatOffset.pbtxt
new file mode 100644
index 00000000000..876db502770
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConcatOffset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConcatOffset"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConcatV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConcatV2.pbtxt
new file mode 100644
index 00000000000..9bf9a9b8648
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConcatV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConcatV2"
+ endpoint {
+ name: "Concat"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConcatenateDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConcatenateDataset.pbtxt
new file mode 100644
index 00000000000..d4878f5925b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConcatenateDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ConcatenateDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ConcatenateDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConditionalAccumulator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConditionalAccumulator.pbtxt
new file mode 100644
index 00000000000..3e8dd5299a1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConditionalAccumulator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConditionalAccumulator"
+ endpoint {
+ name: "train.ConditionalAccumulator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureAndInitializeGlobalTPU.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureAndInitializeGlobalTPU.pbtxt
new file mode 100644
index 00000000000..5ee6c848dee
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureAndInitializeGlobalTPU.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConfigureAndInitializeGlobalTPU"
+ endpoint {
+ name: "tpu.ConfigureAndInitializeGlobalTPU"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureDistributedTPU.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureDistributedTPU.pbtxt
new file mode 100644
index 00000000000..1dc468d8666
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureDistributedTPU.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConfigureDistributedTPU"
+ endpoint {
+ name: "tpu.ConfigureDistributedTPU"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureTPUEmbedding.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureTPUEmbedding.pbtxt
new file mode 100644
index 00000000000..1cd8caf6d34
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureTPUEmbedding.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConfigureTPUEmbedding"
+ endpoint {
+ name: "tpu.ConfigureTPUEmbedding"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureTPUEmbeddingHost.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureTPUEmbeddingHost.pbtxt
new file mode 100644
index 00000000000..aa4265b80ba
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureTPUEmbeddingHost.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConfigureTPUEmbeddingHost"
+ endpoint {
+ name: "tpu.ConfigureTPUEmbeddingHost"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureTPUEmbeddingMemory.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureTPUEmbeddingMemory.pbtxt
new file mode 100644
index 00000000000..51b142d5c15
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConfigureTPUEmbeddingMemory.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConfigureTPUEmbeddingMemory"
+ endpoint {
+ name: "tpu.ConfigureTPUEmbeddingMemory"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Conj.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conj.pbtxt
new file mode 100644
index 00000000000..0fb1ddc5788
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conj.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Conj"
+ endpoint {
+ name: "math.Conj"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConjugateTranspose.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConjugateTranspose.pbtxt
new file mode 100644
index 00000000000..42fad3b7ee6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConjugateTranspose.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConjugateTranspose"
+ endpoint {
+ name: "linalg.ConjugateTranspose"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConnectTPUEmbeddingHosts.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConnectTPUEmbeddingHosts.pbtxt
new file mode 100644
index 00000000000..030cd71468e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConnectTPUEmbeddingHosts.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConnectTPUEmbeddingHosts"
+ endpoint {
+ name: "tpu.ConnectTPUEmbeddingHosts"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Const.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Const.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Const.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Const.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConsumeMutexLock.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConsumeMutexLock.pbtxt
new file mode 100644
index 00000000000..78c8099b9ac
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConsumeMutexLock.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ConsumeMutexLock"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ControlTrigger.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ControlTrigger.pbtxt
new file mode 100644
index 00000000000..8dc64a98773
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ControlTrigger.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ControlTrigger"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv.pbtxt
new file mode 100644
index 00000000000..cdc59f52e68
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Conv"
+ endpoint {
+ name: "nn.Conv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2D.pbtxt
new file mode 100644
index 00000000000..1752f424f38
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Conv2D"
+ endpoint {
+ name: "nn.Conv2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropFilter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropFilter.pbtxt
new file mode 100644
index 00000000000..30b696c51d1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropFilter.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "Conv2DBackpropFilter"
+ visibility: VISIBLE
+ endpoint {
+ name: "nn.Conv2dBackpropFilter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropFilterV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropFilterV2.pbtxt
new file mode 100644
index 00000000000..83c1d10a28f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropFilterV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "Conv2DBackpropFilterV2"
+ visibility: HIDDEN
+ endpoint {
+ name: "nn.Conv2dBackpropFilterV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropInput.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropInput.pbtxt
new file mode 100644
index 00000000000..9c7eb533cca
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropInput.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "Conv2DBackpropInput"
+ visibility: VISIBLE
+ endpoint {
+ name: "nn.Conv2dBackpropInput"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropInputV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropInputV2.pbtxt
new file mode 100644
index 00000000000..821f284ad44
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv2DBackpropInputV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "Conv2DBackpropInputV2"
+ visibility: HIDDEN
+ endpoint {
+ name: "nn.Conv2dBackpropInputV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3D.pbtxt
new file mode 100644
index 00000000000..abafc5a703d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Conv3D"
+ endpoint {
+ name: "nn.Conv3d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Conv3DBackpropFilter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3DBackpropFilter.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Conv3DBackpropFilter.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3DBackpropFilter.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3DBackpropFilterV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3DBackpropFilterV2.pbtxt
new file mode 100644
index 00000000000..257a0e6f7fe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3DBackpropFilterV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Conv3DBackpropFilterV2"
+ endpoint {
+ name: "nn.Conv3dBackpropFilter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Conv3DBackpropInput.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3DBackpropInput.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Conv3DBackpropInput.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3DBackpropInput.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3DBackpropInputV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3DBackpropInputV2.pbtxt
new file mode 100644
index 00000000000..e192e5feedc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Conv3DBackpropInputV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Conv3DBackpropInputV2"
+ endpoint {
+ name: "nn.Conv3dBackpropInput"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConvertToCooTensor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConvertToCooTensor.pbtxt
new file mode 100644
index 00000000000..3047ada98b7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConvertToCooTensor.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ConvertToCooTensor"
+ visibility: VISIBLE
+ endpoint {
+ name: "tpu.ConvertToCooTensor"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConvertToListOfSparseCoreCooTensors.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConvertToListOfSparseCoreCooTensors.pbtxt
new file mode 100644
index 00000000000..99d2ebea438
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConvertToListOfSparseCoreCooTensors.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ConvertToListOfSparseCoreCooTensors"
+ visibility: VISIBLE
+ endpoint {
+ name: "sparse.ConvertToListOfSparseCoreCooTensors"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ConvertToSparseCoreCsrWrappedCooTensor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConvertToSparseCoreCsrWrappedCooTensor.pbtxt
new file mode 100644
index 00000000000..6b78c0b216c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ConvertToSparseCoreCsrWrappedCooTensor.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ConvertToSparseCoreCsrWrappedCooTensor"
+ visibility: VISIBLE
+ endpoint {
+ name: "sparse.ConvertToSparseCoreCsrWrappedCooTensor"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Copy.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Copy.pbtxt
new file mode 100644
index 00000000000..3a822291794
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Copy.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "Copy"
+ visibility: HIDDEN
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CopyHost.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CopyHost.pbtxt
new file mode 100644
index 00000000000..2429cee5899
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CopyHost.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CopyHost"
+ visibility: HIDDEN
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CopyToMesh.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CopyToMesh.pbtxt
new file mode 100644
index 00000000000..e70bf4ade58
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CopyToMesh.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CopyToMesh"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CopyToMeshGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CopyToMeshGrad.pbtxt
new file mode 100644
index 00000000000..5e3d38dd349
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CopyToMeshGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CopyToMeshGrad"
+ endpoint {
+ name: "CopyToMeshGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Cos.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cos.pbtxt
new file mode 100644
index 00000000000..a8006cadd6b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cos.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Cos"
+ endpoint {
+ name: "math.Cos"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Cosh.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cosh.pbtxt
new file mode 100644
index 00000000000..6f08a1b1862
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cosh.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Cosh"
+ endpoint {
+ name: "math.Cosh"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CountUpTo.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CountUpTo.pbtxt
new file mode 100644
index 00000000000..bdc63ba1e04
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CountUpTo.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CountUpTo"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CreateSummaryDbWriter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CreateSummaryDbWriter.pbtxt
new file mode 100644
index 00000000000..0c9840034b5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CreateSummaryDbWriter.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CreateSummaryDbWriter"
+ endpoint {
+ name: "summary.CreateSummaryDbWriter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CreateSummaryFileWriter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CreateSummaryFileWriter.pbtxt
new file mode 100644
index 00000000000..b85f13b6de4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CreateSummaryFileWriter.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CreateSummaryFileWriter"
+ endpoint {
+ name: "summary.CreateSummaryFileWriter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CropAndResize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CropAndResize.pbtxt
new file mode 100644
index 00000000000..b41932cf5ab
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CropAndResize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CropAndResize"
+ endpoint {
+ name: "image.CropAndResize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CropAndResizeGradBoxes.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CropAndResizeGradBoxes.pbtxt
new file mode 100644
index 00000000000..8b29c975468
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CropAndResizeGradBoxes.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CropAndResizeGradBoxes"
+ endpoint {
+ name: "image.CropAndResizeGradBoxes"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CropAndResizeGradImage.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CropAndResizeGradImage.pbtxt
new file mode 100644
index 00000000000..85607c39878
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CropAndResizeGradImage.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CropAndResizeGradImage"
+ endpoint {
+ name: "image.CropAndResizeGradImage"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Cross.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cross.pbtxt
new file mode 100644
index 00000000000..a9717d3bc7d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cross.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Cross"
+ endpoint {
+ name: "linalg.Cross"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CrossReplicaSum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CrossReplicaSum.pbtxt
new file mode 100644
index 00000000000..f83642ef04a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CrossReplicaSum.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CrossReplicaSum"
+ endpoint {
+ name: "tpu.CrossReplicaSum"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_CudnnRNN.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNN.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_CudnnRNN.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNN.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_CudnnRNNBackprop.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNBackprop.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_CudnnRNNBackprop.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNBackprop.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNBackpropV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNBackpropV2.pbtxt
new file mode 100644
index 00000000000..2e544a47286
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNBackpropV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CudnnRNNBackpropV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNBackpropV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNBackpropV3.pbtxt
new file mode 100644
index 00000000000..eb7800c71df
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNBackpropV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CudnnRNNBackpropV3"
+ endpoint {
+ name: "nn.CudnnRNNBackprop"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNCanonicalToParams.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNCanonicalToParams.pbtxt
new file mode 100644
index 00000000000..41572ac391d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNCanonicalToParams.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CudnnRNNCanonicalToParams"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNCanonicalToParamsV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNCanonicalToParamsV2.pbtxt
new file mode 100644
index 00000000000..99b144ed11c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNCanonicalToParamsV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CudnnRNNCanonicalToParamsV2"
+ endpoint {
+ name: "nn.CudnnRNNCanonicalToParams"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNParamsSize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNParamsSize.pbtxt
new file mode 100644
index 00000000000..e0b34db1680
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNParamsSize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CudnnRNNParamsSize"
+ endpoint {
+ name: "nn.CudnnRnnParamsSize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNParamsToCanonical.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNParamsToCanonical.pbtxt
new file mode 100644
index 00000000000..7862f38a144
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNParamsToCanonical.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CudnnRNNParamsToCanonical"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNParamsToCanonicalV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNParamsToCanonicalV2.pbtxt
new file mode 100644
index 00000000000..4542b63afcc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNParamsToCanonicalV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CudnnRNNParamsToCanonicalV2"
+ endpoint {
+ name: "nn.CudnnRNNParamsToCanonical"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNV2.pbtxt
new file mode 100644
index 00000000000..b9d693be62a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "CudnnRNNV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNV3.pbtxt
new file mode 100644
index 00000000000..0e07477c874
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CudnnRNNV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CudnnRNNV3"
+ endpoint {
+ name: "nn.CudnnRNN"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Cumprod.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cumprod.pbtxt
new file mode 100644
index 00000000000..b49217a6d13
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cumprod.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Cumprod"
+ endpoint {
+ name: "math.Cumprod"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Cumsum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cumsum.pbtxt
new file mode 100644
index 00000000000..30db71c3b58
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Cumsum.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Cumsum"
+ endpoint {
+ name: "math.Cumsum"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_CumulativeLogsumexp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_CumulativeLogsumexp.pbtxt
new file mode 100644
index 00000000000..5e815bd9dab
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_CumulativeLogsumexp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "CumulativeLogsumexp"
+ endpoint {
+ name: "math.CumulativeLogsumexp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DTensorRestoreV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DTensorRestoreV2.pbtxt
new file mode 100644
index 00000000000..c494af28b78
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DTensorRestoreV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DTensorRestoreV2"
+ endpoint {
+ name: "tpu.DTensorRestore"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DTensorSetGlobalTPUArray.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DTensorSetGlobalTPUArray.pbtxt
new file mode 100644
index 00000000000..9eb54c892bb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DTensorSetGlobalTPUArray.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DTensorSetGlobalTPUArray"
+ endpoint {
+ name: "tpu.ExecuteTPUEmbeddingPartitioner"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DTensorShardedPrefix.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DTensorShardedPrefix.pbtxt
new file mode 100644
index 00000000000..28a477a0351
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DTensorShardedPrefix.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DTensorShardedPrefix"
+ endpoint {
+ name: "tpu.DTensorShardedPrefix"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DataFormatDimMap.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataFormatDimMap.pbtxt
new file mode 100644
index 00000000000..8d1015ddf8a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataFormatDimMap.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DataFormatDimMap"
+ endpoint {
+ name: "nn.DataFormatDimMap"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DataFormatVecPermute.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataFormatVecPermute.pbtxt
new file mode 100644
index 00000000000..61766b93905
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataFormatVecPermute.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DataFormatVecPermute"
+ endpoint {
+ name: "nn.DataFormatVecPermute"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDataset.pbtxt
new file mode 100644
index 00000000000..cfe0fc978fc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDataset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "DataServiceDataset"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDatasetV2.pbtxt
new file mode 100644
index 00000000000..63f9d0c5aae
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDatasetV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "DataServiceDatasetV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDatasetV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDatasetV3.pbtxt
new file mode 100644
index 00000000000..67371f27cbf
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDatasetV3.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "DataServiceDatasetV3"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDatasetV4.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDatasetV4.pbtxt
new file mode 100644
index 00000000000..4798e5bd703
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DataServiceDatasetV4.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DataServiceDatasetV4"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.DataServiceDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetCardinality.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetCardinality.pbtxt
new file mode 100644
index 00000000000..6a699fc214e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetCardinality.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DatasetCardinality"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.DatasetCardinality"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetFingerprint.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetFingerprint.pbtxt
new file mode 100644
index 00000000000..61e0086729b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetFingerprint.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DatasetFingerprint"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.DatasetFingerprint"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetFromGraph.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetFromGraph.pbtxt
new file mode 100644
index 00000000000..80ea2a57196
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetFromGraph.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DatasetFromGraph"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.DatasetFromGraph"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToGraph.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToGraph.pbtxt
new file mode 100644
index 00000000000..88e1ce351e4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToGraph.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "DatasetToGraph"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToGraphV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToGraphV2.pbtxt
new file mode 100644
index 00000000000..99be66c5e54
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToGraphV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DatasetToGraphV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.DatasetToGraph"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToSingleElement.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToSingleElement.pbtxt
new file mode 100644
index 00000000000..0f0407914d4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToSingleElement.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DatasetToSingleElement"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.DatasetToSingleElement"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToTFRecord.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToTFRecord.pbtxt
new file mode 100644
index 00000000000..c4d256969f7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DatasetToTFRecord.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DatasetToTFRecord"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.DatasetToTfRecord"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Dawsn.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Dawsn.pbtxt
new file mode 100644
index 00000000000..8cd2717a601
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Dawsn.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Dawsn"
+ endpoint {
+ name: "math.special.Dawsn"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugGradientIdentity.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugGradientIdentity.pbtxt
new file mode 100644
index 00000000000..1729c4a1508
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugGradientIdentity.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DebugGradientIdentity"
+ endpoint {
+ name: "debugging.DebugGradientIdentity"
+ }
+ visibility: HIDDEN
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugGradientRefIdentity.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugGradientRefIdentity.pbtxt
new file mode 100644
index 00000000000..e892bcefc17
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugGradientRefIdentity.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DebugGradientRefIdentity"
+ endpoint {
+ name: "debugging.DebugGradientRefIdentity"
+ }
+ visibility: HIDDEN
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugIdentity.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugIdentity.pbtxt
new file mode 100644
index 00000000000..e1d6b305f0f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugIdentity.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "DebugIdentity"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugIdentityV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugIdentityV2.pbtxt
new file mode 100644
index 00000000000..e9c29efad27
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugIdentityV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "DebugIdentityV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugIdentityV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugIdentityV3.pbtxt
new file mode 100644
index 00000000000..ec79f482e44
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugIdentityV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DebugIdentityV3"
+ visibility: HIDDEN
+ endpoint {
+ name: "debugging.DebugIdentity"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugNanCount.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugNanCount.pbtxt
new file mode 100644
index 00000000000..5012ee1e355
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugNanCount.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DebugNanCount"
+ endpoint {
+ name: "debugging.DebugNanCount"
+ }
+ visibility: HIDDEN
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugNumericSummary.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugNumericSummary.pbtxt
new file mode 100644
index 00000000000..8a5c173e170
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugNumericSummary.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "DebugNumericSummary"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugNumericSummaryV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugNumericSummaryV2.pbtxt
new file mode 100644
index 00000000000..dd70cac6e61
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DebugNumericSummaryV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DebugNumericSummaryV2"
+ endpoint {
+ name: "debugging.DebugNumericsSummary"
+ }
+ visibility: HIDDEN
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeAndCropJpeg.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeAndCropJpeg.pbtxt
new file mode 100644
index 00000000000..13ffab4d225
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeAndCropJpeg.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeAndCropJpeg"
+ endpoint {
+ name: "image.DecodeAndCropJpeg"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeBase64.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeBase64.pbtxt
new file mode 100644
index 00000000000..6d091e3a52e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeBase64.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeBase64"
+ endpoint {
+ name: "io.DecodeBase64"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeBmp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeBmp.pbtxt
new file mode 100644
index 00000000000..03f5e2d7aa0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeBmp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeBmp"
+ endpoint {
+ name: "image.DecodeBmp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeCSV.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeCSV.pbtxt
new file mode 100644
index 00000000000..f8c881d807f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeCSV.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeCSV"
+ endpoint {
+ name: "io.DecodeCsv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeCompressed.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeCompressed.pbtxt
new file mode 100644
index 00000000000..e688002e944
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeCompressed.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeCompressed"
+ endpoint {
+ name: "io.DecodeCompressed"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeGif.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeGif.pbtxt
new file mode 100644
index 00000000000..ac36d9bc1f2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeGif.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeGif"
+ endpoint {
+ name: "image.DecodeGif"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeImage.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeImage.pbtxt
new file mode 100644
index 00000000000..80516c0e1b1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeImage.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeImage"
+ endpoint {
+ name: "image.DecodeImage"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeJSONExample.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeJSONExample.pbtxt
new file mode 100644
index 00000000000..d78f8891a22
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeJSONExample.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeJSONExample"
+ endpoint {
+ name: "io.DecodeJsonExample"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeJpeg.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeJpeg.pbtxt
new file mode 100644
index 00000000000..f1d5b1238d9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeJpeg.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeJpeg"
+ endpoint {
+ name: "image.DecodeJpeg"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodePaddedRaw.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodePaddedRaw.pbtxt
new file mode 100644
index 00000000000..daaabcd76c4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodePaddedRaw.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodePaddedRaw"
+ endpoint {
+ name: "io.DecodePaddedRaw"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodePng.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodePng.pbtxt
new file mode 100644
index 00000000000..aed9c898a29
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodePng.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodePng"
+ endpoint {
+ name: "image.DecodePng"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeProtoV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeProtoV2.pbtxt
new file mode 100644
index 00000000000..b831161f690
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeProtoV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeProtoV2"
+ endpoint {
+ name: "DecodeProto"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeRaw.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeRaw.pbtxt
new file mode 100644
index 00000000000..d91490cc854
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeRaw.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeRaw"
+ endpoint {
+ name: "io.DecodeRaw"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeWav.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeWav.pbtxt
new file mode 100644
index 00000000000..f63a147de11
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeWav.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DecodeWav"
+ endpoint {
+ name: "audio.DecodeWav"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeWebP.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeWebP.pbtxt
new file mode 100644
index 00000000000..5bd8c3f5508
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DecodeWebP.pbtxt
@@ -0,0 +1,6 @@
+op {
+ graph_op_name: "DecodeWebP"
+ endpoint {
+ name: "image.DecodeWebP"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeepCopy.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeepCopy.pbtxt
new file mode 100644
index 00000000000..e55a4c21ffe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeepCopy.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DeepCopy"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteIterator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteIterator.pbtxt
new file mode 100644
index 00000000000..9a612e9ad6c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteIterator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DeleteIterator"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.DeleteIterator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteMemoryCache.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteMemoryCache.pbtxt
new file mode 100644
index 00000000000..e9ddbda3ed9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteMemoryCache.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DeleteMemoryCache"
+ endpoint {
+ name: "data.DeleteMemoryCache"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteMultiDeviceIterator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteMultiDeviceIterator.pbtxt
new file mode 100644
index 00000000000..b93b8c3541e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteMultiDeviceIterator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DeleteMultiDeviceIterator"
+ endpoint {
+ name: "data.DeleteMultiDeviceIterator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteRandomSeedGenerator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteRandomSeedGenerator.pbtxt
new file mode 100644
index 00000000000..f1d06eccdbb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteRandomSeedGenerator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DeleteRandomSeedGenerator"
+ endpoint {
+ name: "random.DeleteRandomSeedGenerator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteSeedGenerator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteSeedGenerator.pbtxt
new file mode 100644
index 00000000000..24e5394bf3f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteSeedGenerator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DeleteSeedGenerator"
+ endpoint {
+ name: "random.DeleteSeedGenerator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteSessionTensor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteSessionTensor.pbtxt
new file mode 100644
index 00000000000..a7e2ca5bfed
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeleteSessionTensor.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DeleteSessionTensor"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseBincount.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseBincount.pbtxt
new file mode 100644
index 00000000000..38af1580e36
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseBincount.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DenseBincount"
+ endpoint {
+ name: "math.DenseBincount"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseCountSparseOutput.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseCountSparseOutput.pbtxt
new file mode 100644
index 00000000000..6496cb1c446
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseCountSparseOutput.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DenseCountSparseOutput"
+ endpoint {
+ name: "sparse.DenseCountSparseOutput"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToCSRSparseMatrix.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToCSRSparseMatrix.pbtxt
new file mode 100644
index 00000000000..dc7ecd1a204
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToCSRSparseMatrix.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DenseToCSRSparseMatrix"
+ endpoint {
+ name: "linalg.sparse.DenseToCSRSparseMatrix"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToDenseSetOperation.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToDenseSetOperation.pbtxt
new file mode 100644
index 00000000000..8772c2c0e3a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToDenseSetOperation.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DenseToDenseSetOperation"
+ endpoint {
+ name: "sparse.DenseToDenseSetOperation"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToSparseBatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToSparseBatchDataset.pbtxt
new file mode 100644
index 00000000000..106059e48f0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToSparseBatchDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DenseToSparseBatchDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.DenseToSparseBatchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToSparseSetOperation.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToSparseSetOperation.pbtxt
new file mode 100644
index 00000000000..80455026338
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DenseToSparseSetOperation.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DenseToSparseSetOperation"
+ endpoint {
+ name: "sparse.DenseToSparseSetOperation"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthToSpace.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthToSpace.pbtxt
new file mode 100644
index 00000000000..da338027869
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthToSpace.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DepthToSpace"
+ endpoint {
+ name: "nn.DepthToSpace"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthwiseConv2dNative.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthwiseConv2dNative.pbtxt
new file mode 100644
index 00000000000..eb20bbab725
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthwiseConv2dNative.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DepthwiseConv2dNative"
+ endpoint {
+ name: "nn.DepthwiseConv2dNative"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthwiseConv2dNativeBackpropFilter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthwiseConv2dNativeBackpropFilter.pbtxt
new file mode 100644
index 00000000000..e534f662ea2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthwiseConv2dNativeBackpropFilter.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DepthwiseConv2dNativeBackpropFilter"
+ endpoint {
+ name: "nn.DepthwiseConv2dNativeBackpropFilter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthwiseConv2dNativeBackpropInput.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthwiseConv2dNativeBackpropInput.pbtxt
new file mode 100644
index 00000000000..892160034cd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DepthwiseConv2dNativeBackpropInput.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DepthwiseConv2dNativeBackpropInput"
+ endpoint {
+ name: "nn.DepthwiseConv2dNativeBackpropInput"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Dequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Dequantize.pbtxt
new file mode 100644
index 00000000000..7b32cd14882
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Dequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Dequantize"
+ endpoint {
+ name: "quantization.Dequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeserializeIterator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeserializeIterator.pbtxt
new file mode 100644
index 00000000000..cb296d27127
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeserializeIterator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DeserializeIterator"
+ endpoint {
+ name: "data.DeserializeIterator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeserializeManySparse.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeserializeManySparse.pbtxt
new file mode 100644
index 00000000000..b57141ed844
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeserializeManySparse.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DeserializeManySparse"
+ endpoint {
+ name: "io.DeserializeManySparse"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeserializeSparse.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeserializeSparse.pbtxt
new file mode 100644
index 00000000000..8b46d1060b8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeserializeSparse.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DeserializeSparse"
+ endpoint {
+ name: "sparse.DeserializeSparse"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DestroyResourceOp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DestroyResourceOp.pbtxt
new file mode 100644
index 00000000000..dbdcf2f0cea
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DestroyResourceOp.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DestroyResourceOp"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DestroyTemporaryVariable.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DestroyTemporaryVariable.pbtxt
new file mode 100644
index 00000000000..e9f167bd1fc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DestroyTemporaryVariable.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DestroyTemporaryVariable"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DeviceIndex.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeviceIndex.pbtxt
new file mode 100644
index 00000000000..de7b5bc2b58
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DeviceIndex.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DeviceIndex"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Diag.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Diag.pbtxt
new file mode 100644
index 00000000000..de116a55651
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Diag.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Diag"
+ endpoint {
+ name: "linalg.TensorDiag"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DiagPart.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DiagPart.pbtxt
new file mode 100644
index 00000000000..b9ef4010d99
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DiagPart.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DiagPart"
+ endpoint {
+ name: "linalg.TensorDiagPart"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Digamma.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Digamma.pbtxt
new file mode 100644
index 00000000000..fafcf4cc8bc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Digamma.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Digamma"
+ endpoint {
+ name: "math.Digamma"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Dilation2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Dilation2D.pbtxt
new file mode 100644
index 00000000000..523cf20b08d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Dilation2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Dilation2D"
+ endpoint {
+ name: "nn.Dilation2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Dilation2DBackpropFilter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Dilation2DBackpropFilter.pbtxt
new file mode 100644
index 00000000000..0b7b84c8b5d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Dilation2DBackpropFilter.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Dilation2DBackpropFilter"
+ endpoint {
+ name: "nn.Dilation2dBackpropFilter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Dilation2DBackpropInput.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Dilation2DBackpropInput.pbtxt
new file mode 100644
index 00000000000..c8d15a56c8b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Dilation2DBackpropInput.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Dilation2DBackpropInput"
+ endpoint {
+ name: "nn.Dilation2dBackpropInput"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DirectedInterleaveDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DirectedInterleaveDataset.pbtxt
new file mode 100644
index 00000000000..60c9729704e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DirectedInterleaveDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "DirectedInterleaveDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.DirectedInterleaveDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DisableCopyOnRead.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DisableCopyOnRead.pbtxt
new file mode 100644
index 00000000000..4e6dae43607
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DisableCopyOnRead.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DisableCopyOnRead"
+ endpoint {
+ name: "io.DisableCopyOnRead"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DistributedSave.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DistributedSave.pbtxt
new file mode 100644
index 00000000000..74a8b4ddfc1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DistributedSave.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DistributedSave"
+ endpoint {
+ name: "train.DistributedSave"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Div.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Div.pbtxt
new file mode 100644
index 00000000000..70007de3ae0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Div.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Div"
+ endpoint {
+ name: "math.Div"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DivNoNan.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DivNoNan.pbtxt
new file mode 100644
index 00000000000..c8dcc9f80aa
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DivNoNan.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DivNoNan"
+ endpoint {
+ name: "math.DivNoNan"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DrawBoundingBoxes.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DrawBoundingBoxes.pbtxt
new file mode 100644
index 00000000000..5929f6ff960
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DrawBoundingBoxes.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "DrawBoundingBoxes"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DrawBoundingBoxesV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DrawBoundingBoxesV2.pbtxt
new file mode 100644
index 00000000000..1a1bcc3c284
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DrawBoundingBoxesV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DrawBoundingBoxesV2"
+ endpoint {
+ name: "image.DrawBoundingBoxes"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DummyIterationCounter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DummyIterationCounter.pbtxt
new file mode 100644
index 00000000000..837647279de
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DummyIterationCounter.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DummyIterationCounter"
+ endpoint {
+ name: "data.DummyIterationCounter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DummyMemoryCache.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DummyMemoryCache.pbtxt
new file mode 100644
index 00000000000..ac86013215f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DummyMemoryCache.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DummyMemoryCache"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DummySeedGenerator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DummySeedGenerator.pbtxt
new file mode 100644
index 00000000000..3d2cf2618ff
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DummySeedGenerator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DummySeedGenerator"
+ endpoint {
+ name: "random.DummySeedGenerator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicEnqueueTPUEmbeddingArbitraryTensorBatch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicEnqueueTPUEmbeddingArbitraryTensorBatch.pbtxt
new file mode 100644
index 00000000000..935786de8fa
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicEnqueueTPUEmbeddingArbitraryTensorBatch.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DynamicEnqueueTPUEmbeddingArbitraryTensorBatch"
+ endpoint {
+ name: "tpu.DynamicEnqueueTPUEmbeddingArbitraryTensorBatch"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicEnqueueTPUEmbeddingRaggedTensorBatch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicEnqueueTPUEmbeddingRaggedTensorBatch.pbtxt
new file mode 100644
index 00000000000..2f59cca069b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicEnqueueTPUEmbeddingRaggedTensorBatch.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DynamicEnqueueTPUEmbeddingRaggedTensorBatch"
+ endpoint {
+ name: "tpu.DynamicEnqueueTPUEmbeddingRaggedTensorBatch"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicPartition.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicPartition.pbtxt
new file mode 100644
index 00000000000..4550ff6fbbc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicPartition.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DynamicPartition"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicStitch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicStitch.pbtxt
new file mode 100644
index 00000000000..609515974a7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_DynamicStitch.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "DynamicStitch"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_EagerPyFunc.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EagerPyFunc.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_EagerPyFunc.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_EagerPyFunc.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EditDistance.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EditDistance.pbtxt
new file mode 100644
index 00000000000..8e6dabb659f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EditDistance.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EditDistance"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Eig.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Eig.pbtxt
new file mode 100644
index 00000000000..fb0d5c4b045
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Eig.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Eig"
+ endpoint {
+ name: "linalg.Eig"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Einsum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Einsum.pbtxt
new file mode 100644
index 00000000000..fbfc95e1380
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Einsum.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Einsum"
+ endpoint {
+ name: "linalg.Einsum"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Elu.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Elu.pbtxt
new file mode 100644
index 00000000000..432d2a70692
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Elu.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Elu"
+ endpoint {
+ name: "nn.Elu"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EluGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EluGrad.pbtxt
new file mode 100644
index 00000000000..e8722cc7d24
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EluGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EluGrad"
+ endpoint {
+ name: "nn.EluGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Empty.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Empty.pbtxt
new file mode 100644
index 00000000000..e2dfb53ab7b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Empty.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Empty"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EmptyTensorList.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EmptyTensorList.pbtxt
new file mode 100644
index 00000000000..df92f263af1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EmptyTensorList.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EmptyTensorList"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EmptyTensorMap.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EmptyTensorMap.pbtxt
new file mode 100644
index 00000000000..a2141d3fbd3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EmptyTensorMap.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EmptyTensorMap"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeBase64.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeBase64.pbtxt
new file mode 100644
index 00000000000..a060a92104d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeBase64.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EncodeBase64"
+ endpoint {
+ name: "io.EncodeBase64"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeJpeg.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeJpeg.pbtxt
new file mode 100644
index 00000000000..af995121608
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeJpeg.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EncodeJpeg"
+ endpoint {
+ name: "image.EncodeJpeg"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeJpegVariableQuality.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeJpegVariableQuality.pbtxt
new file mode 100644
index 00000000000..bb8eeba21b3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeJpegVariableQuality.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EncodeJpegVariableQuality"
+ endpoint {
+ name: "image.EncodeJpegVariableQuality"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodePng.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodePng.pbtxt
new file mode 100644
index 00000000000..b806e4917ff
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodePng.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EncodePng"
+ endpoint {
+ name: "image.EncodePng"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeProto.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeProto.pbtxt
new file mode 100644
index 00000000000..87b2c6ac4bc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeProto.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EncodeProto"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeWav.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeWav.pbtxt
new file mode 100644
index 00000000000..96ed73270da
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EncodeWav.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EncodeWav"
+ endpoint {
+ name: "audio.EncodeWav"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_EnqueueInQueueDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueInQueueDataset.pbtxt
similarity index 82%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_EnqueueInQueueDataset.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueInQueueDataset.pbtxt
index 26051ab446f..804c2fc317e 100644
--- a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_EnqueueInQueueDataset.pbtxt
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueInQueueDataset.pbtxt
@@ -1,5 +1,6 @@
op {
graph_op_name: "EnqueueInQueueDataset"
+ visibility: VISIBLE
endpoint {
name: "data.EnqueueInQueueDataset"
}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingArbitraryTensorBatch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingArbitraryTensorBatch.pbtxt
new file mode 100644
index 00000000000..7335cf4e1cc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingArbitraryTensorBatch.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EnqueueTPUEmbeddingArbitraryTensorBatch"
+ endpoint {
+ name: "tpu.EnqueueTPUEmbeddingArbitraryTensorBatch"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingBatch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingBatch.pbtxt
new file mode 100644
index 00000000000..a14d72b4a72
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingBatch.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EnqueueTPUEmbeddingBatch"
+ endpoint {
+ name: "tpu.EnqueueTPUEmbeddingBatch"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingIntegerBatch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingIntegerBatch.pbtxt
new file mode 100644
index 00000000000..97b471f0ddd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingIntegerBatch.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EnqueueTPUEmbeddingIntegerBatch"
+ endpoint {
+ name: "tpu.EnqueueTPUEmbeddingIntegerBatch"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingRaggedTensorBatch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingRaggedTensorBatch.pbtxt
new file mode 100644
index 00000000000..d1d250dd27a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingRaggedTensorBatch.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EnqueueTPUEmbeddingRaggedTensorBatch"
+ endpoint {
+ name: "tpu.EnqueueTPUEmbeddingRaggedTensorBatch"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingSparseBatch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingSparseBatch.pbtxt
new file mode 100644
index 00000000000..b346dd636a9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingSparseBatch.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EnqueueTPUEmbeddingSparseBatch"
+ endpoint {
+ name: "tpu.EnqueueTPUEmbeddingSparseBatch"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingSparseTensorBatch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingSparseTensorBatch.pbtxt
new file mode 100644
index 00000000000..56864f899be
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnqueueTPUEmbeddingSparseTensorBatch.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EnqueueTPUEmbeddingSparseTensorBatch"
+ endpoint {
+ name: "tpu.EnqueueTPUEmbeddingSparseTensorBatch"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EnsureShape.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnsureShape.pbtxt
new file mode 100644
index 00000000000..4e7d8ac0a55
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EnsureShape.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EnsureShape"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Enter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Enter.pbtxt
new file mode 100644
index 00000000000..07abdf23784
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Enter.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Enter"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Equal.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Equal.pbtxt
new file mode 100644
index 00000000000..afd1c9fcf85
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Equal.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Equal"
+ endpoint {
+ name: "math.Equal"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Erf.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Erf.pbtxt
new file mode 100644
index 00000000000..0f3d2e6dc03
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Erf.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Erf"
+ endpoint {
+ name: "math.Erf"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Erfc.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Erfc.pbtxt
new file mode 100644
index 00000000000..b1da0c02862
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Erfc.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Erfc"
+ endpoint {
+ name: "math.Erfc"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Erfinv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Erfinv.pbtxt
new file mode 100644
index 00000000000..68358ebb137
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Erfinv.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Erfinv"
+ endpoint {
+ name: "math.erfinv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_EuclideanNorm.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_EuclideanNorm.pbtxt
new file mode 100644
index 00000000000..f4afae29cd7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_EuclideanNorm.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "EuclideanNorm"
+ endpoint {
+ name: "linalg.EuclideanNorm"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExecuteTPUEmbeddingPartitioner.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExecuteTPUEmbeddingPartitioner.pbtxt
new file mode 100644
index 00000000000..125aeb61d93
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExecuteTPUEmbeddingPartitioner.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExecuteTPUEmbeddingPartitioner"
+ endpoint {
+ name: "tpu.ExecuteTPUEmbeddingPartitioner"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Exit.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Exit.pbtxt
new file mode 100644
index 00000000000..0ca26a5aa7d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Exit.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Exit"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Exp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Exp.pbtxt
new file mode 100644
index 00000000000..7947019a666
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Exp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Exp"
+ endpoint {
+ name: "math.Exp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExpandDims.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExpandDims.pbtxt
new file mode 100644
index 00000000000..01c82186792
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExpandDims.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExpandDims"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalAssertNextDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalAssertNextDataset.pbtxt
new file mode 100644
index 00000000000..28e46dce87d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalAssertNextDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalAssertNextDataset"
+ endpoint {
+ name: "data.experimental.AssertNextDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalAutoShardDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalAutoShardDataset.pbtxt
new file mode 100644
index 00000000000..df08aef09b3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalAutoShardDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalAutoShardDataset"
+ endpoint {
+ name: "data.experimental.AutoShardDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalBytesProducedStatsDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalBytesProducedStatsDataset.pbtxt
new file mode 100644
index 00000000000..272f9e1eaae
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalBytesProducedStatsDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalBytesProducedStatsDataset"
+ endpoint {
+ name: "data.experimental.BytesProducedStatsDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalCSVDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalCSVDataset.pbtxt
new file mode 100644
index 00000000000..d548e72a07a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalCSVDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalCSVDataset"
+ endpoint {
+ name: "data.experimental.CSVDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalChooseFastestDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalChooseFastestDataset.pbtxt
new file mode 100644
index 00000000000..d818de9d33e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalChooseFastestDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalChooseFastestDataset"
+ endpoint {
+ name: "data.experimental.ChooseFastestDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDatasetCardinality.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDatasetCardinality.pbtxt
new file mode 100644
index 00000000000..743bc536a0f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDatasetCardinality.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalDatasetCardinality"
+ endpoint {
+ name: "data.experimental.DatasetCardinality"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDatasetToTFRecord.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDatasetToTFRecord.pbtxt
new file mode 100644
index 00000000000..45ca0a09034
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDatasetToTFRecord.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalDatasetToTFRecord"
+ endpoint {
+ name: "data.experimental.DatasetToTFRecord"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDenseToSparseBatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDenseToSparseBatchDataset.pbtxt
new file mode 100644
index 00000000000..492eeee03a2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDenseToSparseBatchDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalDenseToSparseBatchDataset"
+ endpoint {
+ name: "data.experimental.DenseToSparseBatchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDirectedInterleaveDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDirectedInterleaveDataset.pbtxt
new file mode 100644
index 00000000000..d0acd7ea288
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalDirectedInterleaveDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalDirectedInterleaveDataset"
+ endpoint {
+ name: "data.experimental.DirectedInterleaveDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalFunctionBufferingResource.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalFunctionBufferingResource.pbtxt
new file mode 100644
index 00000000000..f35eca43ca4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalFunctionBufferingResource.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalFunctionBufferingResource"
+ endpoint {
+ name: "data.experimental.FunctionBufferingResource"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalFunctionBufferingResourceGetNext.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalFunctionBufferingResourceGetNext.pbtxt
new file mode 100644
index 00000000000..e1b5ae6fac6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalFunctionBufferingResourceGetNext.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalFunctionBufferingResourceGetNext"
+ endpoint {
+ name: "data.experimental.FunctionBufferingResourceGetNext"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalFunctionBufferingResourceReset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalFunctionBufferingResourceReset.pbtxt
new file mode 100644
index 00000000000..8c9bdb4de26
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalFunctionBufferingResourceReset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalFunctionBufferingResourceReset"
+ endpoint {
+ name: "data.experimental.FunctionBufferingResourceReset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalGroupByReducerDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalGroupByReducerDataset.pbtxt
new file mode 100644
index 00000000000..8cf62d85942
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalGroupByReducerDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalGroupByReducerDataset"
+ endpoint {
+ name: "data.experimental.GroupByReducerDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalGroupByWindowDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalGroupByWindowDataset.pbtxt
new file mode 100644
index 00000000000..875aaa78dd8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalGroupByWindowDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalGroupByWindowDataset"
+ endpoint {
+ name: "data.experimental.GroupByWindowDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalIgnoreErrorsDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalIgnoreErrorsDataset.pbtxt
new file mode 100644
index 00000000000..ad31e9738d7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalIgnoreErrorsDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalIgnoreErrorsDataset"
+ endpoint {
+ name: "data.experimental.IgnoreErrorsDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalIteratorGetDevice.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalIteratorGetDevice.pbtxt
new file mode 100644
index 00000000000..b1f2dfcf5c9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalIteratorGetDevice.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalIteratorGetDevice"
+ endpoint {
+ name: "data.experimental.IteratorGetDevice"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalLMDBDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalLMDBDataset.pbtxt
new file mode 100644
index 00000000000..a427a85e631
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalLMDBDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalLMDBDataset"
+ endpoint {
+ name: "data.experimental.LmdbDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalLatencyStatsDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalLatencyStatsDataset.pbtxt
new file mode 100644
index 00000000000..21ed0bfde64
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalLatencyStatsDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalLatencyStatsDataset"
+ endpoint {
+ name: "data.experimental.LatencyStatsDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMapAndBatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMapAndBatchDataset.pbtxt
new file mode 100644
index 00000000000..fa88e18887b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMapAndBatchDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalMapAndBatchDataset"
+ endpoint {
+ name: "data.experimental.MapAndBatchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMapDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMapDataset.pbtxt
new file mode 100644
index 00000000000..cdfa66a022e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMapDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalMapDataset"
+ endpoint {
+ name: "data.experimental.MapDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMatchingFilesDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMatchingFilesDataset.pbtxt
new file mode 100644
index 00000000000..ae0210b3f3e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMatchingFilesDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalMatchingFilesDataset"
+ endpoint {
+ name: "data.experimental.MatchingFilesDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMaxIntraOpParallelismDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMaxIntraOpParallelismDataset.pbtxt
new file mode 100644
index 00000000000..afe63cd09fe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalMaxIntraOpParallelismDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalMaxIntraOpParallelismDataset"
+ endpoint {
+ name: "data.experimental.MaxIntraOpParallelismDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalNonSerializableDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalNonSerializableDataset.pbtxt
new file mode 100644
index 00000000000..5e3386e8483
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalNonSerializableDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalNonSerializableDataset"
+ endpoint {
+ name: "data.experimental.NonSerializableDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalParallelInterleaveDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalParallelInterleaveDataset.pbtxt
new file mode 100644
index 00000000000..ad33fe82aa8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalParallelInterleaveDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalParallelInterleaveDataset"
+ endpoint {
+ name: "data.experimental.ParallelInterleaveDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalParseExampleDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalParseExampleDataset.pbtxt
new file mode 100644
index 00000000000..741b6b1a96a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalParseExampleDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalParseExampleDataset"
+ endpoint {
+ name: "data.experimental.ParseExampleDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalPrivateThreadPoolDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalPrivateThreadPoolDataset.pbtxt
new file mode 100644
index 00000000000..667d9f53047
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalPrivateThreadPoolDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalPrivateThreadPoolDataset"
+ endpoint {
+ name: "data.experimental.PrivateThreadPoolDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalRandomDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalRandomDataset.pbtxt
new file mode 100644
index 00000000000..687e7c2782a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalRandomDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalRandomDataset"
+ endpoint {
+ name: "data.experimental.RandomDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalRebatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalRebatchDataset.pbtxt
new file mode 100644
index 00000000000..8012dbae620
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalRebatchDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalRebatchDataset"
+ endpoint {
+ name: "data.experimental.RebatchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalScanDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalScanDataset.pbtxt
new file mode 100644
index 00000000000..910fb561988
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalScanDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalScanDataset"
+ endpoint {
+ name: "data.experimental.ScanDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSetStatsAggregatorDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSetStatsAggregatorDataset.pbtxt
new file mode 100644
index 00000000000..d3039499942
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSetStatsAggregatorDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalSetStatsAggregatorDataset"
+ endpoint {
+ name: "data.experimental.SetStatsAggregatorDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSleepDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSleepDataset.pbtxt
new file mode 100644
index 00000000000..7c160528fcc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSleepDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalSleepDataset"
+ endpoint {
+ name: "data.experimental.SleepDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSlidingWindowDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSlidingWindowDataset.pbtxt
new file mode 100644
index 00000000000..aa0fe454722
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSlidingWindowDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalSlidingWindowDataset"
+ endpoint {
+ name: "data.experimental.SlidingWindowDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSqlDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSqlDataset.pbtxt
new file mode 100644
index 00000000000..f827b21b8b7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalSqlDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalSqlDataset"
+ endpoint {
+ name: "data.experimental.SqlDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalStatsAggregatorHandle.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalStatsAggregatorHandle.pbtxt
new file mode 100644
index 00000000000..ec2f2aff7ca
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalStatsAggregatorHandle.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalStatsAggregatorHandle"
+ endpoint {
+ name: "data.experimental.StatsAggregatorHandle"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalStatsAggregatorSummary.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalStatsAggregatorSummary.pbtxt
new file mode 100644
index 00000000000..6f9b79ac777
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalStatsAggregatorSummary.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalStatsAggregatorSummary"
+ endpoint {
+ name: "data.experimental.StatsAggregatorSummary"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalTakeWhileDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalTakeWhileDataset.pbtxt
new file mode 100644
index 00000000000..2b494bd04c4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalTakeWhileDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalTakeWhileDataset"
+ endpoint {
+ name: "data.experimental.TakeWhileDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalThreadPoolDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalThreadPoolDataset.pbtxt
new file mode 100644
index 00000000000..55fc4665fd9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalThreadPoolDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalThreadPoolDataset"
+ endpoint {
+ name: "data.experimental.ThreadPoolDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalThreadPoolHandle.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalThreadPoolHandle.pbtxt
new file mode 100644
index 00000000000..ecaa0ceb2c9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalThreadPoolHandle.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalThreadPoolHandle"
+ endpoint {
+ name: "data.experimental.ThreadPoolHandle"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalUnbatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalUnbatchDataset.pbtxt
new file mode 100644
index 00000000000..c08a60749be
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalUnbatchDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalUnbatchDataset"
+ endpoint {
+ name: "data.experimental.UnbatchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalUniqueDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalUniqueDataset.pbtxt
new file mode 100644
index 00000000000..d644078b402
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExperimentalUniqueDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExperimentalUniqueDataset"
+ endpoint {
+ name: "data.experimental.UniqueDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Expint.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Expint.pbtxt
new file mode 100644
index 00000000000..64b09ca6ab7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Expint.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Expint"
+ endpoint {
+ name: "math.special.Expint"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Expm1.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Expm1.pbtxt
new file mode 100644
index 00000000000..df2ece3b9e8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Expm1.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Expm1"
+ endpoint {
+ name: "math.Expm1"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractGlimpse.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractGlimpse.pbtxt
new file mode 100644
index 00000000000..b44183c1178
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractGlimpse.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "ExtractGlimpse"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractGlimpseV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractGlimpseV2.pbtxt
new file mode 100644
index 00000000000..e0491472fc4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractGlimpseV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExtractGlimpseV2"
+ endpoint {
+ name: "image.ExtractGlimpse"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractImagePatches.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractImagePatches.pbtxt
new file mode 100644
index 00000000000..ab6177b5247
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractImagePatches.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExtractImagePatches"
+ endpoint {
+ name: "image.ExtractImagePatches"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractJpegShape.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractJpegShape.pbtxt
new file mode 100644
index 00000000000..da8258cc5b2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractJpegShape.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExtractJpegShape"
+ endpoint {
+ name: "image.ExtractJpegShape"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractVolumePatches.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractVolumePatches.pbtxt
new file mode 100644
index 00000000000..5d5d80ce08f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ExtractVolumePatches.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ExtractVolumePatches"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FFT.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FFT.pbtxt
new file mode 100644
index 00000000000..a50549a383e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FFT.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FFT"
+ endpoint {
+ name: "signal.Fft"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FFT2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FFT2D.pbtxt
new file mode 100644
index 00000000000..ffbf0a00050
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FFT2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FFT2D"
+ endpoint {
+ name: "signal.Fft2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FFT3D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FFT3D.pbtxt
new file mode 100644
index 00000000000..a7415cc5d03
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FFT3D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FFT3D"
+ endpoint {
+ name: "signal.Fft3d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FFTND.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FFTND.pbtxt
new file mode 100644
index 00000000000..753cdcb1997
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FFTND.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FFTND"
+ endpoint {
+ name: "signal.FftNd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_FIFOQueue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FIFOQueue.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_FIFOQueue.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_FIFOQueue.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FIFOQueueV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FIFOQueueV2.pbtxt
new file mode 100644
index 00000000000..797fe75a0b5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FIFOQueueV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FIFOQueueV2"
+ endpoint {
+ name: "io.FifoQueue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Fact.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Fact.pbtxt
new file mode 100644
index 00000000000..f60455d31a5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Fact.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Fact"
+ endpoint {
+ name: "math.Fact"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeParam.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeParam.pbtxt
new file mode 100644
index 00000000000..3310fb8af02
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeParam.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FakeParam"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxArgs.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxArgs.pbtxt
new file mode 100644
index 00000000000..61723a6b616
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxArgs.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FakeQuantWithMinMaxArgs"
+ endpoint {
+ name: "quantization.FakeQuantWithMinMaxArgs"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxArgsGradient.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxArgsGradient.pbtxt
new file mode 100644
index 00000000000..a995fff37e4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxArgsGradient.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FakeQuantWithMinMaxArgsGradient"
+ endpoint {
+ name: "quantization.FakeQuantWithMinMaxArgsGradient"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVars.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVars.pbtxt
new file mode 100644
index 00000000000..7318899ee3f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVars.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FakeQuantWithMinMaxVars"
+ endpoint {
+ name: "quantization.FakeQuantWithMinMaxVars"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVarsGradient.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVarsGradient.pbtxt
new file mode 100644
index 00000000000..7738b510c20
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVarsGradient.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FakeQuantWithMinMaxVarsGradient"
+ endpoint {
+ name: "quantization.FakeQuantWithMinMaxVarsGradient"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVarsPerChannel.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVarsPerChannel.pbtxt
new file mode 100644
index 00000000000..270c2644610
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVarsPerChannel.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FakeQuantWithMinMaxVarsPerChannel"
+ endpoint {
+ name: "quantization.FakeQuantWithMinMaxVarsPerChannel"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVarsPerChannelGradient.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVarsPerChannelGradient.pbtxt
new file mode 100644
index 00000000000..0cd372b0162
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQuantWithMinMaxVarsPerChannelGradient.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FakeQuantWithMinMaxVarsPerChannelGradient"
+ endpoint {
+ name: "quantization.FakeQuantWithMinMaxVarsPerChannelGradient"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQueue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQueue.pbtxt
new file mode 100644
index 00000000000..b49719e8142
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FakeQueue.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FakeQueue"
+ endpoint {
+ name: "io.FakeQueue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FileSystemSetConfiguration.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FileSystemSetConfiguration.pbtxt
new file mode 100644
index 00000000000..48a9f01c087
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FileSystemSetConfiguration.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FileSystemSetConfiguration"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Fill.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Fill.pbtxt
new file mode 100644
index 00000000000..b0883b54e03
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Fill.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Fill"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FilterByLastComponentDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FilterByLastComponentDataset.pbtxt
new file mode 100644
index 00000000000..4ad74385bce
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FilterByLastComponentDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "FilterByLastComponentDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.FilterByLastComponentDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FilterDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FilterDataset.pbtxt
new file mode 100644
index 00000000000..c8e587eeedd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FilterDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "FilterDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.FilterDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FinalizeDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FinalizeDataset.pbtxt
new file mode 100644
index 00000000000..78b37455e28
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FinalizeDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "FinalizeDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.FinalizeDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FinalizeTPUEmbedding.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FinalizeTPUEmbedding.pbtxt
new file mode 100644
index 00000000000..5a5262fbe5a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FinalizeTPUEmbedding.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "FinalizeTPUEmbedding"
+ endpoint {
+ name: "tpu.FinalizeTPUEmbedding"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FinalizeTPUEmbeddingV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FinalizeTPUEmbeddingV2.pbtxt
new file mode 100644
index 00000000000..7a8840309e4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FinalizeTPUEmbeddingV2.pbtxt
@@ -0,0 +1,6 @@
+op {
+ graph_op_name: "FinalizeTPUEmbeddingV2"
+ endpoint {
+ name: "tpu.FinalizeTPUEmbedding"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Fingerprint.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Fingerprint.pbtxt
new file mode 100644
index 00000000000..42f780314bb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Fingerprint.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Fingerprint"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_FixedLengthRecordDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedLengthRecordDataset.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_FixedLengthRecordDataset.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_FixedLengthRecordDataset.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedLengthRecordDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedLengthRecordDatasetV2.pbtxt
new file mode 100644
index 00000000000..b0f66ca1642
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedLengthRecordDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "FixedLengthRecordDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.FixedLengthRecordDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_FixedLengthRecordReader.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedLengthRecordReader.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_FixedLengthRecordReader.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_FixedLengthRecordReader.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedLengthRecordReaderV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedLengthRecordReaderV2.pbtxt
new file mode 100644
index 00000000000..c6acb018dc2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedLengthRecordReaderV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FixedLengthRecordReaderV2"
+ endpoint {
+ name: "io.FixedLengthRecordReader"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedUnigramCandidateSampler.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedUnigramCandidateSampler.pbtxt
new file mode 100644
index 00000000000..b4e26238201
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FixedUnigramCandidateSampler.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FixedUnigramCandidateSampler"
+ endpoint {
+ name: "nn.FixedUnigramCandidateSampler"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FlatMapDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FlatMapDataset.pbtxt
new file mode 100644
index 00000000000..54b443d247c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FlatMapDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "FlatMapDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.FlatMapDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Floor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Floor.pbtxt
new file mode 100644
index 00000000000..9cbf0eb0e4e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Floor.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Floor"
+ endpoint {
+ name: "math.Floor"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FloorDiv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FloorDiv.pbtxt
new file mode 100644
index 00000000000..693eed27e08
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FloorDiv.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FloorDiv"
+ endpoint {
+ name: "math.FloorDiv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FloorMod.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FloorMod.pbtxt
new file mode 100644
index 00000000000..c6c7ea42659
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FloorMod.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FloorMod"
+ endpoint {
+ name: "math.FloorMod"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FlushSummaryWriter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FlushSummaryWriter.pbtxt
new file mode 100644
index 00000000000..5731ce679d7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FlushSummaryWriter.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FlushSummaryWriter"
+ endpoint {
+ name: "summary.FlushSummaryWriter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_For.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_For.pbtxt
new file mode 100644
index 00000000000..4d01b94bd26
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_For.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "For"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalAvgPool.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalAvgPool.pbtxt
new file mode 100644
index 00000000000..1e2afb0ca3b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalAvgPool.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FractionalAvgPool"
+ endpoint {
+ name: "nn.FractionalAvgPool"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalAvgPoolGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalAvgPoolGrad.pbtxt
new file mode 100644
index 00000000000..f51859f903e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalAvgPoolGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FractionalAvgPoolGrad"
+ endpoint {
+ name: "nn.FractionalAvgPoolGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalMaxPool.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalMaxPool.pbtxt
new file mode 100644
index 00000000000..ad0fddc2bc6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalMaxPool.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FractionalMaxPool"
+ endpoint {
+ name: "nn.FractionalMaxPool"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalMaxPoolGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalMaxPoolGrad.pbtxt
new file mode 100644
index 00000000000..00bf30c2b68
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FractionalMaxPoolGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FractionalMaxPoolGrad"
+ endpoint {
+ name: "nn.FractionalMaxPoolGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FresnelCos.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FresnelCos.pbtxt
new file mode 100644
index 00000000000..239ea452c59
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FresnelCos.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FresnelCos"
+ endpoint {
+ name: "math.special.FresnelCos"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FresnelSin.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FresnelSin.pbtxt
new file mode 100644
index 00000000000..01e64aa2368
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FresnelSin.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FresnelSin"
+ endpoint {
+ name: "math.special.FresnelSin"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_FusedBatchNorm.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNorm.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_FusedBatchNorm.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNorm.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_FusedBatchNormGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormGrad.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_FusedBatchNormGrad.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormGrad.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormGradV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormGradV2.pbtxt
new file mode 100644
index 00000000000..6cbbd1cf862
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormGradV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "FusedBatchNormGradV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormGradV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormGradV3.pbtxt
new file mode 100644
index 00000000000..bf2ae00fd7f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormGradV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FusedBatchNormGradV3"
+ endpoint {
+ name: "nn.FusedBatchNormGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormV2.pbtxt
new file mode 100644
index 00000000000..4428a94d582
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "FusedBatchNormV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormV3.pbtxt
new file mode 100644
index 00000000000..e3cc882ca7d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedBatchNormV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FusedBatchNormV3"
+ endpoint {
+ name: "nn.FusedBatchNorm"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedPadConv2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedPadConv2D.pbtxt
new file mode 100644
index 00000000000..7e0d6eb913d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedPadConv2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FusedPadConv2D"
+ endpoint {
+ name: "nn.FusedPadConv2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedResizeAndPadConv2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedResizeAndPadConv2D.pbtxt
new file mode 100644
index 00000000000..fc92f057104
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_FusedResizeAndPadConv2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "FusedResizeAndPadConv2D"
+ endpoint {
+ name: "nn.FusedResizeAndPadConv2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GRUBlockCell.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GRUBlockCell.pbtxt
new file mode 100644
index 00000000000..0b5ab9c8b0b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GRUBlockCell.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GRUBlockCell"
+ endpoint {
+ name: "nn.GRUBlockCell"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GRUBlockCellGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GRUBlockCellGrad.pbtxt
new file mode 100644
index 00000000000..642a35b7945
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GRUBlockCellGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GRUBlockCellGrad"
+ endpoint {
+ name: "nn.GRUBlockCellGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Gather.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Gather.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Gather.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Gather.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GatherNd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GatherNd.pbtxt
new file mode 100644
index 00000000000..80ed9a514c5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GatherNd.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GatherNd"
+ endpoint {
+ name: "GatherNd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GatherV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GatherV2.pbtxt
new file mode 100644
index 00000000000..d27fd30efa0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GatherV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GatherV2"
+ endpoint {
+ name: "Gather"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GcsConfigureBlockCache.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GcsConfigureBlockCache.pbtxt
new file mode 100644
index 00000000000..0878563c93b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GcsConfigureBlockCache.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GcsConfigureBlockCache"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GcsConfigureCredentials.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GcsConfigureCredentials.pbtxt
new file mode 100644
index 00000000000..1653b16c4ee
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GcsConfigureCredentials.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GcsConfigureCredentials"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GenerateBigQueryReaderPartitions.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GenerateBigQueryReaderPartitions.pbtxt
new file mode 100644
index 00000000000..3b037ef31c6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GenerateBigQueryReaderPartitions.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GenerateBigQueryReaderPartitions"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GenerateBoundingBoxProposals.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GenerateBoundingBoxProposals.pbtxt
new file mode 100644
index 00000000000..069e9b74fff
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GenerateBoundingBoxProposals.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GenerateBoundingBoxProposals"
+ endpoint {
+ name: "image.GenerateBoundingBoxProposals"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GenerateVocabRemapping.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GenerateVocabRemapping.pbtxt
new file mode 100644
index 00000000000..02c132223ec
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GenerateVocabRemapping.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GenerateVocabRemapping"
+ endpoint {
+ name: "train.GenerateVocabRemapping"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GeneratorDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GeneratorDataset.pbtxt
new file mode 100644
index 00000000000..9ff9c28330a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GeneratorDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "GeneratorDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.GeneratorDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GetElementAtIndex.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetElementAtIndex.pbtxt
new file mode 100644
index 00000000000..9fac3335954
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetElementAtIndex.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GetElementAtIndex"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GetMinibatchSplitsWithPhysicalReplica.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetMinibatchSplitsWithPhysicalReplica.pbtxt
new file mode 100644
index 00000000000..a9a8710fdb5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetMinibatchSplitsWithPhysicalReplica.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "GetMinibatchSplitsWithPhysicalReplica"
+ visibility: VISIBLE
+ endpoint {
+ name: "tpu.GetMinibatchSplitsWithPhysicalReplica"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GetMinibatchesInCsrWithPhysicalReplica.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetMinibatchesInCsrWithPhysicalReplica.pbtxt
new file mode 100644
index 00000000000..9ee5d7e2e5b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetMinibatchesInCsrWithPhysicalReplica.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "GetMinibatchesInCsrWithPhysicalReplica"
+ visibility: VISIBLE
+ endpoint {
+ name: "tpu.GetMinibatchesInCsrWithPhysicalReplica"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GetOptions.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetOptions.pbtxt
new file mode 100644
index 00000000000..eeb6d4c91d8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetOptions.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GetOptions"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_GetSessionHandle.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetSessionHandle.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_GetSessionHandle.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_GetSessionHandle.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GetSessionHandleV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetSessionHandleV2.pbtxt
new file mode 100644
index 00000000000..3484fbcd5d7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetSessionHandleV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GetSessionHandleV2"
+ endpoint {
+ name: "GetSessionHandle"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GetSessionTensor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetSessionTensor.pbtxt
new file mode 100644
index 00000000000..496b31c6ef0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetSessionTensor.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GetSessionTensor"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GetStatsFromListOfSparseCoreCooTensors.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetStatsFromListOfSparseCoreCooTensors.pbtxt
new file mode 100644
index 00000000000..11a2b9eccba
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetStatsFromListOfSparseCoreCooTensors.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "GetStatsFromListOfSparseCoreCooTensors"
+ visibility: VISIBLE
+ endpoint {
+ name: "sparse.GetStatsFromListOfSparseCoreCooTensors"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GetTpuTaskId.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetTpuTaskId.pbtxt
new file mode 100644
index 00000000000..1072689506c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GetTpuTaskId.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "GetTpuTaskId"
+ visibility: VISIBLE
+ endpoint {
+ name: "tpu.GetTpuTaskId"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GlobalIterId.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GlobalIterId.pbtxt
new file mode 100644
index 00000000000..8a795a8ef23
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GlobalIterId.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "GlobalIterId"
+ visibility: VISIBLE
+ endpoint {
+ name: "tpu.GlobalIterId"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GlobalShuffleDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GlobalShuffleDataset.pbtxt
new file mode 100644
index 00000000000..ed286d3ae31
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GlobalShuffleDataset.pbtxt
@@ -0,0 +1,6 @@
+op {
+ graph_op_name: "GlobalShuffleDataset"
+ endpoint {
+ name: "data.GlobalShuffleDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Greater.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Greater.pbtxt
new file mode 100644
index 00000000000..a84b4c9bc6b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Greater.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Greater"
+ endpoint {
+ name: "math.Greater"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GreaterEqual.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GreaterEqual.pbtxt
new file mode 100644
index 00000000000..57f8c014728
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GreaterEqual.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GreaterEqual"
+ endpoint {
+ name: "math.GreaterEqual"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GroupByReducerDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GroupByReducerDataset.pbtxt
new file mode 100644
index 00000000000..57b781c5a0a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GroupByReducerDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "GroupByReducerDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.GroupByReducerDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GroupByWindowDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GroupByWindowDataset.pbtxt
new file mode 100644
index 00000000000..529ca47d86e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GroupByWindowDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "GroupByWindowDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.GroupByWindowDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_GuaranteeConst.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_GuaranteeConst.pbtxt
new file mode 100644
index 00000000000..56a115a0603
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_GuaranteeConst.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "GuaranteeConst"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_HSVToRGB.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_HSVToRGB.pbtxt
new file mode 100644
index 00000000000..5689d054353
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_HSVToRGB.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "HSVToRGB"
+ endpoint {
+ name: "image.HsvToRgb"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_HashTable.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_HashTable.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_HashTable.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_HashTable.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_HashTableV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_HashTableV2.pbtxt
new file mode 100644
index 00000000000..4cde617757a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_HashTableV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "HashTableV2"
+ endpoint {
+ name: "HashTable"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_HistogramFixedWidth.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_HistogramFixedWidth.pbtxt
new file mode 100644
index 00000000000..f3d2065032f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_HistogramFixedWidth.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "HistogramFixedWidth"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_HistogramSummary.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_HistogramSummary.pbtxt
new file mode 100644
index 00000000000..6c2c3b8254a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_HistogramSummary.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "HistogramSummary"
+ endpoint {
+ name: "summary.HistogramSummary"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_HostConst.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_HostConst.pbtxt
new file mode 100644
index 00000000000..f2a7160eccd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_HostConst.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "HostConst"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFT.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFT.pbtxt
new file mode 100644
index 00000000000..a84e2d6dd57
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFT.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IFFT"
+ endpoint {
+ name: "signal.Ifft"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFT2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFT2D.pbtxt
new file mode 100644
index 00000000000..3380f459463
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFT2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IFFT2D"
+ endpoint {
+ name: "signal.Ifft2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFT3D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFT3D.pbtxt
new file mode 100644
index 00000000000..02db3a66379
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFT3D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IFFT3D"
+ endpoint {
+ name: "signal.Ifft3d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFTND.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFTND.pbtxt
new file mode 100644
index 00000000000..214a8bfc0b8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IFFTND.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IFFTND"
+ endpoint {
+ name: "signal.IfftNd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFT.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFT.pbtxt
new file mode 100644
index 00000000000..ebd31423283
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFT.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IRFFT"
+ endpoint {
+ name: "signal.Irfft"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFT2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFT2D.pbtxt
new file mode 100644
index 00000000000..e73397a832f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFT2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IRFFT2D"
+ endpoint {
+ name: "signal.Irfft2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFT3D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFT3D.pbtxt
new file mode 100644
index 00000000000..e6a064cfa6c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFT3D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IRFFT3D"
+ endpoint {
+ name: "signal.Irfft3d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFTND.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFTND.pbtxt
new file mode 100644
index 00000000000..848e444c33e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IRFFTND.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IRFFTND"
+ endpoint {
+ name: "signal.IrfftNd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Identity.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Identity.pbtxt
new file mode 100644
index 00000000000..f90a3e1b0f9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Identity.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Identity"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IdentityN.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IdentityN.pbtxt
new file mode 100644
index 00000000000..a39e00d4106
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IdentityN.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IdentityN"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_IdentityReader.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IdentityReader.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_IdentityReader.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_IdentityReader.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IdentityReaderV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IdentityReaderV2.pbtxt
new file mode 100644
index 00000000000..92bc4a10279
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IdentityReaderV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IdentityReaderV2"
+ endpoint {
+ name: "io.IdentityReader"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_If.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_If.pbtxt
new file mode 100644
index 00000000000..292c093587e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_If.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "If"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Igamma.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Igamma.pbtxt
new file mode 100644
index 00000000000..e0134f5acc4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Igamma.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Igamma"
+ endpoint {
+ name: "math.Igamma"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IgammaGradA.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IgammaGradA.pbtxt
new file mode 100644
index 00000000000..46eaba97345
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IgammaGradA.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IgammaGradA"
+ endpoint {
+ name: "math.IgammaGradA"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Igammac.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Igammac.pbtxt
new file mode 100644
index 00000000000..3114d90fd61
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Igammac.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Igammac"
+ endpoint {
+ name: "math.Igammac"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IgnoreErrorsDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IgnoreErrorsDataset.pbtxt
new file mode 100644
index 00000000000..a8812f70e1a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IgnoreErrorsDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "IgnoreErrorsDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.IgnoreErrorsDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Imag.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Imag.pbtxt
new file mode 100644
index 00000000000..66427ed58bd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Imag.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Imag"
+ endpoint {
+ name: "math.Imag"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ImageProjectiveTransformV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ImageProjectiveTransformV2.pbtxt
new file mode 100644
index 00000000000..ae6bb8507be
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ImageProjectiveTransformV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ImageProjectiveTransformV2"
+ endpoint {
+ name: "image.ImageProjectiveTransformV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ImageProjectiveTransformV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ImageProjectiveTransformV3.pbtxt
new file mode 100644
index 00000000000..2f477c6d695
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ImageProjectiveTransformV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ImageProjectiveTransformV3"
+ endpoint {
+ name: "image.ImageProjectiveTransformV3"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ImageSummary.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ImageSummary.pbtxt
new file mode 100644
index 00000000000..5c3bd5f5047
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ImageSummary.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ImageSummary"
+ endpoint {
+ name: "summary.ImageSummary"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ImmutableConst.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ImmutableConst.pbtxt
new file mode 100644
index 00000000000..6f7a34c5a69
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ImmutableConst.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ImmutableConst"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ImportEvent.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ImportEvent.pbtxt
new file mode 100644
index 00000000000..630a8894724
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ImportEvent.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ImportEvent"
+ endpoint {
+ name: "summary.ImportEvent"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_InTopK.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InTopK.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_InTopK.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_InTopK.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InTopKV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InTopKV2.pbtxt
new file mode 100644
index 00000000000..0fc46096895
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InTopKV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InTopKV2"
+ endpoint {
+ name: "nn.InTopK"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IndexFlatMapDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IndexFlatMapDataset.pbtxt
new file mode 100644
index 00000000000..682904a7504
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IndexFlatMapDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "IndexFlatMapDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.IndexFlatMapDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedDequeue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedDequeue.pbtxt
new file mode 100644
index 00000000000..0d57c36ce27
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedDequeue.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InfeedDequeue"
+ endpoint {
+ name: "tpu.InfeedDequeue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedDequeueTuple.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedDequeueTuple.pbtxt
new file mode 100644
index 00000000000..3655572e592
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedDequeueTuple.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InfeedDequeueTuple"
+ endpoint {
+ name: "tpu.InfeedDequeueTuple"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedEnqueue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedEnqueue.pbtxt
new file mode 100644
index 00000000000..889c70cbfb1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedEnqueue.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InfeedEnqueue"
+ endpoint {
+ name: "tpu.InfeedEnqueue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedEnqueuePrelinearizedBuffer.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedEnqueuePrelinearizedBuffer.pbtxt
new file mode 100644
index 00000000000..e37e5ed26cf
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedEnqueuePrelinearizedBuffer.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InfeedEnqueuePrelinearizedBuffer"
+ endpoint {
+ name: "tpu.InfeedEnqueuePrelinearizedBuffer"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedEnqueueTuple.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedEnqueueTuple.pbtxt
new file mode 100644
index 00000000000..99c1cc4f0a1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InfeedEnqueueTuple.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InfeedEnqueueTuple"
+ endpoint {
+ name: "tpu.InfeedEnqueueTuple"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_InitializeTable.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTable.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_InitializeTable.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTable.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableFromDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableFromDataset.pbtxt
new file mode 100644
index 00000000000..bfd98dd2d1c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableFromDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "InitializeTableFromDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.InitializeTableFromDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_InitializeTableFromTextFile.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableFromTextFile.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_InitializeTableFromTextFile.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableFromTextFile.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableFromTextFileV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableFromTextFileV2.pbtxt
new file mode 100644
index 00000000000..34712e89316
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableFromTextFileV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InitializeTableFromTextFileV2"
+ endpoint {
+ name: "InitializeTableFromTextFile"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableV2.pbtxt
new file mode 100644
index 00000000000..efb93c75341
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InitializeTableV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InitializeTableV2"
+ endpoint {
+ name: "InitializeTable"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InplaceAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InplaceAdd.pbtxt
new file mode 100644
index 00000000000..c5b62051abe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InplaceAdd.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InplaceAdd"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InplaceSub.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InplaceSub.pbtxt
new file mode 100644
index 00000000000..2b6359ab957
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InplaceSub.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InplaceSub"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InplaceUpdate.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InplaceUpdate.pbtxt
new file mode 100644
index 00000000000..8d3a0f9d699
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InplaceUpdate.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InplaceUpdate"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InterleaveDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InterleaveDataset.pbtxt
new file mode 100644
index 00000000000..dcc02c855ed
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InterleaveDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "InterleaveDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.InterleaveDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Inv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Inv.pbtxt
new file mode 100644
index 00000000000..543e2c9bbe8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Inv.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Inv"
+ endpoint {
+ name: "linalg.Inv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InvGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InvGrad.pbtxt
new file mode 100644
index 00000000000..560855ffcf2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InvGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InvGrad"
+ endpoint {
+ name: "nn.InvGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Invert.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Invert.pbtxt
new file mode 100644
index 00000000000..6119fb19629
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Invert.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Invert"
+ endpoint {
+ name: "bitwise.Invert"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_InvertPermutation.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_InvertPermutation.pbtxt
new file mode 100644
index 00000000000..3fa442de299
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_InvertPermutation.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "InvertPermutation"
+ endpoint {
+ name: "math.InvertPermutation"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IsBoostedTreesEnsembleInitialized.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsBoostedTreesEnsembleInitialized.pbtxt
new file mode 100644
index 00000000000..9efd7cd8357
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsBoostedTreesEnsembleInitialized.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "IsBoostedTreesEnsembleInitialized"
+ endpoint {
+ name: "estimator.IsBoostedTreesEnsembleInitialized"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IsBoostedTreesQuantileStreamResourceInitialized.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsBoostedTreesQuantileStreamResourceInitialized.pbtxt
new file mode 100644
index 00000000000..630406cc2f0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsBoostedTreesQuantileStreamResourceInitialized.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "IsBoostedTreesQuantileStreamResourceInitialized"
+ endpoint {
+ name: "estimator.IsBoostedTreesQuantileStreamResourceInitialized"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IsFinite.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsFinite.pbtxt
new file mode 100644
index 00000000000..1c33eae3169
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsFinite.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IsFinite"
+ endpoint {
+ name: "math.IsFinite"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IsInf.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsInf.pbtxt
new file mode 100644
index 00000000000..dbe157edb81
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsInf.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IsInf"
+ endpoint {
+ name: "math.IsInf"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IsNan.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsNan.pbtxt
new file mode 100644
index 00000000000..a5575098082
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsNan.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IsNan"
+ endpoint {
+ name: "math.IsNan"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IsTPUEmbeddingInitialized.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsTPUEmbeddingInitialized.pbtxt
new file mode 100644
index 00000000000..8f99e9b3e71
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsTPUEmbeddingInitialized.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IsTPUEmbeddingInitialized"
+ endpoint {
+ name: "tpu.IsTPUEmbeddingInitialized"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IsVariableInitialized.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsVariableInitialized.pbtxt
new file mode 100644
index 00000000000..b5f0f182125
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsVariableInitialized.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IsVariableInitialized"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IsotonicRegression.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsotonicRegression.pbtxt
new file mode 100644
index 00000000000..e0d1edb67aa
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IsotonicRegression.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IsotonicRegression"
+ endpoint {
+ name: "nn.IsotonicRegression"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Iterator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Iterator.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Iterator.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Iterator.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_IteratorFromStringHandle.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorFromStringHandle.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_IteratorFromStringHandle.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorFromStringHandle.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorFromStringHandleV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorFromStringHandleV2.pbtxt
new file mode 100644
index 00000000000..214318f4aea
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorFromStringHandleV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IteratorFromStringHandleV2"
+ endpoint {
+ name: "data.IteratorFromStringHandle"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetDevice.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetDevice.pbtxt
new file mode 100644
index 00000000000..9da26e5af9f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetDevice.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IteratorGetDevice"
+ endpoint {
+ name: "data.IteratorGetDevice"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetModelProto.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetModelProto.pbtxt
new file mode 100644
index 00000000000..588803255e0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetModelProto.pbtxt
@@ -0,0 +1,6 @@
+op {
+ graph_op_name: "IteratorGetModelProto"
+ endpoint {
+ name: "data.IteratorGetModelProto"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetNext.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetNext.pbtxt
new file mode 100644
index 00000000000..b0c4c39a0f9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetNext.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "IteratorGetNext"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.IteratorGetNext"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetNextAsOptional.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetNextAsOptional.pbtxt
new file mode 100644
index 00000000000..95ea8dc4224
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetNextAsOptional.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IteratorGetNextAsOptional"
+ endpoint {
+ name: "data.IteratorGetNextAsOptional"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetNextSync.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetNextSync.pbtxt
new file mode 100644
index 00000000000..5f74f24e12f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorGetNextSync.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IteratorGetNextSync"
+ endpoint {
+ name: "data.IteratorGetNextSync"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorToStringHandle.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorToStringHandle.pbtxt
new file mode 100644
index 00000000000..0a7723ac676
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorToStringHandle.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "IteratorToStringHandle"
+ endpoint {
+ name: "data.IteratorToStringHandle"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorV2.pbtxt
new file mode 100644
index 00000000000..841bbba687f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_IteratorV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "IteratorV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.Iterator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_KMC2ChainInitialization.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_KMC2ChainInitialization.pbtxt
new file mode 100644
index 00000000000..5c2ed95566d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_KMC2ChainInitialization.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "KMC2ChainInitialization"
+ endpoint {
+ name: "cluster.KMC2ChainInitialization"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_KafkaDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_KafkaDataset.pbtxt
similarity index 79%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_KafkaDataset.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_KafkaDataset.pbtxt
index 5f0da216cbb..6055a53c894 100644
--- a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_KafkaDataset.pbtxt
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_KafkaDataset.pbtxt
@@ -1,5 +1,6 @@
op {
graph_op_name: "KafkaDataset"
+ visibility: VISIBLE
endpoint {
name: "data.KafkaDataset"
}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_KmeansPlusPlusInitialization.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_KmeansPlusPlusInitialization.pbtxt
new file mode 100644
index 00000000000..b4cb77a981b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_KmeansPlusPlusInitialization.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "KmeansPlusPlusInitialization"
+ endpoint {
+ name: "cluster.KmeansPlusPlusInitialization"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_KthOrderStatistic.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_KthOrderStatistic.pbtxt
new file mode 100644
index 00000000000..98c602c5ebe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_KthOrderStatistic.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "KthOrderStatistic"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_L2Loss.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_L2Loss.pbtxt
new file mode 100644
index 00000000000..e00de2d3643
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_L2Loss.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "L2Loss"
+ endpoint {
+ name: "nn.L2Loss"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LMDBDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LMDBDataset.pbtxt
new file mode 100644
index 00000000000..68de33fde0b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LMDBDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "LMDBDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.LMDBDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LMDBReader.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LMDBReader.pbtxt
new file mode 100644
index 00000000000..cff04abb5f5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LMDBReader.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LMDBReader"
+ endpoint {
+ name: "io.LmdbReader"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LRN.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LRN.pbtxt
new file mode 100644
index 00000000000..5990d283ee7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LRN.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LRN"
+ endpoint {
+ name: "nn.LocalResponseNormalization"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LRNGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LRNGrad.pbtxt
new file mode 100644
index 00000000000..f6c64ca6d04
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LRNGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LRNGrad"
+ endpoint {
+ name: "nn.LocalResponseNormalizationGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LSTMBlockCell.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LSTMBlockCell.pbtxt
new file mode 100644
index 00000000000..dd8baae2a1e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LSTMBlockCell.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LSTMBlockCell"
+ endpoint {
+ name: "nn.LSTMBlockCell"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LSTMBlockCellGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LSTMBlockCellGrad.pbtxt
new file mode 100644
index 00000000000..518a29ef8b1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LSTMBlockCellGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LSTMBlockCellGrad"
+ endpoint {
+ name: "nn.LSTMBlockCellGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LatencyStatsDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LatencyStatsDataset.pbtxt
new file mode 100644
index 00000000000..8447fb7e287
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LatencyStatsDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "LatencyStatsDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.LatencyStatsDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LeakyRelu.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LeakyRelu.pbtxt
new file mode 100644
index 00000000000..3573bff4fa8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LeakyRelu.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "LeakyRelu"
+ visibility: VISIBLE
+ endpoint {
+ name: "nn.LeakyRelu"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LeakyReluGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LeakyReluGrad.pbtxt
new file mode 100644
index 00000000000..0b6ab5953da
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LeakyReluGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LeakyReluGrad"
+ endpoint {
+ name: "data.LeakyReluGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LearnedUnigramCandidateSampler.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LearnedUnigramCandidateSampler.pbtxt
new file mode 100644
index 00000000000..bc4ab82cdc2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LearnedUnigramCandidateSampler.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LearnedUnigramCandidateSampler"
+ endpoint {
+ name: "nn.LearnedUnigramCandidateSampler"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LeftShift.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LeftShift.pbtxt
new file mode 100644
index 00000000000..e00c50f0d68
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LeftShift.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LeftShift"
+ endpoint {
+ name: "bitwise.LeftShift"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LegacyParallelInterleaveDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LegacyParallelInterleaveDatasetV2.pbtxt
new file mode 100644
index 00000000000..4046256a580
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LegacyParallelInterleaveDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "LegacyParallelInterleaveDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.LegacyParallelInterleaveDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Less.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Less.pbtxt
new file mode 100644
index 00000000000..0fa328a0f94
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Less.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Less"
+ endpoint {
+ name: "math.Less"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LessEqual.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LessEqual.pbtxt
new file mode 100644
index 00000000000..7faf528185e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LessEqual.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LessEqual"
+ endpoint {
+ name: "math.LessEqual"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Lgamma.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Lgamma.pbtxt
new file mode 100644
index 00000000000..b6e817d9d69
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Lgamma.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Lgamma"
+ endpoint {
+ name: "math.Lgamma"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LinSpace.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LinSpace.pbtxt
new file mode 100644
index 00000000000..09eb5212385
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LinSpace.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LinSpace"
+ endpoint {
+ name: "LinSpace"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ListDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ListDataset.pbtxt
new file mode 100644
index 00000000000..434f9b2c332
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ListDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ListDataset"
+ endpoint {
+ name: "data.ListDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ListDiff.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ListDiff.pbtxt
new file mode 100644
index 00000000000..4cac575906b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ListDiff.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ListDiff"
+ endpoint {
+ name: "SetDiff1d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ListSnapshotChunksDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ListSnapshotChunksDataset.pbtxt
new file mode 100644
index 00000000000..e48c7bf0a11
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ListSnapshotChunksDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ListSnapshotChunksDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ListSnapshotChunksDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadAllTPUEmbeddingParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadAllTPUEmbeddingParameters.pbtxt
new file mode 100644
index 00000000000..1c5cf1f526e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadAllTPUEmbeddingParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadAllTPUEmbeddingParameters"
+ endpoint {
+ name: "tpu.LoadAllTPUEmbeddingParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadAndRemapMatrix.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadAndRemapMatrix.pbtxt
new file mode 100644
index 00000000000..3c8984a6cb6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadAndRemapMatrix.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadAndRemapMatrix"
+ endpoint {
+ name: "linalg.LoadAndRemapMatrix"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadDataset.pbtxt
new file mode 100644
index 00000000000..7bbd800c889
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "LoadDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.LoadDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingADAMParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingADAMParameters.pbtxt
new file mode 100644
index 00000000000..a591533cf42
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingADAMParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingADAMParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingADAMParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingADAMParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingADAMParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..cd5c2cf8a4d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingADAMParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingADAMParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingADAMParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdadeltaParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdadeltaParameters.pbtxt
new file mode 100644
index 00000000000..4b4466b3ebe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdadeltaParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingAdadeltaParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingAdadeltaParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdadeltaParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdadeltaParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..3e6fbd0cda8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdadeltaParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingAdadeltaParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingAdadeltaParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdagradMomentumParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdagradMomentumParameters.pbtxt
new file mode 100644
index 00000000000..4ab6b43fb23
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdagradMomentumParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingAdagradMomentumParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingAdagradMomentumParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdagradParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdagradParameters.pbtxt
new file mode 100644
index 00000000000..53dc92a921c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdagradParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingAdagradParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingAdagradParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdagradParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdagradParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..fa8a345407c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingAdagradParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingAdagradParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingAdagradParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingCenteredRMSPropParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingCenteredRMSPropParameters.pbtxt
new file mode 100644
index 00000000000..f1781c96808
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingCenteredRMSPropParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingCenteredRMSPropParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingCenteredRMSPropParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFTRLParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFTRLParameters.pbtxt
new file mode 100644
index 00000000000..6b3377f0d72
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFTRLParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingFTRLParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingFTRLParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFTRLParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFTRLParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..f17d8fcc776
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFTRLParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingFTRLParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingFTRLParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFrequencyEstimatorParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFrequencyEstimatorParameters.pbtxt
new file mode 100644
index 00000000000..33baa18848c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFrequencyEstimatorParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingFrequencyEstimatorParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingFrequencyEstimatorParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..fba39f852dc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingMDLAdagradLightParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingMDLAdagradLightParameters.pbtxt
new file mode 100644
index 00000000000..d03ed8796c1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingMDLAdagradLightParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingMDLAdagradLightParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingMDLAdagradLightParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingMomentumParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingMomentumParameters.pbtxt
new file mode 100644
index 00000000000..2ea9c9cfc8c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingMomentumParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingMomentumParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingMomentumParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingMomentumParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingMomentumParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..fccbff595f9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingMomentumParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingMomentumParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingMomentumParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalAdagradParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalAdagradParameters.pbtxt
new file mode 100644
index 00000000000..1b6f3afd838
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalAdagradParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingProximalAdagradParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingProximalAdagradParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..65fe6e27afe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingProximalAdagradParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalYogiParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalYogiParameters.pbtxt
new file mode 100644
index 00000000000..f416308b609
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalYogiParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingProximalYogiParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingProximalYogiParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalYogiParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalYogiParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..2656c561bbb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingProximalYogiParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingProximalYogiParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingProximalYogiParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingRMSPropParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingRMSPropParameters.pbtxt
new file mode 100644
index 00000000000..bee7db0753b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingRMSPropParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingRMSPropParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingRMSPropParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingRMSPropParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingRMSPropParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..3becf4df5d3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingRMSPropParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingRMSPropParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingRMSPropParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingStochasticGradientDescentParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingStochasticGradientDescentParameters.pbtxt
new file mode 100644
index 00000000000..57102d66657
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingStochasticGradientDescentParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingStochasticGradientDescentParameters"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingStochasticGradientDescentParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..e6dae92e1f2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.LoadTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Log.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Log.pbtxt
new file mode 100644
index 00000000000..79d5b27a477
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Log.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Log"
+ endpoint {
+ name: "math.Log"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Log1p.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Log1p.pbtxt
new file mode 100644
index 00000000000..f91d9ec6a09
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Log1p.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Log1p"
+ endpoint {
+ name: "math.Log1p"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LogMatrixDeterminant.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogMatrixDeterminant.pbtxt
new file mode 100644
index 00000000000..3828143fa9b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogMatrixDeterminant.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LogMatrixDeterminant"
+ endpoint {
+ name: "linalg.LogMatrixDeterminant"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LogSoftmax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogSoftmax.pbtxt
new file mode 100644
index 00000000000..94186851ee9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogSoftmax.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LogSoftmax"
+ endpoint {
+ name: "nn.LogSoftmax"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LogUniformCandidateSampler.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogUniformCandidateSampler.pbtxt
new file mode 100644
index 00000000000..c1f7c67d6e5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogUniformCandidateSampler.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LogUniformCandidateSampler"
+ endpoint {
+ name: "random.LogUniformCandidateSampler"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LogicalAnd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogicalAnd.pbtxt
new file mode 100644
index 00000000000..ebd2c0f5d60
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogicalAnd.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LogicalAnd"
+ endpoint {
+ name: "math.LogicalAnd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LogicalNot.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogicalNot.pbtxt
new file mode 100644
index 00000000000..3665727828c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogicalNot.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LogicalNot"
+ endpoint {
+ name: "math.LogicalNot"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LogicalOr.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogicalOr.pbtxt
new file mode 100644
index 00000000000..e4a567d034e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LogicalOr.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LogicalOr"
+ endpoint {
+ name: "math.LogicalOr"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_LookupTableExport.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableExport.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_LookupTableExport.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableExport.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableExportV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableExportV2.pbtxt
new file mode 100644
index 00000000000..0e0c4a4fac3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableExportV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LookupTableExportV2"
+ endpoint {
+ name: "LookupTableExport"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_LookupTableFind.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableFind.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_LookupTableFind.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableFind.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableFindV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableFindV2.pbtxt
new file mode 100644
index 00000000000..936dd7afecf
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableFindV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LookupTableFindV2"
+ endpoint {
+ name: "LookupTableFind"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_LookupTableImport.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableImport.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_LookupTableImport.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableImport.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableImportV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableImportV2.pbtxt
new file mode 100644
index 00000000000..9e7925797da
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableImportV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LookupTableImportV2"
+ endpoint {
+ name: "LookupTableImport"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_LookupTableInsert.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableInsert.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_LookupTableInsert.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableInsert.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableInsertV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableInsertV2.pbtxt
new file mode 100644
index 00000000000..d5db4b3b535
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableInsertV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LookupTableInsertV2"
+ endpoint {
+ name: "LookupTableInsert"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableRemoveV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableRemoveV2.pbtxt
new file mode 100644
index 00000000000..911df9ae719
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableRemoveV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LookupTableRemoveV2"
+ endpoint {
+ name: "LookupTableRemove"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_LookupTableSize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableSize.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_LookupTableSize.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableSize.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableSizeV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableSizeV2.pbtxt
new file mode 100644
index 00000000000..fafc1f8c910
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LookupTableSizeV2.pbtxt
@@ -0,0 +1,11 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LookupTableSizeV2"
+ endpoint {
+ name: "LookupTableSize"
+ }
+ out_arg {
+ name: "size"
+ rename_to: "output"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LoopCond.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoopCond.pbtxt
new file mode 100644
index 00000000000..88907751f5e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LoopCond.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LoopCond"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_LowerBound.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_LowerBound.pbtxt
new file mode 100644
index 00000000000..3e92dbec886
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_LowerBound.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "LowerBound"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Lu.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Lu.pbtxt
new file mode 100644
index 00000000000..269a5fbb7d5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Lu.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Lu"
+ endpoint {
+ name: "linalg.Lu"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MakeIterator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MakeIterator.pbtxt
new file mode 100644
index 00000000000..cdcae8e5f69
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MakeIterator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "MakeIterator"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.MakeIterator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MakeUnique.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MakeUnique.pbtxt
new file mode 100644
index 00000000000..3c61d469fd4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MakeUnique.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MakeUnique"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MapAndBatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapAndBatchDataset.pbtxt
new file mode 100644
index 00000000000..bbf61d0f31e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapAndBatchDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "MapAndBatchDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.MapAndBatchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MapClear.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapClear.pbtxt
new file mode 100644
index 00000000000..b5bba0a4941
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapClear.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MapClear"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MapDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapDataset.pbtxt
new file mode 100644
index 00000000000..11cba7c2c0e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "MapDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.MapDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MapDefun.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapDefun.pbtxt
new file mode 100644
index 00000000000..0e069d080fe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapDefun.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MapDefun"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MapIncompleteSize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapIncompleteSize.pbtxt
new file mode 100644
index 00000000000..cd28e3f8a28
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapIncompleteSize.pbtxt
@@ -0,0 +1,8 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MapIncompleteSize"
+ out_arg {
+ name: "size"
+ rename_to: "output"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MapPeek.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapPeek.pbtxt
new file mode 100644
index 00000000000..3541cc96d63
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapPeek.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MapPeek"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MapSize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapSize.pbtxt
new file mode 100644
index 00000000000..30bad2d2ccb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapSize.pbtxt
@@ -0,0 +1,8 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MapSize"
+ out_arg {
+ name: "size"
+ rename_to: "output"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MapStage.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapStage.pbtxt
new file mode 100644
index 00000000000..fab2cf93595
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapStage.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MapStage"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MapUnstage.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapUnstage.pbtxt
new file mode 100644
index 00000000000..82be22f5dc8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapUnstage.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MapUnstage"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MapUnstageNoKey.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapUnstageNoKey.pbtxt
new file mode 100644
index 00000000000..dac737d2486
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MapUnstageNoKey.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MapUnstageNoKey"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatMul.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatMul.pbtxt
new file mode 100644
index 00000000000..bc7b2833b00
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatMul.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatMul"
+ endpoint {
+ name: "linalg.MatMul"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatchingFiles.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatchingFiles.pbtxt
new file mode 100644
index 00000000000..fea6f70d5cf
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatchingFiles.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatchingFiles"
+ endpoint {
+ name: "io.MatchingFiles"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatchingFilesDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatchingFilesDataset.pbtxt
new file mode 100644
index 00000000000..2bee85539f8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatchingFilesDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "MatchingFilesDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.MatchingFilesDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixBandPart.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixBandPart.pbtxt
new file mode 100644
index 00000000000..24f955501f7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixBandPart.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixBandPart"
+ endpoint {
+ name: "linalg.BandPart"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDeterminant.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDeterminant.pbtxt
new file mode 100644
index 00000000000..933a41dddc0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDeterminant.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixDeterminant"
+ endpoint {
+ name: "linalg.Det"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiag.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiag.pbtxt
new file mode 100644
index 00000000000..36497b863db
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiag.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "MatrixDiag"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagPart.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagPart.pbtxt
new file mode 100644
index 00000000000..9c5506e8fa1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagPart.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "MatrixDiagPart"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagPartV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagPartV2.pbtxt
new file mode 100644
index 00000000000..c40b2c16745
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagPartV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixDiagPartV2"
+ endpoint {
+ name: "linalg.MatrixDiagPart"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagPartV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagPartV3.pbtxt
new file mode 100644
index 00000000000..05fadef2d8a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagPartV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixDiagPartV3"
+ endpoint {
+ name: "linalg.MatrixDiagPartV3"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagV2.pbtxt
new file mode 100644
index 00000000000..b25ce946738
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixDiagV2"
+ endpoint {
+ name: "linalg.MatrixDiag"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagV3.pbtxt
new file mode 100644
index 00000000000..fdb19d77f1b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixDiagV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixDiagV3"
+ endpoint {
+ name: "linalg.MatrixDiagV3"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixExponential.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixExponential.pbtxt
new file mode 100644
index 00000000000..9db500e926a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixExponential.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixExponential"
+ endpoint {
+ name: "linalg.MatrixExponential"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixInverse.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixInverse.pbtxt
new file mode 100644
index 00000000000..1792f6deef7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixInverse.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixInverse"
+ endpoint {
+ name: "linalg.Inv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixLogarithm.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixLogarithm.pbtxt
new file mode 100644
index 00000000000..9fcb9badeb5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixLogarithm.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixLogarithm"
+ endpoint {
+ name: "linalg.MatrixLogarithm"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSetDiag.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSetDiag.pbtxt
new file mode 100644
index 00000000000..82f0441f2a0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSetDiag.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "MatrixSetDiag"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSetDiagV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSetDiagV2.pbtxt
new file mode 100644
index 00000000000..c6fbcfc235d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSetDiagV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "MatrixSetDiagV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSetDiagV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSetDiagV3.pbtxt
new file mode 100644
index 00000000000..28a0fb5b934
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSetDiagV3.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixSetDiagV3"
+ endpoint {
+ name: "linalg.MatrixSetDiag"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSolve.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSolve.pbtxt
new file mode 100644
index 00000000000..cf4bc9b04a6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSolve.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixSolve"
+ endpoint {
+ name: "linalg.Solve"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSolveLs.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSolveLs.pbtxt
new file mode 100644
index 00000000000..c7fc10c5447
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSolveLs.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixSolveLs"
+ endpoint {
+ name: "linalg.MatrixSolveLs"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSquareRoot.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSquareRoot.pbtxt
new file mode 100644
index 00000000000..42d3518b6e5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixSquareRoot.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixSquareRoot"
+ endpoint {
+ name: "linalg.Sqrtm"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixTriangularSolve.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixTriangularSolve.pbtxt
new file mode 100644
index 00000000000..0e20889c3ae
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MatrixTriangularSolve.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MatrixTriangularSolve"
+ endpoint {
+ name: "linalg.TriangularSolve"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Max.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Max.pbtxt
new file mode 100644
index 00000000000..112ab3af60a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Max.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Max"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxIntraOpParallelismDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxIntraOpParallelismDataset.pbtxt
new file mode 100644
index 00000000000..20a2e55ba80
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxIntraOpParallelismDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "MaxIntraOpParallelismDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.MaxIntraOpParallelismDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MaxPool.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MaxPool.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool3D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool3D.pbtxt
new file mode 100644
index 00000000000..77232e6020a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool3D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MaxPool3D"
+ endpoint {
+ name: "nn.MaxPool3d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool3DGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool3DGrad.pbtxt
new file mode 100644
index 00000000000..bbdc2058f46
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool3DGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MaxPool3DGrad"
+ endpoint {
+ name: "nn.MaxPool3dGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool3DGradGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool3DGradGrad.pbtxt
new file mode 100644
index 00000000000..cd2d4d76817
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPool3DGradGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MaxPool3DGradGrad"
+ endpoint {
+ name: "nn.MaxPool3dGradGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MaxPoolGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGrad.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MaxPoolGrad.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGrad.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MaxPoolGradGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradGrad.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MaxPoolGradGrad.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradGrad.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradGradV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradGradV2.pbtxt
new file mode 100644
index 00000000000..68a36bb8b63
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradGradV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MaxPoolGradGradV2"
+ endpoint {
+ name: "nn.MaxPoolGradGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradGradWithArgmax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradGradWithArgmax.pbtxt
new file mode 100644
index 00000000000..84f92c16fd9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradGradWithArgmax.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MaxPoolGradGradWithArgmax"
+ endpoint {
+ name: "nn.MaxPoolGradGradWithArgmax"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradV2.pbtxt
new file mode 100644
index 00000000000..78c26e0d20a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MaxPoolGradV2"
+ endpoint {
+ name: "nn.MaxPoolGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradWithArgmax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradWithArgmax.pbtxt
new file mode 100644
index 00000000000..82d58e00566
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolGradWithArgmax.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MaxPoolGradWithArgmax"
+ endpoint {
+ name: "nn.MaxPoolGradWithArgmax"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolV2.pbtxt
new file mode 100644
index 00000000000..a8ebcfea908
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MaxPoolV2"
+ endpoint {
+ name: "nn.MaxPool"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolWithArgmax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolWithArgmax.pbtxt
new file mode 100644
index 00000000000..c0e9bb2aa29
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MaxPoolWithArgmax.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MaxPoolWithArgmax"
+ endpoint {
+ name: "nn.MaxPoolWithArgmax"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Maximum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Maximum.pbtxt
new file mode 100644
index 00000000000..0a510be5947
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Maximum.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Maximum"
+ endpoint {
+ name: "math.Maximum"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Mean.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Mean.pbtxt
new file mode 100644
index 00000000000..707b1eddb86
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Mean.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Mean"
+ endpoint {
+ name: "math.Mean"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Merge.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Merge.pbtxt
new file mode 100644
index 00000000000..e04a5e7670d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Merge.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Merge"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MergeDedupData.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MergeDedupData.pbtxt
new file mode 100644
index 00000000000..c62ad85f44d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MergeDedupData.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MergeDedupData"
+ endpoint {
+ name: "tpu.MergeDedupData"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MergeSummary.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MergeSummary.pbtxt
new file mode 100644
index 00000000000..528399aaec1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MergeSummary.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MergeSummary"
+ endpoint {
+ name: "summary.MergeSummary"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MergeV2Checkpoints.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MergeV2Checkpoints.pbtxt
new file mode 100644
index 00000000000..671ae3f9917
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MergeV2Checkpoints.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MergeV2Checkpoints"
+ endpoint {
+ name: "train.MergeV2Checkpoints"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Mfcc.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Mfcc.pbtxt
new file mode 100644
index 00000000000..018361798cc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Mfcc.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Mfcc"
+ endpoint {
+ name: "audio.Mfcc"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Min.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Min.pbtxt
new file mode 100644
index 00000000000..3355adfbdde
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Min.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Min"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Minimum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Minimum.pbtxt
new file mode 100644
index 00000000000..cb33aa21fb4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Minimum.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Minimum"
+ endpoint {
+ name: "math.Minimum"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MirrorPad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MirrorPad.pbtxt
new file mode 100644
index 00000000000..5bc1ebdacbc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MirrorPad.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MirrorPad"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MirrorPadGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MirrorPadGrad.pbtxt
new file mode 100644
index 00000000000..0a9c168e261
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MirrorPadGrad.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MirrorPadGrad"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MlirPassthroughOp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MlirPassthroughOp.pbtxt
new file mode 100644
index 00000000000..bf4453b8f2d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MlirPassthroughOp.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MlirPassthroughOp"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Mod.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Mod.pbtxt
new file mode 100644
index 00000000000..e4003385089
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Mod.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Mod"
+ endpoint {
+ name: "math.Mod"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ModelDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ModelDataset.pbtxt
new file mode 100644
index 00000000000..8549b4582cc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ModelDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ModelDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ModelDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Mul.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Mul.pbtxt
new file mode 100644
index 00000000000..8d1f243721d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Mul.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Mul"
+ endpoint {
+ name: "math.Mul"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MulNoNan.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MulNoNan.pbtxt
new file mode 100644
index 00000000000..e5af10eb9b4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MulNoNan.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MulNoNan"
+ endpoint {
+ name: "math.MulNoNan"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIterator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIterator.pbtxt
new file mode 100644
index 00000000000..b51de3ab1e5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIterator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MultiDeviceIterator"
+ endpoint {
+ name: "data.MultiDeviceIterator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorFromStringHandle.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorFromStringHandle.pbtxt
new file mode 100644
index 00000000000..59f8a287dad
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorFromStringHandle.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MultiDeviceIteratorFromStringHandle"
+ endpoint {
+ name: "data.MultiDeviceIteratorFromStringHandle"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorGetNextFromShard.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorGetNextFromShard.pbtxt
new file mode 100644
index 00000000000..f36e12598c4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorGetNextFromShard.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MultiDeviceIteratorGetNextFromShard"
+ endpoint {
+ name: "data.MultiDeviceIteratorGetNextFromShard"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorInit.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorInit.pbtxt
new file mode 100644
index 00000000000..3b477b5b21f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorInit.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MultiDeviceIteratorInit"
+ endpoint {
+ name: "data.MultiDeviceIteratorInit"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorToStringHandle.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorToStringHandle.pbtxt
new file mode 100644
index 00000000000..3d4958f4495
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MultiDeviceIteratorToStringHandle.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MultiDeviceIteratorToStringHandle"
+ endpoint {
+ name: "data.MultiDeviceIteratorToStringHandle"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Multinomial.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Multinomial.pbtxt
new file mode 100644
index 00000000000..2b693f02801
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Multinomial.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Multinomial"
+ endpoint {
+ name: "random.Multinomial"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MutableDenseHashTable.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableDenseHashTable.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MutableDenseHashTable.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_MutableDenseHashTable.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableDenseHashTableV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableDenseHashTableV2.pbtxt
new file mode 100644
index 00000000000..8f20cfd93f5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableDenseHashTableV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MutableDenseHashTableV2"
+ endpoint {
+ name: "MutableDenseHashTable"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MutableHashTable.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableHashTable.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MutableHashTable.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_MutableHashTable.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MutableHashTableOfTensors.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableHashTableOfTensors.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_MutableHashTableOfTensors.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_MutableHashTableOfTensors.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableHashTableOfTensorsV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableHashTableOfTensorsV2.pbtxt
new file mode 100644
index 00000000000..d9c26fde9dc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableHashTableOfTensorsV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MutableHashTableOfTensorsV2"
+ endpoint {
+ name: "MutableHashTableOfTensors"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableHashTableV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableHashTableV2.pbtxt
new file mode 100644
index 00000000000..0cfaa1a226b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutableHashTableV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MutableHashTableV2"
+ endpoint {
+ name: "MutableHashTable"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MutexLock.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutexLock.pbtxt
new file mode 100644
index 00000000000..99bf40ba1ed
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutexLock.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MutexLock"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_MutexV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutexV2.pbtxt
new file mode 100644
index 00000000000..17198f4f38c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_MutexV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "MutexV2"
+ endpoint {
+ name: "Mutex"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NcclAllReduce.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NcclAllReduce.pbtxt
new file mode 100644
index 00000000000..cd7390fa15e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NcclAllReduce.pbtxt
@@ -0,0 +1,11 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NcclAllReduce"
+ endpoint: {
+ name: "distribute.NcclAllReduce"
+ }
+ endpoint: {
+ name: "NcclAllReduce"
+ deprecated: true
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NcclBroadcast.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NcclBroadcast.pbtxt
new file mode 100644
index 00000000000..74abc5b82d0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NcclBroadcast.pbtxt
@@ -0,0 +1,11 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NcclBroadcast"
+ endpoint: {
+ name: "distribute.NcclBroadcast"
+ }
+ endpoint: {
+ name: "NcclBroadcast"
+ deprecated: true
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NcclReduce.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NcclReduce.pbtxt
new file mode 100644
index 00000000000..a0ee5487b3e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NcclReduce.pbtxt
@@ -0,0 +1,11 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NcclReduce"
+ endpoint: {
+ name: "distribute.NcclReduce"
+ }
+ endpoint: {
+ name: "NcclReduce"
+ deprecated: true
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Ndtri.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Ndtri.pbtxt
new file mode 100644
index 00000000000..9394ba422af
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Ndtri.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Ndtri"
+ endpoint {
+ name: "math.Ndtri"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NearestNeighbors.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NearestNeighbors.pbtxt
new file mode 100644
index 00000000000..d50362c31fd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NearestNeighbors.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NearestNeighbors"
+ endpoint {
+ name: "image.NearestNeighbors"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Neg.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Neg.pbtxt
new file mode 100644
index 00000000000..440db9e6414
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Neg.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Neg"
+ endpoint {
+ name: "math.Neg"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NegTrain.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NegTrain.pbtxt
new file mode 100644
index 00000000000..5f381b6e034
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NegTrain.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NegTrain"
+ endpoint {
+ name: "train.NegTrain"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NextAfter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NextAfter.pbtxt
new file mode 100644
index 00000000000..c1c88706cb2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NextAfter.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NextAfter"
+ endpoint {
+ name: "math.NextAfter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NextIteration.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NextIteration.pbtxt
new file mode 100644
index 00000000000..63b551aad19
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NextIteration.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NextIteration"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NoOp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NoOp.pbtxt
new file mode 100644
index 00000000000..f3d89127156
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NoOp.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NoOp"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NonDeterministicInts.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonDeterministicInts.pbtxt
new file mode 100644
index 00000000000..aa8cc027cd6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonDeterministicInts.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NonDeterministicInts"
+ endpoint {
+ name: "random.NonDeterministicInts"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_NonMaxSuppression.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppression.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_NonMaxSuppression.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppression.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_NonMaxSuppressionV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionV2.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_NonMaxSuppressionV2.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionV2.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_NonMaxSuppressionV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionV3.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_NonMaxSuppressionV3.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionV3.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionV4.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionV4.pbtxt
new file mode 100644
index 00000000000..e817e8d18ba
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionV4.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "NonMaxSuppressionV4"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionV5.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionV5.pbtxt
new file mode 100644
index 00000000000..7821a13912d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionV5.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NonMaxSuppressionV5"
+ endpoint {
+ name: "image.NonMaxSuppression"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionWithOverlaps.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionWithOverlaps.pbtxt
new file mode 100644
index 00000000000..de5488bb255
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonMaxSuppressionWithOverlaps.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NonMaxSuppressionWithOverlaps"
+ endpoint {
+ name: "image.NonMaxSuppressionWithOverlaps"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NonSerializableDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonSerializableDataset.pbtxt
new file mode 100644
index 00000000000..4efa2ec9978
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NonSerializableDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "NonSerializableDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.NonSerializableDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NotEqual.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NotEqual.pbtxt
new file mode 100644
index 00000000000..5b587960e14
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NotEqual.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NotEqual"
+ endpoint {
+ name: "math.NotEqual"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_NthElement.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_NthElement.pbtxt
new file mode 100644
index 00000000000..7930c041ad3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_NthElement.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "NthElement"
+ endpoint {
+ name: "nn.NthElement"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OneHot.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OneHot.pbtxt
new file mode 100644
index 00000000000..116d0272f16
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OneHot.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OneHot"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OneShotIterator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OneShotIterator.pbtxt
new file mode 100644
index 00000000000..18ee5a8cff8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OneShotIterator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "OneShotIterator"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.OneShotIterator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OnesLike.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OnesLike.pbtxt
new file mode 100644
index 00000000000..06bdeacbd0e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OnesLike.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OnesLike"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OptimizeDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptimizeDataset.pbtxt
new file mode 100644
index 00000000000..4220b306071
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptimizeDataset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "OptimizeDataset"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OptimizeDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptimizeDatasetV2.pbtxt
new file mode 100644
index 00000000000..4b0214740a9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptimizeDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "OptimizeDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.OptimizeDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalFromValue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalFromValue.pbtxt
new file mode 100644
index 00000000000..282d866f180
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalFromValue.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OptionalFromValue"
+ endpoint {
+ name: "data.OptionalFromValue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalGetValue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalGetValue.pbtxt
new file mode 100644
index 00000000000..b0be584ec90
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalGetValue.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OptionalGetValue"
+ endpoint {
+ name: "data.OptionalGetValue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalHasValue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalHasValue.pbtxt
new file mode 100644
index 00000000000..f2778d04bb8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalHasValue.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OptionalHasValue"
+ endpoint {
+ name: "data.OptionalHasValue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalNone.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalNone.pbtxt
new file mode 100644
index 00000000000..77ec49c964c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionalNone.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OptionalNone"
+ endpoint {
+ name: "data.OptionalNone"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionsDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionsDataset.pbtxt
new file mode 100644
index 00000000000..0ccf9d12546
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OptionsDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "OptionsDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.OptionsDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapClear.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapClear.pbtxt
new file mode 100644
index 00000000000..30c9cc626d0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapClear.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OrderedMapClear"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapIncompleteSize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapIncompleteSize.pbtxt
new file mode 100644
index 00000000000..ef2e4e4f272
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapIncompleteSize.pbtxt
@@ -0,0 +1,8 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OrderedMapIncompleteSize"
+ out_arg {
+ name: "size"
+ rename_to: "output"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapPeek.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapPeek.pbtxt
new file mode 100644
index 00000000000..2ac8b71d2fb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapPeek.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OrderedMapPeek"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapSize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapSize.pbtxt
new file mode 100644
index 00000000000..47e4f6188ce
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapSize.pbtxt
@@ -0,0 +1,8 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OrderedMapSize"
+ out_arg {
+ name: "size"
+ rename_to: "output"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapStage.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapStage.pbtxt
new file mode 100644
index 00000000000..22a96eaccb0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapStage.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OrderedMapStage"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapUnstage.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapUnstage.pbtxt
new file mode 100644
index 00000000000..b617e0ad11e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapUnstage.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OrderedMapUnstage"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapUnstageNoKey.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapUnstageNoKey.pbtxt
new file mode 100644
index 00000000000..e5beaff8915
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OrderedMapUnstageNoKey.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OrderedMapUnstageNoKey"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeue.pbtxt
new file mode 100644
index 00000000000..6a8b5d5f562
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeue.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OutfeedDequeue"
+ endpoint {
+ name: "tpu.OutfeedDequeue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeueTuple.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeueTuple.pbtxt
new file mode 100644
index 00000000000..9b8a9b7bebd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeueTuple.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OutfeedDequeueTuple"
+ endpoint {
+ name: "tpu.OutfeedDequeueTuple"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeueTupleV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeueTupleV2.pbtxt
new file mode 100644
index 00000000000..7fef814d5b3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeueTupleV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OutfeedDequeueTupleV2"
+ endpoint {
+ name: "tpu.OutfeedDequeueTupleV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeueV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeueV2.pbtxt
new file mode 100644
index 00000000000..02c947f23f8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedDequeueV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OutfeedDequeueV2"
+ endpoint {
+ name: "tpu.OutfeedDequeueV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedEnqueue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedEnqueue.pbtxt
new file mode 100644
index 00000000000..18694993470
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedEnqueue.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OutfeedEnqueue"
+ endpoint {
+ name: "tpu.OutfeedEnqueue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedEnqueueTuple.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedEnqueueTuple.pbtxt
new file mode 100644
index 00000000000..e4347fe0bcd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_OutfeedEnqueueTuple.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "OutfeedEnqueueTuple"
+ endpoint {
+ name: "tpu.OutfeedEnqueueTuple"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Pack.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Pack.pbtxt
new file mode 100644
index 00000000000..2be5e46f791
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Pack.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Pack"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Pad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Pad.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Pad.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Pad.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PadV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PadV2.pbtxt
new file mode 100644
index 00000000000..2462c556cf3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PadV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "PadV2"
+ endpoint {
+ name: "Pad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PaddedBatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PaddedBatchDataset.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PaddedBatchDataset.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_PaddedBatchDataset.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PaddedBatchDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PaddedBatchDatasetV2.pbtxt
new file mode 100644
index 00000000000..0999120d361
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PaddedBatchDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "PaddedBatchDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.PaddedBatchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PaddingFIFOQueue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PaddingFIFOQueue.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PaddingFIFOQueue.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_PaddingFIFOQueue.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PaddingFIFOQueueV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PaddingFIFOQueueV2.pbtxt
new file mode 100644
index 00000000000..d0b4a712ff8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PaddingFIFOQueueV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "PaddingFIFOQueueV2"
+ endpoint {
+ name: "io.PaddingFifoQueue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelBatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelBatchDataset.pbtxt
new file mode 100644
index 00000000000..3fd9b1a423b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelBatchDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ParallelBatchDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ParallelBatchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelConcat.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelConcat.pbtxt
new file mode 100644
index 00000000000..cead44173d7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelConcat.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ParallelConcat"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelDynamicStitch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelDynamicStitch.pbtxt
new file mode 100644
index 00000000000..a8bebe9f4f5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelDynamicStitch.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ParallelDynamicStitch"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelFilterDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelFilterDataset.pbtxt
new file mode 100644
index 00000000000..32e189b0963
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelFilterDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ParallelFilterDataset"
+ endpoint {
+ name: "data.ParallelFilterDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ParallelInterleaveDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDataset.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ParallelInterleaveDataset.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDataset.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDatasetV2.pbtxt
new file mode 100644
index 00000000000..349769a43cf
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDatasetV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "ParallelInterleaveDatasetV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDatasetV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDatasetV3.pbtxt
new file mode 100644
index 00000000000..b0f3e0f0f62
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDatasetV3.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "ParallelInterleaveDatasetV3"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDatasetV4.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDatasetV4.pbtxt
new file mode 100644
index 00000000000..7dddfc15a66
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelInterleaveDatasetV4.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ParallelInterleaveDatasetV4"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ParallelInterleaveDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelMapDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelMapDataset.pbtxt
new file mode 100644
index 00000000000..64f25b9e5e9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelMapDataset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "ParallelMapDataset"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelMapDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelMapDatasetV2.pbtxt
new file mode 100644
index 00000000000..9135d8f5c99
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParallelMapDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ParallelMapDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ParallelMapDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParameterizedTruncatedNormal.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParameterizedTruncatedNormal.pbtxt
new file mode 100644
index 00000000000..e271245d703
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParameterizedTruncatedNormal.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ParameterizedTruncatedNormal"
+ endpoint {
+ name: "random.ParameterizedTruncatedNormal"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExample.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExample.pbtxt
new file mode 100644
index 00000000000..9b531803889
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExample.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "ParseExample"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExampleDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExampleDataset.pbtxt
new file mode 100644
index 00000000000..d293e296b74
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExampleDataset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "ParseExampleDataset"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExampleDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExampleDatasetV2.pbtxt
new file mode 100644
index 00000000000..4ce175177f6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExampleDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ParseExampleDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ParseExampleDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExampleV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExampleV2.pbtxt
new file mode 100644
index 00000000000..c78eb77249c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseExampleV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ParseExampleV2"
+ endpoint {
+ name: "io.ParseExample"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSequenceExample.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSequenceExample.pbtxt
new file mode 100644
index 00000000000..83dc91d9644
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSequenceExample.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "ParseSequenceExample"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSequenceExampleV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSequenceExampleV2.pbtxt
new file mode 100644
index 00000000000..3ce6e01560f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSequenceExampleV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ParseSequenceExampleV2"
+ endpoint {
+ name: "io.ParseSequenceExample"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSingleExample.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSingleExample.pbtxt
new file mode 100644
index 00000000000..d2dfdc20ea2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSingleExample.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ParseSingleExample"
+ endpoint {
+ name: "io.ParseSingleExample"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSingleSequenceExample.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSingleSequenceExample.pbtxt
new file mode 100644
index 00000000000..2a83b9105e0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseSingleSequenceExample.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ParseSingleSequenceExample"
+ endpoint {
+ name: "io.ParseSingleSequenceExample"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseTensor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseTensor.pbtxt
new file mode 100644
index 00000000000..e8e5db934af
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ParseTensor.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ParseTensor"
+ endpoint {
+ name: "io.ParseTensor"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PartitionedCall.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PartitionedCall.pbtxt
new file mode 100644
index 00000000000..268c519a8a7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PartitionedCall.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "PartitionedCall"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Placeholder.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Placeholder.pbtxt
new file mode 100644
index 00000000000..2e83fe4d8f8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Placeholder.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Placeholder"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PlaceholderV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PlaceholderV2.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PlaceholderV2.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_PlaceholderV2.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PlaceholderWithDefault.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PlaceholderWithDefault.pbtxt
new file mode 100644
index 00000000000..d20aff9cb92
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PlaceholderWithDefault.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "PlaceholderWithDefault"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Polygamma.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Polygamma.pbtxt
new file mode 100644
index 00000000000..f81d95924f1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Polygamma.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Polygamma"
+ endpoint {
+ name: "math.Polygamma"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PopulationCount.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PopulationCount.pbtxt
new file mode 100644
index 00000000000..840404a23d0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PopulationCount.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "PopulationCount"
+ endpoint {
+ name: "math.PopulationCount"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Pow.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Pow.pbtxt
new file mode 100644
index 00000000000..8657e4afb98
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Pow.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Pow"
+ endpoint {
+ name: "math.Pow"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PrefetchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PrefetchDataset.pbtxt
new file mode 100644
index 00000000000..a8a3423123d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PrefetchDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "PrefetchDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.PrefetchDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Prelinearize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Prelinearize.pbtxt
new file mode 100644
index 00000000000..71d98c0868f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Prelinearize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Prelinearize"
+ endpoint {
+ name: "tpu.Prelinearize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PrelinearizeTuple.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PrelinearizeTuple.pbtxt
new file mode 100644
index 00000000000..59751130dfc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PrelinearizeTuple.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "PrelinearizeTuple"
+ endpoint {
+ name: "tpu.PrelinearizeTuple"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PrependFromQueueAndPaddedBatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PrependFromQueueAndPaddedBatchDataset.pbtxt
similarity index 86%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PrependFromQueueAndPaddedBatchDataset.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_PrependFromQueueAndPaddedBatchDataset.pbtxt
index 7c9d509b163..a5e8f99de23 100644
--- a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PrependFromQueueAndPaddedBatchDataset.pbtxt
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PrependFromQueueAndPaddedBatchDataset.pbtxt
@@ -1,5 +1,6 @@
op {
graph_op_name: "PrependFromQueueAndPaddedBatchDataset"
+ visibility: VISIBLE
endpoint {
name: "data.PrependFromQueueAndPaddedBatchDataset"
}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PreventGradient.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PreventGradient.pbtxt
new file mode 100644
index 00000000000..bafa0a5a739
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PreventGradient.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "PreventGradient"
+ endpoint {
+ name: "train.PreventGradient"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Print.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Print.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Print.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Print.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PrintV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PrintV2.pbtxt
new file mode 100644
index 00000000000..573751c55b8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PrintV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "PrintV2"
+ endpoint {
+ name: "Print"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PriorityQueue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PriorityQueue.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PriorityQueue.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_PriorityQueue.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PriorityQueueV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PriorityQueueV2.pbtxt
new file mode 100644
index 00000000000..8bd3b0a04dc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PriorityQueueV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "PriorityQueueV2"
+ endpoint {
+ name: "io.PriorityQueue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_PrivateThreadPoolDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PrivateThreadPoolDataset.pbtxt
new file mode 100644
index 00000000000..4c0cfbe6698
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_PrivateThreadPoolDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "PrivateThreadPoolDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.PrivateThreadPoolDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Prod.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Prod.pbtxt
new file mode 100644
index 00000000000..d1c62ee4c7d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Prod.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Prod"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PyFunc.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PyFunc.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PyFunc.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_PyFunc.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PyFuncStateless.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_PyFuncStateless.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_PyFuncStateless.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_PyFuncStateless.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Qr.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Qr.pbtxt
new file mode 100644
index 00000000000..13b372131af
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Qr.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Qr"
+ endpoint {
+ name: "linalg.Qr"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QuantizeAndDequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantize.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QuantizeAndDequantize.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantize.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QuantizeAndDequantizeV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV2.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QuantizeAndDequantizeV2.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV2.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV3.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV3.pbtxt
new file mode 100644
index 00000000000..49b0b0d4878
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV3.pbtxt
@@ -0,0 +1,10 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizeAndDequantizeV3"
+ endpoint {
+ name: "quantization.QuantizeAndDequantizeV3"
+ }
+ endpoint {
+ name: "quantization.QuantizeAndDequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV4.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV4.pbtxt
new file mode 100644
index 00000000000..4e9780f470c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV4.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizeAndDequantizeV4"
+ endpoint {
+ name: "quantization.QuantizeAndDequantizeV4"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV4Grad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV4Grad.pbtxt
new file mode 100644
index 00000000000..3c86a135f58
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeAndDequantizeV4Grad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizeAndDequantizeV4Grad"
+ endpoint {
+ name: "quantization.QuantizeAndDequantizeV4Grad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeDownAndShrinkRange.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeDownAndShrinkRange.pbtxt
new file mode 100644
index 00000000000..ac2dc64b29b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeDownAndShrinkRange.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizeDownAndShrinkRange"
+ endpoint {
+ name: "quantization.QuantizeDownAndShrinkRange"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeV2.pbtxt
new file mode 100644
index 00000000000..8dd0155b0cc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizeV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizeV2"
+ endpoint {
+ name: "quantization.Quantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedAdd.pbtxt
new file mode 100644
index 00000000000..409160600a2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedAdd.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedAdd"
+ endpoint {
+ name: "math.QuantizedAdd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedAvgPool.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedAvgPool.pbtxt
new file mode 100644
index 00000000000..4f6112fd2d6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedAvgPool.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedAvgPool"
+ endpoint {
+ name: "nn.QuantizedAvgPool"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedBatchNormWithGlobalNormalization.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedBatchNormWithGlobalNormalization.pbtxt
new file mode 100644
index 00000000000..f83d5c2433a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedBatchNormWithGlobalNormalization.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedBatchNormWithGlobalNormalization"
+ endpoint {
+ name: "nn.QuantizedBatchNormWithGlobalNormalization"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedBiasAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedBiasAdd.pbtxt
new file mode 100644
index 00000000000..42af03225d9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedBiasAdd.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedBiasAdd"
+ endpoint {
+ name: "nn.QuantizedBiasAdd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConcat.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConcat.pbtxt
new file mode 100644
index 00000000000..6f494b440b1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConcat.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConcat"
+ endpoint {
+ name: "quantization.QuantizedConcat"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConcatV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConcatV2.pbtxt
new file mode 100644
index 00000000000..b88e8e1a96f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConcatV2.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "QuantizedConcatV2"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2D.pbtxt
new file mode 100644
index 00000000000..a6e20f4585d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2D"
+ endpoint {
+ name: "nn.QuantizedConv2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DAndRelu.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DAndRelu.pbtxt
new file mode 100644
index 00000000000..11babc82e64
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DAndRelu.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DAndRelu"
+ endpoint {
+ name: "nn.QuantizedConv2DAndRelu"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DAndReluAndRequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DAndReluAndRequantize.pbtxt
new file mode 100644
index 00000000000..69598eb29e7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DAndReluAndRequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DAndReluAndRequantize"
+ endpoint {
+ name: "nn.QuantizedConv2DAndReluAndRequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DAndRequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DAndRequantize.pbtxt
new file mode 100644
index 00000000000..074c8bb81dc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DAndRequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DAndRequantize"
+ endpoint {
+ name: "nn.QuantizedConv2DAndRequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DPerChannel.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DPerChannel.pbtxt
new file mode 100644
index 00000000000..8e0ad23bd42
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DPerChannel.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DPerChannel"
+ endpoint {
+ name: "nn.QuantizedConv2DPerChannel"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBias.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBias.pbtxt
new file mode 100644
index 00000000000..bfb35fd99ee
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBias.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DWithBias"
+ endpoint {
+ name: "nn.QuantizedConv2DWithBias"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasAndRelu.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasAndRelu.pbtxt
new file mode 100644
index 00000000000..094b5484db9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasAndRelu.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DWithBiasAndRelu"
+ endpoint {
+ name: "nn.QuantizedConv2DWithBiasAndRelu"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasAndReluAndRequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasAndReluAndRequantize.pbtxt
new file mode 100644
index 00000000000..45a9ae59f11
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasAndReluAndRequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DWithBiasAndReluAndRequantize"
+ endpoint {
+ name: "nn.QuantizedConv2DWithBiasAndReluAndRequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasAndRequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasAndRequantize.pbtxt
new file mode 100644
index 00000000000..e2360686b4a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasAndRequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DWithBiasAndRequantize"
+ endpoint {
+ name: "nn.QuantizedConv2DWithBiasAndRequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasSignedSumAndReluAndRequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasSignedSumAndReluAndRequantize.pbtxt
new file mode 100644
index 00000000000..16c15d1bcbb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasSignedSumAndReluAndRequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DWithBiasSignedSumAndReluAndRequantize"
+ endpoint {
+ name: "nn.QuantizedConv2DWithBiasSignedSumAndReluAndRequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasSumAndRelu.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasSumAndRelu.pbtxt
new file mode 100644
index 00000000000..210d5287924
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasSumAndRelu.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DWithBiasSumAndRelu"
+ endpoint {
+ name: "nn.QuantizedConv2DWithBiasSumAndRelu"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasSumAndReluAndRequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasSumAndReluAndRequantize.pbtxt
new file mode 100644
index 00000000000..910800ac4f0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedConv2DWithBiasSumAndReluAndRequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedConv2DWithBiasSumAndReluAndRequantize"
+ endpoint {
+ name: "nn.QuantizedConv2DWithBiasSumAndReluAndRequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2D.pbtxt
new file mode 100644
index 00000000000..cfcc863566b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedDepthwiseConv2D"
+ endpoint {
+ name: "nn.QuantizedDepthwiseConv2D"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2DWithBias.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2DWithBias.pbtxt
new file mode 100644
index 00000000000..961de7a11f7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2DWithBias.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedDepthwiseConv2DWithBias"
+ endpoint {
+ name: "nn.QuantizedDepthwiseConv2DWithBias"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2DWithBiasAndRelu.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2DWithBiasAndRelu.pbtxt
new file mode 100644
index 00000000000..4470675b660
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2DWithBiasAndRelu.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedDepthwiseConv2DWithBiasAndRelu"
+ endpoint {
+ name: "nn.QuantizedDepthwiseConv2DWithBiasAndRelu"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2DWithBiasAndReluAndRequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2DWithBiasAndReluAndRequantize.pbtxt
new file mode 100644
index 00000000000..e2673935a16
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedDepthwiseConv2DWithBiasAndReluAndRequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedDepthwiseConv2DWithBiasAndReluAndRequantize"
+ endpoint {
+ name: "nn.QuantizedDepthwiseConv2DWithBiasAndReluAndRequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedInstanceNorm.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedInstanceNorm.pbtxt
new file mode 100644
index 00000000000..52620d0f998
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedInstanceNorm.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedInstanceNorm"
+ endpoint {
+ name: "nn.QuantizedInstanceNorm"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMul.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMul.pbtxt
new file mode 100644
index 00000000000..40f0a5e788c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMul.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedMatMul"
+ endpoint {
+ name: "linalg.QuantizedMatMul"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBias.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBias.pbtxt
new file mode 100644
index 00000000000..65cd7780258
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBias.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedMatMulWithBias"
+ endpoint {
+ name: "linalg.QuantizedMatMulWithBias"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndDequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndDequantize.pbtxt
new file mode 100644
index 00000000000..2c47dfba1b0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndDequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedMatMulWithBiasAndDequantize"
+ endpoint {
+ name: "quantization.QuantizedMatMulWithBiasAndDequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndRelu.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndRelu.pbtxt
new file mode 100644
index 00000000000..9f7d19c4203
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndRelu.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedMatMulWithBiasAndRelu"
+ endpoint {
+ name: "linalg.QuantizedMatMulWithBiasAndRelu"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndReluAndRequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndReluAndRequantize.pbtxt
new file mode 100644
index 00000000000..548eeb7b9ef
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndReluAndRequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedMatMulWithBiasAndReluAndRequantize"
+ endpoint {
+ name: "linalg.QuantizedMatMulWithBiasAndReluAndRequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndRequantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndRequantize.pbtxt
new file mode 100644
index 00000000000..24994b5662f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMatMulWithBiasAndRequantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedMatMulWithBiasAndRequantize"
+ endpoint {
+ name: "quantization.QuantizedMatMulWithBiasAndRequantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMaxPool.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMaxPool.pbtxt
new file mode 100644
index 00000000000..40f6f65c9b1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMaxPool.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedMaxPool"
+ endpoint {
+ name: "nn.QuantizedMaxPool"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMul.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMul.pbtxt
new file mode 100644
index 00000000000..6b14b69beb5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedMul.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedMul"
+ endpoint {
+ name: "math.QuantizedMul"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedRelu.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedRelu.pbtxt
new file mode 100644
index 00000000000..8e1b314e688
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedRelu.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedRelu"
+ endpoint {
+ name: "nn.QuantizedRelu"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedRelu6.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedRelu6.pbtxt
new file mode 100644
index 00000000000..f5230201707
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedRelu6.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedRelu6"
+ endpoint {
+ name: "nn.QuantizedRelu6"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedReluX.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedReluX.pbtxt
new file mode 100644
index 00000000000..a52915868d7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedReluX.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedReluX"
+ endpoint {
+ name: "nn.QuantizedReluX"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedReshape.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedReshape.pbtxt
new file mode 100644
index 00000000000..f2049b9f380
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedReshape.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedReshape"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedResizeBilinear.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedResizeBilinear.pbtxt
new file mode 100644
index 00000000000..28191a12de9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QuantizedResizeBilinear.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QuantizedResizeBilinear"
+ endpoint {
+ name: "image.QuantizedResizeBilinear"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueClose.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueClose.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueClose.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_QueueClose.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueCloseV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueCloseV2.pbtxt
new file mode 100644
index 00000000000..08c2af13ab5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueCloseV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QueueCloseV2"
+ endpoint {
+ name: "io.QueueClose"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueDequeue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeue.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueDequeue.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeue.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueDequeueMany.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueMany.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueDequeueMany.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueMany.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueManyV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueManyV2.pbtxt
new file mode 100644
index 00000000000..e0cdf5ce764
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueManyV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QueueDequeueManyV2"
+ endpoint {
+ name: "io.QueueDequeueMany"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueDequeueUpTo.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueUpTo.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueDequeueUpTo.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueUpTo.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueUpToV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueUpToV2.pbtxt
new file mode 100644
index 00000000000..715b614ccda
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueUpToV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QueueDequeueUpToV2"
+ endpoint {
+ name: "io.QueueDequeueUpTo"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueV2.pbtxt
new file mode 100644
index 00000000000..670a81b09c6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueDequeueV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QueueDequeueV2"
+ endpoint {
+ name: "io.QueueDequeue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueEnqueue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueEnqueue.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueEnqueue.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_QueueEnqueue.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueEnqueueMany.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueEnqueueMany.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueEnqueueMany.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_QueueEnqueueMany.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueEnqueueManyV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueEnqueueManyV2.pbtxt
new file mode 100644
index 00000000000..8f08727b990
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueEnqueueManyV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QueueEnqueueManyV2"
+ endpoint {
+ name: "io.QueueEnqueueMany"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueEnqueueV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueEnqueueV2.pbtxt
new file mode 100644
index 00000000000..56700dbe62d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueEnqueueV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QueueEnqueueV2"
+ endpoint {
+ name: "io.QueueEnqueue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueIsClosed.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueIsClosed.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueIsClosed.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_QueueIsClosed.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueIsClosedV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueIsClosedV2.pbtxt
new file mode 100644
index 00000000000..e3c27b82fe8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueIsClosedV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QueueIsClosedV2"
+ endpoint {
+ name: "io.QueueIsClosed"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueSize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueSize.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_QueueSize.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_QueueSize.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueSizeV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueSizeV2.pbtxt
new file mode 100644
index 00000000000..f352e15e0c7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_QueueSizeV2.pbtxt
@@ -0,0 +1,11 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "QueueSizeV2"
+ endpoint {
+ name: "io.QueueSize"
+ }
+ out_arg {
+ name: "size"
+ rename_to: "output"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFT.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFT.pbtxt
new file mode 100644
index 00000000000..708de1951ae
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFT.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RFFT"
+ endpoint {
+ name: "signal.Rfft"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFT2D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFT2D.pbtxt
new file mode 100644
index 00000000000..8488c65b5d0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFT2D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RFFT2D"
+ endpoint {
+ name: "signal.Rfft2d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFT3D.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFT3D.pbtxt
new file mode 100644
index 00000000000..09218cd6296
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFT3D.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RFFT3D"
+ endpoint {
+ name: "signal.Rfft3d"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFTND.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFTND.pbtxt
new file mode 100644
index 00000000000..4b46e0f0d31
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RFFTND.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RFFTND"
+ endpoint {
+ name: "signal.RfftNd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RGBToHSV.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RGBToHSV.pbtxt
new file mode 100644
index 00000000000..2172f52405b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RGBToHSV.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RGBToHSV"
+ endpoint {
+ name: "image.RgbToHsv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedBincount.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedBincount.pbtxt
new file mode 100644
index 00000000000..632be33d30d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedBincount.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedBincount"
+ endpoint {
+ name: "ragged.RaggedBincount"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedCountSparseOutput.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedCountSparseOutput.pbtxt
new file mode 100644
index 00000000000..e74b9bd9d0a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedCountSparseOutput.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedCountSparseOutput"
+ endpoint {
+ name: "ragged.RaggedCountSparseOutput"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedCross.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedCross.pbtxt
new file mode 100644
index 00000000000..7da3096c7ef
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedCross.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedCross"
+ endpoint {
+ name: "ragged.RaggedCross"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedFillEmptyRows.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedFillEmptyRows.pbtxt
new file mode 100644
index 00000000000..5f135f87e74
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedFillEmptyRows.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedFillEmptyRows"
+ endpoint {
+ name: "ragged.RaggedFillEmptyRows"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedFillEmptyRowsGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedFillEmptyRowsGrad.pbtxt
new file mode 100644
index 00000000000..5f8f1790f32
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedFillEmptyRowsGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedFillEmptyRowsGrad"
+ endpoint {
+ name: "ragged.RaggedFillEmptyRowsGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedGather.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedGather.pbtxt
new file mode 100644
index 00000000000..10da3a31954
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedGather.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedGather"
+ endpoint {
+ name: "ragged.RaggedGather"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedRange.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedRange.pbtxt
new file mode 100644
index 00000000000..6ec658b61fe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedRange.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedRange"
+ endpoint {
+ name: "ragged.RaggedRange"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorFromVariant.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorFromVariant.pbtxt
new file mode 100644
index 00000000000..2067148bde1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorFromVariant.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedTensorFromVariant"
+ endpoint {
+ name: "ragged.RaggedTensorFromVariant"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToSparse.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToSparse.pbtxt
new file mode 100644
index 00000000000..c6d61a22606
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToSparse.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedTensorToSparse"
+ endpoint {
+ name: "ragged.RaggedTensorToSparse"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToTensor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToTensor.pbtxt
new file mode 100644
index 00000000000..2bae8ad3de2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToTensor.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedTensorToTensor"
+ endpoint {
+ name: "ragged.RaggedTensorToTensor"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToVariant.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToVariant.pbtxt
new file mode 100644
index 00000000000..3e4b2029a1b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToVariant.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedTensorToVariant"
+ endpoint {
+ name: "ragged.RaggedTensorToVariant"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToVariantGradient.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToVariantGradient.pbtxt
new file mode 100644
index 00000000000..a09acd4debd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RaggedTensorToVariantGradient.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RaggedTensorToVariantGradient"
+ endpoint {
+ name: "ragged.RaggedTensorToVariantGradient"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomCrop.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomCrop.pbtxt
new file mode 100644
index 00000000000..be299f2ed38
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomCrop.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RandomCrop"
+ endpoint {
+ name: "image.RandomCrop"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomDataset.pbtxt
new file mode 100644
index 00000000000..6c64c2b8818
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomDataset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "RandomDataset"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomDatasetV2.pbtxt
new file mode 100644
index 00000000000..77231322675
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "RandomDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.RandomDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomGamma.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomGamma.pbtxt
new file mode 100644
index 00000000000..c8fbfbf0134
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomGamma.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RandomGamma"
+ endpoint {
+ name: "random.RandomGamma"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomGammaGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomGammaGrad.pbtxt
new file mode 100644
index 00000000000..6d0b3466690
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomGammaGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RandomGammaGrad"
+ endpoint {
+ name: "random.RandomGammaGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomIndexShuffle.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomIndexShuffle.pbtxt
new file mode 100644
index 00000000000..0af6f3e5b1e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomIndexShuffle.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RandomIndexShuffle"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_RandomPoisson.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomPoisson.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_RandomPoisson.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_RandomPoisson.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomPoissonV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomPoissonV2.pbtxt
new file mode 100644
index 00000000000..09bdecdaa10
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomPoissonV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RandomPoissonV2"
+ endpoint {
+ name: "random.RandomPoisson"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomShuffle.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomShuffle.pbtxt
new file mode 100644
index 00000000000..5d0d7a3b680
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomShuffle.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RandomShuffle"
+ endpoint {
+ name: "random.RandomShuffle"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_RandomShuffleQueue.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomShuffleQueue.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_RandomShuffleQueue.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_RandomShuffleQueue.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomShuffleQueueV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomShuffleQueueV2.pbtxt
new file mode 100644
index 00000000000..4dd84fac74d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomShuffleQueueV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RandomShuffleQueueV2"
+ endpoint {
+ name: "io.RandomShuffleQueue"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomStandardNormal.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomStandardNormal.pbtxt
new file mode 100644
index 00000000000..5ac99b9005b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomStandardNormal.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RandomStandardNormal"
+ endpoint {
+ name: "random.RandomStandardNormal"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomUniform.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomUniform.pbtxt
new file mode 100644
index 00000000000..bdec5ac99d7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomUniform.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RandomUniform"
+ endpoint {
+ name: "random.RandomUniform"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomUniformInt.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomUniformInt.pbtxt
new file mode 100644
index 00000000000..4102517f3de
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RandomUniformInt.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RandomUniformInt"
+ endpoint {
+ name: "random.RandomUniformInt"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Range.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Range.pbtxt
new file mode 100644
index 00000000000..dbda35b7374
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Range.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Range"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RangeDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RangeDataset.pbtxt
new file mode 100644
index 00000000000..e4a9af7ea97
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RangeDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "RangeDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.RangeDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Rank.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Rank.pbtxt
new file mode 100644
index 00000000000..dc306a7ae56
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Rank.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Rank"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReadFile.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReadFile.pbtxt
new file mode 100644
index 00000000000..8d2c022f428
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReadFile.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReadFile"
+ endpoint {
+ name: "io.ReadFile"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReadVariableOp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReadVariableOp.pbtxt
new file mode 100644
index 00000000000..7f053e301a6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReadVariableOp.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReadVariableOp"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReadVariableXlaSplitND.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReadVariableXlaSplitND.pbtxt
new file mode 100644
index 00000000000..5d6bfb45373
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReadVariableXlaSplitND.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReadVariableXlaSplitND"
+ endpoint {
+ name: "xla.ReadVariableSplitND"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderNumRecordsProduced.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderNumRecordsProduced.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderNumRecordsProduced.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderNumRecordsProduced.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderNumRecordsProducedV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderNumRecordsProducedV2.pbtxt
new file mode 100644
index 00000000000..13578bcba83
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderNumRecordsProducedV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReaderNumRecordsProducedV2"
+ endpoint {
+ name: "io.ReaderNumRecordsProduced"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderNumWorkUnitsCompleted.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderNumWorkUnitsCompleted.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderNumWorkUnitsCompleted.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderNumWorkUnitsCompleted.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderNumWorkUnitsCompletedV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderNumWorkUnitsCompletedV2.pbtxt
new file mode 100644
index 00000000000..1a72c3be10a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderNumWorkUnitsCompletedV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReaderNumWorkUnitsCompletedV2"
+ endpoint {
+ name: "io.ReaderNumWorkUnitsCompleted"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderRead.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderRead.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderRead.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderRead.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderReadUpTo.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderReadUpTo.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderReadUpTo.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderReadUpTo.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderReadUpToV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderReadUpToV2.pbtxt
new file mode 100644
index 00000000000..06a316fbb70
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderReadUpToV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReaderReadUpToV2"
+ endpoint {
+ name: "io.ReaderReadUpTo"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderReadV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderReadV2.pbtxt
new file mode 100644
index 00000000000..64bd40cdde8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderReadV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReaderReadV2"
+ endpoint {
+ name: "io.ReaderRead"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderReset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderReset.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderReset.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderReset.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderResetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderResetV2.pbtxt
new file mode 100644
index 00000000000..05bd5c48bc3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderResetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReaderResetV2"
+ endpoint {
+ name: "io.ReaderReset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderRestoreState.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderRestoreState.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderRestoreState.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderRestoreState.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderRestoreStateV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderRestoreStateV2.pbtxt
new file mode 100644
index 00000000000..c53c47ff372
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderRestoreStateV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReaderRestoreStateV2"
+ endpoint {
+ name: "io.ReaderRestoreState"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderSerializeState.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderSerializeState.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ReaderSerializeState.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderSerializeState.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderSerializeStateV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderSerializeStateV2.pbtxt
new file mode 100644
index 00000000000..ec18d3c71b6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReaderSerializeStateV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReaderSerializeStateV2"
+ endpoint {
+ name: "io.ReaderSerializeState"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Real.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Real.pbtxt
new file mode 100644
index 00000000000..3ddd3bc902a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Real.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Real"
+ endpoint {
+ name: "math.Real"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RealDiv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RealDiv.pbtxt
new file mode 100644
index 00000000000..366c95f2566
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RealDiv.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RealDiv"
+ endpoint {
+ name: "math.RealDiv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RebatchDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RebatchDataset.pbtxt
new file mode 100644
index 00000000000..61d010ff033
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RebatchDataset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "RebatchDataset"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RebatchDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RebatchDatasetV2.pbtxt
new file mode 100644
index 00000000000..42ab3bc1a6e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RebatchDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "RebatchDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.RebatchDatasetV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Reciprocal.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Reciprocal.pbtxt
new file mode 100644
index 00000000000..bb6956bbe3c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Reciprocal.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Reciprocal"
+ endpoint {
+ name: "math.Reciprocal"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReciprocalGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReciprocalGrad.pbtxt
new file mode 100644
index 00000000000..57cc8c630e1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReciprocalGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReciprocalGrad"
+ endpoint {
+ name: "math.ReciprocalGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RecordInput.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RecordInput.pbtxt
new file mode 100644
index 00000000000..bf8836b3d81
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RecordInput.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RecordInput"
+ endpoint {
+ name: "random.RecordInput"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Recv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Recv.pbtxt
new file mode 100644
index 00000000000..6ba56fa3392
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Recv.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Recv"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RecvTPUEmbeddingActivations.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RecvTPUEmbeddingActivations.pbtxt
new file mode 100644
index 00000000000..05ce63f87aa
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RecvTPUEmbeddingActivations.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RecvTPUEmbeddingActivations"
+ endpoint {
+ name: "tpu.RecvTPUEmbeddingActivations"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReduceDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReduceDataset.pbtxt
new file mode 100644
index 00000000000..4493b8a20ac
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReduceDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ReduceDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ReduceDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReduceJoin.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReduceJoin.pbtxt
new file mode 100644
index 00000000000..bb2b90169a1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReduceJoin.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReduceJoin"
+ endpoint {
+ name: "strings.ReduceJoin"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RefEnter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefEnter.pbtxt
new file mode 100644
index 00000000000..886f9cc3436
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefEnter.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RefEnter"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RefExit.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefExit.pbtxt
new file mode 100644
index 00000000000..1495c957912
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefExit.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RefExit"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RefIdentity.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefIdentity.pbtxt
new file mode 100644
index 00000000000..013b3bcce61
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefIdentity.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RefIdentity"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RefMerge.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefMerge.pbtxt
new file mode 100644
index 00000000000..97599f361be
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefMerge.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RefMerge"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RefNextIteration.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefNextIteration.pbtxt
new file mode 100644
index 00000000000..0b94ec2d5d0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefNextIteration.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RefNextIteration"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RefSelect.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefSelect.pbtxt
new file mode 100644
index 00000000000..dc135b3cc98
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefSelect.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RefSelect"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RefSwitch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefSwitch.pbtxt
new file mode 100644
index 00000000000..abccabbf444
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RefSwitch.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RefSwitch"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RegexFullMatch.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RegexFullMatch.pbtxt
new file mode 100644
index 00000000000..ed0a0765b5c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RegexFullMatch.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RegexFullMatch"
+ endpoint {
+ name: "strings.RegexFullMatch"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RegexReplace.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RegexReplace.pbtxt
new file mode 100644
index 00000000000..a2987dba302
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RegexReplace.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RegexReplace"
+ endpoint {
+ name: "strings.RegexReplace"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RegisterDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RegisterDataset.pbtxt
new file mode 100644
index 00000000000..03947c43e92
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RegisterDataset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "RegisterDataset"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RegisterDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RegisterDatasetV2.pbtxt
new file mode 100644
index 00000000000..b44314327a5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RegisterDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "RegisterDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.RegisterDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Relayout.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Relayout.pbtxt
new file mode 100644
index 00000000000..50f3036cc78
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Relayout.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Relayout"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RelayoutLike.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RelayoutLike.pbtxt
new file mode 100644
index 00000000000..b83aaf0cf61
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RelayoutLike.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RelayoutLike"
+ endpoint {
+ name: "RelayoutLike"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Relu.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Relu.pbtxt
new file mode 100644
index 00000000000..87e110a0739
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Relu.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Relu"
+ endpoint {
+ name: "nn.Relu"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Relu6.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Relu6.pbtxt
new file mode 100644
index 00000000000..c1dc6c6d205
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Relu6.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Relu6"
+ endpoint {
+ name: "nn.Relu6"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Relu6Grad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Relu6Grad.pbtxt
new file mode 100644
index 00000000000..bb4621ffb5b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Relu6Grad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Relu6Grad"
+ endpoint {
+ name: "nn.Relu6Grad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReluGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReluGrad.pbtxt
new file mode 100644
index 00000000000..7830ad371d6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReluGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReluGrad"
+ endpoint {
+ name: "nn.ReluGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RemoteCall.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RemoteCall.pbtxt
new file mode 100644
index 00000000000..b2f13cc48b9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RemoteCall.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RemoteCall"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RemoteFusedGraphExecute.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RemoteFusedGraphExecute.pbtxt
new file mode 100644
index 00000000000..c30673aa76e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RemoteFusedGraphExecute.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RemoteFusedGraphExecute"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RepeatDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RepeatDataset.pbtxt
new file mode 100644
index 00000000000..b64988dd378
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RepeatDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "RepeatDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.RepeatDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RequantizationRange.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RequantizationRange.pbtxt
new file mode 100644
index 00000000000..81e17cf420d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RequantizationRange.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RequantizationRange"
+ endpoint {
+ name: "quantization.RequantizationRange"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RequantizationRangePerChannel.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RequantizationRangePerChannel.pbtxt
new file mode 100644
index 00000000000..2073052bfe9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RequantizationRangePerChannel.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RequantizationRangePerChannel"
+ endpoint {
+ name: "math.RequantizationRangePerChannel"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Requantize.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Requantize.pbtxt
new file mode 100644
index 00000000000..c771cef0746
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Requantize.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Requantize"
+ endpoint {
+ name: "quantization.Requantize"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RequantizePerChannel.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RequantizePerChannel.pbtxt
new file mode 100644
index 00000000000..2539fbe9528
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RequantizePerChannel.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RequantizePerChannel"
+ endpoint {
+ name: "math.RequantizePerChannel"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Reshape.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Reshape.pbtxt
new file mode 100644
index 00000000000..bd628df6d68
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Reshape.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Reshape"
+ endpoint {
+ name: "Reshape"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeArea.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeArea.pbtxt
new file mode 100644
index 00000000000..2514478bc1e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeArea.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResizeArea"
+ endpoint {
+ name: "image.ResizeArea"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBicubic.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBicubic.pbtxt
new file mode 100644
index 00000000000..669b0889911
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBicubic.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResizeBicubic"
+ endpoint {
+ name: "image.ResizeBicubic"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBicubicGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBicubicGrad.pbtxt
new file mode 100644
index 00000000000..63478567394
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBicubicGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResizeBicubicGrad"
+ endpoint {
+ name: "image.ResizeBicubicGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBilinear.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBilinear.pbtxt
new file mode 100644
index 00000000000..42bc9578c0b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBilinear.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResizeBilinear"
+ endpoint {
+ name: "image.ResizeBilinear"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBilinearGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBilinearGrad.pbtxt
new file mode 100644
index 00000000000..88bccdf83ca
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeBilinearGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResizeBilinearGrad"
+ endpoint {
+ name: "image.ResizeBilinearGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeNearestNeighbor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeNearestNeighbor.pbtxt
new file mode 100644
index 00000000000..84f8e26218d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeNearestNeighbor.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResizeNearestNeighbor"
+ endpoint {
+ name: "image.ResizeNearestNeighbor"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeNearestNeighborGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeNearestNeighborGrad.pbtxt
new file mode 100644
index 00000000000..2b5ce61b1cf
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResizeNearestNeighborGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResizeNearestNeighborGrad"
+ endpoint {
+ name: "image.ResizeNearestNeighborGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorApplyGradient.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorApplyGradient.pbtxt
new file mode 100644
index 00000000000..2463e311f36
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorApplyGradient.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceAccumulatorApplyGradient"
+ endpoint {
+ name: "train.ResourceAccumulatorApplyGradient"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorNumAccumulated.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorNumAccumulated.pbtxt
new file mode 100644
index 00000000000..414247dc55b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorNumAccumulated.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceAccumulatorNumAccumulated"
+ endpoint {
+ name: "train.ResourceAccumulatorNumAccumulated"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorSetGlobalStep.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorSetGlobalStep.pbtxt
new file mode 100644
index 00000000000..02083395b15
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorSetGlobalStep.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceAccumulatorSetGlobalStep"
+ endpoint {
+ name: "train.ResourceAccumulatorSetGlobalStep"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorTakeGradient.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorTakeGradient.pbtxt
new file mode 100644
index 00000000000..7d7fbd9c9ba
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceAccumulatorTakeGradient.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceAccumulatorTakeGradient"
+ endpoint {
+ name: "train.ResourceAccumulatorTakeGradient"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdaMax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdaMax.pbtxt
new file mode 100644
index 00000000000..cbe0abd7fd2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdaMax.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyAdaMax"
+ endpoint {
+ name: "train.ResourceApplyAdaMax"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdadelta.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdadelta.pbtxt
new file mode 100644
index 00000000000..11ea32f0474
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdadelta.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyAdadelta"
+ endpoint {
+ name: "train.ResourceApplyAdadelta"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdagrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdagrad.pbtxt
new file mode 100644
index 00000000000..f6b5cb0fd04
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdagrad.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "ResourceApplyAdagrad"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdagradDA.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdagradDA.pbtxt
new file mode 100644
index 00000000000..7de1a78a3e7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdagradDA.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyAdagradDA"
+ endpoint {
+ name: "train.ResourceApplyAdagradDa"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdagradV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdagradV2.pbtxt
new file mode 100644
index 00000000000..4b2cdf69a9b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdagradV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyAdagradV2"
+ endpoint {
+ name: "train.ResourceApplyAdagrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdam.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdam.pbtxt
new file mode 100644
index 00000000000..13b9b145b78
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdam.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyAdam"
+ endpoint {
+ name: "train.ResourceApplyAdam"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdamWithAmsgrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdamWithAmsgrad.pbtxt
new file mode 100644
index 00000000000..3afb7a28c5c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAdamWithAmsgrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyAdamWithAmsgrad"
+ endpoint {
+ name: "train.ResourceApplyAdamWithAmsgrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAddSign.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAddSign.pbtxt
new file mode 100644
index 00000000000..8e57cf8d4c9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyAddSign.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyAddSign"
+ endpoint {
+ name: "train.ResourceApplyAddSign"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyCenteredRMSProp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyCenteredRMSProp.pbtxt
new file mode 100644
index 00000000000..5bc55386fb3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyCenteredRMSProp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyCenteredRMSProp"
+ endpoint {
+ name: "train.ResourceApplyCenteredRmsProp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ResourceApplyFtrl.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyFtrl.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ResourceApplyFtrl.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyFtrl.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyFtrlV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyFtrlV2.pbtxt
new file mode 100644
index 00000000000..db4e93ed80e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyFtrlV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyFtrlV2"
+ endpoint {
+ name: "train.ResourceApplyFtrl"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyGradientDescent.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyGradientDescent.pbtxt
new file mode 100644
index 00000000000..48a55a96cc1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyGradientDescent.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyGradientDescent"
+ endpoint {
+ name: "train.ResourceApplyGradientDescent"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyKerasMomentum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyKerasMomentum.pbtxt
new file mode 100644
index 00000000000..35b88fc8869
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyKerasMomentum.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyKerasMomentum"
+ endpoint {
+ name: "train.ResourceApplyKerasMomentum"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyMomentum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyMomentum.pbtxt
new file mode 100644
index 00000000000..ea88f416f0f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyMomentum.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyMomentum"
+ endpoint {
+ name: "train.ResourceApplyMomentum"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyPowerSign.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyPowerSign.pbtxt
new file mode 100644
index 00000000000..c2a67f1fee3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyPowerSign.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyPowerSign"
+ endpoint {
+ name: "train.ResourceApplyPowerSign"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyProximalAdagrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyProximalAdagrad.pbtxt
new file mode 100644
index 00000000000..c022658a317
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyProximalAdagrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyProximalAdagrad"
+ endpoint {
+ name: "train.ResourceApplyProximalAdagrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyProximalGradientDescent.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyProximalGradientDescent.pbtxt
new file mode 100644
index 00000000000..a209ab6a065
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyProximalGradientDescent.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyProximalGradientDescent"
+ endpoint {
+ name: "train.ResourceApplyProximalGradientDescent"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyRMSProp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyRMSProp.pbtxt
new file mode 100644
index 00000000000..7e5a287fbdf
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceApplyRMSProp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceApplyRMSProp"
+ endpoint {
+ name: "train.ResourceApplyRmsProp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceConditionalAccumulator.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceConditionalAccumulator.pbtxt
new file mode 100644
index 00000000000..9b23eb1891c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceConditionalAccumulator.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceConditionalAccumulator"
+ endpoint {
+ name: "train.ResourceConditionalAccumulator"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceCountUpTo.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceCountUpTo.pbtxt
new file mode 100644
index 00000000000..4c1309f160d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceCountUpTo.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceCountUpTo"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceGather.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceGather.pbtxt
new file mode 100644
index 00000000000..a9b829ebd04
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceGather.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceGather"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceGatherNd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceGatherNd.pbtxt
new file mode 100644
index 00000000000..ec282febc2b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceGatherNd.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceGatherNd"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterAdd.pbtxt
new file mode 100644
index 00000000000..33b6d9c67d6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterAdd.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterAdd"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterDiv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterDiv.pbtxt
new file mode 100644
index 00000000000..b32181fde11
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterDiv.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterDiv"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterMax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterMax.pbtxt
new file mode 100644
index 00000000000..e758222d6ed
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterMax.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterMax"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterMin.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterMin.pbtxt
new file mode 100644
index 00000000000..bce335396b4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterMin.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterMin"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterMul.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterMul.pbtxt
new file mode 100644
index 00000000000..4740ed6669c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterMul.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterMul"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdAdd.pbtxt
new file mode 100644
index 00000000000..29e9541aac8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdAdd.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterNdAdd"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdMax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdMax.pbtxt
new file mode 100644
index 00000000000..2b2382e88b7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdMax.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterNdMax"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdMin.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdMin.pbtxt
new file mode 100644
index 00000000000..bad7c7741b5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdMin.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterNdMin"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdSub.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdSub.pbtxt
new file mode 100644
index 00000000000..5dad023a56a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdSub.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterNdSub"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdUpdate.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdUpdate.pbtxt
new file mode 100644
index 00000000000..72d079bef41
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterNdUpdate.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterNdUpdate"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterSub.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterSub.pbtxt
new file mode 100644
index 00000000000..ca9e5fa6a25
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterSub.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterSub"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterUpdate.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterUpdate.pbtxt
new file mode 100644
index 00000000000..bd850c7bcd2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceScatterUpdate.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceScatterUpdate"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdadelta.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdadelta.pbtxt
new file mode 100644
index 00000000000..7614ee61566
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdadelta.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyAdadelta"
+ endpoint {
+ name: "train.ResourceSparseApplyAdadelta"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdagrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdagrad.pbtxt
new file mode 100644
index 00000000000..3acd27409f1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdagrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyAdagrad"
+ endpoint {
+ name: "train.ResourceSparseApplyAdagrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdagradDA.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdagradDA.pbtxt
new file mode 100644
index 00000000000..dff8e161d04
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdagradDA.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyAdagradDA"
+ endpoint {
+ name: "train.ResourceSparseApplyAdagradDa"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdagradV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdagradV2.pbtxt
new file mode 100644
index 00000000000..f86922242c7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyAdagradV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyAdagradV2"
+ endpoint {
+ name: "train.ResourceSparseApplyAdagradV2"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyCenteredRMSProp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyCenteredRMSProp.pbtxt
new file mode 100644
index 00000000000..0f402d6bb96
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyCenteredRMSProp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyCenteredRMSProp"
+ endpoint {
+ name: "train.ResourceSparseApplyCenteredRmsProp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ResourceSparseApplyFtrl.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyFtrl.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_ResourceSparseApplyFtrl.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyFtrl.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyFtrlV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyFtrlV2.pbtxt
new file mode 100644
index 00000000000..553da2bcb6f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyFtrlV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyFtrlV2"
+ endpoint {
+ name: "train.ResourceSparseApplyFtrl"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyKerasMomentum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyKerasMomentum.pbtxt
new file mode 100644
index 00000000000..8c39775ba83
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyKerasMomentum.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyKerasMomentum"
+ endpoint {
+ name: "train.ResourceSparseApplyKerasMomentum"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyMomentum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyMomentum.pbtxt
new file mode 100644
index 00000000000..d165cf2f94e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyMomentum.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyMomentum"
+ endpoint {
+ name: "train.ResourceSparseApplyMomentum"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyProximalAdagrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyProximalAdagrad.pbtxt
new file mode 100644
index 00000000000..a97d3c5d608
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyProximalAdagrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyProximalAdagrad"
+ endpoint {
+ name: "train.ResourceSparseApplyProximalAdagrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyProximalGradientDescent.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyProximalGradientDescent.pbtxt
new file mode 100644
index 00000000000..69db57fbc14
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyProximalGradientDescent.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyProximalGradientDescent"
+ endpoint {
+ name: "train.ResourceSparseApplyProximalGradientDescent"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyRMSProp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyRMSProp.pbtxt
new file mode 100644
index 00000000000..3cac8411190
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceSparseApplyRMSProp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceSparseApplyRMSProp"
+ endpoint {
+ name: "train.ResourceSparseApplyRmsProp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceStridedSliceAssign.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceStridedSliceAssign.pbtxt
new file mode 100644
index 00000000000..bf142658402
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ResourceStridedSliceAssign.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ResourceStridedSliceAssign"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Restore.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Restore.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Restore.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Restore.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RestoreSlice.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RestoreSlice.pbtxt
new file mode 100644
index 00000000000..d49abdc2abf
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RestoreSlice.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RestoreSlice"
+ endpoint {
+ name: "train.RestoreSlice"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RestoreV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RestoreV2.pbtxt
new file mode 100644
index 00000000000..f73221177e7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RestoreV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RestoreV2"
+ endpoint {
+ name: "train.Restore"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveAllTPUEmbeddingParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveAllTPUEmbeddingParameters.pbtxt
new file mode 100644
index 00000000000..0918a4bbd71
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveAllTPUEmbeddingParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveAllTPUEmbeddingParameters"
+ endpoint {
+ name: "tpu.RetrieveAllTPUEmbeddingParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingADAMParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingADAMParameters.pbtxt
new file mode 100644
index 00000000000..6fa45ac4709
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingADAMParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingADAMParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingADAMParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingADAMParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingADAMParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..19024de237a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingADAMParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingADAMParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingADAMParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdadeltaParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdadeltaParameters.pbtxt
new file mode 100644
index 00000000000..608071b458b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdadeltaParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingAdadeltaParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingAdadeltaParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdadeltaParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdadeltaParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..ce7f843c0d3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdadeltaParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingAdadeltaParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingAdadeltaParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdagradMomentumParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdagradMomentumParameters.pbtxt
new file mode 100644
index 00000000000..c086360d4fb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdagradMomentumParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingAdagradMomentumParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingAdagradMomentumParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdagradParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdagradParameters.pbtxt
new file mode 100644
index 00000000000..2829ab63f30
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdagradParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingAdagradParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingAdagradParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdagradParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdagradParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..08a26da1fc2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingAdagradParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingAdagradParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingAdagradParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingCenteredRMSPropParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingCenteredRMSPropParameters.pbtxt
new file mode 100644
index 00000000000..b339631e163
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingCenteredRMSPropParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingCenteredRMSPropParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingCenteredRMSPropParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFTRLParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFTRLParameters.pbtxt
new file mode 100644
index 00000000000..de9f9931616
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFTRLParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingFTRLParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingFTRLParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFTRLParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFTRLParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..57b3e0e2e28
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFTRLParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingFTRLParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingFTRLParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFrequencyEstimatorParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFrequencyEstimatorParameters.pbtxt
new file mode 100644
index 00000000000..a30b2e979d9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFrequencyEstimatorParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingFrequencyEstimatorParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingFrequencyEstimatorParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..eff5462872f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingFrequencyEstimatorParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingMDLAdagradLightParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingMDLAdagradLightParameters.pbtxt
new file mode 100644
index 00000000000..c4320af9050
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingMDLAdagradLightParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingMDLAdagradLightParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingMDLAdagradLightParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingMomentumParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingMomentumParameters.pbtxt
new file mode 100644
index 00000000000..cae7612c2b2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingMomentumParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingMomentumParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingMomentumParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingMomentumParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingMomentumParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..c3d1eea0d1d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingMomentumParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingMomentumParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingMomentumParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalAdagradParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalAdagradParameters.pbtxt
new file mode 100644
index 00000000000..a6a7b7d8582
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalAdagradParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingProximalAdagradParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingProximalAdagradParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalAdagradParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalAdagradParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..8f0cba646fd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalAdagradParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingProximalAdagradParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingProximalAdagradParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalYogiParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalYogiParameters.pbtxt
new file mode 100644
index 00000000000..3e516888ec3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalYogiParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingProximalYogiParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingProximalYogiParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalYogiParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalYogiParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..26a810e8794
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingProximalYogiParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingProximalYogiParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingProximalYogiParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingRMSPropParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingRMSPropParameters.pbtxt
new file mode 100644
index 00000000000..03b991ee6b4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingRMSPropParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingRMSPropParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingRMSPropParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingRMSPropParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingRMSPropParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..2a873e27fc3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingRMSPropParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingRMSPropParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingRMSPropParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingStochasticGradientDescentParameters.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingStochasticGradientDescentParameters.pbtxt
new file mode 100644
index 00000000000..a0377103d49
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingStochasticGradientDescentParameters.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingStochasticGradientDescentParameters"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingStochasticGradientDescentParameters"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug.pbtxt
new file mode 100644
index 00000000000..71758e43589
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RetrieveTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RetrieveTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug"
+ endpoint {
+ name: "tpu.RetrieveTPUEmbeddingStochasticGradientDescentParametersGradAccumDebug"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Reverse.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Reverse.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Reverse.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Reverse.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReverseSequence.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReverseSequence.pbtxt
new file mode 100644
index 00000000000..f0e6bd4a1cc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReverseSequence.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReverseSequence"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ReverseV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReverseV2.pbtxt
new file mode 100644
index 00000000000..c286316354f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ReverseV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ReverseV2"
+ endpoint {
+ name: "Reverse"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RewriteDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RewriteDataset.pbtxt
new file mode 100644
index 00000000000..cd73223372b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RewriteDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RewriteDataset"
+ endpoint {
+ name: "data.RewriteDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RightShift.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RightShift.pbtxt
new file mode 100644
index 00000000000..8f6889fd4d5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RightShift.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RightShift"
+ endpoint {
+ name: "bitwise.RightShift"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Rint.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Rint.pbtxt
new file mode 100644
index 00000000000..0bf2aa48f28
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Rint.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Rint"
+ endpoint {
+ name: "math.Rint"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscAbs.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscAbs.pbtxt
new file mode 100644
index 00000000000..16a02df71a8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscAbs.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscAbs"
+ endpoint {
+ name: "risc.RiscAbs"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscAdd.pbtxt
new file mode 100644
index 00000000000..db1cafd86b1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscAdd.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscAdd"
+ endpoint {
+ name: "risc.RiscAdd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBinaryArithmetic.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBinaryArithmetic.pbtxt
new file mode 100644
index 00000000000..a6b0d3849d9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBinaryArithmetic.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscBinaryArithmetic"
+ endpoint {
+ name: "risc.RiscBinaryArithmetic"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBinaryComparison.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBinaryComparison.pbtxt
new file mode 100644
index 00000000000..b278cdb19b5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBinaryComparison.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscBinaryComparison"
+ endpoint {
+ name: "risc.RiscBinaryComparison"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBitcast.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBitcast.pbtxt
new file mode 100644
index 00000000000..3576ea43316
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBitcast.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscBitcast"
+ endpoint {
+ name: "risc.RiscBitcast"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBroadcast.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBroadcast.pbtxt
new file mode 100644
index 00000000000..70f651c5595
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscBroadcast.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscBroadcast"
+ endpoint {
+ name: "risc.RiscBroadcast"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCast.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCast.pbtxt
new file mode 100644
index 00000000000..03d2dddb2a7
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCast.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscCast"
+ endpoint {
+ name: "risc.RiscCast"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCeil.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCeil.pbtxt
new file mode 100644
index 00000000000..7cc1796e649
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCeil.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscCeil"
+ endpoint {
+ name: "risc.RiscCeil"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCholesky.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCholesky.pbtxt
new file mode 100644
index 00000000000..f58e0969b02
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCholesky.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscCholesky"
+ endpoint {
+ name: "risc.RiscCholesky"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscConcat.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscConcat.pbtxt
new file mode 100644
index 00000000000..e5aad1d665c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscConcat.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscConcat"
+ endpoint {
+ name: "risc.RiscConcat"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCondition.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCondition.pbtxt
new file mode 100644
index 00000000000..20b4043192e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCondition.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscCondition"
+ endpoint {
+ name: "risc.RiscCondition"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscConv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscConv.pbtxt
new file mode 100644
index 00000000000..3b85466aad8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscConv.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscConv"
+ endpoint {
+ name: "risc.RiscConv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCos.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCos.pbtxt
new file mode 100644
index 00000000000..bd0bd4faa20
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscCos.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscCos"
+ endpoint {
+ name: "risc.RiscCos"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscDiv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscDiv.pbtxt
new file mode 100644
index 00000000000..62752229c2b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscDiv.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscDiv"
+ endpoint {
+ name: "risc.RiscDiv"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscDot.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscDot.pbtxt
new file mode 100644
index 00000000000..884d0093f49
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscDot.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscDot"
+ endpoint {
+ name: "risc.RiscDot"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscExp.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscExp.pbtxt
new file mode 100644
index 00000000000..a0f735e9812
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscExp.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscExp"
+ endpoint {
+ name: "risc.RiscExp"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscFft.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscFft.pbtxt
new file mode 100644
index 00000000000..7939ade66d4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscFft.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscFft"
+ endpoint {
+ name: "risc.RiscFft"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscFloor.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscFloor.pbtxt
new file mode 100644
index 00000000000..4bbf58f30be
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscFloor.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscFloor"
+ endpoint {
+ name: "risc.RiscFloor"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscGather.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscGather.pbtxt
new file mode 100644
index 00000000000..65e03eabd05
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscGather.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscGather"
+ endpoint {
+ name: "risc.RiscGather"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscImag.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscImag.pbtxt
new file mode 100644
index 00000000000..c8473b54de1
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscImag.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscImag"
+ endpoint {
+ name: "risc.RiscImag"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscIsFinite.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscIsFinite.pbtxt
new file mode 100644
index 00000000000..9155259eba0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscIsFinite.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscIsFinite"
+ endpoint {
+ name: "risc.RiscIsFinite"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLog.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLog.pbtxt
new file mode 100644
index 00000000000..c8e1afe2a75
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLog.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscLog"
+ endpoint {
+ name: "risc.RiscLog"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLogicalAnd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLogicalAnd.pbtxt
new file mode 100644
index 00000000000..bc2d5b1f9eb
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLogicalAnd.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscLogicalAnd"
+ endpoint {
+ name: "risc.RiscLogicalAnd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLogicalNot.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLogicalNot.pbtxt
new file mode 100644
index 00000000000..c4743d410b3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLogicalNot.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscLogicalNot"
+ endpoint {
+ name: "risc.RiscLogicalNot"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLogicalOr.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLogicalOr.pbtxt
new file mode 100644
index 00000000000..f23f059b514
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscLogicalOr.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscLogicalOr"
+ endpoint {
+ name: "risc.RiscLogicalOr"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscMax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscMax.pbtxt
new file mode 100644
index 00000000000..06d25cbc86a
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscMax.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscMax"
+ endpoint {
+ name: "risc.RiscMax"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscMin.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscMin.pbtxt
new file mode 100644
index 00000000000..309d515d6fd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscMin.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscMin"
+ endpoint {
+ name: "risc.RiscMin"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscMul.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscMul.pbtxt
new file mode 100644
index 00000000000..51927d3a135
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscMul.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscMul"
+ endpoint {
+ name: "risc.RiscMul"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscNeg.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscNeg.pbtxt
new file mode 100644
index 00000000000..0e0dd0ea4b0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscNeg.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscNeg"
+ endpoint {
+ name: "risc.RiscNeg"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscPad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscPad.pbtxt
new file mode 100644
index 00000000000..0e3d478d02b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscPad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscPad"
+ endpoint {
+ name: "risc.RiscPad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscPool.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscPool.pbtxt
new file mode 100644
index 00000000000..74cd28a15fd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscPool.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscPool"
+ endpoint {
+ name: "risc.RiscPool"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscPow.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscPow.pbtxt
new file mode 100644
index 00000000000..2565bd11555
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscPow.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscPow"
+ endpoint {
+ name: "risc.RiscPow"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscRandomUniform.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscRandomUniform.pbtxt
new file mode 100644
index 00000000000..942c4bec622
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscRandomUniform.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscRandomUniform"
+ endpoint {
+ name: "risc.RiscRandomUniform"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReal.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReal.pbtxt
new file mode 100644
index 00000000000..5d24d2ad837
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReal.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscReal"
+ endpoint {
+ name: "risc.RiscReal"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReduce.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReduce.pbtxt
new file mode 100644
index 00000000000..bc9b20496e5
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReduce.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscReduce"
+ endpoint {
+ name: "risc.RiscReduce"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscRem.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscRem.pbtxt
new file mode 100644
index 00000000000..22de8c713ea
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscRem.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscRem"
+ endpoint {
+ name: "risc.RiscRem"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReshape.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReshape.pbtxt
new file mode 100644
index 00000000000..fd3bacbd2d6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReshape.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscReshape"
+ endpoint {
+ name: "risc.RiscReshape"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReverse.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReverse.pbtxt
new file mode 100644
index 00000000000..ee8e646e4b9
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscReverse.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscReverse"
+ endpoint {
+ name: "risc.RiscReverse"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscScatter.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscScatter.pbtxt
new file mode 100644
index 00000000000..dabe270375d
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscScatter.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscScatter"
+ endpoint {
+ name: "risc.RiscScatter"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscShape.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscShape.pbtxt
new file mode 100644
index 00000000000..83666efcdf6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscShape.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscShape"
+ endpoint {
+ name: "risc.RiscShape"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSign.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSign.pbtxt
new file mode 100644
index 00000000000..2cc5dfc378c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSign.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscSign"
+ endpoint {
+ name: "risc.RiscSign"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSlice.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSlice.pbtxt
new file mode 100644
index 00000000000..ecb7b991196
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSlice.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscSlice"
+ endpoint {
+ name: "risc.RiscSlice"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSort.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSort.pbtxt
new file mode 100644
index 00000000000..3361401d336
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSort.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscSort"
+ endpoint {
+ name: "risc.RiscSort"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSqueeze.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSqueeze.pbtxt
new file mode 100644
index 00000000000..5b9b50d209e
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSqueeze.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscSqueeze"
+ endpoint {
+ name: "risc.RiscSqueeze"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSub.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSub.pbtxt
new file mode 100644
index 00000000000..ea48b182d22
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscSub.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscSub"
+ endpoint {
+ name: "risc.RiscSub"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscTranspose.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscTranspose.pbtxt
new file mode 100644
index 00000000000..f2d3e739b50
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscTranspose.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscTranspose"
+ endpoint {
+ name: "risc.RiscTranspose"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscTriangularSolve.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscTriangularSolve.pbtxt
new file mode 100644
index 00000000000..70b4fbdeed4
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscTriangularSolve.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscTriangularSolve"
+ endpoint {
+ name: "risc.RiscTriangularSolve"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscUnary.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscUnary.pbtxt
new file mode 100644
index 00000000000..d1d03367c05
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscUnary.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscUnary"
+ endpoint {
+ name: "risc.RiscUnary"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscWhile.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscWhile.pbtxt
new file mode 100644
index 00000000000..745b47cdfab
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RiscWhile.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: SKIP
+ graph_op_name: "RiscWhile"
+ endpoint {
+ name: "risc.RiscWhile"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RngReadAndSkip.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RngReadAndSkip.pbtxt
new file mode 100644
index 00000000000..8603fa95988
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RngReadAndSkip.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RngReadAndSkip"
+ endpoint {
+ name: "random.RngReadAndSkip"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RngSkip.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RngSkip.pbtxt
new file mode 100644
index 00000000000..9074f38c5da
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RngSkip.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RngSkip"
+ endpoint {
+ name: "random.RngSkip"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Roll.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Roll.pbtxt
new file mode 100644
index 00000000000..fe4eed9ab13
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Roll.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Roll"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Round.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Round.pbtxt
new file mode 100644
index 00000000000..960ffba508f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Round.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Round"
+ endpoint {
+ name: "math.Round"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Rpc.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Rpc.pbtxt
new file mode 100644
index 00000000000..528afe26709
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Rpc.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Rpc"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_Rsqrt.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Rsqrt.pbtxt
new file mode 100644
index 00000000000..97165e2d758
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_Rsqrt.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "Rsqrt"
+ endpoint {
+ name: "math.Rsqrt"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_RsqrtGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_RsqrtGrad.pbtxt
new file mode 100644
index 00000000000..8aa9f02b9bc
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_RsqrtGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "RsqrtGrad"
+ endpoint {
+ name: "math.RsqrtGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_SampleDistortedBoundingBox.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SampleDistortedBoundingBox.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_SampleDistortedBoundingBox.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_SampleDistortedBoundingBox.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SampleDistortedBoundingBoxV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SampleDistortedBoundingBoxV2.pbtxt
new file mode 100644
index 00000000000..0aef133b9e6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SampleDistortedBoundingBoxV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SampleDistortedBoundingBoxV2"
+ endpoint {
+ name: "image.SampleDistortedBoundingBox"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SamplingDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SamplingDataset.pbtxt
new file mode 100644
index 00000000000..6b33a96d9e8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SamplingDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "SamplingDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.SamplingDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Save.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_Save.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_Save.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_Save.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveDataset.pbtxt
new file mode 100644
index 00000000000..8c4d87ac61c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveDataset.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "SaveDataset"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveDatasetV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveDatasetV2.pbtxt
new file mode 100644
index 00000000000..a0723dc3d7b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveDatasetV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "SaveDatasetV2"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.SaveDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveSlices.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveSlices.pbtxt
new file mode 100644
index 00000000000..33af2108dd0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveSlices.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SaveSlices"
+ endpoint {
+ name: "train.SaveSlices"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveV2.pbtxt
new file mode 100644
index 00000000000..0fc943f3540
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SaveV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SaveV2"
+ endpoint {
+ name: "train.Save"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScalarSummary.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScalarSummary.pbtxt
new file mode 100644
index 00000000000..7b6f6129353
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScalarSummary.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScalarSummary"
+ endpoint {
+ name: "summary.ScalarSummary"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScaleAndTranslate.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScaleAndTranslate.pbtxt
new file mode 100644
index 00000000000..25364907a30
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScaleAndTranslate.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScaleAndTranslate"
+ endpoint {
+ name: "image.ScaleAndTranslate"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScaleAndTranslateGrad.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScaleAndTranslateGrad.pbtxt
new file mode 100644
index 00000000000..e3256e0f704
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScaleAndTranslateGrad.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScaleAndTranslateGrad"
+ endpoint {
+ name: "image.ScaleAndTranslateGrad"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScanDataset.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScanDataset.pbtxt
new file mode 100644
index 00000000000..838de863044
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScanDataset.pbtxt
@@ -0,0 +1,7 @@
+op {
+ graph_op_name: "ScanDataset"
+ visibility: VISIBLE
+ endpoint {
+ name: "data.ScanDataset"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterAdd.pbtxt
new file mode 100644
index 00000000000..74492ab813b
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterAdd.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterAdd"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterDiv.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterDiv.pbtxt
new file mode 100644
index 00000000000..97252d64db3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterDiv.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterDiv"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterMax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterMax.pbtxt
new file mode 100644
index 00000000000..5217cb1f668
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterMax.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterMax"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterMin.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterMin.pbtxt
new file mode 100644
index 00000000000..c082832265c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterMin.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterMin"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterMul.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterMul.pbtxt
new file mode 100644
index 00000000000..4d284a527c2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterMul.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterMul"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNd.pbtxt
new file mode 100644
index 00000000000..5d5308a7444
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNd.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterNd"
+ endpoint {
+ name: "ScatterNd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdAdd.pbtxt
new file mode 100644
index 00000000000..61d9acdd48c
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdAdd.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterNdAdd"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdMax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdMax.pbtxt
new file mode 100644
index 00000000000..617c639add6
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdMax.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterNdMax"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdMin.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdMin.pbtxt
new file mode 100644
index 00000000000..53d6754e0e3
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdMin.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterNdMin"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdNonAliasingAdd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdNonAliasingAdd.pbtxt
new file mode 100644
index 00000000000..98baca56e19
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdNonAliasingAdd.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterNdNonAliasingAdd"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdSub.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdSub.pbtxt
new file mode 100644
index 00000000000..867227b1507
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdSub.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterNdSub"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdUpdate.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdUpdate.pbtxt
new file mode 100644
index 00000000000..2c4432c9ed0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterNdUpdate.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterNdUpdate"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterSub.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterSub.pbtxt
new file mode 100644
index 00000000000..25a2e9519fa
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterSub.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterSub"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterUpdate.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterUpdate.pbtxt
new file mode 100644
index 00000000000..cfcff646652
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_ScatterUpdate.pbtxt
@@ -0,0 +1,4 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "ScatterUpdate"
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaFprint.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaFprint.pbtxt
new file mode 100644
index 00000000000..19725ee76d2
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaFprint.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SdcaFprint"
+ endpoint {
+ name: "train.SdcaFprint"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_SdcaOptimizer.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaOptimizer.pbtxt
similarity index 100%
rename from tensorflow-core/tensorflow-core-api/src/bazel/api_def/api_def_SdcaOptimizer.pbtxt
rename to tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaOptimizer.pbtxt
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaOptimizerV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaOptimizerV2.pbtxt
new file mode 100644
index 00000000000..b67c06a7069
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaOptimizerV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SdcaOptimizerV2"
+ endpoint {
+ name: "train.SdcaOptimizer"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaShrinkL1.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaShrinkL1.pbtxt
new file mode 100644
index 00000000000..b65cd2a92c0
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SdcaShrinkL1.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SdcaShrinkL1"
+ endpoint {
+ name: "train.SdcaShrinkL1"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMax.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMax.pbtxt
new file mode 100644
index 00000000000..b3ba099ebef
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMax.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "SegmentMax"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMaxV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMaxV2.pbtxt
new file mode 100644
index 00000000000..58d1cce4a47
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMaxV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SegmentMaxV2"
+ endpoint {
+ name: "math.SegmentMax"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMean.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMean.pbtxt
new file mode 100644
index 00000000000..78a64153e26
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMean.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SegmentMean"
+ endpoint {
+ name: "math.SegmentMean"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMin.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMin.pbtxt
new file mode 100644
index 00000000000..33dafd9c445
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMin.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "SegmentMin"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMinV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMinV2.pbtxt
new file mode 100644
index 00000000000..8d3c1ea4bdd
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentMinV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SegmentMinV2"
+ endpoint {
+ name: "math.SegmentMin"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentProd.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentProd.pbtxt
new file mode 100644
index 00000000000..c813c7c1457
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentProd.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "SegmentProd"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentProdV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentProdV2.pbtxt
new file mode 100644
index 00000000000..6ed9d2bf402
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentProdV2.pbtxt
@@ -0,0 +1,7 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SegmentProdV2"
+ endpoint {
+ name: "math.SegmentProd"
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentSum.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentSum.pbtxt
new file mode 100644
index 00000000000..091d5892796
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentSum.pbtxt
@@ -0,0 +1,4 @@
+op {
+ graph_op_name: "SegmentSum"
+ visibility: SKIP
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentSumV2.pbtxt b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentSumV2.pbtxt
new file mode 100644
index 00000000000..4478e3a5fb8
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/api/api_def_SegmentSumV2.pbtxt
@@ -0,0 +1,21 @@
+op {
+ visibility: VISIBLE
+ graph_op_name: "SegmentSumV2"
+ endpoint {
+ name: "math.SegmentSum"
+ }
+ description: <
-#include
-#include
-#include
-
-#include "tensorflow/core/framework/types.h"
-
-namespace tensorflow {
-namespace java {
-
-// An enumeration of different modifiers commonly used in Java
-enum Modifier {
- PACKAGE = 0,
- PUBLIC = (1 << 0),
- PROTECTED = (1 << 1),
- PRIVATE = (1 << 2),
- STATIC = (1 << 3),
- FINAL = (1 << 4),
-};
-
-class Annotation;
-
-// A definition of any kind of Java type (classes, interfaces...)
-//
-// Note that most of the data fields of this class are only useful in specific
-// contexts and are not required in many cases. For example, annotations and
-// supertypes are only useful when declaring a type.
-class Type {
- public:
- enum Kind {
- PRIMITIVE, CLASS, INTERFACE, ENUM, GENERIC, ANNOTATION
- };
- static const Type Byte() {
- return Type(Type::PRIMITIVE, "byte");
- }
- static const Type Char() {
- return Type(Type::PRIMITIVE, "char");
- }
- static const Type Short() {
- return Type(Type::PRIMITIVE, "short");
- }
- static const Type Int() {
- return Type(Type::PRIMITIVE, "int");
- }
- static const Type Long() {
- return Type(Type::PRIMITIVE, "long");
- }
- static const Type Float() {
- return Type(Type::PRIMITIVE, "float");
- }
- static const Type Double() {
- return Type(Type::PRIMITIVE, "double");
- }
- static const Type Boolean() {
- return Type(Type::PRIMITIVE, "boolean");
- }
- static const Type Void() {
- // For simplicity, we consider 'void' as a primitive type, like the Java
- // Reflection API does
- return Type(Type::PRIMITIVE, "void");
- }
- static Type Generic(const string& name) { return Type(Type::GENERIC, name); }
- static Type Wildcard() { return Type(Type::GENERIC, ""); }
- static Type Class(const string& name, const string& package = "") {
- return Type(Type::CLASS, name, package);
- }
- static Type Interface(const string& name, const string& package = "") {
- return Type(Type::INTERFACE, name, package);
- }
- static Type Enum(const string& name, const string& package = "") {
- return Type(Type::ENUM, name, package);
- }
- static Type ClassOf(const Type& type) {
- return Class("Class").add_parameter(type);
- }
- static Type ListOf(const Type& type) {
- return Interface("List", "java.util").add_parameter(type);
- }
- static Type IterableOf(const Type& type) {
- return Interface("Iterable").add_parameter(type);
- }
- static Type DataTypeOf(const Type& type) {
- return Class("DataType", "org.tensorflow").add_parameter(type);
- }
- static Type ForDataType(DataType data_type) {
- switch (data_type) {
- case DataType::DT_BOOL:
- return Class("TBool", "org.tensorflow.types");
- case DataType::DT_STRING:
- return Class("TString", "org.tensorflow.types");
- case DataType::DT_FLOAT:
- return Class("TFloat", "org.tensorflow.types");
- case DataType::DT_DOUBLE:
- return Class("TDouble", "org.tensorflow.types");
- case DataType::DT_UINT8:
- return Class("TUInt8", "org.tensorflow.types");
- case DataType::DT_INT32:
- return Class("TInt32", "org.tensorflow.types");
- case DataType::DT_INT64:
- return Class("TInt64", "org.tensorflow.types");
- case DataType::DT_RESOURCE:
- // TODO(karllessard) create a Resource utility class that could be
- // used to store a resource and its type (passed in a second argument).
- // For now, we need to force a wildcard and we will unfortunately lose
- // track of the resource type.
- // Falling through...
- default:
- // Any other datatypes does not have a equivalent in Java and must
- // remain a wildcard (e.g. DT_COMPLEX64, DT_QINT8, ...)
- return Wildcard();
- }
- }
- const Kind& kind() const { return kind_; }
- const string& name() const { return name_; }
- const string& package() const { return package_; }
- const string canonical_name() const {
- return package_.empty() ? name_ : package_ + "." + name_;
- }
- bool wildcard() const { return name_.empty(); } // only wildcards has no name
- const std::list& parameters() const { return parameters_; }
- Type& add_parameter(const Type& parameter) {
- parameters_.push_back(parameter);
- return *this;
- }
- const std::list& annotations() const { return annotations_; }
- Type& add_annotation(const Annotation& annotation) {
- annotations_.push_back(annotation);
- return *this;
- }
- const std::list& supertypes() const { return supertypes_; }
- Type& add_supertype(const Type& type) {
- if (type.kind_ == CLASS) {
- supertypes_.push_front(type); // keep superclass at the front of the list
- } else if (type.kind_ == INTERFACE) {
- supertypes_.push_back(type);
- }
- return *this;
- }
-
- protected:
- Type(Kind kind, const string& name, const string& package = "")
- : kind_(kind), name_(name), package_(package) {}
-
- private:
- Kind kind_;
- string name_;
- string package_;
- std::list parameters_;
- std::list annotations_;
- std::list supertypes_;
-};
-
-// Definition of a Java annotation
-//
-// This class only defines the usage of an annotation in a specific context,
-// giving optionally a set of attributes to initialize.
-class Annotation : public Type {
- public:
- static Annotation Create(const string& type_name, const string& pkg = "") {
- return Annotation(type_name, pkg);
- }
- const string& attributes() const { return attributes_; }
- Annotation& attributes(const string& attributes) {
- attributes_ = attributes;
- return *this;
- }
-
- private:
- string attributes_;
-
- Annotation(const string& name, const string& package)
- : Type(Kind::ANNOTATION, name, package) {}
-};
-
-// A definition of a Java variable
-//
-// This class declares an instance of a type, such as a class field or a
-// method argument, which can be documented.
-class Variable {
- public:
- static Variable Create(const string& name, const Type& type) {
- return Variable(name, type, false);
- }
- static Variable Varargs(const string& name, const Type& type) {
- return Variable(name, type, true);
- }
- const string& name() const { return name_; }
- const Type& type() const { return type_; }
- bool variadic() const { return variadic_; }
-
- private:
- string name_;
- Type type_;
- bool variadic_;
-
- Variable(const string& name, const Type& type, bool variadic)
- : name_(name), type_(type), variadic_(variadic) {}
-};
-
-// A definition of a Java class method
-//
-// This class defines the signature of a method, including its name, return
-// type and arguments.
-class Method {
- public:
- static Method Create(const string& name, const Type& return_type) {
- return Method(name, return_type, false);
- }
- static Method ConstructorFor(const Type& clazz) {
- return Method(clazz.name(), clazz, true);
- }
- bool constructor() const { return constructor_; }
- const string& name() const { return name_; }
- const Type& return_type() const { return return_type_; }
- const std::list& arguments() const { return arguments_; }
- Method& add_argument(const Variable& var) {
- arguments_.push_back(var);
- return *this;
- }
- const std::list& annotations() const { return annotations_; }
- Method& add_annotation(const Annotation& annotation) {
- annotations_.push_back(annotation);
- return *this;
- }
-
- private:
- string name_;
- Type return_type_;
- bool constructor_;
- std::list arguments_;
- std::list annotations_;
-
- Method(const string& name, const Type& return_type, bool constructor)
- : name_(name), return_type_(return_type), constructor_(constructor) {}
-};
-
-// A definition of a documentation bloc for a Java element (JavaDoc)
-class Javadoc {
- public:
- static Javadoc Create(const string& brief = "") { return Javadoc(brief); }
- const string& brief() const { return brief_; }
- const string& details() const { return details_; }
- Javadoc& details(const string& details) {
- details_ = details;
- return *this;
- }
- const std::list>& tags() const { return tags_; }
- Javadoc& add_tag(const string& tag, const string& text) {
- tags_.push_back(std::make_pair(tag, text));
- return *this;
- }
- Javadoc& add_param_tag(const string& name, const string& text) {
- return add_tag("param", name + " " + text);
- }
-
- private:
- string brief_;
- string details_;
- std::list> tags_;
-
- explicit Javadoc(const string& brief) : brief_(brief) {}
-};
-
-} // namespace java
-} // namespace tensorflow
-
-#endif // TENSORFLOW_JAVA_OP_GENERATOR_JAVA_DEFS_H_
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_gen_main.cc b/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_gen_main.cc
deleted file mode 100644
index 131a2a1de88..00000000000
--- a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_gen_main.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-==============================================================================*/
-
-#include
-#include
-
-#include "tensorflow/core/framework/op.h"
-#include "tensorflow/core/lib/core/status.h"
-#include "tensorflow/core/lib/strings/str_util.h"
-#include "tensorflow/core/platform/env.h"
-#include "tensorflow/core/platform/init_main.h"
-#include "tensorflow/core/util/command_line_flags.h"
-
-#include "op_generator.h"
-
-namespace tensorflow {
-namespace java {
-
-const char kUsageHeader[] =
- "\n\nGenerator of operation wrappers in Java.\n\n"
- "This executable generates wrappers for all registered operations it has "
- "been compiled with. A wrapper exposes an intuitive and strongly-typed\n"
- "interface for building its underlying operation and linking it into a "
- "graph.\n\n"
- "Operation wrappers are generated under the path specified by the "
- "'--output_dir' argument. This path can be absolute or relative to the\n"
- "current working directory and will be created if it does not exist.\n\n"
- "Note that the operations will not be available through the "
- "'org.tensorflow.op.Ops' API until the generated classes are compiled\n"
- "using an appropriate annotation processor.\n\n"
- "The '--base_package' overrides the default parent package under which "
- "the generated subpackage and classes are to be located.\n\n"
- "Finally, the `--api_dirs` argument takes a list of comma-separated "
- "directories of API definitions can be provided to override default\n"
- "values found in the ops definitions. Directories are ordered by priority "
- "(the last having precedence over the first).\n\n";
-
-} // namespace java
-} // namespace tensorflow
-
-int main(int argc, char* argv[]) {
- tensorflow::string output_dir;
- tensorflow::string base_package = "org.tensorflow.op";
- tensorflow::string api_dirs_str;
- std::vector flag_list = {
- tensorflow::Flag("output_dir", &output_dir,
- "Root directory into which output files are generated"),
- tensorflow::Flag(
- "base_package", &base_package,
- "Package parent to the generated subpackage and classes"),
- tensorflow::Flag(
- "api_dirs", &api_dirs_str,
- "List of directories that contains the ops api definitions")};
- tensorflow::string usage = tensorflow::java::kUsageHeader;
- usage += tensorflow::Flags::Usage(argv[0], flag_list);
- bool parsed_flags_ok = tensorflow::Flags::Parse(&argc, argv, flag_list);
- tensorflow::port::InitMain(usage.c_str(), &argc, &argv);
- QCHECK(parsed_flags_ok && !output_dir.empty()) << usage;
- std::vector api_dirs = tensorflow::str_util::Split(
- api_dirs_str, ",", tensorflow::str_util::SkipEmpty());
- tensorflow::java::OpGenerator generator(api_dirs);
- tensorflow::OpList ops;
- tensorflow::OpRegistry::Global()->Export(false, &ops);
- TF_CHECK_OK(generator.Run(ops, base_package, output_dir));
-
- return 0;
-}
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_generator.cc b/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_generator.cc
deleted file mode 100644
index 997ad561113..00000000000
--- a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_generator.cc
+++ /dev/null
@@ -1,553 +0,0 @@
-/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-==============================================================================*/
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "tensorflow/core/framework/op_gen_lib.h"
-#include "tensorflow/core/lib/core/errors.h"
-#include "tensorflow/core/lib/io/path.h"
-#include "tensorflow/core/lib/strings/str_util.h"
-#include "tensorflow/core/platform/env.h"
-#include "tensorflow/core/platform/logging.h"
-
-#include "java_defs.h"
-#include "op_generator.h"
-#include "op_specs.h"
-#include "source_writer.h"
-
-namespace tensorflow {
-namespace java {
-namespace {
-
-constexpr const char kLicense[] =
- "/* Copyright 2018 The TensorFlow Authors. All Rights Reserved.\n"
- "\n"
- "Licensed under the Apache License, Version 2.0 (the \"License\");\n"
- "you may not use this file except in compliance with the License.\n"
- "You may obtain a copy of the License at\n"
- "\n"
- " http://www.apache.org/licenses/LICENSE-2.0\n"
- "\n"
- "Unless required by applicable law or agreed to in writing, software\n"
- "distributed under the License is distributed on an \"AS IS\" BASIS,\n"
- "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n"
- "See the License for the specific language governing permissions and\n"
- "limitations under the License.\n"
- "=======================================================================*/"
- "\n";
-
-// There is three different modes to render an op class, depending on the
-// number and type of outputs it has:
-//
-// DEFAULT: This mode does not provide any specialization for the op class, it
-// is applied when the operation does not comply with any other mode
-//
-// OPERAND: The op class implements the Operand interface, allowing an
-// instance to be passed directly in input to another operation
-//
-// LIST_OPERAND: The op class implements the Iterable> interface,
-// allowing an instance to be passed directly as a list input to
-// another operation
-//
-enum RenderMode { DEFAULT, OPERAND, LIST_OPERAND };
-
-void AddArgument(const Variable& var, const string& description,
- Method* method_out, Javadoc* javadoc_out) {
- method_out->add_argument(var);
- javadoc_out->add_param_tag(var.name(), description);
-}
-
-void CollectOpDependencies(const OpSpec& op, RenderMode mode,
- std::list* out) {
- out->push_back(Type::Class("Operation", "org.tensorflow"));
- out->push_back(Type::Class("OperationBuilder", "org.tensorflow"));
- out->push_back(Type::Class("Scope", "org.tensorflow.op"));
- if (mode == OPERAND) {
- out->push_back(Type::Class("Output", "org.tensorflow"));
- } else if (mode == LIST_OPERAND) {
- out->push_back(Type::Interface("Iterator", "java.util"));
- }
- // Don't pay attention to duplicate types in the dependency list, they will
- // be filtered out by the SourceWriter.
- for (const ArgumentSpec& input : op.inputs()) {
- out->push_back(input.var().type());
- if (input.iterable()) {
- out->push_back(Type::Class("Operands", "org.tensorflow.op"));
- }
- }
- for (const ArgumentSpec& output : op.outputs()) {
- out->push_back(output.var().type());
- if (output.iterable()) {
- out->push_back(Type::Class("Arrays", "java.util"));
- }
- }
- for (const AttributeSpec& attribute : op.attributes()) {
- out->push_back(attribute.var().type());
- out->push_back(attribute.jni_type());
- if (attribute.has_default_value() &&
- attribute.type().kind() == Type::GENERIC) {
- out->push_back(Type::ForDataType(attribute.default_value()->type()));
- }
- }
- for (const AttributeSpec& optional_attribute : op.optional_attributes()) {
- out->push_back(optional_attribute.var().type());
- }
-}
-
-void WriteSetAttrDirective(const AttributeSpec& attr, bool optional,
- SourceWriter* writer) {
- string var_name = optional ? "opts." + attr.var().name() : attr.var().name();
- if (attr.iterable()) {
- string array_name = attr.var().name() + "Array";
- writer->AppendType(attr.jni_type())
- .Append("[] " + array_name + " = new ")
- .AppendType(attr.jni_type())
- .Append("[" + var_name + ".size()];")
- .EndLine()
- .BeginBlock("for (int i = 0; i < " + array_name + ".length; ++i)")
- .Append(array_name + "[i] = ");
- writer->Append(var_name + ".get(i);");
- writer->EndLine()
- .EndBlock()
- .Append("opBuilder.setAttr(\"" + attr.op_def_name() + "\", ")
- .Append(array_name + ");")
- .EndLine();
- } else {
- writer->Append("opBuilder.setAttr(\"" + attr.op_def_name() + "\", ")
- .Append(var_name + ");")
- .EndLine();
- }
-}
-
-void RenderSecondaryFactoryMethod(const OpSpec& op, const Type& op_class,
- std::map default_types,
- SourceWriter* writer) {
- // Build the return type for the secondary factory, replacing generic
- // parameters with their default value if any
- Type return_type = Type::Class(op_class.name(), op_class.package());
- for (const Type& parameter : op_class.parameters()) {
- if (parameter.kind() == Type::GENERIC &&
- default_types.find(parameter.name()) != default_types.end()) {
- return_type.add_parameter(default_types.at(parameter.name()));
- } else {
- return_type.add_parameter(parameter);
- }
- }
- Method factory = Method::Create("create", return_type);
- Javadoc factory_doc = Javadoc::Create(
- "Factory method to create a class wrapping a new " + op_class.name() +
- " operation using default output types.");
- Variable scope =
- Variable::Create("scope", Type::Class("Scope", "org.tensorflow.op"));
- AddArgument(scope, "current scope", &factory, &factory_doc);
- std::stringstream factory_statement;
- factory_statement << "return create(scope";
- for (const ArgumentSpec& input : op.inputs()) {
- AddArgument(input.var(), input.description(), &factory, &factory_doc);
- factory_statement << ", " << input.var().name();
- }
- for (const AttributeSpec& attr : op.attributes()) {
- // Only add attributes that are not types or have no default value to the
- // signature of the secondary factory
- factory_statement << ", ";
- if (attr.type().kind() == Type::GENERIC &&
- default_types.find(attr.type().name()) != default_types.end()) {
- factory_statement << default_types.at(attr.type().name()).name()
- << ".DTYPE";
- } else {
- AddArgument(attr.var(), attr.description(), &factory, &factory_doc);
- factory_statement << attr.var().name();
- }
- }
- if (!op.optional_attributes().empty()) {
- Variable options_var = Variable::Varargs("options", Type::Class("Options"));
- AddArgument(options_var, "carries optional attributes values", &factory,
- &factory_doc);
- factory_statement << ", " << options_var.name();
- }
- factory_doc.add_tag("return", "a new instance of " + op_class.name());
-
- writer->BeginMethod(factory, PUBLIC | STATIC, &factory_doc);
- writer->Append(factory_statement.str().c_str()).Append(");").EndLine();
- writer->EndMethod();
-}
-
-void RenderFactoryMethods(const OpSpec& op, const Type& op_class,
- SourceWriter* writer) {
- Method factory = Method::Create("create", op_class);
- Javadoc factory_doc =
- Javadoc::Create("Factory method to create a class wrapping a new " +
- op_class.name() + " operation.");
- Variable scope =
- Variable::Create("scope", Type::Class("Scope", "org.tensorflow.op"));
- AddArgument(scope, "current scope", &factory, &factory_doc);
- for (const ArgumentSpec& input : op.inputs()) {
- AddArgument(input.var(), input.description(), &factory, &factory_doc);
- }
- std::map default_types;
- for (const AttributeSpec& attr : op.attributes()) {
- AddArgument(attr.var(), attr.description(), &factory, &factory_doc);
- // If this attribute is a type with a default value, save its value
- // for passing it implicitly in a secondary factory method
- if (attr.has_default_value() && attr.type().kind() == Type::GENERIC) {
- Type default_type = Type::ForDataType(attr.default_value()->type());
- if (!default_type.wildcard()) {
- default_types.insert(std::make_pair(attr.type().name(), default_type));
- }
- }
- }
- if (!op.optional_attributes().empty()) {
- AddArgument(Variable::Varargs("options", Type::Class("Options")),
- "carries optional attributes values", &factory, &factory_doc);
- }
- factory_doc.add_tag("return", "a new instance of " + op_class.name());
-
- writer->BeginMethod(factory, PUBLIC | STATIC, &factory_doc);
- writer->Append("OperationBuilder opBuilder = scope.env().opBuilder(\"" +
- op.graph_op_name() + "\", scope.makeOpName(\"" +
- op_class.name() + "\"));");
- writer->EndLine();
- for (const ArgumentSpec& input : op.inputs()) {
- if (input.iterable()) {
- writer->Append("opBuilder.addInputList(Operands.asOutputs(" +
- input.var().name() + "));");
- writer->EndLine();
- } else {
- writer->Append("opBuilder.addInput(" + input.var().name() +
- ".asOutput());");
- writer->EndLine();
- }
- }
- // Add control dependencies, if any.
- writer->Append("opBuilder = scope.applyControlDependencies(opBuilder);");
- writer->EndLine();
-
- for (const AttributeSpec& attribute : op.attributes()) {
- WriteSetAttrDirective(attribute, false, writer);
- }
- if (!op.optional_attributes().empty()) {
- writer->BeginBlock("if (options != null)")
- .BeginBlock("for (Options opts : options)");
- for (const AttributeSpec& attribute : op.optional_attributes()) {
- writer->BeginBlock("if (opts." + attribute.var().name() + " != null)");
- WriteSetAttrDirective(attribute, true, writer);
- writer->EndBlock();
- }
- writer->EndBlock().EndBlock();
- }
- writer->Append("return new ")
- .AppendType(op_class)
- .Append("(opBuilder.build());")
- .EndLine();
- writer->EndMethod();
-
- // If this operation has type attributes with a default value, create a
- // second factory method that infers those values implicitly
- if (!default_types.empty()) {
- RenderSecondaryFactoryMethod(op, op_class, default_types, writer);
- }
-}
-
-void RenderConstructor(const OpSpec& op, const Type& op_class,
- SourceWriter* writer) {
- Variable operation =
- Variable::Create("operation", Type::Class("Operation", "org.tensorflow"));
- Method constructor = Method::ConstructorFor(op_class).add_argument(operation);
- for (const ArgumentSpec& output : op.outputs()) {
- if (output.iterable() && !output.type().wildcard()) {
- constructor.add_annotation(
- Annotation::Create("SuppressWarnings").attributes("\"unchecked\""));
- break;
- }
- }
- writer->BeginMethod(constructor, PRIVATE)
- .Append("super(operation);")
- .EndLine();
- if (!op.outputs().empty()) {
- writer->Append("int outputIdx = 0;").EndLine();
- for (const ArgumentSpec& output : op.outputs()) {
- if (output.iterable()) {
- string var_length = output.var().name() + "Length";
- writer->Append("int " + var_length)
- .Append(" = operation.outputListLength(\"" + output.op_def_name() +
- "\");")
- .EndLine()
- .Append(output.var().name() + " = Arrays.asList(");
- if (!output.type().wildcard()) {
- writer->Append("(")
- .AppendType(output.var().type().parameters().front())
- .Append("[])");
- }
- writer->Append("operation.outputList(outputIdx, " + var_length + "));")
- .EndLine()
- .Append("outputIdx += " + var_length + ";")
- .EndLine();
- } else {
- writer
- ->Append(output.var().name() + " = operation.output(outputIdx++);")
- .EndLine();
- }
- }
- }
- writer->EndMethod();
-}
-
-void RenderGettersAndSetters(const OpSpec& op, SourceWriter* writer) {
- for (const AttributeSpec& attr : op.optional_attributes()) {
- Method setter = Method::Create(attr.var().name(), Type::Class("Options"));
- Javadoc setter_doc = Javadoc::Create();
- AddArgument(attr.var(), attr.description(), &setter, &setter_doc);
- writer->BeginMethod(setter, PUBLIC | STATIC, &setter_doc)
- .Append("return new Options()." + attr.var().name() + "(" +
- attr.var().name() + ");")
- .EndLine()
- .EndMethod();
- }
- for (const ArgumentSpec& output : op.outputs()) {
- Method getter = Method::Create(output.var().name(), output.var().type());
- Javadoc getter_doc = Javadoc::Create(output.description());
- writer->BeginMethod(getter, PUBLIC, &getter_doc)
- .Append("return " + output.var().name() + ";")
- .EndLine()
- .EndMethod();
- }
-}
-
-void RenderInterfaceImpl(const OpSpec& op, RenderMode mode,
- SourceWriter* writer) {
- ArgumentSpec output = op.outputs().front();
-
- if (mode == OPERAND) {
- bool cast2obj = output.type().wildcard();
- Type return_type = Type::Class("Output", "org.tensorflow")
- .add_parameter(cast2obj ? Type::Class("TType", "org.tensorflow.types.family") : output.type());
- Method as_output = Method::Create("asOutput", return_type)
- .add_annotation(Annotation::Create("Override"));
- if (cast2obj) {
- as_output.add_annotation(
- Annotation::Create("SuppressWarnings").attributes("\"unchecked\""));
- }
- writer->BeginMethod(as_output, PUBLIC);
- if (cast2obj) {
- writer->Append("return (").AppendType(return_type).Append(") ");
- } else {
- writer->Append("return ");
- }
- writer->Append(output.var().name() + ";").EndLine().EndMethod();
-
- } else if (mode == LIST_OPERAND) {
- Type operand = Type::Interface("Operand", "org.tensorflow");
- if (output.type().wildcard()) {
- operand.add_parameter(Type::Class("TType", "org.tensorflow.types.family"));
- } else {
- operand.add_parameter(output.type());
- }
- Type return_type =
- Type::Interface("Iterator", "java.util").add_parameter(operand);
- Method iterator =
- Method::Create("iterator", return_type)
- .add_annotation(Annotation::Create("Override"))
- .add_annotation(Annotation::Create("SuppressWarnings")
- .attributes("{\"rawtypes\", \"unchecked\"}"));
- // cast the output list using a raw List
- writer->BeginMethod(iterator, PUBLIC)
- .Append("return (" + return_type.name() + ") ")
- .Append(output.var().name() + ".iterator();")
- .EndLine()
- .EndMethod();
- }
-}
-
-void RenderOptionsClass(const OpSpec& op, const Type& op_class,
- SourceWriter* writer) {
- Type options_class = Type::Class("Options");
- Javadoc options_doc = Javadoc::Create("Optional attributes for {@link " +
- op_class.canonical_name() + "}");
- writer->BeginInnerType(options_class, PUBLIC | STATIC, &options_doc);
- for (const AttributeSpec& attr : op.optional_attributes()) {
- Method setter = Method::Create(attr.var().name(), options_class);
- Javadoc setter_doc = Javadoc::Create();
- AddArgument(attr.var(), attr.description(), &setter, &setter_doc);
- writer->BeginMethod(setter, PUBLIC, &setter_doc)
- .Append("this." + attr.var().name() + " = " + attr.var().name() + ";")
- .EndLine()
- .Append("return this;")
- .EndLine()
- .EndMethod();
- }
- writer->EndLine();
- for (const AttributeSpec& optional_attribute : op.optional_attributes()) {
- writer->WriteField(optional_attribute.var(), PRIVATE);
- }
- Method constructor = Method::ConstructorFor(options_class);
- writer->BeginMethod(constructor, PRIVATE).EndMethod();
- writer->EndType();
-}
-
-inline Type ClassOf(const EndpointSpec& endpoint, const string& base_package) {
- return Type::Class(
- endpoint.name(),
- base_package + "." + absl::AsciiStrToLower(endpoint.package()));
-}
-
-void GenerateOp(const OpSpec& op, const EndpointSpec& endpoint,
- const string& base_package, const string& output_dir,
- Env* env) {
- Type op_class(
- ClassOf(endpoint, base_package)
- .add_supertype(Type::Class("PrimitiveOp", "org.tensorflow.op")));
- Javadoc op_javadoc(endpoint.javadoc());
-
- // op interfaces
- RenderMode mode = DEFAULT;
- if (op.outputs().size() == 1) {
- const ArgumentSpec& output = op.outputs().front();
- Type operand_type(output.type().wildcard() ? Type::Class("TType", "org.tensorflow.types.family")
- : output.type());
- Type operand_inf(Type::Interface("Operand", "org.tensorflow")
- .add_parameter(operand_type));
- if (output.iterable()) {
- mode = LIST_OPERAND;
- op_class.add_supertype(Type::IterableOf(operand_inf));
- } else {
- mode = OPERAND;
- op_class.add_supertype(operand_inf);
- }
- }
- // op generic parameters
- std::set generics;
- for (const ArgumentSpec& output : op.outputs()) {
- if (output.type().kind() == Type::GENERIC && !output.type().wildcard() &&
- generics.find(output.type().name()) == generics.end()) {
- op_class.add_parameter(output.type());
- op_javadoc.add_param_tag(
- "<" + output.type().name() + ">",
- "data type for {@code " + output.var().name() + "()} output");
- generics.insert(output.type().name());
- }
- }
- // op annotations
- if (endpoint.deprecated()) {
- op_class.add_annotation(Annotation::Create("Deprecated"));
- string explanation;
- if (!op.endpoints().front().deprecated()) {
- explanation =
- "use {@link " +
- ClassOf(op.endpoints().front(), base_package).canonical_name() +
- "} instead";
- } else {
- explanation = op.deprecation_explanation();
- }
- op_javadoc.add_tag("deprecated", explanation);
- }
- if (!op.hidden()) {
- // expose the op in the Ops Graph API only if it is visible
- Annotation oper_annot =
- Annotation::Create("Operator", "org.tensorflow.op.annotation");
- if (endpoint.package() != kDefaultEndpointPackage) {
- oper_annot.attributes("group = \"" + endpoint.package() + "\"");
- }
- op_class.add_annotation(oper_annot);
- }
- // create op class file
- const string op_dir_name = io::JoinPath(
- output_dir, str_util::StringReplace(op_class.package(), ".", "/", true));
- if (!env->FileExists(op_dir_name).ok()) {
- TF_CHECK_OK(Env::Default()->RecursivelyCreateDir(op_dir_name))
- << op_dir_name;
- }
- const string op_file_name = op_class.name() + ".java";
- std::unique_ptr op_file;
- TF_CHECK_OK(
- env->NewWritableFile(io::JoinPath(op_dir_name, op_file_name), &op_file))
- << op_file_name;
-
- // render endpoint source code
- SourceFileWriter writer(op_file.get());
- std::list dependencies;
- CollectOpDependencies(op, mode, &dependencies);
- writer.Write(kLicense)
- .EndLine()
- .Write("// This class has been generated, DO NOT EDIT!")
- .EndLine()
- .EndLine()
- .BeginType(op_class, PUBLIC | FINAL, &dependencies, &op_javadoc);
- if (!op.optional_attributes().empty()) {
- RenderOptionsClass(op, op_class, &writer);
- }
- RenderFactoryMethods(op, op_class, &writer);
- RenderGettersAndSetters(op, &writer);
- if (mode != DEFAULT) {
- RenderInterfaceImpl(op, mode, &writer);
- }
- writer.EndLine();
- for (const ArgumentSpec& output : op.outputs()) {
- writer.WriteField(output.var(), PRIVATE);
- }
- RenderConstructor(op, op_class, &writer);
- writer.EndType();
-}
-
-bool CanGenerateOp(const OpDef& op_def, const ApiDef& api_def) {
- if (api_def.visibility() == ApiDef::SKIP) {
- return false;
- }
- for (const auto& attr : op_def.attr()) {
- if (attr.type() == "func" || attr.type() == "list(func)") {
- return false; // TODO(karllessard) add support for function attributes
- }
- }
- return true;
-}
-
-} // namespace
-
-Status OpGenerator::Run(const OpList& op_list, const string& base_package,
- const string& output_dir) {
- ApiDefMap api_map(op_list);
- if (!api_dirs_.empty()) {
- // Only load api files that correspond to the requested "op_list"
- for (const auto& op : op_list.op()) {
- for (const auto& api_def_dir : api_dirs_) {
- const std::string api_def_file_pattern =
- io::JoinPath(api_def_dir, "api_def_" + op.name() + ".pbtxt");
- if (env_->FileExists(api_def_file_pattern).ok()) {
- TF_CHECK_OK(api_map.LoadFile(env_, api_def_file_pattern))
- << api_def_file_pattern;
- }
- }
- }
- }
- api_map.UpdateDocs();
- for (const auto& op_def : op_list.op()) {
- const ApiDef* api_def = api_map.GetApiDef(op_def.name());
- if (CanGenerateOp(op_def, *api_def)) {
- OpSpec op(OpSpec::Create(op_def, *api_def));
- for (const EndpointSpec& endpoint : op.endpoints()) {
- GenerateOp(op, endpoint, base_package, output_dir, env_);
- }
- }
- }
- return Status::OK();
-}
-
-} // namespace java
-} // namespace tensorflow
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_generator.h b/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_generator.h
deleted file mode 100644
index 347fab614c3..00000000000
--- a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_generator.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-==============================================================================*/
-
-#ifndef TENSORFLOW_JAVA_OP_GENERATOR_OP_GENERATOR_H_
-#define TENSORFLOW_JAVA_OP_GENERATOR_OP_GENERATOR_H_
-
-#include
-#include
-
-#include "tensorflow/core/framework/api_def.pb.h"
-#include "tensorflow/core/framework/op_def.pb.h"
-#include "tensorflow/core/lib/core/status.h"
-#include "tensorflow/core/platform/env.h"
-
-#include "op_specs.h"
-
-namespace tensorflow {
-namespace java {
-
-// A generator of Java operation wrappers.
-//
-// This generator takes a list of ops definitions in input and outputs
-// a Java Op wrapper for each of them in the provided directory. The same
-// generator instance can be invoked multiple times with a different list of
-// ops definitions.
-class OpGenerator {
- public:
- explicit OpGenerator(const std::vector& api_dirs,
- Env* env = Env::Default())
- : api_dirs_(api_dirs), env_(env) {}
-
- // Generates wrappers for the given list of 'ops'.
- //
- // Output files are generated in //,
- // where 'op_package' is derived from ops endpoints.
- Status Run(const OpList& op_list, const string& base_package,
- const string& output_dir);
-
- private:
- const std::vector api_dirs_;
- Env* env_;
-};
-
-} // namespace java
-} // namespace tensorflow
-
-#endif // TENSORFLOW_JAVA_OP_GENERATOR_OP_GENERATOR_H_
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_specs.cc b/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_specs.cc
deleted file mode 100644
index 5bb63109df5..00000000000
--- a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_specs.cc
+++ /dev/null
@@ -1,394 +0,0 @@
-/* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-==============================================================================*/
-
-#include
-#include
-#include
-#include
-
-#include "re2/re2.h"
-#include "tensorflow/core/framework/op.h"
-#include "tensorflow/core/framework/types.h"
-#include "tensorflow/core/lib/strings/str_util.h"
-#include "tensorflow/core/platform/logging.h"
-
-#include "op_specs.h"
-
-namespace tensorflow {
-namespace java {
-namespace {
-
-inline bool IsRealNumbers(const AttrValue& values) {
- if (!values.has_list()) {
- return RealNumberTypes().Contains(values.type());
- }
- for (int i = 0; i < values.list().type_size(); ++i) {
- if (!RealNumberTypes().Contains(values.list().type(i))) {
- return false;
- }
- }
- return true;
-}
-
-class TypeResolver {
- public:
- explicit TypeResolver(const OpDef& op_def) : op_def_(op_def) {}
-
- // Returns the class type of an input/output argument
- //
- // For example, if the argument's datatype is DT_STRING, this method will
- // return "java.lang.String", so the argument can become "Operand"
- // in the Ops API
- Type TypeOf(const OpDef_ArgDef& arg_def, bool* iterable_out);
-
- // Returns types of an input attribute
- //
- // The first element of the pair is the class type of this attribute while
- // the second is its JNI/primitive type equivalent, required for explicit
- // unboxing.
- //
- // For example, if the attribute is of type "float", this method will return
- // , so the attribute can be used as a "Float" object
- // in the Ops API and casted to a "float" when passing through the JNI layer.
- std::pair TypesOf(const OpDef_AttrDef& attr_def,
- bool* iterable_out);
-
- // Returns true if the type of this attribute has already been resolved
- bool IsAttributeVisited(const string& attr_name) {
- return visited_attrs_.find(attr_name) != visited_attrs_.cend();
- }
-
- private:
- const OpDef op_def_;
- std::map visited_attrs_;
- char next_generic_letter_ = 'T';
-
- std::pair MakeTypePair(const Type& type, const Type& jni_type) {
- return std::make_pair(type, jni_type);
- }
- std::pair MakeTypePair(const Type& type) {
- return std::make_pair(type, type);
- }
- Type NextGeneric() {
- char generic_letter = next_generic_letter_++;
- if (next_generic_letter_ > 'Z') {
- next_generic_letter_ = 'A';
- }
- return Type::Generic(string(1, generic_letter))
- .add_supertype(Type::Class("TType", "org.tensorflow.types.family"));
- }
-};
-
-Type TypeResolver::TypeOf(const OpDef_ArgDef& arg_def, bool* iterable_out) {
- *iterable_out = false;
- Type type = Type::Wildcard();
- if (arg_def.type() != DataType::DT_INVALID) {
- type = Type::ForDataType(arg_def.type());
-
- } else if (!arg_def.type_attr().empty()) {
- // resolve type from attribute (if already visited, retrieve its type)
- if (IsAttributeVisited(arg_def.type_attr())) {
- type = visited_attrs_.at(arg_def.type_attr());
- } else {
- for (const auto& attr_def : op_def_.attr()) {
- if (attr_def.name() == arg_def.type_attr()) {
- type = TypesOf(attr_def, iterable_out).first;
- break;
- }
- }
- }
- } else if (!arg_def.type_list_attr().empty()) {
- // type is a list of tensors that can be of different data types, so leave
- // it as a list of wildcards
- *iterable_out = true;
- visited_attrs_.insert(std::make_pair(arg_def.type_list_attr(), type));
-
- } else {
- LOG(FATAL) << "Cannot resolve data type of argument \"" << arg_def.name()
- << "\" in operation \"" << op_def_.name() << "\"";
- }
- if (!arg_def.number_attr().empty()) {
- // when number_attr is set, argument has to be a list of tensors
- *iterable_out = true;
- visited_attrs_.insert(std::make_pair(arg_def.number_attr(), Type::Int()));
- }
- return type;
-}
-
-std::pair TypeResolver::TypesOf(const OpDef_AttrDef& attr_def,
- bool* iterable_out) {
- std::pair types = MakeTypePair(Type::Wildcard());
- *iterable_out = false;
- StringPiece attr_type = attr_def.type();
- if (absl::ConsumePrefix(&attr_type, "list(")) {
- attr_type.remove_suffix(1); // remove closing brace
- *iterable_out = true;
- }
- if (attr_type == "string") {
- types = MakeTypePair(Type::Class("String"));
-
- } else if (attr_type == "int") {
- types = MakeTypePair(Type::Class("Long"), Type::Long());
-
- } else if (attr_type == "float") {
- types = MakeTypePair(Type::Class("Float"), Type::Float());
-
- } else if (attr_type == "bool") {
- types = MakeTypePair(Type::Class("Boolean"), Type::Boolean());
-
- } else if (attr_type == "shape") {
- types = MakeTypePair(Type::Class("Shape", "org.tensorflow.tools"));
-
- } else if (attr_type == "tensor") {
- types = MakeTypePair(Type::Class("Tensor", "org.tensorflow")
- .add_parameter(Type::Wildcard()));
-
- } else if (attr_type == "type") {
- Type type = *iterable_out ? Type::Wildcard() : NextGeneric();
- if (IsRealNumbers(attr_def.allowed_values())) {
- type.add_supertype(Type::Class("TNumber", "org.tensorflow.types.family"));
- }
- types = MakeTypePair(type, Type::Enum("DataType", "org.tensorflow"));
-
- } else {
- LOG(FATAL) << "Cannot resolve data type for attribute \"" << attr_type
- << "\" in operation \"" << op_def_.name() << "\"";
- }
- visited_attrs_.insert(std::make_pair(attr_def.name(), types.first));
- return types;
-}
-
-string SnakeToCamelCase(const string& str, bool upper = false) {
- string result;
- bool cap = upper;
- for (string::const_iterator it = str.begin(); it != str.end(); ++it) {
- const char c = *it;
- if (c == '_') {
- cap = true;
- } else if (cap) {
- result += toupper(c);
- cap = false;
- } else {
- result += c;
- }
- }
- return result;
-}
-
-bool FindAndCut(string* input, const RE2& expr, string* before_match,
- string* ret_match = nullptr) {
- string match;
- if (!RE2::PartialMatch(*input, expr, &match)) return false;
- *before_match = input->substr(0, input->find(match));
- *input = input->substr(before_match->size() + match.size());
- if (ret_match != nullptr) *ret_match = match;
- return true;
-}
-
-string ParseDocumentation(const string& inp) {
- std::stringstream javadoc_text;
-
- // TODO(karllessard) This is a very minimalist utility method for converting
- // markdown syntax, as found in ops descriptions, to Javadoc/html tags. Check
- // for alternatives to increase the level of support for markups.
- std::vector markups_subexpr;
- markups_subexpr.push_back("\n+\\*\\s+"); // lists
- markups_subexpr.push_back("\n{2,}"); // paragraphs
- markups_subexpr.push_back("`{3,}\\s*[^\\s\n]*\\s*\n"); // code blocks
- markups_subexpr.push_back("`+"); // inlined code and code blocks
- markups_subexpr.push_back("\\*{1,2}\\b"); // text emphasis
- markups_subexpr.push_back("\\["); // hyperlinks
- const RE2 markup_expr("(" + absl::StrJoin(markups_subexpr, "|") + ")");
-
- bool in_list = false;
- string input = inp;
- while (true) {
- string text, markup;
- if (!FindAndCut(&input, markup_expr, &text, &markup)) {
- javadoc_text << input;
- break; // end of loop
- }
- javadoc_text << text;
- if (absl::StartsWith(markup, "\n")) {
- javadoc_text << "\n";
- if (absl::StrContains(markup, "*")) {
- // new list item
- javadoc_text << (in_list ? "\n" : "\n") << "\n";
- in_list = true;
- } else if (in_list) {
- // end of list
- javadoc_text << " \n \n";
- in_list = false;
- } else if (!absl::StartsWith(input, "```")) {
- // new paragraph (not required if a block follows)
- javadoc_text << "\n";
- }
- } else if (absl::StartsWith(markup, "```")) {
- // code blocks
- if (FindAndCut(&input, "(```\\s*\n*)", &text)) {
- javadoc_text << "
{@code\n" << text << "} \n";
- } else {
- javadoc_text << markup;
- }
- } else if (absl::StartsWith("(" + markup + ")", "`")) {
- // inlined code
- if (FindAndCut(&input, markup, &text)) {
- javadoc_text << "{@code " << text << "}";
- } else {
- javadoc_text << markup;
- }
- } else if (markup == "**") {
- // text emphasis (strong)
- if (FindAndCut(&input, "(\\b\\*{2})", &text)) {
- javadoc_text << "" << ParseDocumentation(text) << " ";
- } else {
- javadoc_text << markup;
- }
- } else if (markup == "*") {
- // text emphasis (normal)
- if (FindAndCut(&input, "(\\b\\*{1})", &text)) {
- javadoc_text << "" << ParseDocumentation(text) << " ";
- } else {
- javadoc_text << markup;
- }
- } else if (absl::StartsWith(markup, "[")) {
- // hyperlinks
- string label;
- string link;
- if (RE2::PartialMatch(input, "([^\\[]+)\\]\\((http.+)\\)", &label,
- &link) &&
- absl::StartsWith(input, label + link)) {
- input = input.substr(label.size() + link.size());
- javadoc_text << ""
- << ParseDocumentation(label) << " ";
- } else {
- javadoc_text << markup;
- }
- } else {
- // safe fallback
- javadoc_text << markup;
- }
- }
- return javadoc_text.str();
-}
-
-ArgumentSpec CreateInput(const OpDef_ArgDef& input_def,
- const ApiDef::Arg& input_api_def,
- TypeResolver* type_resolver) {
- bool iterable = false;
- Type type = type_resolver->TypeOf(input_def, &iterable);
- Type var_type =
- Type::Interface("Operand", "org.tensorflow").add_parameter(type);
- if (iterable) {
- var_type = Type::IterableOf(var_type);
- }
- return ArgumentSpec(
- input_api_def.name(),
- Variable::Create(SnakeToCamelCase(input_api_def.rename_to()), var_type),
- type, ParseDocumentation(input_api_def.description()), iterable);
-}
-
-AttributeSpec CreateAttribute(const OpDef_AttrDef& attr_def,
- const ApiDef::Attr& attr_api_def,
- TypeResolver* type_resolver) {
- bool iterable = false;
- std::pair types = type_resolver->TypesOf(attr_def, &iterable);
- Type var_type = types.first.kind() == Type::GENERIC
- ? Type::DataTypeOf(types.first)
- : types.first;
- if (iterable) {
- var_type = Type::ListOf(var_type);
- }
- return AttributeSpec(
- attr_api_def.name(),
- Variable::Create(SnakeToCamelCase(attr_api_def.rename_to()), var_type),
- types.first, types.second, ParseDocumentation(attr_api_def.description()),
- iterable,
- attr_def.has_default_value() ? &attr_def.default_value() : nullptr);
-}
-
-ArgumentSpec CreateOutput(const OpDef_ArgDef& output_def,
- const ApiDef::Arg& output_api,
- TypeResolver* type_resolver) {
- bool iterable = false;
- Type type = type_resolver->TypeOf(output_def, &iterable);
- Type var_type = Type::Class("Output", "org.tensorflow").add_parameter(type);
- if (iterable) {
- var_type = Type::ListOf(var_type);
- }
- return ArgumentSpec(
- output_api.name(),
- Variable::Create(SnakeToCamelCase(output_api.rename_to()), var_type),
- type, ParseDocumentation(output_api.description()), iterable);
-}
-
-EndpointSpec CreateEndpoint(const OpDef& op_def, const ApiDef& api_def,
- const ApiDef_Endpoint& endpoint_def) {
- std::vector name_tokens = str_util::Split(endpoint_def.name(), ".");
- string package;
- string name;
- if (name_tokens.size() > 1) {
- package = name_tokens.at(0);
- name = name_tokens.at(1);
- } else {
- package = "core"; // generate unclassified ops in the 'core' package
- name = name_tokens.at(0);
- }
- return EndpointSpec(package, name,
- Javadoc::Create(ParseDocumentation(api_def.summary()))
- .details(ParseDocumentation(api_def.description())));
-}
-
-} // namespace
-
-OpSpec OpSpec::Create(const OpDef& op_def, const ApiDef& api_def) {
- OpSpec op(api_def.graph_op_name(), api_def.visibility() == ApiDef::HIDDEN,
- op_def.deprecation().explanation());
- TypeResolver type_resolver(op_def);
- for (const string& next_input_name : api_def.arg_order()) {
- for (int i = 0; i < op_def.input_arg().size(); ++i) {
- if (op_def.input_arg(i).name() == next_input_name) {
- op.inputs_.push_back(CreateInput(op_def.input_arg(i), api_def.in_arg(i),
- &type_resolver));
- break;
- }
- }
- }
- for (int i = 0; i < op_def.attr().size(); ++i) {
- // do not parse attributes already visited, they have probably been inferred
- // before as an input argument type
- if (!type_resolver.IsAttributeVisited(op_def.attr(i).name())) {
- AttributeSpec attr =
- CreateAttribute(op_def.attr(i), api_def.attr(i), &type_resolver);
- // attributes with a default value are optional
- if (attr.has_default_value() && attr.type().kind() != Type::GENERIC) {
- op.optional_attributes_.push_back(attr);
- } else {
- op.attributes_.push_back(attr);
- }
- }
- }
- for (int i = 0; i < op_def.output_arg().size(); ++i) {
- op.outputs_.push_back(
- CreateOutput(op_def.output_arg(i), api_def.out_arg(i), &type_resolver));
- }
- for (const auto& endpoint_def : api_def.endpoint()) {
- op.endpoints_.push_back(CreateEndpoint(op_def, api_def, endpoint_def));
- }
- return op;
-}
-
-} // namespace java
-} // namespace tensorflow
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_specs.h b/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_specs.h
deleted file mode 100644
index 40d72656561..00000000000
--- a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/op_specs.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-==============================================================================*/
-
-#ifndef TENSORFLOW_JAVA_OP_GENERATOR_OP_SPECS_H_
-#define TENSORFLOW_JAVA_OP_GENERATOR_OP_SPECS_H_
-
-#include
-#include
-
-#include "tensorflow/core/framework/api_def.pb.h"
-#include "tensorflow/core/framework/attr_value.pb.h"
-#include "tensorflow/core/framework/op_def.pb.h"
-
-#include "java_defs.h"
-
-namespace tensorflow {
-namespace java {
-
-constexpr const char kDefaultEndpointPackage[] = "core";
-
-class EndpointSpec {
- public:
- // A specification for an operation endpoint
- //
- // package: package of this endpoint (from which also derives its package)
- // name: name of this endpoint class
- // javadoc: the endpoint class documentation
- // TODO(annarev): hardcode depcreated to false until deprecated is possible
- EndpointSpec(const string& package, const string& name,
- const Javadoc& javadoc)
- : package_(package), name_(name), javadoc_(javadoc), deprecated_(false) {}
-
- const string& package() const { return package_; }
- const string& name() const { return name_; }
- const Javadoc& javadoc() const { return javadoc_; }
- bool deprecated() const { return deprecated_; }
-
- private:
- const string package_;
- const string name_;
- const Javadoc javadoc_;
- const bool deprecated_;
-};
-
-class ArgumentSpec {
- public:
- // A specification for an operation argument
- //
- // op_def_name: argument name, as known by TensorFlow core
- // var: a variable to represent this argument in Java
- // type: the tensor type of this argument
- // description: a description of this argument, in javadoc
- // iterable: true if this argument is a list
- ArgumentSpec(const string& op_def_name, const Variable& var, const Type& type,
- const string& description, bool iterable)
- : op_def_name_(op_def_name),
- var_(var),
- type_(type),
- description_(description),
- iterable_(iterable) {}
-
- const string& op_def_name() const { return op_def_name_; }
- const Variable& var() const { return var_; }
- const Type& type() const { return type_; }
- const string& description() const { return description_; }
- bool iterable() const { return iterable_; }
-
- private:
- const string op_def_name_;
- const Variable var_;
- const Type type_;
- const string description_;
- const bool iterable_;
-};
-
-class AttributeSpec {
- public:
- // A specification for an operation attribute
- //
- // op_def_name: attribute name, as known by TensorFlow core
- // var: a variable to represent this attribute in Java
- // type: the type of this attribute
- // jni_type: the type of this attribute in JNI layer (see OperationBuilder)
- // description: a description of this attribute, in javadoc
- // iterable: true if this attribute is a list
- // default_value: default value for this attribute or nullptr if none. Any
- // value referenced by this pointer must outlive the lifetime
- // of the AttributeSpec. This is guaranteed if the value is
- // issued by an OpDef of the global OpRegistry.
- AttributeSpec(const string& op_def_name, const Variable& var,
- const Type& type, const Type& jni_type,
- const string& description, bool iterable,
- const AttrValue* default_value)
- : op_def_name_(op_def_name),
- var_(var),
- type_(type),
- description_(description),
- iterable_(iterable),
- jni_type_(jni_type),
- default_value_(default_value) {}
-
- const string& op_def_name() const { return op_def_name_; }
- const Variable& var() const { return var_; }
- const Type& type() const { return type_; }
- const string& description() const { return description_; }
- bool iterable() const { return iterable_; }
- const Type& jni_type() const { return jni_type_; }
- bool has_default_value() const { return default_value_ != nullptr; }
- const AttrValue* default_value() const { return default_value_; }
-
- private:
- const string op_def_name_;
- const Variable var_;
- const Type type_;
- const string description_;
- const bool iterable_;
- const Type jni_type_;
- const AttrValue* default_value_;
-};
-
-class OpSpec {
- public:
- // Parses an op definition and its API to produce a specification used for
- // rendering its Java wrapper
- //
- // op_def: Op definition
- // api_def: Op API definition
- static OpSpec Create(const OpDef& op_def, const ApiDef& api_def);
-
- const string& graph_op_name() const { return graph_op_name_; }
- bool hidden() const { return hidden_; }
- const string& deprecation_explanation() const {
- return deprecation_explanation_;
- }
- const std::vector endpoints() const { return endpoints_; }
- const std::vector& inputs() const { return inputs_; }
- const std::vector& outputs() const { return outputs_; }
- const std::vector& attributes() const { return attributes_; }
- const std::vector& optional_attributes() const {
- return optional_attributes_;
- }
-
- private:
- // A specification for an operation
- //
- // graph_op_name: name of this op, as known by TensorFlow core engine
- // hidden: true if this op should not be visible through the Graph Ops API
- // deprecation_explanation: message to show if all endpoints are deprecated
- explicit OpSpec(const string& graph_op_name, bool hidden,
- const string& deprecation_explanation)
- : graph_op_name_(graph_op_name),
- hidden_(hidden),
- deprecation_explanation_(deprecation_explanation) {}
-
- const string graph_op_name_;
- const bool hidden_;
- const string deprecation_explanation_;
- std::vector endpoints_;
- std::vector inputs_;
- std::vector outputs_;
- std::vector attributes_;
- std::vector optional_attributes_;
-};
-
-} // namespace java
-} // namespace tensorflow
-
-#endif // TENSORFLOW_JAVA_OP_GENERATOR_OP_SPECS_H_
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/source_writer.cc b/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/source_writer.cc
deleted file mode 100644
index 63191c080ac..00000000000
--- a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/source_writer.cc
+++ /dev/null
@@ -1,363 +0,0 @@
-/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-==============================================================================*/
-
-#include
-#include
-#include
-
-#include "source_writer.h"
-
-namespace tensorflow {
-namespace java {
-
-SourceWriter::SourceWriter() {
- // Push an empty generic namespace at start, for simplification.
- generic_namespaces_.push(new GenericNamespace());
-}
-
-SourceWriter::~SourceWriter() {
- // Remove empty generic namespace added at start as well as any other
- // namespace objects that haven't been removed.
- while (!generic_namespaces_.empty()) {
- GenericNamespace* generic_namespace = generic_namespaces_.top();
- generic_namespaces_.pop();
- delete generic_namespace;
- }
-}
-
-SourceWriter& SourceWriter::Indent(int tab) {
- left_margin_.resize(
- std::max(static_cast(left_margin_.size() + tab), 0), ' ');
- return *this;
-}
-
-SourceWriter& SourceWriter::Prefix(const char* line_prefix) {
- line_prefix_ = line_prefix;
- return *this;
-}
-
-SourceWriter& SourceWriter::Write(const StringPiece& str) {
- size_t line_pos = 0;
- do {
- size_t start_pos = line_pos;
- line_pos = str.find('\n', start_pos);
- if (line_pos != string::npos) {
- ++line_pos;
- Append(str.substr(start_pos, line_pos - start_pos));
- newline_ = true;
- } else {
- Append(str.substr(start_pos, str.size() - start_pos));
- }
- } while (line_pos != string::npos && line_pos < str.size());
-
- return *this;
-}
-
-SourceWriter& SourceWriter::WriteFromFile(const string& fname, Env* env) {
- string data_;
- TF_CHECK_OK(ReadFileToString(env, fname, &data_));
- return Write(data_);
-}
-
-SourceWriter& SourceWriter::Append(const StringPiece& str) {
- if (!str.empty()) {
- if (newline_) {
- DoAppend(left_margin_ + line_prefix_);
- newline_ = false;
- }
- DoAppend(str);
- }
- return *this;
-}
-
-SourceWriter& SourceWriter::AppendType(const Type& type) {
- if (type.wildcard()) {
- Append("?");
- } else {
- Append(type.name());
- if (!type.parameters().empty()) {
- Append("<");
- bool first = true;
- for (const Type& t : type.parameters()) {
- if (!first) {
- Append(", ");
- }
- AppendType(t);
- first = false;
- }
- Append(">");
- }
- }
- return *this;
-}
-
-SourceWriter& SourceWriter::EndLine() {
- Append("\n");
- newline_ = true;
- return *this;
-}
-
-SourceWriter& SourceWriter::BeginBlock(const string& expression) {
- if (!expression.empty()) {
- Append(expression + " {");
- } else {
- Append(newline_ ? "{" : " {");
- }
- return EndLine().Indent(2);
-}
-
-SourceWriter& SourceWriter::EndBlock() {
- return Indent(-2).Append("}").EndLine();
-}
-
-SourceWriter& SourceWriter::BeginMethod(const Method& method, int modifiers,
- const Javadoc* javadoc) {
- GenericNamespace* generic_namespace = PushGenericNamespace(modifiers);
- if (!method.constructor()) {
- generic_namespace->Visit(method.return_type());
- }
- for (const Variable& v : method.arguments()) {
- generic_namespace->Visit(v.type());
- }
- EndLine();
- if (javadoc != nullptr) {
- WriteJavadoc(*javadoc);
- }
- if (!method.annotations().empty()) {
- WriteAnnotations(method.annotations());
- }
- WriteModifiers(modifiers);
- if (!generic_namespace->declared_types().empty()) {
- WriteGenerics(generic_namespace->declared_types());
- Append(" ");
- }
- if (!method.constructor()) {
- AppendType(method.return_type()).Append(" ");
- }
- Append(method.name()).Append("(");
- bool first = true;
- for (const Variable& v : method.arguments()) {
- if (!first) {
- Append(", ");
- }
- AppendType(v.type()).Append(v.variadic() ? "... " : " ").Append(v.name());
- first = false;
- }
- return Append(")").BeginBlock();
-}
-
-SourceWriter& SourceWriter::EndMethod() {
- EndBlock();
- PopGenericNamespace();
- return *this;
-}
-
-SourceWriter& SourceWriter::BeginType(const Type& type, int modifiers,
- const std::list* extra_dependencies,
- const Javadoc* javadoc) {
- if (!type.package().empty()) {
- Append("package ").Append(type.package()).Append(";").EndLine();
- }
- TypeImporter type_importer(type.package());
- type_importer.Visit(type);
- if (extra_dependencies != nullptr) {
- for (const Type& t : *extra_dependencies) {
- type_importer.Visit(t);
- }
- }
- if (!type_importer.imports().empty()) {
- EndLine();
- for (const string& s : type_importer.imports()) {
- Append("import ").Append(s).Append(";").EndLine();
- }
- }
- return BeginInnerType(type, modifiers, javadoc);
-}
-
-SourceWriter& SourceWriter::BeginInnerType(const Type& type, int modifiers,
- const Javadoc* javadoc) {
- GenericNamespace* generic_namespace = PushGenericNamespace(modifiers);
- generic_namespace->Visit(type);
- EndLine();
- if (javadoc != nullptr) {
- WriteJavadoc(*javadoc);
- }
- if (!type.annotations().empty()) {
- WriteAnnotations(type.annotations());
- }
- WriteModifiers(modifiers);
- CHECK_EQ(Type::Kind::CLASS, type.kind()) << ": Not supported yet";
- Append("class ").Append(type.name());
- if (!generic_namespace->declared_types().empty()) {
- WriteGenerics(generic_namespace->declared_types());
- }
- if (!type.supertypes().empty()) {
- bool first_interface = true;
- for (const Type& t : type.supertypes()) {
- if (t.kind() == Type::CLASS) { // superclass is always first in list
- Append(" extends ");
- } else if (first_interface) {
- Append(" implements ");
- first_interface = false;
- } else {
- Append(", ");
- }
- AppendType(t);
- }
- }
- return BeginBlock();
-}
-
-SourceWriter& SourceWriter::EndType() {
- EndBlock();
- PopGenericNamespace();
- return *this;
-}
-
-SourceWriter& SourceWriter::WriteField(const Variable& field, int modifiers,
- const Javadoc* javadoc) {
- // If present, write field javadoc only as one brief line
- if (javadoc != nullptr && !javadoc->brief().empty()) {
- Append("/** ").Append(javadoc->brief()).Append(" */").EndLine();
- }
- WriteModifiers(modifiers);
- AppendType(field.type()).Append(" ").Append(field.name()).Append(";");
- EndLine();
- return *this;
-}
-
-SourceWriter& SourceWriter::WriteModifiers(int modifiers) {
- if (modifiers & PUBLIC) {
- Append("public ");
- } else if (modifiers & PROTECTED) {
- Append("protected ");
- } else if (modifiers & PRIVATE) {
- Append("private ");
- }
- if (modifiers & STATIC) {
- Append("static ");
- }
- if (modifiers & FINAL) {
- Append("final ");
- }
- return *this;
-}
-
-SourceWriter& SourceWriter::WriteJavadoc(const Javadoc& javadoc) {
- Append("/**").Prefix(" * ").EndLine();
- bool do_line_break = false;
- if (!javadoc.brief().empty()) {
- Write(javadoc.brief()).EndLine();
- do_line_break = true;
- }
- if (!javadoc.details().empty()) {
- if (do_line_break) {
- Append("").EndLine();
- }
- Write(javadoc.details()).EndLine();
- do_line_break = true;
- }
- if (!javadoc.tags().empty()) {
- if (do_line_break) {
- EndLine();
- }
- for (const auto& p : javadoc.tags()) {
- Append("@" + p.first);
- if (!p.second.empty()) {
- Append(" ").Write(p.second);
- }
- EndLine();
- }
- }
- return Prefix("").Append(" */").EndLine();
-}
-
-SourceWriter& SourceWriter::WriteAnnotations(
- const std::list& annotations) {
- for (const Annotation& a : annotations) {
- Append("@" + a.name());
- if (!a.attributes().empty()) {
- Append("(").Append(a.attributes()).Append(")");
- }
- EndLine();
- }
- return *this;
-}
-
-SourceWriter& SourceWriter::WriteGenerics(
- const std::list& generics) {
- Append("<");
- bool first = true;
- for (const Type* pt : generics) {
- if (!first) {
- Append(", ");
- }
- Append(pt->name());
- if (!pt->supertypes().empty()) {
- Append(" extends ").AppendType(pt->supertypes().front());
- }
- first = false;
- }
- return Append(">");
-}
-
-SourceWriter::GenericNamespace* SourceWriter::PushGenericNamespace(
- int modifiers) {
- GenericNamespace* generic_namespace;
- if (modifiers & STATIC) {
- generic_namespace = new GenericNamespace();
- } else {
- generic_namespace = new GenericNamespace(generic_namespaces_.top());
- }
- generic_namespaces_.push(generic_namespace);
- return generic_namespace;
-}
-
-void SourceWriter::PopGenericNamespace() {
- GenericNamespace* generic_namespace = generic_namespaces_.top();
- generic_namespaces_.pop();
- delete generic_namespace;
-}
-
-void SourceWriter::TypeVisitor::Visit(const Type& type) {
- DoVisit(type);
- for (const Type& t : type.parameters()) {
- Visit(t);
- }
- for (const Annotation& t : type.annotations()) {
- DoVisit(t);
- }
- for (const Type& t : type.supertypes()) {
- Visit(t);
- }
-}
-
-void SourceWriter::GenericNamespace::DoVisit(const Type& type) {
- // ignore non-generic parameters, wildcards and generics already declared
- if (type.kind() == Type::GENERIC && !type.wildcard() &&
- generic_names_.find(type.name()) == generic_names_.end()) {
- declared_types_.push_back(&type);
- generic_names_.insert(type.name());
- }
-}
-
-void SourceWriter::TypeImporter::DoVisit(const Type& type) {
- if (!type.package().empty() && type.package() != current_package_) {
- imports_.insert(type.canonical_name());
- }
-}
-
-} // namespace java
-} // namespace tensorflow
diff --git a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/source_writer.h b/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/source_writer.h
deleted file mode 100644
index 73f487bb46c..00000000000
--- a/tensorflow-core/tensorflow-core-api/src/bazel/op_generator/source_writer.h
+++ /dev/null
@@ -1,259 +0,0 @@
-/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-==============================================================================*/
-
-#ifndef TENSORFLOW_JAVA_OP_GENERATOR_SOURCE_WRITER_H_
-#define TENSORFLOW_JAVA_OP_GENERATOR_SOURCE_WRITER_H_
-
-#include
-#include
-#include
-#include
-
-#include "tensorflow/core/lib/core/stringpiece.h"
-#include "tensorflow/core/platform/env.h"
-
-#include "java_defs.h"
-
-namespace tensorflow {
-namespace java {
-
-// A class for writing Java source code.
-class SourceWriter {
- public:
- SourceWriter();
-
- virtual ~SourceWriter();
-
- // Indents following lines with white spaces.
- //
- // Indentation is cumulative, i.e. the provided tabulation is added to the
- // current indentation value. If the tabulation is negative, the operation
- // will outdent the source code, until the indentation reaches 0 again.
- //
- // For example, calling Indent(2) twice will indent code with 4 white
- // spaces. Then calling Indent(-2) will outdent the code back to 2 white
- // spaces.
- SourceWriter& Indent(int tab);
-
- // Prefixes following lines with provided character(s).
- //
- // A common use case of a prefix is for commenting or documenting the code.
- //
- // The prefix is written after the indentation, For example, invoking
- // Indent(2)->Prefix("//") will result in prefixing lines with " //".
- //
- // An empty value ("") will remove any line prefix that was previously set.
- SourceWriter& Prefix(const char* line_prefix);
-
- // Writes a source code snippet.
- //
- // The data might potentially contain newline characters, therefore it will
- // be scanned to ensure that each line is indented and prefixed properly,
- // making it a bit slower than Append().
- SourceWriter& Write(const StringPiece& str);
-
- // Writes a source code snippet read from a file.
- //
- // All lines of the file at the provided path will be read and written back
- // to the output of this writer in regard of its current attributes (e.g.
- // the indentation, prefix, etc.)
- SourceWriter& WriteFromFile(const string& fname, Env* env = Env::Default());
-
- // Appends a piece of source code.
- //
- // It is expected that no newline character is present in the data provided,
- // otherwise Write() must be used.
- SourceWriter& Append(const StringPiece& str);
-
- // Appends a type to the current line.
- //
- // The type is written in its simple form (i.e. not prefixed by its package)
- // and followed by any parameter types it has enclosed in brackets (<>).
- SourceWriter& AppendType(const Type& type);
-
- // Appends a newline character.
- //
- // Data written after calling this method will start on a new line, in respect
- // of the current indentation.
- SourceWriter& EndLine();
-
- // Begins a block of source code.
- //
- // This method appends a new opening brace to the current data and indent the
- // next lines according to Google Java Style Guide. The block can optionally
- // be preceded by an expression (e.g. Append("if(true)").BeginBlock();)
- SourceWriter& BeginBlock(const string& expression = "");
-
- // Ends the current block of source code.
- //
- // This method appends a new closing brace to the current data and outdent the
- // next lines back to the margin used before BeginBlock() was invoked.
- SourceWriter& EndBlock();
-
- // Begins to write a method.
- //
- // This method outputs the signature of the Java method from the data passed
- // in the 'method' parameter and starts a new block. Modifiers are also passed
- // in parameter to define the access scope of this method and, optionally,
- // a Javadoc.
- SourceWriter& BeginMethod(const Method& method, int modifiers,
- const Javadoc* javadoc = nullptr);
-
- // Ends the current method.
- //
- // This method ends the block of code that has begun when invoking
- // BeginMethod() prior to this.
- SourceWriter& EndMethod();
-
- // Begins to write the main type of a source file.
- //
- // This method outputs the declaration of the Java type from the data passed
- // in the 'type' parameter and starts a new block. Modifiers are also passed
- // in parameter to define the access scope of this type and, optionally,
- // a Javadoc.
- //
- // If not null, all types found in the 'extra_dependencies' list will be
- // imported before declaring the new type.
- SourceWriter& BeginType(const Type& type, int modifiers,
- const std::list* extra_dependencies = nullptr,
- const Javadoc* javadoc = nullptr);
-
- // Begins to write a new inner type.
- //
- // This method outputs the declaration of the Java type from the data passed
- // in the 'type' parameter and starts a new block. Modifiers are also passed
- // in parameter to define the accesses and the scope of this type and,
- // optionally, a Javadoc.
- SourceWriter& BeginInnerType(const Type& type, int modifiers,
- const Javadoc* javadoc = nullptr);
-
- // Ends the current type.
- //
- // This method ends the block of code that has begun when invoking
- // BeginType() or BeginInnerType() prior to this.
- SourceWriter& EndType();
-
- // Writes a variable as fields of a type.
- //
- // This method must be called within the definition of a type (see BeginType()
- // or BeginInnerType()). Modifiers are also be passed in parameter to define
- // the accesses and the scope of this field and, optionally, a Javadoc.
- SourceWriter& WriteField(const Variable& field, int modifiers,
- const Javadoc* javadoc = nullptr);
-
- protected:
- virtual void DoAppend(const StringPiece& str) = 0;
-
- private:
- // A utility base class for visiting elements of a type.
- class TypeVisitor {
- public:
- virtual ~TypeVisitor() = default;
- void Visit(const Type& type);
-
- protected:
- virtual void DoVisit(const Type& type) = 0;
- };
-
- // A utility class for keeping track of declared generics in a given scope.
- class GenericNamespace : public TypeVisitor {
- public:
- GenericNamespace() = default;
- explicit GenericNamespace(const GenericNamespace* parent)
- : generic_names_(parent->generic_names_) {}
- std::list declared_types() {
- return declared_types_;
- }
- protected:
- virtual void DoVisit(const Type& type);
-
- private:
- std::list declared_types_;
- std::set generic_names_;
- };
-
- // A utility class for collecting a list of import statements to declare.
- class TypeImporter : public TypeVisitor {
- public:
- explicit TypeImporter(const string& current_package)
- : current_package_(current_package) {}
- virtual ~TypeImporter() = default;
- const std::set imports() {
- return imports_;
- }
- protected:
- virtual void DoVisit(const Type& type);
-
- private:
- string current_package_;
- std::set imports_;
- };
-
- string left_margin_;
- string line_prefix_;
- bool newline_ = true;
- std::stack generic_namespaces_;
-
- SourceWriter& WriteModifiers(int modifiers);
- SourceWriter& WriteJavadoc(const Javadoc& javadoc);
- SourceWriter& WriteAnnotations(const std::list& annotations);
- SourceWriter& WriteGenerics(const std::list& generics);
- GenericNamespace* PushGenericNamespace(int modifiers);
- void PopGenericNamespace();
-};
-
-// A writer that outputs source code into a file.
-//
-// Note: the writer does not acquire the ownership of the file being passed in
-// parameter.
-class SourceFileWriter : public SourceWriter {
- public:
- explicit SourceFileWriter(WritableFile* file) : file_(file) {}
- virtual ~SourceFileWriter() = default;
-
- protected:
- void DoAppend(const StringPiece& str) override {
- TF_CHECK_OK(file_->Append(str));
- }
-
- private:
- WritableFile* file_;
-};
-
-// A writer that outputs source code into a string buffer.
-class SourceBufferWriter : public SourceWriter {
- public:
- SourceBufferWriter() : owns_buffer_(true), buffer_(new string()) {}
- explicit SourceBufferWriter(string* buffer)
- : owns_buffer_(false), buffer_(buffer) {}
- virtual ~SourceBufferWriter() {
- if (owns_buffer_) delete buffer_;
- }
- const string& str() { return *buffer_; }
-
- protected:
- void DoAppend(const StringPiece& str) override {
- buffer_->append(str.begin(), str.end());
- }
-
- private:
- bool owns_buffer_;
- string* buffer_;
-};
-
-} // namespace java
-} // namespace tensorflow
-
-#endif // TENSORFLOW_JAVA_OP_GENERATOR_SOURCE_WRITER_H_
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/AudioOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/AudioOps.java
index 6d4c1fdd75b..d6bcfc10c45 100644
--- a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/AudioOps.java
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/AudioOps.java
@@ -1,3 +1,20 @@
+// Copyright 2020-2022 The TensorFlow Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ==============================================================================
+//
+// This class has been generated, DO NOT EDIT!
+//
package org.tensorflow.op;
import org.tensorflow.Operand;
@@ -5,72 +22,124 @@
import org.tensorflow.op.audio.DecodeWav;
import org.tensorflow.op.audio.EncodeWav;
import org.tensorflow.op.audio.Mfcc;
-import org.tensorflow.types.TFloat;
+import org.tensorflow.types.TFloat32;
import org.tensorflow.types.TInt32;
import org.tensorflow.types.TString;
/**
* An API for building {@code audio} operations as {@link Op Op}s
*
- * @see {@link Ops}
+ * @see Ops
*/
public final class AudioOps {
private final Scope scope;
- AudioOps(Scope scope) {
- this.scope = scope;
+ private final Ops ops;
+
+ AudioOps(Ops ops) {
+ this.scope = ops.scope();
+ this.ops = ops;
}
/**
- * Builds an {@link DecodeWav} operation
+ * Produces a visualization of audio data over time.
+ * Spectrograms are a standard way of representing audio information as a series of
+ * slices of frequency information, one slice for each window of time. By joining
+ * these together into a sequence, they form a distinctive fingerprint of the sound
+ * over time.
+ * This op expects to receive audio data as an input, stored as floats in the range
+ * -1 to 1, together with a window width in samples, and a stride specifying how
+ * far to move the window between slices. From this it generates a three
+ * dimensional output. The first dimension is for the channels in the input, so a
+ * stereo audio input would have two here for example. The second dimension is time,
+ * with successive frequency slices. The third dimension has an amplitude value for
+ * each frequency during that time slice.
+ *
This means the layout when converted and saved as an image is rotated 90 degrees
+ * clockwise from a typical spectrogram. Time is descending down the Y axis, and
+ * the frequency decreases from left to right.
+ *
Each value in the result represents the square root of the sum of the real and
+ * imaginary parts of an FFT on the current window of samples. In this way, the
+ * lowest dimension represents the power of each frequency in the current window,
+ * and adjacent windows are concatenated in the next dimension.
+ *
To get a more intuitive and visual look at what this operation does, you can run
+ * tensorflow/examples/wav_to_spectrogram to read in an audio file and save out the
+ * resulting spectrogram as a PNG image.
*
- * @param contents The WAV-encoded audio, usually from a file.
- * @param options carries optional attributes values
- * @return a new instance of DecodeWav
- * @see org.tensorflow.op.audio.DecodeWav
+ * @param input Float representation of audio data.
+ * @param windowSize How wide the input window is in samples. For the highest efficiency
+ * this should be a power of two, but other values are accepted.
+ * @param stride How widely apart the center of adjacent sample windows should be.
+ * @param options carries optional attribute values
+ * @return a new instance of AudioSpectrogram
*/
- public DecodeWav decodeWav(Operand contents, DecodeWav.Options... options) {
- return DecodeWav.create(scope, contents, options);
+ public AudioSpectrogram audioSpectrogram(Operand input, Long windowSize, Long stride,
+ AudioSpectrogram.Options... options) {
+ return AudioSpectrogram.create(scope, input, windowSize, stride, options);
}
/**
- * Builds an {@link Mfcc} operation
+ * Decode a 16-bit PCM WAV file to a float tensor.
+ * The -32768 to 32767 signed 16-bit values will be scaled to -1.0 to 1.0 in float.
+ * When desired_channels is set, if the input contains fewer channels than this
+ * then the last channel will be duplicated to give the requested number, else if
+ * the input has more channels than requested then the additional channels will be
+ * ignored.
+ *
If desired_samples is set, then the audio will be cropped or padded with zeroes
+ * to the requested length.
+ *
The first output contains a Tensor with the content of the audio samples. The
+ * lowest dimension will be the number of channels, and the second will be the
+ * number of samples. For example, a ten-sample-long stereo WAV file should give an
+ * output shape of [10, 2].
*
- * @param spectrogram Typically produced by the Spectrogram op, with magnitude_squared
- * @param sampleRate How many samples per second the source audio used.
- * @param options carries optional attributes values
- * @return a new instance of Mfcc
- * @see org.tensorflow.op.audio.Mfcc
+ * @param contents The WAV-encoded audio, usually from a file.
+ * @param options carries optional attribute values
+ * @return a new instance of DecodeWav
*/
- public Mfcc mfcc(Operand spectrogram, Operand sampleRate,
- Mfcc.Options... options) {
- return Mfcc.create(scope, spectrogram, sampleRate, options);
+ public DecodeWav decodeWav(Operand contents, DecodeWav.Options... options) {
+ return DecodeWav.create(scope, contents, options);
}
/**
- * Builds an {@link EncodeWav} operation
+ * Encode audio data using the WAV file format.
+ * This operation will generate a string suitable to be saved out to create a .wav
+ * audio file. It will be encoded in the 16-bit PCM format. It takes in float
+ * values in the range -1.0f to 1.0f, and any outside that value will be clamped to
+ * that range.
+ * {@code audio} is a 2-D float Tensor of shape {@code [length, channels]}.
+ * {@code sample_rate} is a scalar Tensor holding the rate to use (e.g. 44100).
*
- * @param audio 2-D with shape `[length, channels]`.
+ * @param audio 2-D with shape {@code [length, channels]}.
* @param sampleRate Scalar containing the sample frequency.
* @return a new instance of EncodeWav
- * @see org.tensorflow.op.audio.EncodeWav
*/
- public EncodeWav encodeWav(Operand audio, Operand sampleRate) {
+ public EncodeWav encodeWav(Operand audio, Operand sampleRate) {
return EncodeWav.create(scope, audio, sampleRate);
}
/**
- * Builds an {@link AudioSpectrogram} operation
+ * Transforms a spectrogram into a form that's useful for speech recognition.
+ * Mel Frequency Cepstral Coefficients are a way of representing audio data that's
+ * been effective as an input feature for machine learning. They are created by
+ * taking the spectrum of a spectrogram (a 'cepstrum'), and discarding some of the
+ * higher frequencies that are less significant to the human ear. They have a long
+ * history in the speech recognition world, and https://en.wikipedia.org/wiki/Mel-frequency_cepstrum
+ * is a good resource to learn more.
*
- * @param input Float representation of audio data.
- * @param windowSize How wide the input window is in samples. For the highest efficiency
- * @param stride How widely apart the center of adjacent sample windows should be.
- * @param options carries optional attributes values
- * @return a new instance of AudioSpectrogram
- * @see org.tensorflow.op.audio.AudioSpectrogram
+ * @param spectrogram Typically produced by the Spectrogram op, with magnitude_squared
+ * set to true.
+ * @param sampleRate How many samples per second the source audio used.
+ * @param options carries optional attribute values
+ * @return a new instance of Mfcc
*/
- public AudioSpectrogram audioSpectrogram(Operand input, Long windowSize, Long stride,
- AudioSpectrogram.Options... options) {
- return AudioSpectrogram.create(scope, input, windowSize, stride, options);
+ public Mfcc mfcc(Operand spectrogram, Operand sampleRate,
+ Mfcc.Options... options) {
+ return Mfcc.create(scope, spectrogram, sampleRate, options);
+ }
+
+ /**
+ * Get the parent {@link Ops} object.
+ */
+ public final Ops ops() {
+ return ops;
}
}
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/BitwiseOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/BitwiseOps.java
index 37b1105fb83..5cf8e620d72 100644
--- a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/BitwiseOps.java
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/BitwiseOps.java
@@ -1,3 +1,20 @@
+// Copyright 2020-2022 The TensorFlow Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ==============================================================================
+//
+// This class has been generated, DO NOT EDIT!
+//
package org.tensorflow.op;
import org.tensorflow.Operand;
@@ -12,83 +29,240 @@
/**
* An API for building {@code bitwise} operations as {@link Op Op}s
*
- * @see {@link Ops}
+ * @see Ops
*/
public final class BitwiseOps {
private final Scope scope;
- BitwiseOps(Scope scope) {
- this.scope = scope;
+ private final Ops ops;
+
+ BitwiseOps(Ops ops) {
+ this.scope = ops.scope();
+ this.ops = ops;
+ }
+
+ /**
+ * Elementwise computes the bitwise AND of {@code x} and {@code y}.
+ * The result will have those bits set, that are set in both {@code x} and {@code y}. The
+ * computation is performed on the underlying representations of {@code x} and {@code y}.
+ * For example:
+ *
+ * import tensorflow as tf
+ * from tensorflow.python.ops import bitwise_ops
+ * dtype_list = [tf.int8, tf.int16, tf.int32, tf.int64,
+ * tf.uint8, tf.uint16, tf.uint32, tf.uint64]
+ *
+ * for dtype in dtype_list:
+ * lhs = tf.constant([0, 5, 3, 14], dtype=dtype)
+ * rhs = tf.constant([5, 0, 7, 11], dtype=dtype)
+ * exp = tf.constant([0, 0, 3, 10], dtype=tf.float32)
+ *
+ * res = bitwise_ops.bitwise_and(lhs, rhs)
+ * tf.assert_equal(tf.cast(res, tf.float32), exp) # TRUE
+ *
+ *
+ * @param x The x value
+ * @param y The y value
+ * @param data type for {@code BitwiseAnd} output and operands
+ * @return a new instance of BitwiseAnd
+ */
+ public BitwiseAnd bitwiseAnd(Operand x, Operand y) {
+ return BitwiseAnd.create(scope, x, y);
}
/**
- * Builds an {@link BitwiseOr} operation
+ * Elementwise computes the bitwise OR of {@code x} and {@code y}.
+ * The result will have those bits set, that are set in {@code x}, {@code y} or both. The
+ * computation is performed on the underlying representations of {@code x} and {@code y}.
+ * For example:
+ *
+ * import tensorflow as tf
+ * from tensorflow.python.ops import bitwise_ops
+ * dtype_list = [tf.int8, tf.int16, tf.int32, tf.int64,
+ * tf.uint8, tf.uint16, tf.uint32, tf.uint64]
+ *
+ * for dtype in dtype_list:
+ * lhs = tf.constant([0, 5, 3, 14], dtype=dtype)
+ * rhs = tf.constant([5, 0, 7, 11], dtype=dtype)
+ * exp = tf.constant([5, 5, 7, 15], dtype=tf.float32)
*
- * @param x
- * @param y
+ * res = bitwise_ops.bitwise_or(lhs, rhs)
+ * tf.assert_equal(tf.cast(res, tf.float32), exp) # TRUE
+ *
+ *
+ * @param x The x value
+ * @param y The y value
+ * @param data type for {@code BitwiseOr} output and operands
* @return a new instance of BitwiseOr
- * @see org.tensorflow.op.bitwise.BitwiseOr
*/
public BitwiseOr bitwiseOr(Operand x, Operand y) {
return BitwiseOr.create(scope, x, y);
}
/**
- * Builds an {@link BitwiseXor} operation
+ * Elementwise computes the bitwise XOR of {@code x} and {@code y}.
+ * The result will have those bits set, that are different in {@code x} and {@code y}. The
+ * computation is performed on the underlying representations of {@code x} and {@code y}.
+ * For example:
+ *
+ * import tensorflow as tf
+ * from tensorflow.python.ops import bitwise_ops
+ * dtype_list = [tf.int8, tf.int16, tf.int32, tf.int64,
+ * tf.uint8, tf.uint16, tf.uint32, tf.uint64]
+ *
+ * for dtype in dtype_list:
+ * lhs = tf.constant([0, 5, 3, 14], dtype=dtype)
+ * rhs = tf.constant([5, 0, 7, 11], dtype=dtype)
+ * exp = tf.constant([5, 5, 4, 5], dtype=tf.float32)
+ *
+ * res = bitwise_ops.bitwise_xor(lhs, rhs)
+ * tf.assert_equal(tf.cast(res, tf.float32), exp) # TRUE
+ *
*
- * @param x
- * @param y
+ * @param x The x value
+ * @param y The y value
+ * @param data type for {@code BitwiseXor} output and operands
* @return a new instance of BitwiseXor
- * @see org.tensorflow.op.bitwise.BitwiseXor
*/
public BitwiseXor bitwiseXor(Operand x, Operand y) {
return BitwiseXor.create(scope, x, y);
}
/**
- * Builds an {@link BitwiseAnd} operation
+ * Invert (flip) each bit of supported types; for example, type {@code uint8} value 01010101 becomes 10101010.
+ * Flip each bit of supported types. For example, type {@code int8} (decimal 2) binary 00000010 becomes (decimal -3) binary 11111101.
+ * This operation is performed on each element of the tensor argument {@code x}.
+ * Example:
+ *
+ * import tensorflow as tf
+ * from tensorflow.python.ops import bitwise_ops
*
- * @param x
- * @param y
- * @return a new instance of BitwiseAnd
- * @see org.tensorflow.op.bitwise.BitwiseAnd
+ * # flip 2 (00000010) to -3 (11111101)
+ * tf.assert_equal(-3, bitwise_ops.invert(2))
+ *
+ * dtype_list = [dtypes.int8, dtypes.int16, dtypes.int32, dtypes.int64,
+ * dtypes.uint8, dtypes.uint16, dtypes.uint32, dtypes.uint64]
+ *
+ * inputs = [0, 5, 3, 14]
+ * for dtype in dtype_list:
+ * # Because of issues with negative numbers, let's test this indirectly.
+ * # 1. invert(a) and a = 0
+ * # 2. invert(a) or a = invert(0)
+ * input_tensor = tf.constant([0, 5, 3, 14], dtype=dtype)
+ * not_a_and_a, not_a_or_a, not_0 = [bitwise_ops.bitwise_and(
+ * input_tensor, bitwise_ops.invert(input_tensor)),
+ * bitwise_ops.bitwise_or(
+ * input_tensor, bitwise_ops.invert(input_tensor)),
+ * bitwise_ops.invert(
+ * tf.constant(0, dtype=dtype))]
+ *
+ * expected = tf.constant([0, 0, 0, 0], dtype=tf.float32)
+ * tf.assert_equal(tf.cast(not_a_and_a, tf.float32), expected)
+ *
+ * expected = tf.cast([not_0] * 4, tf.float32)
+ * tf.assert_equal(tf.cast(not_a_or_a, tf.float32), expected)
+ *
+ * # For unsigned dtypes let's also check the result directly.
+ * if dtype.is_unsigned:
+ * inverted = bitwise_ops.invert(input_tensor)
+ * expected = tf.constant([dtype.max - x for x in inputs], dtype=tf.float32)
+ * tf.assert_equal(tf.cast(inverted, tf.float32), tf.cast(expected, tf.float32))
+ *
+ *
+ * @param x The x value
+ * @param data type for {@code Invert} output and operands
+ * @return a new instance of Invert
*/
- public BitwiseAnd bitwiseAnd(Operand x, Operand y) {
- return BitwiseAnd.create(scope, x, y);
+ public Invert invert(Operand x) {
+ return Invert.create(scope, x);
}
/**
- * Builds an {@link Invert} operation
+ * Elementwise computes the bitwise left-shift of {@code x} and {@code y}.
+ * If {@code y} is negative, or greater than or equal to the width of {@code x} in bits the
+ * result is implementation defined.
+ * Example:
+ *
+ * import tensorflow as tf
+ * from tensorflow.python.ops import bitwise_ops
+ * import numpy as np
+ * dtype_list = [tf.int8, tf.int16, tf.int32, tf.int64]
*
- * @param x
- * @return a new instance of Invert
- * @see org.tensorflow.op.bitwise.Invert
+ * for dtype in dtype_list:
+ * lhs = tf.constant([-1, -5, -3, -14], dtype=dtype)
+ * rhs = tf.constant([5, 0, 7, 11], dtype=dtype)
+ *
+ * left_shift_result = bitwise_ops.left_shift(lhs, rhs)
+ *
+ * print(left_shift_result)
+ *
+ * # This will print:
+ * # tf.Tensor([ -32 -5 -128 0], shape=(4,), dtype=int8)
+ * # tf.Tensor([ -32 -5 -384 -28672], shape=(4,), dtype=int16)
+ * # tf.Tensor([ -32 -5 -384 -28672], shape=(4,), dtype=int32)
+ * # tf.Tensor([ -32 -5 -384 -28672], shape=(4,), dtype=int64)
+ *
+ * lhs = np.array([-2, 64, 101, 32], dtype=np.int8)
+ * rhs = np.array([-1, -5, -3, -14], dtype=np.int8)
+ * bitwise_ops.left_shift(lhs, rhs)
+ * # <tf.Tensor: shape=(4,), dtype=int8, numpy=array([ -2, 64, 101, 32], dtype=int8)>
+ *
+ *
+ * @param x The x value
+ * @param y The y value
+ * @param data type for {@code LeftShift} output and operands
+ * @return a new instance of LeftShift
*/
- public Invert invert(Operand x) {
- return Invert.create(scope, x);
+ public LeftShift leftShift(Operand x, Operand y) {
+ return LeftShift.create(scope, x, y);
}
/**
- * Builds an {@link RightShift} operation
+ * Elementwise computes the bitwise right-shift of {@code x} and {@code y}.
+ * Performs a logical shift for unsigned integer types, and an arithmetic shift
+ * for signed integer types.
+ * If {@code y} is negative, or greater than or equal to than the width of {@code x} in bits
+ * the result is implementation defined.
+ *
Example:
+ *
+ * import tensorflow as tf
+ * from tensorflow.python.ops import bitwise_ops
+ * import numpy as np
+ * dtype_list = [tf.int8, tf.int16, tf.int32, tf.int64]
+ *
+ * for dtype in dtype_list:
+ * lhs = tf.constant([-1, -5, -3, -14], dtype=dtype)
+ * rhs = tf.constant([5, 0, 7, 11], dtype=dtype)
+ *
+ * right_shift_result = bitwise_ops.right_shift(lhs, rhs)
+ *
+ * print(right_shift_result)
+ *
+ * # This will print:
+ * # tf.Tensor([-1 -5 -1 -1], shape=(4,), dtype=int8)
+ * # tf.Tensor([-1 -5 -1 -1], shape=(4,), dtype=int16)
+ * # tf.Tensor([-1 -5 -1 -1], shape=(4,), dtype=int32)
+ * # tf.Tensor([-1 -5 -1 -1], shape=(4,), dtype=int64)
*
- * @param x
- * @param y
+ * lhs = np.array([-2, 64, 101, 32], dtype=np.int8)
+ * rhs = np.array([-1, -5, -3, -14], dtype=np.int8)
+ * bitwise_ops.right_shift(lhs, rhs)
+ * # <tf.Tensor: shape=(4,), dtype=int8, numpy=array([ -2, 64, 101, 32], dtype=int8)>
+ *
+ *
+ * @param x The x value
+ * @param y The y value
+ * @param data type for {@code RightShift} output and operands
* @return a new instance of RightShift
- * @see org.tensorflow.op.bitwise.RightShift
*/
public RightShift rightShift(Operand x, Operand y) {
return RightShift.create(scope, x, y);
}
/**
- * Builds an {@link LeftShift} operation
- *
- * @param x
- * @param y
- * @return a new instance of LeftShift
- * @see org.tensorflow.op.bitwise.LeftShift
+ * Get the parent {@link Ops} object.
*/
- public LeftShift leftShift(Operand x, Operand y) {
- return LeftShift.create(scope, x, y);
+ public final Ops ops() {
+ return ops;
}
}
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/ClusterOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/ClusterOps.java
new file mode 100644
index 00000000000..e59e86f23ed
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/ClusterOps.java
@@ -0,0 +1,85 @@
+// Copyright 2020-2022 The TensorFlow Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ==============================================================================
+//
+// This class has been generated, DO NOT EDIT!
+//
+package org.tensorflow.op;
+
+import org.tensorflow.Operand;
+import org.tensorflow.op.cluster.KMC2ChainInitialization;
+import org.tensorflow.op.cluster.KmeansPlusPlusInitialization;
+import org.tensorflow.types.TFloat32;
+import org.tensorflow.types.TInt64;
+
+/**
+ * An API for building {@code cluster} operations as {@link Op Op}s
+ *
+ * @see Ops
+ */
+public final class ClusterOps {
+ private final Scope scope;
+
+ private final Ops ops;
+
+ ClusterOps(Ops ops) {
+ this.scope = ops.scope();
+ this.ops = ops;
+ }
+
+ /**
+ * Returns the index of a data point that should be added to the seed set.
+ * Entries in distances are assumed to be squared distances of candidate points to
+ * the already sampled centers in the seed set. The op constructs one Markov chain
+ * of the k-MC^2 algorithm and returns the index of one candidate point to be added
+ * as an additional cluster center.
+ *
+ * @param distances Vector with squared distances to the closest previously sampled cluster center
+ * for each candidate point.
+ * @param seed Scalar. Seed for initializing the random number generator.
+ * @return a new instance of KMC2ChainInitialization
+ */
+ public KMC2ChainInitialization kMC2ChainInitialization(Operand distances,
+ Operand seed) {
+ return KMC2ChainInitialization.create(scope, distances, seed);
+ }
+
+ /**
+ * Selects num_to_sample rows of input using the KMeans++ criterion.
+ * Rows of points are assumed to be input points. One row is selected at random.
+ * Subsequent rows are sampled with probability proportional to the squared L2
+ * distance from the nearest row selected thus far till num_to_sample rows have
+ * been sampled.
+ *
+ * @param points Matrix of shape (n, d). Rows are assumed to be input points.
+ * @param numToSample Scalar. The number of rows to sample. This value must not be larger than n.
+ * @param seed Scalar. Seed for initializing the random number generator.
+ * @param numRetriesPerSample Scalar. For each row that is sampled, this parameter
+ * specifies the number of additional points to draw from the current
+ * distribution before selecting the best. If a negative value is specified, a
+ * heuristic is used to sample O(log(num_to_sample)) additional points.
+ * @return a new instance of KmeansPlusPlusInitialization
+ */
+ public KmeansPlusPlusInitialization kmeansPlusPlusInitialization(Operand points,
+ Operand numToSample, Operand seed, Operand numRetriesPerSample) {
+ return KmeansPlusPlusInitialization.create(scope, points, numToSample, seed, numRetriesPerSample);
+ }
+
+ /**
+ * Get the parent {@link Ops} object.
+ */
+ public final Ops ops() {
+ return ops;
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/CollectiveOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/CollectiveOps.java
new file mode 100644
index 00000000000..de786dc95fe
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/CollectiveOps.java
@@ -0,0 +1,214 @@
+// Copyright 2020-2022 The TensorFlow Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ==============================================================================
+//
+// This class has been generated, DO NOT EDIT!
+//
+package org.tensorflow.op;
+
+import org.tensorflow.Operand;
+import org.tensorflow.op.collective.CollectiveAllToAll;
+import org.tensorflow.op.collective.CollectiveAssignGroup;
+import org.tensorflow.op.collective.CollectiveBcastRecv;
+import org.tensorflow.op.collective.CollectiveBcastSend;
+import org.tensorflow.op.collective.CollectiveGather;
+import org.tensorflow.op.collective.CollectiveInitializeCommunicator;
+import org.tensorflow.op.collective.CollectivePermute;
+import org.tensorflow.op.collective.CollectiveReduce;
+import org.tensorflow.op.collective.CollectiveReduceScatter;
+import org.tensorflow.types.TInt32;
+import org.tensorflow.types.family.TNumber;
+import org.tensorflow.types.family.TType;
+
+/**
+ * An API for building {@code collective} operations as {@link Op Op}s
+ *
+ * @see Ops
+ */
+public final class CollectiveOps {
+ private final Scope scope;
+
+ private final Ops ops;
+
+ CollectiveOps(Ops ops) {
+ this.scope = ops.scope();
+ this.ops = ops;
+ }
+
+ /**
+ * Mutually exchanges multiple tensors of identical type and shape.
+ *
+ * @param input The input value
+ * @param communicator The communicator value
+ * @param groupAssignment The groupAssignment value
+ * @param options carries optional attribute values
+ * @param data type for {@code CollectiveAllToAllV3} output and operands
+ * @return a new instance of CollectiveAllToAll
+ */
+ public CollectiveAllToAll collectiveAllToAll(Operand input,
+ Operand extends TType> communicator, Operand groupAssignment,
+ CollectiveAllToAll.Options... options) {
+ return CollectiveAllToAll.create(scope, input, communicator, groupAssignment, options);
+ }
+
+ /**
+ * Assign group keys based on group assignment.
+ *
+ * @param groupAssignment The groupAssignment value
+ * @param deviceIndex The deviceIndex value
+ * @param baseKey The baseKey value
+ * @return a new instance of CollectiveAssignGroup
+ */
+ public CollectiveAssignGroup collectiveAssignGroup(Operand groupAssignment,
+ Operand deviceIndex, Operand baseKey) {
+ return CollectiveAssignGroup.create(scope, groupAssignment, deviceIndex, baseKey);
+ }
+
+ /**
+ * Receives a tensor value broadcast from another device.
+ *
+ * @param groupSize The groupSize value
+ * @param groupKey The groupKey value
+ * @param instanceKey The instanceKey value
+ * @param shape The shape value
+ * @param T The value of the T attribute
+ * @param options carries optional attribute values
+ * @param data type for {@code CollectiveBcastRecvV2} output and operands
+ * @return a new instance of CollectiveBcastRecv
+ */
+ public CollectiveBcastRecv collectiveBcastRecv(Operand groupSize,
+ Operand groupKey, Operand instanceKey, Operand extends TNumber> shape,
+ Class T, CollectiveBcastRecv.Options... options) {
+ return CollectiveBcastRecv.create(scope, groupSize, groupKey, instanceKey, shape, T, options);
+ }
+
+ /**
+ * Broadcasts a tensor value to one or more other devices.
+ *
+ * @param input The input value
+ * @param groupSize The groupSize value
+ * @param groupKey The groupKey value
+ * @param instanceKey The instanceKey value
+ * @param options carries optional attribute values
+ * @param data type for {@code CollectiveBcastSendV2} output and operands
+ * @return a new instance of CollectiveBcastSend
+ */
+ public CollectiveBcastSend collectiveBcastSend(Operand input,
+ Operand groupSize, Operand groupKey, Operand instanceKey,
+ CollectiveBcastSend.Options... options) {
+ return CollectiveBcastSend.create(scope, input, groupSize, groupKey, instanceKey, options);
+ }
+
+ /**
+ * Mutually accumulates multiple tensors of identical type and shape.
+ * {@code is_stateless} means each op does not need control dependencies to other
+ * collective ops. In this case, keys that are unique at runtime
+ * (e.g. {@code instance_key}) should be used to distinguish collective groups.
+ *
+ * @param input The input value
+ * @param groupSize The groupSize value
+ * @param groupKey The groupKey value
+ * @param instanceKey The instanceKey value
+ * @param orderingToken The orderingToken value
+ * @param options carries optional attribute values
+ * @param data type for {@code CollectiveGatherV2} output and operands
+ * @return a new instance of CollectiveGather
+ */
+ public CollectiveGather collectiveGather(Operand input,
+ Operand groupSize, Operand groupKey, Operand instanceKey,
+ Iterable> orderingToken, CollectiveGather.Options... options) {
+ return CollectiveGather.create(scope, input, groupSize, groupKey, instanceKey, orderingToken, options);
+ }
+
+ /**
+ * Initializes a group for collective operations.
+ *
+ * @param groupKey The groupKey value
+ * @param rank The rank value
+ * @param groupSize The groupSize value
+ * @param options carries optional attribute values
+ * @return a new instance of CollectiveInitializeCommunicator
+ */
+ public CollectiveInitializeCommunicator collectiveInitializeCommunicator(Operand groupKey,
+ Operand rank, Operand groupSize,
+ CollectiveInitializeCommunicator.Options... options) {
+ return CollectiveInitializeCommunicator.create(scope, groupKey, rank, groupSize, options);
+ }
+
+ /**
+ * An Op to permute tensors across replicated TPU instances.
+ * Each instance supplies its own input.
+ * For example, suppose there are 4 TPU instances: {@code [A, B, C, D]}. Passing
+ * source_target_pairs={@code [[0,1],[1,2],[2,3],[3,0]]} gets the outputs:
+ * {@code [D, A, B, C]}.
+ *
+ * @param input The local input to be permuted. Currently only supports float and
+ * bfloat16.
+ * @param sourceTargetPairs A tensor with shape [num_pairs, 2].
+ * @param data type for {@code CollectivePermute} output and operands
+ * @return a new instance of CollectivePermute
+ */
+ public CollectivePermute collectivePermute(Operand input,
+ Operand sourceTargetPairs) {
+ return CollectivePermute.create(scope, input, sourceTargetPairs);
+ }
+
+ /**
+ * Mutually reduces multiple tensors of identical type and shape.
+ *
+ * @param input The input value
+ * @param communicator The communicator value
+ * @param groupAssignment The groupAssignment value
+ * @param reduction The value of the reduction attribute
+ * @param options carries optional attribute values
+ * @param data type for {@code CollectiveReduceV3} output and operands
+ * @return a new instance of CollectiveReduce
+ */
+ public CollectiveReduce collectiveReduce(Operand input,
+ Operand extends TType> communicator, Operand groupAssignment, String reduction,
+ CollectiveReduce.Options... options) {
+ return CollectiveReduce.create(scope, input, communicator, groupAssignment, reduction, options);
+ }
+
+ /**
+ * Mutually reduces multiple tensors of identical type and shape and scatters the result.
+ * {@code is_stateless} means each op does not need control dependencies to other
+ * collective ops. In this case, keys that are unique at runtime
+ * (e.g. {@code instance_key}) should be used to distinguish collective groups.
+ *
+ * @param input The input value
+ * @param groupSize The groupSize value
+ * @param groupKey The groupKey value
+ * @param instanceKey The instanceKey value
+ * @param orderingToken The orderingToken value
+ * @param mergeOp The value of the mergeOp attribute
+ * @param finalOp The value of the finalOp attribute
+ * @param options carries optional attribute values
+ * @param data type for {@code CollectiveReduceScatterV2} output and operands
+ * @return a new instance of CollectiveReduceScatter
+ */
+ public CollectiveReduceScatter collectiveReduceScatter(Operand input,
+ Operand groupSize, Operand groupKey, Operand instanceKey,
+ Iterable> orderingToken, String mergeOp, String finalOp,
+ CollectiveReduceScatter.Options... options) {
+ return CollectiveReduceScatter.create(scope, input, groupSize, groupKey, instanceKey, orderingToken, mergeOp, finalOp, options);
+ }
+
+ /**
+ * Get the parent {@link Ops} object.
+ */
+ public final Ops ops() {
+ return ops;
+ }
+}
diff --git a/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/DataExperimentalOps.java b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/DataExperimentalOps.java
new file mode 100644
index 00000000000..b5b1ee3750f
--- /dev/null
+++ b/tensorflow-core/tensorflow-core-api/src/gen/annotations/org/tensorflow/op/DataExperimentalOps.java
@@ -0,0 +1,737 @@
+// Copyright 2020-2022 The TensorFlow Authors. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ==============================================================================
+//
+// This class has been generated, DO NOT EDIT!
+//
+package org.tensorflow.op;
+
+import java.util.List;
+import org.tensorflow.ConcreteFunction;
+import org.tensorflow.Operand;
+import org.tensorflow.ndarray.Shape;
+import org.tensorflow.op.data.experimental.AssertNextDataset;
+import org.tensorflow.op.data.experimental.AutoShardDataset;
+import org.tensorflow.op.data.experimental.BytesProducedStatsDataset;
+import org.tensorflow.op.data.experimental.CSVDataset;
+import org.tensorflow.op.data.experimental.ChooseFastestDataset;
+import org.tensorflow.op.data.experimental.DatasetCardinality;
+import org.tensorflow.op.data.experimental.DatasetToTFRecord;
+import org.tensorflow.op.data.experimental.DenseToSparseBatchDataset;
+import org.tensorflow.op.data.experimental.DirectedInterleaveDataset;
+import org.tensorflow.op.data.experimental.GroupByReducerDataset;
+import org.tensorflow.op.data.experimental.GroupByWindowDataset;
+import org.tensorflow.op.data.experimental.IgnoreErrorsDataset;
+import org.tensorflow.op.data.experimental.IteratorGetDevice;
+import org.tensorflow.op.data.experimental.LatencyStatsDataset;
+import org.tensorflow.op.data.experimental.LmdbDataset;
+import org.tensorflow.op.data.experimental.MapAndBatchDataset;
+import org.tensorflow.op.data.experimental.MapDataset;
+import org.tensorflow.op.data.experimental.MatchingFilesDataset;
+import org.tensorflow.op.data.experimental.MaxIntraOpParallelismDataset;
+import org.tensorflow.op.data.experimental.NonSerializableDataset;
+import org.tensorflow.op.data.experimental.ParallelInterleaveDataset;
+import org.tensorflow.op.data.experimental.ParseExampleDataset;
+import org.tensorflow.op.data.experimental.PrivateThreadPoolDataset;
+import org.tensorflow.op.data.experimental.RandomDataset;
+import org.tensorflow.op.data.experimental.RebatchDataset;
+import org.tensorflow.op.data.experimental.ScanDataset;
+import org.tensorflow.op.data.experimental.SetStatsAggregatorDataset;
+import org.tensorflow.op.data.experimental.SleepDataset;
+import org.tensorflow.op.data.experimental.SlidingWindowDataset;
+import org.tensorflow.op.data.experimental.SqlDataset;
+import org.tensorflow.op.data.experimental.StatsAggregatorHandle;
+import org.tensorflow.op.data.experimental.StatsAggregatorSummary;
+import org.tensorflow.op.data.experimental.TakeWhileDataset;
+import org.tensorflow.op.data.experimental.ThreadPoolDataset;
+import org.tensorflow.op.data.experimental.ThreadPoolHandle;
+import org.tensorflow.op.data.experimental.UnbatchDataset;
+import org.tensorflow.op.data.experimental.UniqueDataset;
+import org.tensorflow.types.TBool;
+import org.tensorflow.types.TInt64;
+import org.tensorflow.types.TString;
+import org.tensorflow.types.family.TType;
+
+/**
+ * An API for building {@code data.experimental} operations as {@link Op Op}s
+ *
+ * @see Ops
+ */
+public final class DataExperimentalOps {
+ private final Scope scope;
+
+ private final Ops ops;
+
+ DataExperimentalOps(Ops ops) {
+ this.scope = ops.scope();
+ this.ops = ops;
+ }
+
+ /**
+ * The ExperimentalAssertNextDataset operation
+ *
+ * @param inputDataset The inputDataset value
+ * @param transformations The transformations value
+ * @param outputTypes The value of the outputTypes attribute
+ * @param outputShapes The value of the outputShapes attribute
+ * @return a new instance of AssertNextDataset
+ */
+ public AssertNextDataset assertNextDataset(Operand extends TType> inputDataset,
+ Operand transformations, List> outputTypes,
+ List outputShapes) {
+ return AssertNextDataset.create(scope, inputDataset, transformations, outputTypes, outputShapes);
+ }
+
+ /**
+ * Creates a dataset that shards the input dataset.
+ * Creates a dataset that shards the input dataset by num_workers, returning a
+ * sharded dataset for the index-th worker. This attempts to automatically shard
+ * a dataset by examining the Dataset graph and inserting a shard op before the
+ * inputs to a reader Dataset (e.g. CSVDataset, TFRecordDataset).
+ * This dataset will throw a NotFound error if we cannot shard the dataset
+ * automatically.
+ *
+ * @param inputDataset A variant tensor representing the input dataset.
+ * @param numWorkers A scalar representing the number of workers to distribute this dataset across.
+ * @param index A scalar representing the index of the current worker out of num_workers.
+ * @param outputTypes The value of the outputTypes attribute
+ * @param outputShapes The value of the outputShapes attribute
+ * @param options carries optional attribute values
+ * @return a new instance of AutoShardDataset
+ */
+ public AutoShardDataset autoShardDataset(Operand extends TType> inputDataset,
+ Operand numWorkers, Operand index, List> outputTypes,
+ List outputShapes, AutoShardDataset.Options... options) {
+ return AutoShardDataset.create(scope, inputDataset, numWorkers, index, outputTypes, outputShapes, options);
+ }
+
+ /**
+ * Records the bytes size of each element of {@code input_dataset} in a StatsAggregator.
+ *
+ * @param inputDataset The inputDataset value
+ * @param tag The tag value
+ * @param outputTypes The value of the outputTypes attribute
+ * @param outputShapes The value of the outputShapes attribute
+ * @return a new instance of BytesProducedStatsDataset
+ */
+ public BytesProducedStatsDataset bytesProducedStatsDataset(Operand extends TType> inputDataset,
+ Operand tag, List> outputTypes, List outputShapes) {
+ return BytesProducedStatsDataset.create(scope, inputDataset, tag, outputTypes, outputShapes);
+ }
+
+ /**
+ * The ExperimentalCSVDataset operation
+ *
+ * @param filenames The filenames value
+ * @param compressionType The compressionType value
+ * @param bufferSize The bufferSize value
+ * @param header The header value
+ * @param fieldDelim The fieldDelim value
+ * @param useQuoteDelim The useQuoteDelim value
+ * @param naValue The naValue value
+ * @param selectCols The selectCols value
+ * @param recordDefaults The recordDefaults value
+ * @param outputShapes The value of the outputShapes attribute
+ * @return a new instance of CSVDataset
+ */
+ public CSVDataset cSVDataset(Operand filenames, Operand compressionType,
+ Operand bufferSize, Operand header, Operand fieldDelim,
+ Operand useQuoteDelim, Operand naValue, Operand selectCols,
+ Iterable