motionsmith-docs-v2

Technical Documentation

MotionSmith Pro V2 Docs

Technical reference for MotionSmith Pro V2 in Unreal Engine 5.8: Gameplay Motion, Sequencer-native segment generation, route following, Kimodo fallback, Control Rig preparation, supported characters, and grounding requirements.

Engine: Unreal Engine 5.8 Workflow: Sequencer Native Runtime: Local
Overview

What V2 changes

MotionSmith Pro V2 moves animation direction into Unreal Engine Sequencer. Instead of treating AI animation as a separate generation step, V2 builds and extends character performance as editable Sequencer segments inside the shot.

Watch the Pro V2 Overview

Watch on YouTube ↗
Gameplay Motion

Prepared motion first

Common locomotion and gameplay intents can resolve to prepared animation assets before generation is required.

Kimodo Fallback

Generate when needed

Instructions that cannot be satisfied by the prepared motion library can fall back to Kimodo generation.

Sequencer Native

Shot-level iteration

Segments remain in the same sequence as cameras, lights, props and timing decisions.

Control Rig

Refine after generation

Supported characters can be prepared for Control Rig so broad generated motion can be polished in context.

Requirements

Project requirements

Area Requirement
Engine Unreal Engine 5.8
Platform Windows 64-bit (Win64) editor
GPU NVIDIA GPU with CUDA. 6 GB. Recommended: 16 GB VRAM (tested on GeForce RTX 5070 Ti 16 GB). By default the Llama 3 text encoder runs on the CPU, so the GPU runs only the Kimodo diffusion model.
System memory 8 GB. 32 GB or more recommended. The Llama 3 8B text encoder (about 16 GB) is loaded into system memory by default.
Disk space About 25 GB free: MotionSmith Runtime and models (about 5 GB) and Meta Llama 3 8B Instruct (about 20 GB)
MotionSmith Runtime Separate local download: MotionSmith Runtime on Hugging Face
Meta Llama 3 Meta-Llama-3-8B-Instruct, downloaded by the user from Hugging Face under the Meta Llama 3 Community License
Gameplay Motion content Epic's Game Animation Sample (UE 5.8). Keep /Game/Characters/UEFN_Mannequin at its original path.
Engine plugins IK Rig, Control Rig, RigVM, Chooser, Level Sequence Editor, Motion Warping (Beta), Sequencer Mixed Control Rig (Experimental)
Supported Character Paths UE5 Manny / Quinn, MetaHumans from the UE 5.8 pipeline, AccuRig, Mixamo and Character Creator skeletons. See Supported Characters.
Gameplay Motion Ground Traversable floor geometry must have valid collision that matches the visible walkable surface
Control Rig Sequencer Mixed Control Rig plugin (Experimental) is required for the mixed Control Rig workflow
Ground collision is not optional for Gameplay Motion.
Bad Simple or Convex collision can be interpreted as an obstacle even when the visible mesh looks clear. Use collision that accurately follows the walkable surface. For Static Mesh floors, use appropriate Simple Collision or Use Complex Collision As Simple when necessary.
Gameplay Motion uses Epic's Game Animation Sample.
The prepared motion library is built on the UE 5.8 Game Animation Sample animations under /Game/Characters/UEFN_Mannequin/Animations. These animations are not included in MotionSmith. Create your project from the Game Animation Sample, or migrate its Characters folder without moving or renaming it. Kimodo prompt generation does not require it.
Everything runs on your machine.
Generation runs in a local MotionSmith Runtime process that talks to Unreal Editor directly. MotionSmith does not upload your prompts, animations or usage data, and it does not download models automatically.
Installation

From Fab to your first shot.

Install MotionSmith Pro V2 for Unreal Engine 5.8, complete the project setup, verify the local runtime, and prepare your project for Sequencer-native motion.

01

Install from Fab

Add MotionSmith Pro V2 to your Fab Library, then use Install to Engine and select Unreal Engine 5.8.

02

Enable MotionSmith

Open your project and go to Edit → Plugins. Find MotionSmith Pro V2, enable it, then restart Unreal Editor when prompted.

03

Configure Project Settings

Go to Edit → Project Settings → Plugins → MotionSmith Pro. MotionSmith needs Meta-Llama-3-8B-Instruct and does not download it for you: request access on its Hugging Face page by accepting the Meta Llama 3 Community License, then download it once access is approved, for example with hf auth login and hf download meta-llama/Meta-Llama-3-8B-Instruct --exclude "original/*". A model in the default Hugging Face cache is found automatically; otherwise set Llama Model Folder to the folder that contains config.json, the tokenizer files and the .safetensors weights.

04

Verify Runtime & Pre-Flight

Check that the MotionSmith Runtime, Python environment, NVIDIA GPU / CUDA, Kimodo, LLM2Vec adapters, Meta Llama and backend setup are detected correctly. Click Run Pre-Flight in the Diagnostics & Pre-Flight section and resolve any failed required checks before generation. Download the runtime from Hugging Face, also reachable from the Download Runtime button in Project Settings.

05

Enable the animation workflow

Verify that Sequencer Mixed Control Rig is enabled. For Manny / Quinn Control Rig workflows, the required CR_Mannequin_Body asset must be available in the project; MotionSmith does not bundle that Control Rig asset. MotionSmith also enables its engine plugin dependencies, including Motion Warping (Beta) and Sequencer Mixed Control Rig (Experimental). For Gameplay Motion, use a project based on the Game Animation Sample.

06

Prepare your character

Add a supported character to a Level Sequence, select the intended character binding, then use Prepare Character so MotionSmith can create or reuse the required Sequencer animation and Control Rig setup.

07

Open Sequencer and create

Open MotionSmith Pro V2 and work directly in the shot using Gameplay Motion, prompt generation, continuation and Control Rig refinement.

Quick Start

Basic V2 workflow

01

Add the character to Sequencer

Use a supported character and make sure the expected skeletal mesh and sequence binding are active.

02

Create or edit the route

In the Gameplay Motion panel, click Align to Character to create a route at the character, facing its forward direction. Click Select Route and move the route's spline points in the viewport. The route defines XY direction; grounded motion resolves against the physical scene.

03

Enter the motion instruction

Use a direct action such as walk, run, turn, jump, crouch, vault, or a more specific performance prompt.

04

Generate and commit

MotionSmith resolves the instruction through Gameplay Motion or Kimodo and commits the result as Sequencer sections.

05

Extend instead of rebuilding

Extend the route and add the next motion instruction. Previously committed sections remain unchanged.

Gameplay Motion

Prepared gameplay motion inside the route

Gameplay Motion is the fast path for common actions. The system analyzes the instruction and available route context, resolves suitable prepared clips, adapts them to the current character and places them in Sequencer.

Gameplay Motion panel

Route timing and motion instructionsSet Route Length and Target Duration, then enter the Next Motion Prompt or choose a Quick Prompt. Generate Motion, Analyze Route, Align to Character and Select Route are available in the same panel.
Generated and pending routeStatus separates the total route length from the generated and pending distances. In this example, the route has changed and the panel reports that Generate Motion will analyze the pending route.
Route data and analysisThe route Details panel groups Intent, Generated, Classifier Settings and Current Action Plan. Expand the relevant group to inspect its values; the Debug group also exposes Draw Debug Overlay and Draw All Resolved Samples.

Typical grounded actions

  • Idle
  • Walk
  • Run
  • Sprint
  • Left / right turns
  • Grounded continuation after a turn
Ground locomotion follows the edited route rather than forcing the route to match the original animation clip.

Route & Grounding

Grounded movement uses the user-authored route for XY direction and the resolved ground path for vertical placement. This allows motion to follow ramps and other traversable changes in elevation.

Grounded path concept
XY  = user-authored route
Z   = resolved traversable ground
Yaw = route tangent / motion facing
Result = grounded character motion along the shot

Continuation

V2 is designed around append-only continuation. After a committed segment, extending the route and generating a new instruction appends only the new tail of the performance.

  • Previous committed sections stay unchanged.
  • The next segment starts from the evaluated exit of the previous section.
  • Route extension can continue beyond the original path length.
MotionSmith GAS & Kimodo

Gameplay Animation System + Kimodo

MotionSmith GAS means Gameplay Animation System — not Unreal Engine's Gameplay Ability System. It is the prepared Gameplay Motion path used for predictable locomotion and supported actions. MotionSmith can combine GAS assets and Kimodo-generated motion in the same Sequencer performance. Its prepared animation library comes from Epic's Game Animation Sample (UE 5.8), which must be present in the project; see Requirements.

Gameplay Motion

Use when a prepared solution exists

Best for common locomotion, turns and known gameplay actions where predictable motion is preferred.

Kimodo

Use for open-ended instructions

Used when the action cannot be resolved from the prepared motion library and generation is required.

Kimodo Generation panel

Prompt and generation settingsPrepare Character and the readiness status identify the active target. Generation provides the Motion Prompt, Prompt Library, Frames, Text CFG, Constraint CFG, Steps, Seed and Samples controls. The screenshot shows 150 frames displayed as 5.0 seconds.
Quick motion promptsQuick Prompts provides starting instructions for actions such as walking, turning, sitting, crouching and jumping. Use these presets as a starting point for the motion instruction.
Advanced animation toolsAdvanced groups Preview Source, Import Anim, Make Loop and Restart Backend with Loop Seam, Foot Lock, In-Place and Bake Anim Sequence. Unavailable actions appear dimmed in the screenshot.

Strong generation intents

Prompts such as jump, jump down, jump forward, vault, climb and crouch are treated as strong action intents. MotionSmith first attempts the prepared Gameplay Motion path and can fall back to Kimodo when necessary.

V2 can transition between Gameplay Motion and generated motion inside one Sequencer performance.
Sequencer

How V2 uses Sequencer

V2 does not treat Sequencer as an export target. Sequencer is the primary workspace. Motion sections are inserted into the existing sequence so timing, cameras, props, animation layers and shot context remain visible throughout the process.

  • Generated sections remain editable.
  • Gameplay Motion and Kimodo-generated sections can coexist.
  • Continuation appends new sections instead of rebuilding earlier work.
  • Camera and prop context remain visible during animation direction.
  • Motion generation and baking controls are available directly from the Sequencer workflow.

MotionSmith Sequencer Bar

MotionSmith Sequencer BarThe toolbar keeps target selection, Mode, Duration, Add Segment, Gameplay Motion, Generate, baking and backend controls beside the timeline. Scroll horizontally or open the image to read the full bar.

MotionSmith adds a dedicated control bar to Sequencer so the most frequently used animation operations remain available while working directly inside the shot. The bar provides access to segment timing, motion generation, continuation, baking and local backend control without leaving Sequencer.

Control Purpose
Duration Defines the intended duration of the current motion segment before generation.
Add Segment Adds a new motion segment after the existing performance so the sequence can be extended without rebuilding previously committed animation.
Gameplay Motion Resolves the current instruction through MotionSmith GAS (Gameplay Animation System) and uses a prepared motion solution when available.
Generate Generates motion from the current instruction using the MotionSmith generation pipeline when a custom or open-ended performance is required.
Bake to Rig Transfers the evaluated character motion into the supported Control Rig workflow so the performance can be refined with Control Rig controls and keyframes.
Bake Anim Creates a standard Unreal Engine animation asset from the current evaluated motion for use outside the active Sequencer workflow.
Start Backend Starts the local MotionSmith generation backend required for Kimodo-based motion generation.
Stop Backend Stops the local MotionSmith generation backend when generation is no longer required.
Gameplay Motion does not require you to leave Sequencer.
Route editing, prepared motion placement, generated motion, continuation and Control Rig refinement are designed to remain part of the same shot-level workflow.

Prompt sections in the timeline

Prompt section and prompt editorThe selected blue section sits on the MotionSmith Pro track alongside the character, animation and Control Rig tracks. The MotionSmith Pro Prompt editor displays the section instruction and provides a Save button.

Typical Sequencer workflow

01

Set the segment duration

Choose the intended timing for the next motion section using Duration.

02

Choose the motion path

Use Gameplay Motion for prepared gameplay actions or Generate when custom Kimodo-generated motion is required.

03

Extend the performance

Use Add Segment to continue after the current motion while preserving previously committed sections.

04

Refine or export

Use Bake to Rig for Control Rig refinement or Bake Anim when a standard Unreal animation asset is required.

Control Rig

Prepare and polish supported characters

MotionSmith can prepare supported characters for the mixed Sequencer Control Rig workflow. This allows generated or adapted motion to remain the broad performance layer while Control Rig is used for shot-specific refinement.

Animation Controls panel

Body controls and rig bakingSwitch between FK and IK modes, select Move or Rotate, and access Bake to Control Rig. Body controls are grouped into the core, arms, legs and head / neck for easier selection.
Left and right hand digitsThe hand groups expose individual finger controls, including thumb segments and finger tips. Select the required digit control when refining a hand pose.

Typical Control Rig refinement

  • Pose corrections
  • Hand placement
  • Upper-body direction
  • Look direction
  • Shot-specific contact corrections
Required: the Sequencer Mixed Control Rig plugin (Experimental) must be enabled for the mixed Control Rig workflow.
Supported Characters

Primary supported character paths

Character Family Status / Notes
UE5 Manny / Quinn Primary supported mannequin path
MetaHuman Supported for MetaHumans created with the current UE 5.8 pipeline
AccuRig Supported in the current V2 animation path
Mixamo Supported — any model rigged with a Mixamo skeleton
Character Creator (CC) Supported — any model rigged with a Character Creator skeleton
Older sample MetaHuman assets can differ from the current UE 5.8 MetaHuman pipeline and may not behave the same way in Control Rig.
Troubleshooting

Common problems

Character will not follow the ground

Check the floor mesh collision first. The visible surface and collision surface must agree closely enough for the route analyzer to resolve a valid grounded path.

Route reports an obstacle on an apparently clear floor

Incorrect Simple or Convex collision can create false blocked regions. Replace or simplify the collision setup, or use Use Complex Collision As Simple where appropriate.

Control Rig is not available

Confirm that the Sequencer Mixed Control Rig plugin is enabled and that the selected character follows a supported preparation path.

Continuation starts from the wrong place

Make sure the new instruction is being appended after the previously committed segment rather than rebuilding the entire route.

Generated action is used instead of Gameplay Motion

This usually means the instruction did not resolve to an available prepared motion path and MotionSmith routed the segment to Kimodo.

The backend does not start

Open Project Settings → Plugins → MotionSmith Pro and click Run Pre-Flight. Each failed check shows a recommended action. If the runtime is missing, use Download Runtime. After fixing the problem, start the backend again from the Sequencer bar or use Restart Backend in the MotionSmith panel.

Meta Llama is reported as missing

Make sure your Hugging Face access to Meta-Llama-3-8B-Instruct was approved and the download finished. If you set Llama Model Folder, it must point to the folder that contains config.json, the tokenizer files and the .safetensors weights, not to a parent folder.

Generation fails with a GPU out-of-memory error

Close other applications that use the GPU and lower Samples. Keep Text Encoder Device (Project Settings → MotionSmith Pro → Advanced) set to cpu; with the text encoder on the GPU, Kimodo needs about 17 GB of VRAM.

Still stuck? Contact Support and attach the Unreal log files from your project's Saved/Logs folder.
Legal

Third-Party Notices

MotionSmith Pro is Copyright (c) 2026 MotionSmith AI. All Rights Reserved. It is distributed on Fab under the Fab End User License Agreement. Each third-party component below remains under its own license.

Built with Meta Llama 3.
Meta Llama 3 is licensed under the Meta Llama 3 Community License, Copyright (c) Meta Platforms, Inc. All Rights Reserved. It is not distributed with MotionSmith; users download it from Hugging Face.

NVIDIA Kimodo

Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. Licensed under the Apache License, Version 2.0 (full text below). github.com/nv-tlabs/kimodo

  • Source/ThirdParty/Kimodo: BVH parsing, coordinate conversion and SOMA77 reference data. The license is included as LICENSE.txt.
  • Content/Python/Lib/site-packages/motionsmith_kimodo_multiprompt.py: multi-prompt generation loops adapted from Kimodo._multiprompt(). The MotionSmith worker scripts in Content/Python/MotionSmithBackend are MotionSmith code that calls the Kimodo API.

These portions were modified by MotionSmith AI.

NVIDIA SOMA body model (SOMA-X)

Copyright (c) NVIDIA CORPORATION & AFFILIATES. Apache License, Version 2.0. The SOMA77 skeleton and mesh assets are derived from SOMA-X.

MotionSmith Runtime components (not included in the plugin)

  • Kimodo-SOMA-RP-v1.1 model weights: NVIDIA Open Model License
  • LLM2Vec (McGill NLP): MIT License, Copyright (c) 2024 McGill NLP
  • Python, PyTorch and dependencies: their own licenses, in the Licenses folder of the runtime package

Apache License, Version 2.0

Also included as Source/ThirdParty/Kimodo/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 (c) 2026 NVIDIA CORPORATION & AFFILIATES. 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.

Comments