text:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ChangeListManager">
    <list default="true" id="0c144fae-4be1-4c3e-b6f0-5f6fcb4fd6b9" name="Default" comment="" />
    <ignored path="pkgs.iws" />
    <ignored path=".idea/workspace.xml" />
    <file path="/Dummy.txt" changelist="0c144fae-4be1-4c3e-b6f0-5f6fcb4fd6b9" time="1362815379158" ignored="false" />
    <file path="/EvalFileTest.java" changelist="0c144fae-4be1-4c3e-b6f0-5f6fcb4fd6b9" time="1362762192548" ignored="false" />
    <file path="/PyCallerTest.java" changelist="0c144fae-4be1-4c3e-b6f0-5f6fcb4fd6b9" time="1362766749184" ignored="false" />
    <file path="/fragment.java" changelist="0c144fae-4be1-4c3e-b6f0-5f6fcb4fd6b9" time="1362763468709" ignored="false" />
    <file path="/JSRException.java" changelist="0c144fae-4be1-4c3e-b6f0-5f6fcb4fd6b9" time="1362827849588" ignored="false" />
    <file path="/PyCaller.java" changelist="0c144fae-4be1-4c3e-b6f0-5f6fcb4fd6b9" time="1362766471344" ignored="false" />
    <file path="/for_test_caller.py" changelist="0c144fae-4be1-4c3e-b6f0-5f6fcb4fd6b9" time="1362767078330" ignored="false" />
    <option name="TRACKING_ENABLED" value="true" />
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
    <option name="LAST_RESOLUTION" value="IGNORE" />
  </component>
  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
  <component name="CreatePatchCommitExecutor">
    <option name="PATCH_PATH" value="" />
  </component>
  <component name="DaemonCodeAnalyzer">
    <disable_hints />
  </component>
  <component name="DebuggerManager">
    <breakpoint_any default_suspend_policy="SuspendAll" default_condition_enabled="true">
      <breakpoint>
        <option name="NOTIFY_CAUGHT" value="true" />
        <option name="NOTIFY_UNCAUGHT" value="true" />
        <option name="ENABLED" value="false" />
        <option name="LOG_ENABLED" value="false" />
        <option name="LOG_EXPRESSION_ENABLED" value="false" />
        <option name="SUSPEND_POLICY" value="SuspendAll" />
        <option name="SUSPEND" value="true" />
        <option name="COUNT_FILTER_ENABLED" value="false" />
        <option name="COUNT_FILTER" value="0" />
        <option name="CONDITION_ENABLED" value="true" />
        <option name="CLASS_FILTERS_ENABLED" value="false" />
        <option name="INSTANCE_FILTERS_ENABLED" value="false" />
        <option name="CONDITION" value="" />
        <option name="LOG_MESSAGE" value="" />
      </breakpoint>
      <breakpoint>
        <option name="NOTIFY_CAUGHT" value="true" />
        <option name="NOTIFY_UNCAUGHT" value="true" />
        <option name="ENABLED" value="false" />
        <option name="LOG_ENABLED" value="false" />
        <option name="LOG_EXPRESSION_ENABLED" value="false" />
        <option name="SUSPEND_POLICY" value="SuspendAll" />
        <option name="SUSPEND" value="true" />
        <option name="COUNT_FILTER_ENABLED" value="false" />
        <option name="COUNT_FILTER" value="0" />
        <option name="CONDITION_ENABLED" value="true" />
        <option name="CLASS_FILTERS_ENABLED" value="false" />
        <option name="INSTANCE_FILTERS_ENABLED" value="false" />
        <option name="CONDITION" value="" />
        <option name="LOG_MESSAGE" value="" />
      </breakpoint>
    </breakpoint_any>
    <ui_properties default_suspend_policy="SuspendAll" default_condition_enabled="true" />
    <breakpoint_rules />
    <ui_properties />
  </component>
  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
  <component name="FavoritesManager">
    <favorites_list name="pkgs" />
  </component>
  <component name="FileEditorManager">
    <leaf>
      <file leaf-file-name="PyCallerTest.java" pinned="false" current="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/test/jsr/PyCallerTest.java">
          <provider selected="true" editor-type-id="text-editor">
            <state line="41" column="19" selection-start="1048" selection-end="1048" vertical-scroll-proportion="0.0">
              <folding>
                <element signature="imports" expanded="true" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="PyCaller.java" pinned="false" current="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/src/jsr/PyCaller.java">
          <provider selected="true" editor-type-id="text-editor">
            <state line="192" column="26" selection-start="6573" selection-end="6573" vertical-scroll-proportion="0.0">
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="ParentRunner.class" pinned="false" current="false" current-in-tab="false">
        <entry file="jar://D:/work-libs/junit-4.11.jar!/org/junit/runners/ParentRunner.class">
          <provider selected="true" editor-type-id="text-editor">
            <state line="44" column="25" selection-start="2400" selection-end="2400" vertical-scroll-proportion="0.0">
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="JSRException.java" pinned="false" current="true" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/src/jsr/JSRException.java">
          <provider selected="true" editor-type-id="text-editor">
            <state line="14" column="0" selection-start="291" selection-end="291" vertical-scroll-proportion="0.3469388">
              <folding />
            </state>
          </provider>
        </entry>
      </file>
    </leaf>
  </component>
  <component name="FindManager">
    <FindUsagesManager>
      <setting name="OPEN_NEW_TAB" value="false" />
    </FindUsagesManager>
  </component>
  <component name="GitLogSettings">
    <option name="myDateState">
      <MyDateState />
    </option>
  </component>
  <component name="IdeDocumentHistory">
    <option name="changedFiles">
      <list>
        <option value="$PROJECT_DIR$/src/jsr/EvalFile.java" />
        <option value="$PROJECT_DIR$/test/jsr/EvalFileTest.java" />
        <option value="$PROJECT_DIR$/src/jsr/PyCaller.java" />
        <option value="$PROJECT_DIR$/test/jsr/PyCallerTest.java" />
        <option value="$PROJECT_DIR$/scripts/for_test_caller.py" />
        <option value="$PROJECT_DIR$/src/jsr/JSRException.java" />
      </list>
    </option>
  </component>
  <component name="ProjectFrameBounds">
    <option name="x" value="1358" />
    <option name="y" value="-8" />
    <option name="width" value="1296" />
    <option name="height" value="1000" />
  </component>
  <component name="ProjectLevelVcsManager" settingsEditedManually="true">
    <OptionsSetting value="true" id="Add" />
    <OptionsSetting value="true" id="Remove" />
    <OptionsSetting value="true" id="Checkout" />
    <OptionsSetting value="true" id="Update" />
    <OptionsSetting value="true" id="Status" />
    <OptionsSetting value="true" id="Edit" />
    <ConfirmationsSetting value="2" id="Add" />
    <ConfirmationsSetting value="0" id="Remove" />
  </component>
  <component name="ProjectReloadState">
    <option name="STATE" value="0" />
  </component>
  <component name="ProjectView">
    <navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
      <flattenPackages />
      <showMembers />
      <showModules />
      <showLibraryContents />
      <hideEmptyPackages />
      <abbreviatePackageNames />
      <autoscrollToSource />
      <autoscrollFromSource />
      <sortByType />
    </navigator>
    <panes>
      <pane id="Scope" />
      <pane id="PackagesPane" />
      <pane id="ProjectPane">
        <subPane>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="test" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="jsr" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="jsr" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="src" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="jsr" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="PyCaller.java" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.ClassesTreeStructureProvider$PsiClassOwnerTreeNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="pkgs" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="scripts" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
    </panes>
  </component>
  <component name="PropertiesComponent">
    <property name="project.structure.last.edited" value="Global Libraries" />
    <property name="GoToFile.includeJavaFiles" value="false" />
    <property name="project.structure.proportion" value="0.15" />
    <property name="options.splitter.main.proportions" value="0.3" />
    <property name="MemberChooser.sorted" value="false" />
    <property name="recentsLimit" value="5" />
    <property name="options.lastSelected" value="settings.github" />
    <property name="last_opened_file_path" value="D:/work-libs/hamcrest-core-1.3.jar!/" />
    <property name="project.structure.side.proportion" value="0.2" />
    <property name="MemberChooser.copyJavadoc" value="false" />
    <property name="GoToClass.toSaveIncludeLibraries" value="false" />
    <property name="restartRequiresConfirmation" value="true" />
    <property name="MemberChooser.showClasses" value="true" />
    <property name="GoToClass.includeLibraries" value="false" />
    <property name="dynamic.classpath" value="false" />
    <property name="options.splitter.details.proportions" value="0.2" />
    <property name="options.searchVisible" value="true" />
  </component>
  <component name="RunManager" selected="JUnit.All">
    <configuration default="true" type="Application" factoryName="Application">
      <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
      <option name="MAIN_CLASS_NAME" />
      <option name="VM_PARAMETERS" />
      <option name="PROGRAM_PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="ENABLE_SWING_INSPECTOR" value="false" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <module name="" />
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="JUnit" factoryName="JUnit">
      <module name="" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" />
      <option name="PACKAGE_NAME" />
      <option name="MAIN_CLASS_NAME" />
      <option name="METHOD_NAME" />
      <option name="TEST_OBJECT" value="class" />
      <option name="VM_PARAMETERS" />
      <option name="PARAMETERS" />
      <option name="WORKING_DIRECTORY" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
        <value defaultName="moduleWithDependencies" />
      </option>
      <envs />
      <patterns />
      <method />
    </configuration>
    <configuration default="false" name="All" type="JUnit" factoryName="JUnit">
      <module name="pkgs" />
      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
      <option name="ALTERNATIVE_JRE_PATH" value="" />
      <option name="PACKAGE_NAME" value="jsr" />
      <option name="MAIN_CLASS_NAME" value="" />
      <option name="METHOD_NAME" value="" />
      <option name="TEST_OBJECT" value="package" />
      <option name="VM_PARAMETERS" value="" />
      <option name="PARAMETERS" value="" />
      <option name="WORKING_DIRECTORY" value="" />
      <option name="ENV_VARIABLES" />
      <option name="PASS_PARENT_ENVS" value="true" />
      <option name="TEST_SEARCH_SCOPE">
        <value defaultName="moduleWithDependencies" />
      </option>
      <envs />
      <patterns />
      <RunnerSettings RunnerId="Debug">
        <option name="DEBUG_PORT" value="" />
        <option name="TRANSPORT" value="0" />
        <option name="LOCAL" value="true" />
      </RunnerSettings>
      <RunnerSettings RunnerId="Run" />
      <ConfigurationWrapper RunnerId="Debug" />
      <ConfigurationWrapper RunnerId="Run" />
      <method />
    </configuration>
    <list size="1">
      <item index="0" class="java.lang.String" itemvalue="JUnit.All" />
    </list>
  </component>
  <component name="ShelveChangesManager" show_recycled="false" />
  <component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="false">
    <option name="USER" value="" />
    <option name="PASSWORD" value="" />
    <option name="mySSHConnectionTimeout" value="30000" />
    <option name="mySSHReadTimeout" value="30000" />
    <option name="LAST_MERGED_REVISION" />
    <option name="MERGE_DRY_RUN" value="false" />
    <option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
    <option name="UPDATE_LOCK_ON_DEMAND" value="false" />
    <option name="IGNORE_SPACES_IN_MERGE" value="false" />
    <option name="DETECT_NESTED_COPIES" value="true" />
    <option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
    <option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
    <option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
    <option name="FORCE_UPDATE" value="false" />
    <option name="IGNORE_EXTERNALS" value="false" />
    <myIsUseDefaultProxy>false</myIsUseDefaultProxy>
  </component>
  <component name="TaskManager">
    <task active="true" id="Default" summary="Default task">
      <changelist id="0c144fae-4be1-4c3e-b6f0-5f6fcb4fd6b9" name="Default" comment="" />
      <created>1362761250506</created>
      <updated>1362761250506</updated>
    </task>
    <servers />
  </component>
  <component name="TodoView" selected-index="0">
    <todo-panel id="selected-file">
      <are-packages-shown value="false" />
      <are-modules-shown value="false" />
      <flatten-packages value="false" />
      <is-autoscroll-to-source value="true" />
    </todo-panel>
    <todo-panel id="all">
      <are-packages-shown value="true" />
      <are-modules-shown value="false" />
      <flatten-packages value="false" />
      <is-autoscroll-to-source value="true" />
    </todo-panel>
    <todo-panel id="default-changelist">
      <are-packages-shown value="false" />
      <are-modules-shown value="false" />
      <flatten-packages value="false" />
      <is-autoscroll-to-source value="false" />
    </todo-panel>
  </component>
  <component name="ToolWindowManager">
    <frame x="1358" y="-8" width="1296" height="1000" extended-state="6" />
    <editor active="true" />
    <layout>
      <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32897863" sideWeight="0.49675852" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="JetGradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39904988" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32897863" sideWeight="0.5008104" order="7" side_tool="true" content_ui="tabs" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32897863" sideWeight="0.49675852" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32897863" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.267423" sideWeight="0.21852732" order="1" side_tool="true" content_ui="tabs" />
      <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.267423" sideWeight="0.6710214" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32897863" sideWeight="0.493517" order="2" side_tool="false" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.22921616" sideWeight="0.493517" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32935154" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
    </layout>
  </component>
  <component name="VcsContentAnnotationSettings">
    <option name="myLimit" value="2678400000" />
  </component>
  <component name="VcsManagerConfiguration">
    <option name="OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT" value="true" />
    <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="true" />
    <option name="CHECK_NEW_TODO" value="true" />
    <option name="myTodoPanelSettings">
      <value>
        <are-packages-shown value="false" />
        <are-modules-shown value="false" />
        <flatten-packages value="false" />
        <is-autoscroll-to-source value="false" />
      </value>
    </option>
    <option name="PERFORM_UPDATE_IN_BACKGROUND" value="true" />
    <option name="PERFORM_COMMIT_IN_BACKGROUND" value="true" />
    <option name="PERFORM_EDIT_IN_BACKGROUND" value="true" />
    <option name="PERFORM_CHECKOUT_IN_BACKGROUND" value="true" />
    <option name="PERFORM_ADD_REMOVE_IN_BACKGROUND" value="true" />
    <option name="PERFORM_ROLLBACK_IN_BACKGROUND" value="false" />
    <option name="CHECK_LOCALLY_CHANGED_CONFLICTS_IN_BACKGROUND" value="false" />
    <option name="CHANGED_ON_SERVER_INTERVAL" value="60" />
    <option name="SHOW_ONLY_CHANGED_IN_SELECTION_DIFF" value="true" />
    <option name="CHECK_COMMIT_MESSAGE_SPELLING" value="true" />
    <option name="DEFAULT_PATCH_EXTENSION" value="patch" />
    <option name="SHORT_DIFF_HORISONTALLY" value="true" />
    <option name="SHORT_DIFF_EXTRA_LINES" value="2" />
    <option name="SOFT_WRAPS_IN_SHORT_DIFF" value="true" />
    <option name="INCLUDE_TEXT_INTO_PATCH" value="false" />
    <option name="INCLUDE_TEXT_INTO_SHELF" value="false" />
    <option name="SHOW_FILE_HISTORY_DETAILS" value="true" />
    <option name="SHOW_VCS_ERROR_NOTIFICATIONS" value="true" />
    <option name="SHOW_DIRTY_RECURSIVELY" value="false" />
    <option name="LIMIT_HISTORY" value="true" />
    <option name="MAXIMUM_HISTORY_ROWS" value="1000" />
    <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
    <option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="false" />
    <option name="LAST_COMMIT_MESSAGE" />
    <option name="MAKE_NEW_CHANGELIST_ACTIVE" value="false" />
    <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="false" />
    <option name="CHECK_FILES_UP_TO_DATE_BEFORE_COMMIT" value="false" />
    <option name="REFORMAT_BEFORE_PROJECT_COMMIT" value="false" />
    <option name="REFORMAT_BEFORE_FILE_COMMIT" value="false" />
    <option name="FILE_HISTORY_DIALOG_COMMENTS_SPLITTER_PROPORTION" value="0.8" />
    <option name="FILE_HISTORY_DIALOG_SPLITTER_PROPORTION" value="0.5" />
    <option name="ACTIVE_VCS_NAME" />
    <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
    <option name="UPDATE_GROUP_BY_CHANGELIST" value="false" />
    <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
    <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager />
  </component>
  <component name="antWorkspaceConfiguration">
    <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
    <option name="FILTER_TARGETS" value="false" />
  </component>
  <component name="editorHistoryManager">
    <entry file="jar://D:/work-libs/junit-4.11.jar!/org/junit/runners/ParentRunner.class">
      <provider selected="true" editor-type-id="text-editor">
        <state line="44" column="25" selection-start="2400" selection-end="2400" vertical-scroll-proportion="0.0">
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/jsr/JSRException.java">
      <provider selected="true" editor-type-id="text-editor">
        <state line="12" column="30" selection-start="218" selection-end="218" vertical-scroll-proportion="0.0">
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/jsr/SimpleEmbedded.java">
      <provider selected="true" editor-type-id="text-editor">
        <state line="22" column="12" selection-start="506" selection-end="506" vertical-scroll-proportion="1.0190736">
          <folding>
            <element signature="imports" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/manifest.mf">
      <provider selected="true" editor-type-id="text-editor">
        <state line="1" column="11" selection-start="33" selection-end="33" vertical-scroll-proportion="0.046321526" />
      </provider>
    </entry>
    <entry file="jar://C:/Program Files (x86)/Java/jdk1.7.0_15/jre/lib/rt.jar!/java/io/FileInputStream.class">
      <provider selected="true" editor-type-id="text-editor">
        <state line="46" column="0" selection-start="1832" selection-end="1832" vertical-scroll-proportion="0.8107607" />
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/scripts/TPK.py">
      <provider selected="true" editor-type-id="text-editor">
        <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/test/jsr/TPKFilterTest.java">
      <provider selected="true" editor-type-id="text-editor">
        <state line="14" column="13" selection-start="232" selection-end="232" vertical-scroll-proportion="0.28385898">
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/jsr/EvalFile.java">
      <provider selected="true" editor-type-id="text-editor">
        <state line="21" column="25" selection-start="758" selection-end="758" vertical-scroll-proportion="0.56771797">
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/test/jsr/EvalFileTest.java">
      <provider selected="true" editor-type-id="text-editor">
        <state line="25" column="31" selection-start="650" selection-end="650" vertical-scroll-proportion="0.77922076">
          <folding>
            <element signature="imports" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="jar://D:/work-libs/junit-4.11.jar!/org/junit/internal/runners/model/ReflectiveCallable.class">
      <provider selected="true" editor-type-id="text-editor">
        <state line="11" column="40" selection-start="388" selection-end="388" vertical-scroll-proportion="0.3307393" />
      </provider>
    </entry>
    <entry file="jar://D:/work-libs/junit-4.11.jar!/org/junit/runners/ParentRunner.class">
      <provider selected="true" editor-type-id="text-editor">
        <state line="44" column="25" selection-start="2400" selection-end="2400" vertical-scroll-proportion="0.0">
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/scripts/for_test_caller.py">
      <provider selected="true" editor-type-id="text-editor">
        <state line="25" column="27" selection-start="476" selection-end="476" vertical-scroll-proportion="0.0" />
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/test/jsr/PyCallerTest.java">
      <provider selected="true" editor-type-id="text-editor">
        <state line="41" column="19" selection-start="1048" selection-end="1048" vertical-scroll-proportion="0.0">
          <folding>
            <element signature="imports" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="jar://C:/Program Files (x86)/Java/jdk1.7.0_15/jre/lib/rt.jar!/java/io/FilenameFilter.class">
      <provider selected="true" editor-type-id="text-editor">
        <state line="7" column="12" selection-start="183" selection-end="183" vertical-scroll-proportion="0.18923934">
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/jsr/PyCaller.java">
      <provider selected="true" editor-type-id="text-editor">
        <state line="192" column="26" selection-start="6573" selection-end="6573" vertical-scroll-proportion="0.0">
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/src/jsr/JSRException.java">
      <provider selected="true" editor-type-id="text-editor">
        <state line="14" column="0" selection-start="291" selection-end="291" vertical-scroll-proportion="0.3469388">
          <folding />
        </state>
      </provider>
    </entry>
  </component>
  <component name="masterDetails">
    <states>
      <state key="ArtifactsStructureConfigurable.UI">
        <settings>
          <artifact-editor />
          <splitter-proportions>
            <option name="proportions">
              <list>
                <option value="0.2" />
              </list>
            </option>
          </splitter-proportions>
        </settings>
      </state>
      <state key="FacetStructureConfigurable.UI">
        <settings>
          <last-edited>No facets are configured</last-edited>
          <splitter-proportions>
            <option name="proportions">
              <list>
                <option value="0.2" />
              </list>
            </option>
          </splitter-proportions>
        </settings>
      </state>
      <state key="GlobalLibrariesConfigurable.UI">
        <settings>
          <splitter-proportions>
            <option name="proportions">
              <list>
                <option value="0.2" />
              </list>
            </option>
          </splitter-proportions>
        </settings>
      </state>
      <state key="JdkListConfigurable.UI">
        <settings>
          <last-edited>1.7</last-edited>
          <splitter-proportions>
            <option name="proportions">
              <list>
                <option value="0.2" />
              </list>
            </option>
          </splitter-proportions>
        </settings>
      </state>
      <state key="ModuleStructureConfigurable.UI">
        <settings>
          <last-edited>pkgs</last-edited>
          <splitter-proportions>
            <option name="proportions">
              <list>
                <option value="0.2" />
                <option value="0.5" />
              </list>
            </option>
          </splitter-proportions>
        </settings>
      </state>
      <state key="ProjectLibrariesConfigurable.UI">
        <settings>
          <last-edited>junit-4.11</last-edited>
          <splitter-proportions>
            <option name="proportions">
              <list>
                <option value="0.2" />
              </list>
            </option>
          </splitter-proportions>
        </settings>
      </state>
    </states>
  </component>
</project>


text:
<menu xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.parse.starter.InicioActivity">

</menu>

redpajama_set_name: RedPajamaGithub


text:
[![Riot](https://muut.com/riotjs/logo/riot60x.png)](https://muut.com/riotjs/) `mixin` and helpers for declarative and reactive developing.

 - Named property triggered **.set**, **.change** events when set value
 - Can use **setter**, **getter**, **checker**  handlers
 - Can be set handler on value change
 - Isomorphic - work in tags and any observable objects
 - ...

#### Example

``` javascript
<timer>

  <p>Seconds Elapsed: { time }</p>

  this.mixin('property')
  this.property('time', opts.start || 0, this.update)

  tick() {
    this.time++ // Auto call update() when this.time changed
  }

  var timer = setInterval(this.tick, 1000)

  this.on('unmount', function() {
    clearInterval(timer)
  })

</timer>
```

#### API

  Creating property in riot tag
``` javascript
  this.property(name, [value], [onchange | options])
```

  Creating property in observable object
``` javascript
  riot.property(observer, name, [ value ], [ onchange | options ])
```

  Creating properties
``` javascript
  // in riot tag
  this.properties(values, [ onchange | options ])

  // in observable object
  riot.properties(observer, values, [ onchange | options])
```

- `name` - property name
- `value` - property initialisation whith this value
- `onchange` - callback function called when property value change
- `observer` - riot observable object
- `values` - properties `name` and `value` and the keys and values that are kept in object
- `options` - object with optional keys `setter`, `getter`, `checker`, `onchange`, `onset`

#### Usage

  Initialisation of mixin
``` javascript
  this.mixin('property')
```

  Creating property by name and optional init value
``` javascript
  this.property('time', 0)
```

  Listening property events `{property_name}.{event_type}`
``` javascript
  this.on('time.set', function (value) {...})
  this.on('time.change', function (value) {...})
  this.on('time.check', function (value) {...})
```

  Listening events of all properties object `*.{event_type}`
``` javascript
  this.on('*.set', function (name, value) {...})
  this.on('*.change', function (name, value) {...})
  this.on('*.check', function (name, value) {...})
```

  Creating many properties
``` javascript
  this.properties({
    data: {},
    time: Date.now(),
    counter: 0
  })
```

  Setting options of property
``` javascript
  this.property('time', 0, {
    setter: function (value) { return value / 1000 },
    getter: function (value) { return value * 1000 },
    checker: function (value) { return value < 0 },
    // callbacks
    onchange: function () { this.update() },
    onset: function () { this.save() },
  })
```

  Setting property to observable object by `riot.property`
``` javascript
function Store() {
  if (!(this instanceof Store)) return new Store()

  riot.observable(this)

  riot.property(this, 'data', [])

  this.on('data.set', function(data) {
    this.save(data)
  })
  ...
}

var store = new Store()
store.data = [1,2,3] // trigger data.set event
```

  Preventing auto trigger event `onchange` when property changed
``` javascript
  this.preventOnchange = true

  // onchange callback not run
  this.time++

  this.preventOnchange = false
```

[![MIT License][license-image]][license-url]

[![Riot Forum][riot-forum-image]][riot-forum-url]
[![Join the chat at https://gitter.im/axjs/riot-property][gitter-image]][gitter-url]
<!---
[![Join the chat at https://gitter.im/axjs/riot-property](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/axjs/riot-property?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-->

[license-image]:http://img.shields.io/badge/license-MIT-000000.svg?style=flat-square
[license-url]:LICENSE.txt

[riot-forum-image]:https://img.shields.io/badge/muut-JOIN_CHAT%E2%86%92-ff0044.svg?style=flat-square
[riot-forum-url]:https://muut.com/riotjs/forum/

[gitter-image]:https://img.shields.io/badge/GITTER-JOIN_CHAT_%E2%86%92-1dce73.svg?style=flat-square
[gitter-url]:https://gitter.im/axjs/riot-property?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge


text:
vendor=""              # manufacturer
model=""               # battery model
serial=""              # serial number
technology=""          # battery technology (e.g. Li-ion)
power_now=""           # whether battery is currently used
voltage_now=""         # voltage
voltage_min_design=""  # voltage at design
energy=""              # current energy/power left in battery (in Wh)
energy_full=""         # left max energy in battery after full charge (in Wh)
energy_full_design=""  # full energy at design (in Wh)
percentage_design=""   # percentage (relative to design energy)
percentage=""          # percentage (relative to left max energy)

battery_dirs="/sys/class/power_supply"
icon="/usr/share/icons/Adwaita/24x24/status/battery-empty-symbolic.symbolic.png"

# Helper function to return the value from a string like POWER_SUPPLY_NAME=value
get_value() { grep $1 $2 | sed "s/.*=//"; }

# Helper function to calculate the percentage of the battery relative to its
# design capacity and its current capacity. Values are printed out on one line.
get_percentages() {
    local file="$1" # uevent file

    awk '
    /ENERGY_FULL_DESIGN/ {
        E_full_design = $1;
        sub(/.*=/, "", E_full_design);
        E_full_design /= 1e6;
    }
    /ENERGY_FULL/ {
        E_full = $1;
        sub(/.*=/, "", E_full);
        E_full /= 1e6;
    }
    /ENERGY_NOW/ {
        E_now = $1;
        sub(/.*=/, "", E_now);
        E_now /= 1e6;
    }
    END{
        printf("%.2f %.2f", E_now/E_full_design*100, E_now/E_full*100);
    }' $file
}

# Read uevent file to set all variables
set_variables() {
    local file="$1" # uevent file to read battery data from

    vendor="$(get_value "MANUFACTURER" $file)"
    model="$(get_value "MODEL_NAME" $file)"
    serial="$(get_value "SERIAL_NUMBER" $file)"
    technology="$(get_value "TECHNOLOGY" $file)"
    power_now="$(get_value "POWER_NOW" $file)"
    voltage_now="$(get_value "VOLTAGE_NOW" $file | awk '{print $1/1e6}')"
    voltage_min_design="$(get_value "VOLTAGE_MIN_DESIGN" $file | awk '{print $1/1e6}')"
    energy="$(get_value "ENERGY_NOW" $file | awk '{print $1/1e6}')"
    energy_full="$(get_value "ENERGY_FULL=" $file | awk '{print $1/1e6}')"
    energy_full_design="$(get_value "ENERGY_FULL_DESIGN" $file | awk '{print $1/1e6}')"
    percentage_design="$(get_percentages $file | awk '{print $1}')"
    percentage="$(get_percentages $file | awk '{print $2}')"
}

# Helper function that gathers all battery data in one string that will be used
# in the notify-send command
notify_bat_msg() {
    local file="$1" # e.g. /sys/class/power_supply/BAT0/uevent
    local bat="$(basename $(dirname $1))" # e.g. BAT0
    local all=""

    # set global variables
    set_variables $file

    all+="\n\n$bat\n"
    all+="Vendor:             $vendor\n"
    all+="Model:              $model\n"
    all+="Serial:             $serial\n"
    all+="Technology:         $technology\n"
    all+="Voltage-design:     $voltage_min_design V\n"
    all+="Voltage:            $voltage_now V\n"
    all+="Energy:             $energy Wh\n"
    all+="Energy-full:        $energy_full Wh\n"
    all+="Energy-full-design: $energy_full_design Wh\n"
    all+="Percentage:         ${percentage}%\n"
    all+="Percentage-design:  ${percentage_design}%"
    echo "$all"
}

# Use notify-send command to show battery data
notify_cmd() {
    local bat_dirs="$1" # directory where BAT0 located (and eventually also BAT1)
    local number_batteries="$(find $bat_dirs -name "BAT*" | wc -l)"
    local msg="Batteries in system: $number_batteries"
    local ic="$2"

    for b in $bat_dirs/BAT*; do
        msg+="$(notify_bat_msg "$b/uevent")"
    done

    notify-send "Battery Information" "$msg" -i $ic -u critical
}

notify_cmd $battery_dirs $icon


text:
package org.apereo.cas.configuration.model.support;

import org.apereo.cas.configuration.support.Beans;

import java.io.Serializable;

/**
 * This is {@link ConnectionPoolingProperties}.
 *
 * @author Misagh Moayyed
 * @since 5.0.0
 */
public class ConnectionPoolingProperties implements Serializable {
    private static final long serialVersionUID = -5307463292890944799L;

    /**
     * Controls the maximum size that the pool is allowed to reach, including both idle and in-use connections.
     */
    private int minSize = 6;

    /**
     * Controls the maximum number of connections to keep in the pool, including both idle and in-use connections.
     */
    private int maxSize = 18;

    /**
     * Sets the maximum time in seconds that this data source will wait
     * while attempting to connect to a database.
     *
     * A value of zero specifies that the timeout is the default system timeout
     * if there is one; otherwise, it specifies that there is no timeout.
     */
    private String maxWait = "PT2S";

    /**
     * Whether or not pool suspension is allowed.
     *
     * There is a performance impact when pool suspension is enabled.
     * Unless you need it (for a redundancy system for example) do not enable it.
     */
    private boolean suspension;

    /**
     * The maximum number of milliseconds that the pool will wait for a connection to be validated as alive.
     */
    private long timeoutMillis = 1_000;

    public long getTimeoutMillis() {
        return timeoutMillis;
    }

    public void setTimeoutMillis(final long timeoutMillis) {
        this.timeoutMillis = timeoutMillis;
    }

    public boolean isSuspension() {
        return suspension;
    }

    public void setSuspension(final boolean suspension) {
        this.suspension = suspension;
    }

    public int getMinSize() {
        return minSize;
    }

    public void setMinSize(final int minSize) {
        this.minSize = minSize;
    }

    public int getMaxSize() {
        return maxSize;
    }

    public void setMaxSize(final int maxSize) {
        this.maxSize = maxSize;
    }

    public long getMaxWait() {
        return Beans.newDuration(maxWait).toMillis();
    }

    public void setMaxWait(final String maxWait) {
        this.maxWait = maxWait;
    }
}


text:
# ALMoviePlayerController

ALMoviePlayerController is a drop-in replacement for MPMoviePlayerController that exposes the UI elements and allows for maximum customization.

### Preview

**ALMoviePlayerController on iPad, iOS 7.0**

![Preview1](http://alobi.github.io/ALMoviePlayerController/screenshots/screenshot2.png)

**ALMoviePlayerController on iPhone, iOS 6.1**

![Preview2](http://alobi.github.io/ALMoviePlayerController/screenshots/screenshot1.png)

### Features

* Drop-in replacement for ```MPMoviePlayerController```
* Many different customization options, or you can go with the stock Apple look
* Portrait and landscape support
* Universal (iPhone and iPad) support
* iOS 5.0 - iOS 7 support
* Lightweight, stable component with small memory footprint

## Installation

Installation is easy.

### Cocoapods

1. Add ```pod 'ALMoviePlayerController', '~>0.3.0'``` to your Podfile
2. ```#import <ALMoviePlayerController/ALMoviePlayerController.h>``` in your view of choice

### Manually

1. [Download the ZIP](https://github.com/alobi/ALMoviePlayerController/archive/master.zip) from Github and copy the ALMoviePlayerController directory to your project
2. Link the ```QuartzCore.framework``` and ```MediaPlayer.framework``` library in your project's Build Phases
3. ```#import "ALMoviePlayerController.h"``` in your view of choice

### Tested Environments

ALMoviePlayerController has been tested to work on iOS 5.0, 5.1 and 6.0 (simulator), and iOS 6.1 and 7.0 (device). ALMoviePlayerController requires that ARC be enabled.

## Example Usage

The process is as follows:

1. Create an ```ALMoviePlayerController``` movie player and assign yourself as its delegate
2. Create the ```ALMoviePlayerControls``` controls (and optionally customize)
3. Assign the controls to the movie player
4. Set the movie player's ```contentURL```, which will start playing the movie
5. On device rotation, adjust movie player frame if it's not in fullscreen (when in fullscreen, rotation is handled automatically)
6. Implement ```ALMoviePlayerController``` delegate methods

**In code:**

```objc
@property (nonatomic, strong) ALMoviePlayerController *moviePlayer;

//...

// create a movie player
self.moviePlayer = [[ALMoviePlayerController alloc] initWithFrame:self.view.frame];
self.moviePlayer.delegate = self; //IMPORTANT!

// create the controls
ALMoviePlayerControls *movieControls = [[ALMoviePlayerControls alloc] initWithMoviePlayer:self.moviePlayer style:ALMoviePlayerControlsStyleDefault];

// optionally customize the controls here...
/*
[movieControls setBarColor:[UIColor colorWithRed:195/255.0 green:29/255.0 blue:29/255.0 alpha:0.5]];
[movieControls setTimeRemainingDecrements:YES];
[movieControls setFadeDelay:2.0];
[movieControls setBarHeight:100.f];
[movieControls setSeekRate:2.f];
 */

// assign the controls to the movie player
[self.moviePlayer setControls:movieControls];

// add movie player to your view
[self.view addSubview:self.moviePlayer.view];

//set contentURL (this will automatically start playing the movie)
[self.moviePlayer setContentURL:[NSURL URLWithString:@"http://archive.org/download/WaltDisneyCartoons-MickeyMouseMinnieMouseDonaldDuckGoofyAndPluto/WaltDisneyCartoons-MickeyMouseMinnieMouseDonaldDuckGoofyAndPluto-HawaiianHoliday1937-Video.mp4"]];
```

**On rotation:**

```objc
if (!self.moviePlayer.isFullscreen) {
    [self.moviePlayer setFrame:frame];
    //"frame" is whatever the movie player's frame should be at that given moment
}
```

**Note:** you MUST use ```[ALMoviePlayerController setFrame:]``` to adjust frame, NOT ```[ALMoviePlayerController.view setFrame:]```

### Delegate methods

```objc
@required
- (void)moviePlayerWillMoveFromWindow;
```

```objc
@optional
- (void)movieTimedOut;
```

**Note:** ```moviePlayerWillMoveFromWindow``` is required for fullscreen mode to work properly. It should be used to re-add the movie player to your view controller's view (because during the transition to fullscreen, it was moved to ```[[UIApplication sharedApplication] keyWindow]```.

Your code might look something like this:

```objc
- (void)moviePlayerWillMoveFromWindow {
    if (![self.view.subviews containsObject:self.moviePlayer.view])
        [self.view addSubview:self.moviePlayer.view];

    [self.moviePlayer setFrame:frame];
}
```

### Controls Properties

ALMoviePlayerControls has the following editable properties:

```objc
/**
 The style of the controls. Can be changed on the fly.

 Default value is ALMoviePlayerControlsStyleDefault
 */
@property (nonatomic, assign) ALMoviePlayerControlsStyle style;

/**
 The state of the controls.
 */
@property (nonatomic, readonly) ALMoviePlayerControlsState state;

/**
 The color of the control bars.

 Default value is black with a hint of transparency.
 */
@property (nonatomic, strong) UIColor *barColor;

/**
 The height of the control bars.

 Default value is 70.f for iOS7+ and 50.f for previous versions.
 */
@property (nonatomic, assign) CGFloat barHeight;

/**
 The amount of time that the controls should stay on screen before automatically hiding.

 Default value is 5 seconds.
 */
@property (nonatomic, assign) NSTimeInterval fadeDelay;

/**
 The rate at which the movie should fastforward or rewind.

 Default value is 3x.
 */
@property (nonatomic, assign) float seekRate;

/**
 Should the time-remaining number decrement as the video plays?

 Default value is NO.
 */
@property (nonatomic) BOOL timeRemainingDecrements;

/**
 Are the controls currently showing on screen?
 */
@property (nonatomic, readonly, getter = isShowing) BOOL showing;
```

### Controls Styles

```objc
typedef enum {
    /** Controls will appear in a bottom bar */
    ALMoviePlayerControlsStyleEmbedded,

    /** Controls will appear in a top bar and bottom bar */
    ALMoviePlayerControlsStyleFullscreen,

    /** Controls will appear as ALMoviePlayerControlsStyleFullscreen when in fullscreen and ALMoviePlayerControlsStyleEmbedded at all other times */
    ALMoviePlayerControlsStyleDefault,

    /** Controls will not appear */
    ALMoviePlayerControlsStyleNone,

} ALMoviePlayerControlsStyle;
```

## Suggestions?

If you have any suggestions, let me know! If you find any bugs, please open a new issue.

## Contact Me

You can reach me anytime at the addresses below. If you use the library, feel free to give me a shoutout on Twitter to let me know how you like it. I'd love to hear your thoughts.

Github: [alobi](https://github.com/alobi)

Twitter: [@lobi4nco](https://twitter.com/lobi4nco)

Email: [anthony@lobian.co](mailto:anthony@lobian.co)

## Credits & License

ALMoviePlayerController is developed and maintained by Anthony Lobianco ([@lobi4nco](https://twitter.com/lobi4nco)). Licensed under the MIT License. Basically, I would appreciate attribution if you use it.

Enjoy!

(⌐■_■)


text:
package com.plivo.helper.api.response.pricing;

import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;

public class RatesPrefixes {
	public String rate ;

	@SerializedName("prefix")
	public ArrayList<String> numberPrefixes ;

	public RatesPrefixes() {
		// empty
	}

	@Override
	public String toString() {
		return "RatesPrefixes [rate=" + rate + ", numberPrefixes="
				+ numberPrefixes + "]";
	}

}


text:
namespace metrics {

namespace {

// Converts a vector of values into a protobuf RepeatedField. Although there is
// no hard requirement, T should be a POD type since that is what RepeatedField
// is used for in protobuf classes.
template <typename T>
void InitializeRepeatedField(const std::vector<T>& input,
                             ::google::protobuf::RepeatedField<T>* output) {
  *output = ::google::protobuf::RepeatedField<T>(input.begin(), input.end());
}

}  // namespace

// Test class for LeakDetectorController that exposes protected methods.
class TestLeakDetectorController : public LeakDetectorController {
 public:
  using LeakDetectorController::OnLeaksFound;

  TestLeakDetectorController() {}

 private:
  DISALLOW_COPY_AND_ASSIGN(TestLeakDetectorController);
};

// Use a global instance of the test class because LeakDetectorController
// initializes class LeakDetector, which can only be initialized once, enforced
// by an internal CHECK. Multiple initializations of LeakDetectorController in
// the same process will result in multiple initializations of class
// LeakDetector.
//
// See src/components/metrics/leak_detector/leak_detector.h for more info.
base::LazyInstance<TestLeakDetectorController> g_instance =
    LAZY_INSTANCE_INITIALIZER;

TEST(LeakDetectorControllerTest, SingleReport) {
  MemoryLeakReportProto report;
  report.set_size_bytes(8);
  InitializeRepeatedField({1, 2, 3, 4}, report.mutable_call_stack());

  TestLeakDetectorController* controller = &g_instance.Get();
  controller->OnLeaksFound({report});

  std::vector<MemoryLeakReportProto> stored_reports;
  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(1U, stored_reports.size());

  const MemoryLeakReportProto& proto = stored_reports[0];
  EXPECT_EQ(8U, proto.size_bytes());
  ASSERT_EQ(4, proto.call_stack().size());
  EXPECT_EQ(1U, proto.call_stack().Get(0));
  EXPECT_EQ(2U, proto.call_stack().Get(1));
  EXPECT_EQ(3U, proto.call_stack().Get(2));
  EXPECT_EQ(4U, proto.call_stack().Get(3));

  // Check that default leak detector parameters are stored in the leak report.
  // Default values are listed in leak_detector_controller.cc.
  EXPECT_DOUBLE_EQ(1.0f / 256, proto.params().sampling_rate());
  EXPECT_EQ(4U, proto.params().max_stack_depth());
  EXPECT_EQ(32U * 1024 * 1024, proto.params().analysis_interval_bytes());
  EXPECT_EQ(4U, proto.params().size_suspicion_threshold());
  EXPECT_EQ(4U, proto.params().call_stack_suspicion_threshold());

  // No more reports.
  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(0U, stored_reports.size());
}

TEST(LeakDetectorControllerTest, SingleReportHistory) {
  MemoryLeakReportProto report;

  auto* entry = report.add_alloc_breakdown_history();
  InitializeRepeatedField({100, 200, 300}, entry->mutable_counts_by_size());
  entry->set_count_for_call_stack(15);

  entry = report.add_alloc_breakdown_history();
  InitializeRepeatedField({150, 250, 350, 650},
                          entry->mutable_counts_by_size());
  entry->set_count_for_call_stack(30);

  entry = report.add_alloc_breakdown_history();
  InitializeRepeatedField({200, 300, 400, 700, 800},
                          entry->mutable_counts_by_size());
  entry->set_count_for_call_stack(45);

  TestLeakDetectorController* controller = &g_instance.Get();
  controller->OnLeaksFound({report});

  std::vector<MemoryLeakReportProto> stored_reports;
  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(1U, stored_reports.size());

  const auto& history = stored_reports[0].alloc_breakdown_history();
  ASSERT_EQ(3, history.size());

  ASSERT_EQ(3, history.Get(0).counts_by_size().size());
  EXPECT_EQ(100U, history.Get(0).counts_by_size(0));
  EXPECT_EQ(200U, history.Get(0).counts_by_size(1));
  EXPECT_EQ(300U, history.Get(0).counts_by_size(2));
  EXPECT_EQ(15U, history.Get(0).count_for_call_stack());

  ASSERT_EQ(4, history.Get(1).counts_by_size_size());
  EXPECT_EQ(150U, history.Get(1).counts_by_size(0));
  EXPECT_EQ(250U, history.Get(1).counts_by_size(1));
  EXPECT_EQ(350U, history.Get(1).counts_by_size(2));
  EXPECT_EQ(650U, history.Get(1).counts_by_size(3));
  EXPECT_EQ(30U, history.Get(1).count_for_call_stack());

  ASSERT_EQ(5, history.Get(2).counts_by_size_size());
  EXPECT_EQ(200U, history.Get(2).counts_by_size(0));
  EXPECT_EQ(300U, history.Get(2).counts_by_size(1));
  EXPECT_EQ(400U, history.Get(2).counts_by_size(2));
  EXPECT_EQ(700U, history.Get(2).counts_by_size(3));
  EXPECT_EQ(800U, history.Get(2).counts_by_size(4));
  EXPECT_EQ(45U, history.Get(2).count_for_call_stack());

  // No more reports.
  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(0U, stored_reports.size());
}

TEST(LeakDetectorControllerTest, MultipleReportsSeparately) {
  TestLeakDetectorController* controller = &g_instance.Get();
  std::vector<MemoryLeakReportProto> stored_reports;

  // Pass in first report.
  MemoryLeakReportProto report1;
  report1.set_size_bytes(8);
  InitializeRepeatedField({1, 2, 3, 4}, report1.mutable_call_stack());

  controller->OnLeaksFound({report1});
  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(1U, stored_reports.size());

  EXPECT_EQ(8U, stored_reports[0].size_bytes());
  ASSERT_EQ(4, stored_reports[0].call_stack().size());
  EXPECT_EQ(1U, stored_reports[0].call_stack().Get(0));
  EXPECT_EQ(2U, stored_reports[0].call_stack().Get(1));
  EXPECT_EQ(3U, stored_reports[0].call_stack().Get(2));
  EXPECT_EQ(4U, stored_reports[0].call_stack().Get(3));

  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(0U, stored_reports.size());

  // Pass in second report.
  MemoryLeakReportProto report2;
  report2.set_size_bytes(16);
  InitializeRepeatedField({5, 6, 7, 8, 9, 10}, report2.mutable_call_stack());
  controller->OnLeaksFound({report2});

  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(1U, stored_reports.size());

  EXPECT_EQ(16U, stored_reports[0].size_bytes());
  ASSERT_EQ(6, stored_reports[0].call_stack().size());
  EXPECT_EQ(5U, stored_reports[0].call_stack().Get(0));
  EXPECT_EQ(6U, stored_reports[0].call_stack().Get(1));
  EXPECT_EQ(7U, stored_reports[0].call_stack().Get(2));
  EXPECT_EQ(8U, stored_reports[0].call_stack().Get(3));
  EXPECT_EQ(9U, stored_reports[0].call_stack().Get(4));
  EXPECT_EQ(10U, stored_reports[0].call_stack().Get(5));

  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(0U, stored_reports.size());

  // Pass in third report.
  MemoryLeakReportProto report3;
  report3.set_size_bytes(24);
  InitializeRepeatedField({9, 10, 11, 12, 13, 14, 15, 16},
                          report3.mutable_call_stack());
  controller->OnLeaksFound({report3});

  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(1U, stored_reports.size());

  EXPECT_EQ(24U, stored_reports[0].size_bytes());
  ASSERT_EQ(8, stored_reports[0].call_stack().size());
  EXPECT_EQ(9U, stored_reports[0].call_stack().Get(0));
  EXPECT_EQ(10U, stored_reports[0].call_stack().Get(1));
  EXPECT_EQ(11U, stored_reports[0].call_stack().Get(2));
  EXPECT_EQ(12U, stored_reports[0].call_stack().Get(3));
  EXPECT_EQ(13U, stored_reports[0].call_stack().Get(4));
  EXPECT_EQ(14U, stored_reports[0].call_stack().Get(5));
  EXPECT_EQ(15U, stored_reports[0].call_stack().Get(6));
  EXPECT_EQ(16U, stored_reports[0].call_stack().Get(7));

  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(0U, stored_reports.size());
}

TEST(LeakDetectorControllerTest, MultipleReportsTogether) {
  std::vector<MemoryLeakReportProto> reports(3);
  reports[0].set_size_bytes(8);
  InitializeRepeatedField({1, 2, 3, 4}, reports[0].mutable_call_stack());
  reports[1].set_size_bytes(16);
  InitializeRepeatedField({5, 6, 7, 8, 9, 10}, reports[1].mutable_call_stack());
  reports[2].set_size_bytes(24);
  InitializeRepeatedField({9, 10, 11, 12, 13, 14, 15, 16},
                          reports[2].mutable_call_stack());

  TestLeakDetectorController* controller = &g_instance.Get();
  controller->OnLeaksFound(reports);

  std::vector<MemoryLeakReportProto> stored_reports;

  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(3U, stored_reports.size());

  EXPECT_EQ(8U, stored_reports[0].size_bytes());
  ASSERT_EQ(4, stored_reports[0].call_stack().size());
  EXPECT_EQ(1U, stored_reports[0].call_stack().Get(0));
  EXPECT_EQ(2U, stored_reports[0].call_stack().Get(1));
  EXPECT_EQ(3U, stored_reports[0].call_stack().Get(2));
  EXPECT_EQ(4U, stored_reports[0].call_stack().Get(3));

  EXPECT_EQ(16U, stored_reports[1].size_bytes());
  ASSERT_EQ(6, stored_reports[1].call_stack().size());
  EXPECT_EQ(5U, stored_reports[1].call_stack().Get(0));
  EXPECT_EQ(6U, stored_reports[1].call_stack().Get(1));
  EXPECT_EQ(7U, stored_reports[1].call_stack().Get(2));
  EXPECT_EQ(8U, stored_reports[1].call_stack().Get(3));
  EXPECT_EQ(9U, stored_reports[1].call_stack().Get(4));
  EXPECT_EQ(10U, stored_reports[1].call_stack().Get(5));

  EXPECT_EQ(24U, stored_reports[2].size_bytes());
  ASSERT_EQ(8, stored_reports[2].call_stack().size());
  EXPECT_EQ(9U, stored_reports[2].call_stack().Get(0));
  EXPECT_EQ(10U, stored_reports[2].call_stack().Get(1));
  EXPECT_EQ(11U, stored_reports[2].call_stack().Get(2));
  EXPECT_EQ(12U, stored_reports[2].call_stack().Get(3));
  EXPECT_EQ(13U, stored_reports[2].call_stack().Get(4));
  EXPECT_EQ(14U, stored_reports[2].call_stack().Get(5));
  EXPECT_EQ(15U, stored_reports[2].call_stack().Get(6));
  EXPECT_EQ(16U, stored_reports[2].call_stack().Get(7));

  controller->GetLeakReports(&stored_reports);
  ASSERT_EQ(0U, stored_reports.size());
}

}  // namespace metrics


text:
ALTER TABLE ACTIVITY_TYPE ADD COLUMN ACTIVE_FLAG varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'Y';

ALTER TABLE PROTOCOL_TYPE ADD COLUMN ACTIVE_FLAG varchar(1) COLLATE utf8_bin NOT NULL DEFAULT 'Y';


text:
package android.text.method;

import android.test.AndroidTestCase;

import java.text.BreakIterator;
import java.util.Locale;

// TODO(Bug: 24062099): Add more tests for non-ascii text.
public class WordIteratorTest  extends AndroidTestCase {

    public void testSetCharSequence() {
        final String text = "text";
        WordIterator wordIterator = new WordIterator(Locale.ENGLISH);

        try {
            wordIterator.setCharSequence(text, 100, 100);
            fail("setCharSequence with invalid start and end values should throw "
                    + "IndexOutOfBoundsException.");
        } catch (IndexOutOfBoundsException e) {
        }
        try {
            wordIterator.setCharSequence(text, -100, -100);
            fail("setCharSequence with invalid start and end values should throw "
                    + "IndexOutOfBoundsException.");
        } catch (IndexOutOfBoundsException e) {
        }

        wordIterator.setCharSequence(text, 0, text.length());
        wordIterator.setCharSequence(text, 0, 0);
        wordIterator.setCharSequence(text, text.length(), text.length());
    }

    public void testPreceding() {
        final String text = "abc def-ghi. jkl";
        WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
        wordIterator.setCharSequence(text, 0, text.length());

        try {
            wordIterator.preceding(-1);
            fail("preceding with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }
        try {
            wordIterator.preceding(text.length() + 1);
            fail("preceding with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }

        assertEquals(BreakIterator.DONE, wordIterator.preceding(text.indexOf('a')));
        assertEquals(text.indexOf('a'), wordIterator.preceding(text.indexOf('c')));
        assertEquals(text.indexOf('a'), wordIterator.preceding(text.indexOf('d')));
        assertEquals(text.indexOf('d'), wordIterator.preceding(text.indexOf('e')));
        assertEquals(text.indexOf('d'), wordIterator.preceding(text.indexOf('g')));
        assertEquals(text.indexOf('g'), wordIterator.preceding(text.indexOf('h')));
        assertEquals(text.indexOf('g'), wordIterator.preceding(text.indexOf('j')));
        assertEquals(text.indexOf('j'), wordIterator.preceding(text.indexOf('l')));
    }

    public void testFollowing() {
        final String text = "abc def-ghi. jkl";
        WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
        wordIterator.setCharSequence(text, 0, text.length());

        try {
            wordIterator.following(-1);
            fail("following with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }
        try {
            wordIterator.following(text.length() + 1);
            fail("following with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }

        assertEquals(text.indexOf('c') + 1, wordIterator.following(text.indexOf('a')));
        assertEquals(text.indexOf('c') + 1, wordIterator.following(text.indexOf('c')));
        assertEquals(text.indexOf('f') + 1, wordIterator.following(text.indexOf('c') + 1));
        assertEquals(text.indexOf('f') + 1, wordIterator.following(text.indexOf('d')));
        assertEquals(text.indexOf('i') + 1, wordIterator.following(text.indexOf('-')));
        assertEquals(text.indexOf('i') + 1, wordIterator.following(text.indexOf('g')));
        assertEquals(text.length(), wordIterator.following(text.indexOf('j')));
        assertEquals(BreakIterator.DONE, wordIterator.following(text.length()));
    }

    public void testIsBoundary() {
        final String text = "abc def-ghi. jkl";
        WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
        wordIterator.setCharSequence(text, 0, text.length());

        try {
            wordIterator.isBoundary(-1);
            fail("isBoundary with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }
        try {
            wordIterator.isBoundary(text.length() + 1);
            fail("isBoundary with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }

        assertTrue(wordIterator.isBoundary(text.indexOf('a')));
        assertFalse(wordIterator.isBoundary(text.indexOf('b')));
        assertTrue(wordIterator.isBoundary(text.indexOf('c') + 1));
        assertTrue(wordIterator.isBoundary(text.indexOf('d')));
        assertTrue(wordIterator.isBoundary(text.indexOf('-')));
        assertTrue(wordIterator.isBoundary(text.indexOf('g')));
        assertTrue(wordIterator.isBoundary(text.indexOf('.')));
        assertTrue(wordIterator.isBoundary(text.indexOf('j')));
        assertTrue(wordIterator.isBoundary(text.length()));
    }

    public void testNextBoundary() {
        final String text = "abc def-ghi. jkl";
        WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
        wordIterator.setCharSequence(text, 0, text.length());

        try {
            wordIterator.nextBoundary(-1);
            fail("nextBoundary with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }
        try {
            wordIterator.nextBoundary(text.length() + 1);
            fail("nextBoundary with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }

        int currentOffset = 0;
        currentOffset = wordIterator.nextBoundary(currentOffset);
        assertEquals(text.indexOf('c') + 1, currentOffset);

        currentOffset = wordIterator.nextBoundary(currentOffset);
        assertEquals(text.indexOf('d'), currentOffset);

        currentOffset = wordIterator.nextBoundary(currentOffset);
        assertEquals(text.indexOf('f') + 1, currentOffset);

        currentOffset = wordIterator.nextBoundary(currentOffset);
        assertEquals(text.indexOf('g'), currentOffset);

        currentOffset = wordIterator.nextBoundary(currentOffset);
        assertEquals(text.indexOf('i') + 1, currentOffset);

        currentOffset = wordIterator.nextBoundary(currentOffset);
        assertEquals(text.indexOf('.') + 1, currentOffset);

        currentOffset = wordIterator.nextBoundary(currentOffset);
        assertEquals(text.indexOf('j'), currentOffset);

        currentOffset = wordIterator.nextBoundary(currentOffset);
        assertEquals(text.length(), currentOffset);

        currentOffset = wordIterator.nextBoundary(currentOffset);
        assertEquals(BreakIterator.DONE, currentOffset);
    }

    public void testPrevBoundary() {
        final String text = "abc def-ghi. jkl";
        WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
        wordIterator.setCharSequence(text, 0, text.length());

        try {
            wordIterator.prevBoundary(-1);
            fail("prevBoundary with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }
        try {
            wordIterator.prevBoundary(text.length() + 1);
            fail("prevBoundary with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }

        int currentOffset = text.length();
        currentOffset = wordIterator.prevBoundary(currentOffset);
        assertEquals(text.indexOf('j'), currentOffset);

        currentOffset = wordIterator.prevBoundary(currentOffset);
        assertEquals(text.indexOf('.') + 1, currentOffset);

        currentOffset = wordIterator.prevBoundary(currentOffset);
        assertEquals(text.indexOf('i') + 1, currentOffset);

        currentOffset = wordIterator.prevBoundary(currentOffset);
        assertEquals(text.indexOf('g'), currentOffset);

        currentOffset = wordIterator.prevBoundary(currentOffset);
        assertEquals(text.indexOf('f') + 1, currentOffset);

        currentOffset = wordIterator.prevBoundary(currentOffset);
        assertEquals(text.indexOf('d'), currentOffset);

        currentOffset = wordIterator.prevBoundary(currentOffset);
        assertEquals(text.indexOf('c') + 1, currentOffset);

        currentOffset = wordIterator.prevBoundary(currentOffset);
        assertEquals(text.indexOf('a'), currentOffset);

        currentOffset = wordIterator.prevBoundary(currentOffset);
        assertEquals(BreakIterator.DONE, currentOffset);
    }

    public void testGetBeginning() {
        {
            final String text = "abc def-ghi. jkl";
            WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
            wordIterator.setCharSequence(text, 0, text.length());
            try {
                wordIterator.getBeginning(-1);
                fail("getBeginning with invalid offset should throw IllegalArgumentException.");
            } catch (IllegalArgumentException e) {
            }
            try {
                wordIterator.getBeginning(text.length() + 1);
                fail("getBeginning with invalid offset should throw IllegalArgumentException.");
            } catch (IllegalArgumentException e) {
            }
            try {
                wordIterator.getPrevWordBeginningOnTwoWordsBoundary(-1);
                fail("getPrevWordBeginningOnTwoWordsBoundary with invalid offset should throw "
                        + "IllegalArgumentException.");
            } catch (IllegalArgumentException e) {
            }
            try {
                wordIterator.getPrevWordBeginningOnTwoWordsBoundary(text.length() + 1);
                fail("getPrevWordBeginningOnTwoWordsBoundary with invalid offset should throw "
                        + "IllegalArgumentException.");
            } catch (IllegalArgumentException e) {
            }
        }

        {
            final String text = "abc def-ghi. jkl";
            WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
            wordIterator.setCharSequence(text, 0, text.length());

            assertEquals(text.indexOf('a'), wordIterator.getBeginning(text.indexOf('a')));
            assertEquals(text.indexOf('a'), wordIterator.getBeginning(text.indexOf('c')));
            assertEquals(text.indexOf('a'), wordIterator.getBeginning(text.indexOf('c') + 1));
            assertEquals(text.indexOf('d'), wordIterator.getBeginning(text.indexOf('d')));
            assertEquals(text.indexOf('d'), wordIterator.getBeginning(text.indexOf('-')));
            assertEquals(text.indexOf('g'), wordIterator.getBeginning(text.indexOf('g')));
            assertEquals(text.indexOf('g'), wordIterator.getBeginning(text.indexOf('.')));
            assertEquals(BreakIterator.DONE, wordIterator.getBeginning(text.indexOf('.') + 1));
            assertEquals(text.indexOf('j'), wordIterator.getBeginning(text.indexOf('j')));
            assertEquals(text.indexOf('j'), wordIterator.getBeginning(text.indexOf('l') + 1));

            for (int i = 0; i < text.length(); i++) {
                assertEquals(wordIterator.getBeginning(i),
                        wordIterator.getPrevWordBeginningOnTwoWordsBoundary(i));
            }
        }

        {
            // Japanese HIRAGANA letter + KATAKANA letters
            final String text = "\u3042\u30A2\u30A3\u30A4";
            WordIterator wordIterator = new WordIterator(Locale.JAPANESE);
            wordIterator.setCharSequence(text, 0, text.length());

            assertEquals(text.indexOf('\u3042'), wordIterator.getBeginning(text.indexOf('\u3042')));
            assertEquals(text.indexOf('\u30A2'), wordIterator.getBeginning(text.indexOf('\u30A2')));
            assertEquals(text.indexOf('\u30A2'), wordIterator.getBeginning(text.indexOf('\u30A4')));
            assertEquals(text.indexOf('\u30A2'), wordIterator.getBeginning(text.length()));

            assertEquals(text.indexOf('\u3042'),
                    wordIterator.getPrevWordBeginningOnTwoWordsBoundary(text.indexOf('\u3042')));
            assertEquals(text.indexOf('\u3042'),
                    wordIterator.getPrevWordBeginningOnTwoWordsBoundary(text.indexOf('\u30A2')));
            assertEquals(text.indexOf('\u30A2'),
                    wordIterator.getPrevWordBeginningOnTwoWordsBoundary(text.indexOf('\u30A4')));
            assertEquals(text.indexOf('\u30A2'),
                    wordIterator.getPrevWordBeginningOnTwoWordsBoundary(text.length()));
        }
    }

    public void testGetEnd() {
        {
            final String text = "abc def-ghi. jkl";
            WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
            wordIterator.setCharSequence(text, 0, text.length());
            try {
                wordIterator.getEnd(-1);
                fail("getEnd with invalid offset should throw IllegalArgumentException.");
            } catch (IllegalArgumentException e) {
            }
            try {
                wordIterator.getEnd(text.length() + 1);
                fail("getEnd with invalid offset should throw IllegalArgumentException.");
            } catch (IllegalArgumentException e) {
            }
            try {
                wordIterator.getNextWordEndOnTwoWordBoundary(-1);
                fail("getNextWordEndOnTwoWordBoundary with invalid offset should throw "
                        + "IllegalArgumentException.");
            } catch (IllegalArgumentException e) {
            }
            try {
                wordIterator.getNextWordEndOnTwoWordBoundary(text.length() + 1);
                fail("getNextWordEndOnTwoWordBoundary with invalid offset should throw "
                        + "IllegalArgumentException.");
            } catch (IllegalArgumentException e) {
            }
        }

        {
            final String text = "abc def-ghi. jkl";
            WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
            wordIterator.setCharSequence(text, 0, text.length());

            assertEquals(text.indexOf('c') + 1, wordIterator.getEnd(text.indexOf('a')));
            assertEquals(text.indexOf('c') + 1, wordIterator.getEnd(text.indexOf('c')));
            assertEquals(text.indexOf('c') + 1, wordIterator.getEnd(text.indexOf('c') + 1));
            assertEquals(text.indexOf('f') + 1, wordIterator.getEnd(text.indexOf('d')));
            assertEquals(text.indexOf('f') + 1, wordIterator.getEnd(text.indexOf('f') + 1));
            assertEquals(text.indexOf('i') + 1, wordIterator.getEnd(text.indexOf('g')));
            assertEquals(text.indexOf('i') + 1, wordIterator.getEnd(text.indexOf('i') + 1));
            assertEquals(BreakIterator.DONE, wordIterator.getEnd(text.indexOf('.') + 1));
            assertEquals(text.indexOf('l') + 1, wordIterator.getEnd(text.indexOf('j')));
            assertEquals(text.indexOf('l') + 1, wordIterator.getEnd(text.indexOf('l') + 1));

            for (int i = 0; i < text.length(); i++) {
                assertEquals(wordIterator.getEnd(i),
                        wordIterator.getNextWordEndOnTwoWordBoundary(i));
            }
        }

        {
            // Japanese HIRAGANA letter + KATAKANA letters
            final String text = "\u3042\u30A2\u30A3\u30A4";
            WordIterator wordIterator = new WordIterator(Locale.JAPANESE);
            wordIterator.setCharSequence(text, 0, text.length());

            assertEquals(text.indexOf('\u3042') + 1, wordIterator.getEnd(text.indexOf('\u3042')));
            assertEquals(text.indexOf('\u3042') + 1, wordIterator.getEnd(text.indexOf('\u30A2')));
            assertEquals(text.indexOf('\u30A4') + 1, wordIterator.getEnd(text.indexOf('\u30A4')));
            assertEquals(text.indexOf('\u30A4') + 1,
                    wordIterator.getEnd(text.indexOf('\u30A4') + 1));

            assertEquals(text.indexOf('\u3042') + 1,
                    wordIterator.getNextWordEndOnTwoWordBoundary(text.indexOf('\u3042')));
            assertEquals(text.indexOf('\u30A4') + 1,
                    wordIterator.getNextWordEndOnTwoWordBoundary(text.indexOf('\u30A2')));
            assertEquals(text.indexOf('\u30A4') + 1,
                    wordIterator.getNextWordEndOnTwoWordBoundary(text.indexOf('\u30A4')));
            assertEquals(text.indexOf('\u30A4') + 1,
                    wordIterator.getNextWordEndOnTwoWordBoundary(text.indexOf('\u30A4') + 1));
        }
    }

    public void testGetPunctuationBeginning() {
        final String text = "abc!? (^^;) def";
        WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
        wordIterator.setCharSequence(text, 0, text.length());

        // TODO: Shouldn't this throw an exception?
        assertEquals(BreakIterator.DONE, wordIterator.getPunctuationBeginning(BreakIterator.DONE));

        try {
            wordIterator.getPunctuationBeginning(-2);
            fail("getPunctuationBeginning with invalid offset should throw "
                    + "IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }
        try {
            wordIterator.getPunctuationBeginning(text.length() + 1);
            fail("getPunctuationBeginning with invalid offset should throw "
                    + "IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }

        assertEquals(BreakIterator.DONE, wordIterator.getPunctuationBeginning(text.indexOf('a')));
        assertEquals(BreakIterator.DONE, wordIterator.getPunctuationBeginning(text.indexOf('c')));
        assertEquals(text.indexOf('!'), wordIterator.getPunctuationBeginning(text.indexOf('!')));
        assertEquals(text.indexOf('!'),
                wordIterator.getPunctuationBeginning(text.indexOf('?') + 1));
        assertEquals(text.indexOf(';'), wordIterator.getPunctuationBeginning(text.indexOf(';')));
        assertEquals(text.indexOf(';'), wordIterator.getPunctuationBeginning(text.indexOf(')')));
        assertEquals(text.indexOf(';'), wordIterator.getPunctuationBeginning(text.length()));
    }

    public void testGetPunctuationEnd() {
        final String text = "abc!? (^^;) def";
        WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
        wordIterator.setCharSequence(text, 0, text.length());

        // TODO: Shouldn't this throw an exception?
        assertEquals(BreakIterator.DONE, wordIterator.getPunctuationEnd(BreakIterator.DONE));

        try {
            wordIterator.getPunctuationEnd(-2);
            fail("getPunctuationEnd with invalid offset should throw IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }
        try {
            wordIterator.getPunctuationEnd(text.length() + 1);
            fail("getPunctuationBeginning with invalid offset should throw "
                    + "IllegalArgumentException.");
        } catch (IllegalArgumentException e) {
        }

        assertEquals(text.indexOf('?') + 1, wordIterator.getPunctuationEnd(text.indexOf('a')));
        assertEquals(text.indexOf('?') + 1, wordIterator.getPunctuationEnd(text.indexOf('?') + 1));
        assertEquals(text.indexOf('(') + 1, wordIterator.getPunctuationEnd(text.indexOf('(')));
        assertEquals(text.indexOf(')') + 1, wordIterator.getPunctuationEnd(text.indexOf('(') + 2));
        assertEquals(text.indexOf(')') + 1, wordIterator.getPunctuationEnd(text.indexOf(')') + 1));
        assertEquals(BreakIterator.DONE, wordIterator.getPunctuationEnd(text.indexOf('d')));
        assertEquals(BreakIterator.DONE, wordIterator.getPunctuationEnd(text.length()));
    }

    public void testIsAfterPunctuation() {
        final String text = "abc!? (^^;) def";
        WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
        wordIterator.setCharSequence(text, 0, text.length());

        assertFalse(wordIterator.isAfterPunctuation(text.indexOf('a')));
        assertFalse(wordIterator.isAfterPunctuation(text.indexOf('!')));
        assertTrue(wordIterator.isAfterPunctuation(text.indexOf('?')));
        assertTrue(wordIterator.isAfterPunctuation(text.indexOf('?') + 1));
        assertFalse(wordIterator.isAfterPunctuation(text.indexOf('d')));

        assertFalse(wordIterator.isAfterPunctuation(BreakIterator.DONE));
        assertFalse(wordIterator.isAfterPunctuation(text.length() + 1));
    }

    public void testIsOnPunctuation() {
        final String text = "abc!? (^^;) def";
        WordIterator wordIterator = new WordIterator(Locale.ENGLISH);
        wordIterator.setCharSequence(text, 0, text.length());

        assertFalse(wordIterator.isOnPunctuation(text.indexOf('a')));
        assertTrue(wordIterator.isOnPunctuation(text.indexOf('!')));
        assertTrue(wordIterator.isOnPunctuation(text.indexOf('?')));
        assertFalse(wordIterator.isOnPunctuation(text.indexOf('?') + 1));
        assertTrue(wordIterator.isOnPunctuation(text.indexOf(')')));
        assertFalse(wordIterator.isOnPunctuation(text.indexOf(')') + 1));
        assertFalse(wordIterator.isOnPunctuation(text.indexOf('d')));

        assertFalse(wordIterator.isOnPunctuation(BreakIterator.DONE));
        assertFalse(wordIterator.isOnPunctuation(text.length()));
        assertFalse(wordIterator.isOnPunctuation(text.length() + 1));
    }
}


text:
HMote [![Build Status](https://travis-ci.org/frodsan/hmote.svg)](https://travis-ci.org/frodsan/hmote)
=====

Minimal template engine with default escaping.

Description
-----------

HMote is a fork of [Mote][mote] that uses [Hache][hache]
to auto-escape HTML special characters.

Installation
------------

Add this line to your application's Gemfile:

```ruby
gem "hmote"
```

And then execute:

```
$ bundle
```

Or install it yourself as:

```
$ gem install hmote
```

Basic Usage
-----------

This is a basic example:

```ruby
require "hmote"

template = HMote.parse("your template goes here!")
template.call
# => "your template goes here!"
```

HMote recognizes three tags to evaluate Ruby code: `%`, `{{}}` and `<? ?>`.
The difference between them is that while the `%` and `<? ?>` tags only
evaluate the code, the `{{}}` tag also prints the result to the template.

Imagine that your template looks like this:

```
% # single-line code
% gems = ["rack", "cuba", "hmote"]

<?
  # multi-line code
  sorted = gems.sort
?>

<ul>
% sorted.each do |gem|
  <li>{{ gem }}</li>
% end
</ul>
```

The generated result will be:

```html
<ul>
  <li>cuba</li>
  <li>hmote</li>
  <li>rack</li>
</ul>
```

Parameters
----------

The values passed to the template are available as local variables:

```ruby
template = HMote.parse("Hello {{ name }}", self, [:name])
template.call(name: "Ruby")
# => Hello Ruby
```

You can also use the `params` local variable to access the given
parameters:

```ruby
template = HMote.parse("Hello {{ params[:name] }}", self)
template.call(name: "Ruby")
# => Hello Ruby
```

Auto-escaping
-------------

By default, hmote escapes HTML special characters to prevent [XSS][xss]
attacks. You can start the expression with an exclamation mark to disable
escaping for that expression:

```ruby
template = HMote.parse("Hello {{ name }}", self, [:name])
template.call(name: "<b>World</b>")
# => Hello <b>World<b>

template = HMote.parse("Hello {{! name }}", self, [:name])
template.call(name: "<b>World</b>")
# => Hello <b>World</b>
```

HMote::Helpers
--------------

There's a helper available in the `HMote::Helpers` module, and you are
free to include it in your code. To do it, just type:

```ruby
include HMote::Helpers
```

### Using the hmote helper

The `hmote` helper receives a file name and a hash and returns the rendered
version of its content. The compiled template is cached for subsequent calls.

```ruby
hmote("test/basic.mote", n: 3)
# => "***\n"
```

### Template caching

When the `hmote` helper is first called with a template name, the
file is read and parsed, and a proc is created and stored in the
current thread. The parameters passed are defined as local variables
in the template. If you want to provide more parameters once the template
was cached, you won't be able to access the values as local variables,
but you can always access the `params` hash.

For example:

```ruby
# First call
hmote("foo.mote", a: 1, b: 2)
```

Contributing
------------

Fork the project with:

```
$ git clone git@github.com:frodsan/hmote.git
```

To install dependencies, use:

```
$ bundle install
```

To run the test suite, do:

```
$ rake test
```

For bug reports and pull requests use [GitHub][issues].

License
-------

HMote is released under the [MIT License][mit].

[mit]: http://www.opensource.org/licenses/MIT
[mote]: https://github.com/soveran/mote
[hache]: https://github.com/frodsan/hache
[issues]: https://github.com/frodsan/hmote/issues
[xss]: http://en.wikipedia.org/wiki/Cross-Site_Scripting


text:
<?php

namespace Backend\Modules\Users\Actions;

use Backend\Core\Engine\Base\ActionIndex as BackendBaseActionIndex;
use Backend\Core\Engine\Authentication as BackendAuthentication;
use Backend\Core\Engine\DataGridDB as BackendDataGridDB;
use Backend\Core\Engine\Language as BL;
use Backend\Core\Engine\Model as BackendModel;
use Backend\Modules\Users\Engine\Model as BackendUsersModel;

/**
 * This is the index-action (default), it will display the users-overview
 *
 * @author Tijs Verkoyen <tijs@sumocoders.be>
 * @author Davy Hellemans <davy.hellemans@netlash.com>
 */
class Index extends BackendBaseActionIndex
{
    /**
     * Execute the action
     */
    public function execute()
    {
        parent::execute();
        $this->loadDataGrid();
        $this->parse();
        $this->display();
    }

    /**
     * Load the datagrid.
     */
    private function loadDataGrid()
    {
        // create datagrid with an overview of all active and undeleted users
        $this->dataGrid = new BackendDataGridDB(BackendUsersModel::QRY_BROWSE, array('N'));

        // check if this action is allowed
        if (BackendAuthentication::isAllowedAction('Edit')) {
            // add column
            $this->dataGrid->addColumn(
                'nickname',
                \SpoonFilter::ucfirst(BL::lbl('Nickname')),
                null,
                BackendModel::createURLForAction('Edit') . '&id=[id]',
                BL::lbl('Edit')
            );

            // add edit column
            if (BackendAuthentication::isAllowedAction('Add') || BackendAuthentication::getUser()->isGod()) {
                $this->dataGrid->addColumn(
                    'edit',
                    null,
                    BL::lbl('Edit'),
                    BackendModel::createURLForAction('Edit') . '&id=[id]'
                );
            }
        }

        // show the user's nickname
        $this->dataGrid->setColumnFunction(
            array('Backend\\Modules\\Users\\Engine\\Model', 'getSetting'),
            array('[id]', 'nickname'),
            'nickname',
            false
        );
    }

    /**
     * Parse the datagrid
     */
    protected function parse()
    {
        parent::parse();

        $this->tpl->assign('dataGrid', (string) $this->dataGrid->getContent());
    }
}


text:
#include <signaldata/PrepDropTab.hpp>

bool
printPREP_DROP_TAB_REQ(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo)
{
  const PrepDropTabReq * const sig = (PrepDropTabReq *) theData;

  fprintf(output,
	  " senderRef: %x senderData: %d TableId: %d\n",
	  sig->senderRef, sig->senderData, sig->tableId);
  return true;
}

bool printPREP_DROP_TAB_CONF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo)
{
  const PrepDropTabConf * const sig = (PrepDropTabConf *) theData;

  fprintf(output,
	  " senderRef: %x senderData: %d TableId: %d\n",
	  sig->senderRef, sig->senderData, sig->tableId);

  return true;
}

bool printPREP_DROP_TAB_REF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo)
{
  const PrepDropTabRef * const sig = (PrepDropTabRef *) theData;

  fprintf(output,
	  " senderRef: %x senderData: %d TableId: %d errorCode: %d\n",
	  sig->senderRef, sig->senderData, sig->tableId, sig->errorCode);

  return true;
}


text:
package com.facebook.buck.android;

import com.facebook.buck.event.ConsoleEvent;
import com.facebook.buck.io.ProjectFilesystem;
import com.facebook.buck.shell.ShellStep;
import com.facebook.buck.step.ExecutionContext;
import com.facebook.buck.step.StepExecutionResult;
import com.facebook.buck.util.Verbosity;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.nio.file.Path;
import java.util.Collection;
import java.util.EnumSet;
import java.util.Optional;
import java.util.Set;

import javax.annotation.Nullable;

public class DxStep extends ShellStep {

  /** Options to pass to {@code dx}. */
  public enum Option {
    /** Specify the {@code --no-optimize} flag when running {@code dx}. */
    NO_OPTIMIZE,

    /** Specify the {@code --force-jumbo} flag when running {@code dx}. */
    FORCE_JUMBO,

    /**
     * See if the {@code buck.dx} property was specified, and if so, use the executable that that
     * points to instead of the {@code dx} in the user's Android SDK.
     */
    USE_CUSTOM_DX_IF_AVAILABLE,

    /**
     * Execute DX in-process instead of fork/execing.
     * This only works with custom dx.
     */
    RUN_IN_PROCESS,

    /**
     * Run DX with the --no-locals flag.
     */
    NO_LOCALS,
    ;
  }

  private final ProjectFilesystem filesystem;
  private final Path outputDexFile;
  private final Set<Path> filesToDex;
  private final Set<Option> options;
  private final Optional<String> maxHeapSize;

  @Nullable
  private Collection<String> resourcesReferencedInCode;

  /**
   * @param outputDexFile path to the file where the generated classes.dex should go.
   * @param filesToDex each element in this set is a path to a .class file, a zip file of .class
   *     files, or a directory of .class files.
   */
  public DxStep(ProjectFilesystem filesystem, Path outputDexFile, Iterable<Path> filesToDex) {
    this(filesystem, outputDexFile, filesToDex, EnumSet.noneOf(DxStep.Option.class));
  }

  /**
   * @param outputDexFile path to the file where the generated classes.dex should go.
   * @param filesToDex each element in this set is a path to a .class file, a zip file of .class
   *     files, or a directory of .class files.
   * @param options to pass to {@code dx}.
   */
  public DxStep(
      ProjectFilesystem filesystem,
      Path outputDexFile,
      Iterable<Path> filesToDex,
      EnumSet<Option> options) {
    this(filesystem, outputDexFile, filesToDex, options, Optional.empty());
  }

  /**
   * @param outputDexFile path to the file where the generated classes.dex should go.
   * @param filesToDex each element in this set is a path to a .class file, a zip file of .class
   *     files, or a directory of .class files.
   * @param options to pass to {@code dx}.
   * @param maxHeapSize The max heap size used for out of process dex.
   */
  public DxStep(
      ProjectFilesystem filesystem,
      Path outputDexFile,
      Iterable<Path> filesToDex,
      EnumSet<Option> options,
      Optional<String> maxHeapSize) {
    super(filesystem.getRootPath());
    this.filesystem = filesystem;
    this.outputDexFile = outputDexFile;
    this.filesToDex = ImmutableSet.copyOf(filesToDex);
    this.options = Sets.immutableEnumSet(options);
    this.maxHeapSize = maxHeapSize;

    Preconditions.checkArgument(
        !options.contains(Option.RUN_IN_PROCESS) ||
            options.contains(Option.USE_CUSTOM_DX_IF_AVAILABLE),
        "In-process dexing is only supported with custom DX");
  }

  @Override
  protected ImmutableList<String> getShellCommandInternal(ExecutionContext context) {
    ImmutableList.Builder<String> builder = ImmutableList.builder();

    AndroidPlatformTarget androidPlatformTarget = context.getAndroidPlatformTarget();
    String dx = androidPlatformTarget.getDxExecutable().toString();

    if (options.contains(Option.USE_CUSTOM_DX_IF_AVAILABLE)) {
      String customDx = Strings.emptyToNull(System.getProperty("buck.dx"));
      dx = customDx != null ? customDx : dx;
    }

    builder.add(dx);

    // Add the Xmx override, but not for in-process dexing, since the dexer won't understand it.
    // Also, if DX works in-process, it probably wouldn't need an enlarged Xmx.
    if (maxHeapSize.isPresent() && !options.contains(Option.RUN_IN_PROCESS)) {
      builder.add(String.format("-JXmx%s", maxHeapSize.get()));
    }

    builder.add("--dex");

    // --statistics flag, if appropriate.
    if (context.getVerbosity().shouldPrintSelectCommandOutput()) {
      builder.add("--statistics");
    }

    if (options.contains(Option.NO_OPTIMIZE)) {
      builder.add("--no-optimize");
    }

    if (options.contains(Option.FORCE_JUMBO)) {
      builder.add("--force-jumbo");
    }

    // --no-locals flag, if appropriate.
    if (options.contains(Option.NO_LOCALS)) {
      builder.add("--no-locals");
    }

    // verbose flag, if appropriate.
    if (context.getVerbosity().shouldUseVerbosityFlagIfAvailable()) {
      builder.add("--verbose");
    }

    builder.add("--output", filesystem.resolve(outputDexFile).toString());
    for (Path fileToDex : filesToDex) {
      builder.add(filesystem.resolve(fileToDex).toString());
    }

    return builder.build();
  }

  @Override
  public StepExecutionResult execute(ExecutionContext context)
      throws IOException, InterruptedException {
    if (options.contains(Option.RUN_IN_PROCESS)) {
      return StepExecutionResult.of(executeInProcess(context));
    } else {
      return super.execute(context);
    }
  }

  private int executeInProcess(ExecutionContext context) {
    ImmutableList<String> argv = getShellCommandInternal(context);

    // The first arguments should be ".../dx --dex" ("...\dx.bat --dex on Windows).  Strip them off
    // because we bypass the dispatcher and go straight to the dexer.
    Preconditions.checkState(
        argv.get(0).endsWith(File.separator + "dx") || argv.get(0).endsWith("\\dx.bat"));
    Preconditions.checkState(argv.get(1).equals("--dex"));
    ImmutableList<String> args = argv.subList(2, argv.size());

    ByteArrayOutputStream stderr = new ByteArrayOutputStream();
    PrintStream stderrStream = new PrintStream(stderr);
    try {
      com.android.dx.command.dexer.DxContext dxContext =
          new com.android.dx.command.dexer.DxContext(context.getStdOut(), stderrStream);
      com.android.dx.command.dexer.Main.Arguments arguments =
          new com.android.dx.command.dexer.Main.Arguments();
      com.android.dx.command.dexer.Main dexer = new com.android.dx.command.dexer.Main(dxContext);
      arguments.parseCommandLine(args.toArray(new String[args.size()]), dxContext);
      int returncode = dexer.run(arguments);
      String stdErrOutput = stderr.toString();
      if (!stdErrOutput.isEmpty()) {
        context.postEvent(ConsoleEvent.warning("%s", stdErrOutput));
      }
      if (returncode == 0) {
        resourcesReferencedInCode = dexer.getReferencedResourceNames();
      }
      return returncode;
    } catch (IOException e) {
      e.printStackTrace(context.getStdErr());
      return 1;
    }
  }

  @Override
  protected boolean shouldPrintStderr(Verbosity verbosity) {
    return verbosity.shouldPrintSelectCommandOutput();
  }

  @Override
  protected boolean shouldPrintStdout(Verbosity verbosity) {
    return verbosity.shouldPrintSelectCommandOutput();
  }

  @Override
  public String getShortName() {
    return "dx";
  }

  /**
   * Return the names of resources referenced in the code that was dexed.
   * This is only valid after the step executes successfully and
   * only when in-process dexing is used.
   * It only returns resources referenced in java classes being dexed,
   * not merged dex files.
   */
  @Nullable
  Collection<String> getResourcesReferencedInCode() {
    return resourcesReferencedInCode;
  }
}


text:
layout:     post
title:      depression 9
date:       2019-06-09 23:23:25
summary:
categories: drawing
---
![depression 9](/images/diary/depression-9.png ".")


text:
package org.hl7.fhir.dstu3.model.codesystems;

// Generated on Tue, Dec 6, 2016 09:42-0500 for FHIR v1.8.0

import org.hl7.fhir.dstu3.model.EnumFactory;

public class ActionConditionKindEnumFactory implements EnumFactory<ActionConditionKind> {

  public ActionConditionKind fromCode(String codeString) throws IllegalArgumentException {
    if (codeString == null || "".equals(codeString))
      return null;
    if ("applicability".equals(codeString))
      return ActionConditionKind.APPLICABILITY;
    if ("start".equals(codeString))
      return ActionConditionKind.START;
    if ("stop".equals(codeString))
      return ActionConditionKind.STOP;
    throw new IllegalArgumentException("Unknown ActionConditionKind code '"+codeString+"'");
  }

  public String toCode(ActionConditionKind code) {
    if (code == ActionConditionKind.APPLICABILITY)
      return "applicability";
    if (code == ActionConditionKind.START)
      return "start";
    if (code == ActionConditionKind.STOP)
      return "stop";
    return "?";
  }

    public String toSystem(ActionConditionKind code) {
      return code.getSystem();
      }

}