summaryrefslogtreecommitdiff
path: root/kaldi_io/src/tools/openfst/include/fst/script
diff options
context:
space:
mode:
Diffstat (limited to 'kaldi_io/src/tools/openfst/include/fst/script')
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/arcsort.h49
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/arg-packs.h240
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/closure.h41
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/compile-impl.h216
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/compile.h92
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/compose.h63
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/concat.h54
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/connect.h45
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/convert.h49
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/decode.h46
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/determinize.h68
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/difference.h67
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/disambiguate.h68
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/draw-impl.h234
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/draw.h114
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/encode.h58
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/epsnormalize.h44
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/equal.h45
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/equivalent.h47
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/fst-class.h382
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/fstscript-decl.h35
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/fstscript.h154
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/info-impl.h325
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/info.h48
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/intersect.h65
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/invert.h43
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/map.h123
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/minimize.h45
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/print-impl.h149
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/print.h86
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/project.h43
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/prune.h153
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/push.h70
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/randequivalent.h105
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/randgen.h76
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/register.h120
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/relabel.h102
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/replace.h62
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/reverse.h42
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/reweight.h53
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/rmepsilon.h211
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/script-impl.h206
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/shortest-distance.h250
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/shortest-path.h190
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/symbols.h20
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/synchronize.h42
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/text-io.h51
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/topsort.h40
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/union.h42
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/verify.h40
-rw-r--r--kaldi_io/src/tools/openfst/include/fst/script/weight-class.h223
51 files changed, 0 insertions, 5236 deletions
diff --git a/kaldi_io/src/tools/openfst/include/fst/script/arcsort.h b/kaldi_io/src/tools/openfst/include/fst/script/arcsort.h
deleted file mode 100644
index 4277332..0000000
--- a/kaldi_io/src/tools/openfst/include/fst/script/arcsort.h
+++ /dev/null
@@ -1,49 +0,0 @@
-
-// 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.
-//
-// Copyright 2005-2010 Google, Inc.
-// Author: jpr@google.com (Jake Ratkiewicz)
-
-#ifndef FST_SCRIPT_ARCSORT_H_
-#define FST_SCRIPT_ARCSORT_H_
-
-#include <fst/arcsort.h>
-#include <fst/script/arg-packs.h>
-#include <fst/script/fst-class.h>
-
-namespace fst {
-namespace script {
-
-enum ArcSortType { ILABEL_COMPARE, OLABEL_COMPARE };
-
-typedef args::Package<MutableFstClass*, const ArcSortType> ArcSortArgs;
-
-template<class Arc>
-void ArcSort(ArcSortArgs *args) {
- MutableFst<Arc> *fst = args->arg1->GetMutableFst<Arc>();
-
- if (args->arg2 == ILABEL_COMPARE) {
- ILabelCompare<Arc> icomp;
- ArcSort(fst, icomp);
- } else { // OLABEL_COMPARE
- OLabelCompare<Arc> ocomp;
- ArcSort(fst, ocomp);
- }
-}
-
-void ArcSort(MutableFstClass *ofst, ArcSortType sort_type);
-
-} // namespace script
-} // namespace fst
-
-#endif // FST_SCRIPT_ARCSORT_H_
diff --git a/kaldi_io/src/tools/openfst/include/fst/script/arg-packs.h b/kaldi_io/src/tools/openfst/include/fst/script/arg-packs.h
deleted file mode 100644
index 8ebf8d8..0000000
--- a/kaldi_io/src/tools/openfst/include/fst/script/arg-packs.h
+++ /dev/null
@@ -1,240 +0,0 @@
-
-// 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.
-//
-// Copyright 2005-2010 Google, Inc.
-// Author: jpr@google.com (Jake Ratkiewicz)
-
-// Convenience templates for defining arg packs for the FstClass operations.
-
-// See operation-templates.h for a discussion about why these are needed; the
-// short story is that all FstClass operations must be implemented by a version
-// that takes one argument, most likely a struct bundling all the
-// logical arguments together. These template structs provide convenient ways
-// to specify these bundles (e.g. by means of appropriate typedefs).
-
-// The ArgPack template is sufficient for bundling together all the args for
-// a particular function. The function is assumed to be void-returning. If
-// you want a space for a return value, use the WithReturnValue template
-// as follows:
-
-// WithReturnValue<bool, ArgPack<...> >
-
-#ifndef FST_SCRIPT_ARG_PACKS_H_
-#define FST_SCRIPT_ARG_PACKS_H_
-
-namespace fst {
-namespace script {
-namespace args {
-
-// Sentinel value that means "no arg here."
-class none_type { };
-
-// Base arg pack template class. Specializations follow that allow
-// fewer numbers of arguments (down to 2). If the maximum number of arguments
-// increases, you will need to change three things:
-// 1) Add more template parameters to this template
-// 2) Add more specializations to allow fewer numbers of parameters than
-// the new max.
-// 3) Add extra none_types to all existing specializations to fill
-// the new slots.
-
-
-// 9 args (max)
-template<class T1,
- class T2 = none_type,
- class T3 = none_type,
- class T4 = none_type,
- class T5 = none_type,
- class T6 = none_type,
- class T7 = none_type,
- class T8 = none_type,
- class T9 = none_type>
-struct Package {
- T1 arg1;
- T2 arg2;
- T3 arg3;
- T4 arg4;
- T5 arg5;
- T6 arg6;
- T7 arg7;
- T8 arg8;
- T9 arg9;
-
- Package(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6,
- T7 arg7, T8 arg8, T9 arg9) :
- arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4), arg5(arg5),
- arg6(arg6), arg7(arg7), arg8(arg8), arg9(arg9) { }
-};
-
-// 8 args
-template<class T1,
- class T2,
- class T3,
- class T4,
- class T5,
- class T6,
- class T7,
- class T8>
-struct Package<T1, T2, T3, T4, T5, T6, T7, T8, none_type> {
- T1 arg1;
- T2 arg2;
- T3 arg3;
- T4 arg4;
- T5 arg5;
- T6 arg6;
- T7 arg7;
- T8 arg8;
-
- Package(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6,
- T7 arg7, T8 arg8) :
- arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4), arg5(arg5),
- arg6(arg6), arg7(arg7), arg8(arg8) { }
-};
-
-// 7 args
-template<class T1,
- class T2,
- class T3,
- class T4,
- class T5,
- class T6,
- class T7>
-struct Package<T1, T2, T3, T4, T5, T6, T7,
- none_type, none_type> {
- T1 arg1;
- T2 arg2;
- T3 arg3;
- T4 arg4;
- T5 arg5;
- T6 arg6;
- T7 arg7;
-
- Package(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6,
- T7 arg7) :
- arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4), arg5(arg5),
- arg6(arg6), arg7(arg7) { }
-};
-
-// 6 args
-template<class T1,
- class T2,
- class T3,
- class T4,
- class T5,
- class T6>
-struct Package<T1, T2, T3, T4, T5, T6, none_type,
- none_type, none_type> {
- T1 arg1;
- T2 arg2;
- T3 arg3;
- T4 arg4;
- T5 arg5;
- T6 arg6;
-
- Package(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) :
- arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4), arg5(arg5),
- arg6(arg6) { }
-};
-
-// 5 args
-template<class T1,
- class T2,
- class T3,
- class T4,
- class T5>
-struct Package<T1, T2, T3, T4, T5, none_type, none_type,
- none_type, none_type> {
- T1 arg1;
- T2 arg2;
- T3 arg3;
- T4 arg4;
- T5 arg5;
-
- Package(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) :
- arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4), arg5(arg5) { }
-};
-
-// 4 args
-template<class T1,
- class T2,
- class T3,
- class T4>
-struct Package<T1, T2, T3, T4, none_type, none_type,
- none_type, none_type, none_type> {
- T1 arg1;
- T2 arg2;
- T3 arg3;
- T4 arg4;
-
- Package(T1 arg1, T2 arg2, T3 arg3, T4 arg4) :
- arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4) { }
-};
-
-// 3 args
-template<class T1,
- class T2,
- class T3>
-struct Package<T1, T2, T3, none_type, none_type,
- none_type, none_type, none_type,
- none_type> {
- T1 arg1;
- T2 arg2;
- T3 arg3;
-
- Package(T1 arg1, T2 arg2, T3 arg3) :
- arg1(arg1), arg2(arg2), arg3(arg3) { }
-};
-
-// 2 args (minimum)
-template<class T1,
- class T2>
-struct Package<T1, T2, none_type, none_type,
- none_type, none_type, none_type,
- none_type, none_type> {
- T1 arg1;
- T2 arg2;
-
- Package(T1 arg1, T2 arg2) :
- arg1(arg1), arg2(arg2) { }
-};
-
-// Tack this on to an existing arg pack to add a return value.
-// The syntax for accessing the args is then slightly more stilted,
-// as you must do an extra member access (since the args are stored
-// as a member of this class).
-// The alternative is to declare another slew of templates for functions
-// that return a value, analogous to the above.
-
-template<class Retval, class ArgPackage>
-struct WithReturnValue {
- Retval retval;
- const ArgPackage &args;
-
- explicit WithReturnValue(const ArgPackage &args) : args(args) { }
-};
-
-// We don't want to store a reference to a reference, if ArgPackage is
-// already some reference type.
-template<class Retval, class ArgPackage>
-struct WithReturnValue<Retval, ArgPackage&> {
- Retval retval;
- const ArgPackage &args;
-
- explicit WithReturnValue(const ArgPackage &args) : args(args) { }
-};
-
-} // namespace args
-} // namespace script
-} // namespace fst
-
-#endif // FST_SCRIPT_ARG_PACKS_H_
diff --git a/kaldi_io/src/tools/openfst/include/fst/script/closure.h b/kaldi_io/src/tools/openfst/include/fst/script/closure.h
deleted file mode 100644
index 93b5ec3..0000000
--- a/kaldi_io/src/tools/openfst/include/fst/script/closure.h
+++ /dev/null
@@ -1,41 +0,0 @@
-
-// 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.
-//
-// Copyright 2005-2010 Google, Inc.
-// Author: jpr@google.com (Jake Ratkiewicz)
-
-#ifndef FST_SCRIPT_CLOSURE_H_
-#define FST_SCRIPT_CLOSURE_H_
-
-#include <fst/script/arg-packs.h>
-#include <fst/script/fst-class.h>
-#include <fst/closure.h>
-
-namespace fst {
-namespace script {
-
-typedef args::Package<MutableFstClass*, const ClosureType> ClosureArgs;
-
-template<class Arc>
-void Closure(ClosureArgs *args) {
- MutableFst<Arc> *fst = args->arg1->GetMutableFst<Arc>();
-
- Closure(fst, args->arg2);
-}
-
-void Closure(MutableFstClass *ofst, ClosureType closure_type);
-
-} // namespace script
-} // namespace fst
-
-#endif // FST_SCRIPT_CLOSURE_H_
diff --git a/kaldi_io/src/tools/openfst/include/fst/script/compile-impl.h b/kaldi_io/src/tools/openfst/include/fst/script/compile-impl.h
deleted file mode 100644
index 68f37c3..0000000
--- a/kaldi_io/src/tools/openfst/include/fst/script/compile-impl.h
+++ /dev/null
@@ -1,216 +0,0 @@
-// compile.h
-
-// 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.
-//
-// Copyright 2005-2010 Google, Inc.
-// Author: riley@google.com (Michael Riley)
-//
-// \file
-// Class to to compile a binary Fst from textual input.
-
-#ifndef FST_SCRIPT_COMPILE_IMPL_H_
-#define FST_SCRIPT_COMPILE_IMPL_H_
-
-#include <tr1/unordered_map>
-using std::tr1::unordered_map;
-using std::tr1::unordered_multimap;
-#include <sstream>
-#include <string>
-#include <vector>
-using std::vector;
-
-#include <iostream>
-#include <fstream>
-#include <sstream>
-#include <fst/fst.h>
-#include <fst/util.h>
-#include <fst/vector-fst.h>
-
-DECLARE_string(fst_field_separator);
-
-namespace fst {
-
-// Compile a binary Fst from textual input, helper class for fstcompile.cc
-// WARNING: Stand-alone use of this class not recommended, most code should
-// read/write using the binary format which is much more efficient.
-template <class A> class FstCompiler {
- public:
- typedef A Arc;
- typedef typename A::StateId StateId;
- typedef typename A::Label Label;
- typedef typename A::Weight Weight;
-
- // WARNING: use of 'allow_negative_labels = true' not recommended; may
- // cause conflicts
- FstCompiler(istream &istrm, const string &source,
- const SymbolTable *isyms, const SymbolTable *osyms,
- const SymbolTable *ssyms, bool accep, bool ikeep,
- bool okeep, bool nkeep, bool allow_negative_labels = false)
- : nline_(0), source_(source),
- isyms_(isyms), osyms_(osyms), ssyms_(ssyms),
- nstates_(0), keep_state_numbering_(nkeep),
- allow_negative_labels_(allow_negative_labels) {
- char line[kLineLen];
- while (istrm.getline(line, kLineLen)) {
- ++nline_;
- vector<char *> col;
- string separator = FLAGS_fst_field_separator + "\n";
- SplitToVector(line, separator.c_str(), &col, true);
- if (col.size() == 0 || col[0][0] == '\0') // empty line
- continue;
- if (col.size() > 5 ||
- (col.size() > 4 && accep) ||
- (col.size() == 3 && !accep)) {
- FSTERROR() << "FstCompiler: Bad number of columns, source = "
- << source_
- << ", line = " << nline_;
- fst_.SetProperties(kError, kError);
- return;
- }
- StateId s = StrToStateId(col[0]);
- while (s >= fst_.NumStates())
- fst_.AddState();
- if (nline_ == 1)
- fst_.SetStart(s);
-
- Arc arc;
- StateId d = s;
- switch (col.size()) {
- case 1:
- fst_.SetFinal(s, Weight::One());
- break;
- case 2:
- fst_.SetFinal(s, StrToWeight(col[1], true));
- break;
- case 3:
- arc.nextstate = d = StrToStateId(col[1]);
- arc.ilabel = StrToILabel(col[2]);
- arc.olabel = arc.ilabel;
- arc.weight = Weight::One();
- fst_.AddArc(s, arc);
- break;
- case 4:
- arc.nextstate = d = StrToStateId(col[1]);
- arc.ilabel = StrToILabel(col[2]);
- if (accep) {
- arc.olabel = arc.ilabel;
- arc.weight = StrToWeight(col[3], false);
- } else {
- arc.olabel = StrToOLabel(col[3]);
- arc.weight = Weight::One();
- }
- fst_.AddArc(s, arc);
- break;
- case 5:
- arc.nextstate = d = StrToStateId(col[1]);
- arc.ilabel = StrToILabel(col[2]);
- arc.olabel = StrToOLabel(col[3]);
- arc.weight = StrToWeight(col[4], false);
- fst_.AddArc(s, arc);
- }
- while (d >= fst_.NumStates())
- fst_.AddState();
- }
- if (ikeep)
- fst_.SetInputSymbols(isyms);
- if (okeep)
- fst_.SetOutputSymbols(osyms);
- }
-
- const VectorFst<A> &Fst() const {
- return fst_;
- }
-
- private:
- // Maximum line length in text file.
- static const int kLineLen = 8096;
-
- int64 StrToId(const char *s, const SymbolTable *syms,
- const char *name, bool allow_negative = false) const {
- int64 n = 0;
-
- if (syms) {
- n = syms->Find(s);
- if (n == -1 || (!allow_negative && n < 0)) {
- FSTERROR() << "FstCompiler: Symbol \"" << s
- << "\" is not mapped to any integer " << name
- << ", symbol table = " << syms->Name()
- << ", source = " << source_ << ", line = " << nline_;
- fst_.SetProperties(kError, kError);
- }
- } else {
- char *p;
- n = strtoll(s, &p, 10);
- if (p < s + strlen(s) || (!allow_negative && n < 0)) {
- FSTERROR() << "FstCompiler: Bad " << name << " integer = \"" << s
- << "\", source = " << source_ << ", line = " << nline_;
- fst_.SetProperties(kError, kError);
- }
- }
- return n;
- }
-
- StateId StrToStateId(const char *s) {
- StateId n = StrToId(s, ssyms_, "state ID");
-
- if (keep_state_numbering_)
- return n;
-
- // remap state IDs to make dense set
- typename unordered_map<StateId, StateId>::const_iterator it = states_.find(n);
- if (it == states_.end()) {
- states_[n] = nstates_;
- return nstates_++;
- } else {
- return it->second;
- }
- }
-
- StateId StrToILabel(const char *s) const {
- return StrToId(s, isyms_, "arc ilabel", allow_negative_labels_);
- }
-
- StateId StrToOLabel(const char *s) const {
- return StrToId(s, osyms_, "arc olabel", allow_negative_labels_);
- }
-
- Weight StrToWeight(const char *s, bool allow_zero) const {
- Weight w;
- istringstream strm(s);
- strm >> w;
- if (!strm || (!allow_zero && w == Weight::Zero())) {
- FSTERROR() << "FstCompiler: Bad weight = \"" << s
- << "\", source = " << source_ << ", line = " << nline_;
- fst_.SetProperties(kError, kError);
- w = Weight::NoWeight();
- }
- return w;
- }
-
- mutable VectorFst<A> fst_;
- size_t nline_;
- string source_; // text FST source name
- const SymbolTable *isyms_; // ilabel symbol table
- const SymbolTable *osyms_; // olabel symbol table
- const SymbolTable *ssyms_; // slabel symbol table
- unordered_map<StateId, StateId> states_; // state ID map
- StateId nstates_; // number of seen states
- bool keep_state_numbering_;
- bool allow_negative_labels_; // not recommended; may cause conflicts
-
- DISALLOW_COPY_AND_ASSIGN(FstCompiler);
-};
-
-} // namespace fst
-
-#endif // FST_SCRIPT_COMPILE_IMPL_H_
diff --git a/kaldi_io/src/tools/openfst/include/fst/script/compile.h b/kaldi_io/src/tools/openfst/include/fst/script/compile.h
deleted file mode 100644
index bb6ea56..0000000
--- a/kaldi_io/src/tools/openfst/include/fst/script/compile.h
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// 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.
-//
-// Copyright 2005-2010 Google, Inc.</