text:
This document is a compilation of notes from contributors, [CTLT](http://ctlt.ubc.ca/) meetings and consultations with users:

***Most of these points should be turned into issues, milestones, etc***

Current Todos
============================

- Improve the way entity updates are handled (for all controllers)
    - Currently the merge() approach used by `Ipeer\UserBundle\User` the leading choice
        - This choice may be inefficient in SQL if only one field is being updated
        - Figure out a way to control which fields are allowed to be updated (this is the "reverse" version of the "conditional-based deserialization rules" listed in this section)
- Review API design
    - http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
    - https://pages.apigee.com/rs/apigee/images/api-design-ebook-2012-03.pdf
    - the API should support query parameters to only return a subset of values that match them (eg. a limit of return results, pagination, certain fields match a certain expression for searching, etc)
    - some API endpoints should allow for "batch operations" (for example, you can post multiple user updates at once instead of one update per request)
- Improve error messages returned from the server
    - Could be used client-side or in debugging/testing
- Test cascading deletes wherever relevant (eg. course delete triggers groups-within-that-course delete)
    - If not working, choose a good way to do that (possibly via doctrine entity annotations)
- Review PHPdoc and APIdoc for entities and controllers
- Write general tests (not controller specific):
    - Data return format
    - 404
    - bad HTTP method
- Clean up existing tests:
    - Fix assertEquals to be in correct format (ie. $this->assertEquals(expected, actual))
        - Also for assertCount and other test conditions
    - Add more custom fail messages where appropriate
    - Separate tests into more methods and collapse/trim redundant ones
    - Look into reducing memory usage of tests
- Improve test coverage and code cleanliness (where it makes sense): https://codeclimate.com/github/cisdev2/ipeer4-server
    - Add more tests to check for valid fields on an individual basis (eg. check everything-valid except for email in an User update)
- Decide on table names (currently some ones like the join tables are explicitly chosen in the ORM PHPDoc comments, others are generated by doctrine)
- Add code-style check to the build process or manually-on-save ([php-cs-fixer](https://github.com/fabpot/PHP-CS-Fixer) and also [SensioLabsInsight](https://insight.sensiolabs.com/) which is free for open source)
- Find a way to control deserialization ("conditional-based deserialization rules")
    - Note: jmsserializer has the "groups" features - check whether there is a way to specify the groups activated via annotations in a controller (or otherwise use them directly)
    - Purpose 1: When some entity properties should not be deserialized for a user of low privilege level
    - Purpose 2: When entities are in a relationship, the referenced object should be deserialized differently (eg. when a faculty lists its departments, the departments should be serialized differently from when they are accessed directly)
- Check `config.yml` and other configuration files for redundant settings, development vs production settings, etc

Remaining Features
============================

Not listed in any particular order:

- Implement the authentication and access system
    - Use tokens / keys (with expiration time)
    - Use ACL for data-specific access
    - Permissions manager or configuration (similar to iPeer3 permissions manager)
    - OAuth access ?
    - Encourage whitelist approach instead of blacklisting
- New evaluation event logic
    - Within-group (existing)
    - Self-evaluation only (new)
    - Evaluate another group
        - Evaluate X other groups
    - Think of a way to deal with the situtation where many groups have the same event settings, but they take place at slightly different times (eg. CHBE lab courses)
- Revised evaluation template system
    - Implement creation of templates
    - Implement completion (by students/tutors) of templates
    - Consolidate 4 types (simple, rubric, survey, mixed) into a single type
    - Add new types of questions (make the system extensible for adding new types)
        - Change simple evaluation to be $X per group, not $X per member
    - Add tagging to templates for easier filtering/searching
- Add new (per-course) role types
    - "UBC Grader" equivalent -> able to see results, but not able to create events, etc
    - "UBC Builder" equivalent -> able to create events, but cannot see results and detailed student information
    - Course roles might need to be abstracted to another entity/class
- Revised emailing system
    - Rethink email templates (possibly remove the option in some contexts)
    - Add emailing options at various stages in the evaluation (event started, due date approaching, results availability)
    - Instructors should have a per-course email log (to answer the question "Am I spamming students? Have I sent [this] out already?")
- Help & Resources Website:
    - The UBC CIS should develop a website to encourage better use of iPeer and peer evaluation in general
    - The site could also serve as the help/support/documentation resource
- Improved event result feedback
    - Course wide dashboard indicating trends (are students getting better over time?)
    - Each event should have a dashboard with stats (completion rate, average scores, median, mode, etc)
        - Research should be done to find which metrics are useful to instructors
    - Score manipulation / generation: normalization, include/exclude self-evaluation, remove outliers (remove highest and lowest score)
    - New export type (possible multi-sheet Excel with dashboard stats, graphs and raw data)
    - Issue detection (gaming of system, group dysfunction detection, overestimating-your-own-contribution detection, profanity in comments, etc)
    - Instructors can give per-event (class-wide) or per-student feedback that students will see beside their results
    - Late penalty system adjustment
        - Clearer settings
        - New setting: No submission? -> Automatic zero (even if other people rated you)
    - Student result view analytics (did students check their results)?
- Implement new and missing course management features:
    - TeamMaker (should be more transparent about the process and should be implemented in PHP, not as an external program)
    - Event creation and management
    - Add course open/close dates (course gets hidden if "old")
    - Way to deal with group formation in multi-section courses where students can switch sections for a while
- Implement missing user management features:
    - Edit own profile
    - Edit faculties and departments (that the user belongs to)
    - Merging users
    - Importing students/users
    - Granting system wide statuses
    - Each student's page lists the evaluations they completed (tied in with the goal to track student progress over time)
- Create an application installer (database configurations, copies / brings in the frontend so it gets served by Symfony)

Big Picture / Long Term Ideas
===========================

- Track student progress over time (over various courses)
    - Some sort of overview/export at the cohort level
- Get TLEF funding to continue development
- Once the majority of the code has been written, the code should be (further) modularized and decoupled, so we end up with bundles that are reusable (potentially by others) outside the iPeer context
- LTI integration (eg. edX, Blackboard)
- Optimize Symfony for performance and scalability (possible multi-server setup)
- Look at what similar applications are doing (eg. [TEAMMATES](https://github.com/TEAMMATES/repo))
- Use something like "liwc" to analyze comment quality and/or mood


text:
_v1.1 updates:_
* The theme now supports the 'fx' basic JSON property made available in It's A Trap! v2.3.

This is a D&D 5th edition trap theme for the It's A Trap! script, compatible with
the 5th Edition (OGL by Roll20) character sheet.

It provides support for D&D 5th edition mechanics to automate resolving trap
attacks, saving throws, and passive searching.

To use this theme for the It's A Trap! script, enter "5E-OGL" for the ```theme``` user option.

## TrapEffect properties

This TrapTheme supports the following TrapEffect JSON properties in addition
to all the basic TrapEffect JSON properties:
* attack (int): The trap's attack roll bonus. Omit if the trap does not make an attack roll.
* damage (string): The dice roll expression for the trap's damage. Omit if the trap does not deal damage.
* hideSave (boolean): If true, then only the GM will see the saving throw rolled for the trap.
* missHalf (boolean): If true, then the trap deals half damage on a miss.
* notes (string): A reminder about the trap's effects, which will be whispered to the GM.
* save (string): The saving throw for the trap. This can be one of 'str', 'con', 'dex', 'int', 'wis', or 'cha'.
* saveDC (int): The saving throw DC for the trap.
* spotDC (int): The DC to spot the trap with passive wisdom (perception). When a character spots the trap, its trigger area will be circled.

### Example of use:

Here are a couple of trap JSON examples to get you started:

*Attacks vs AC*

```
{
	"attack": 4,
	"damage": "2d8 + 6",
	"message": "A pressure plate gives way and darts fire forth from hidden compartments in the walls!",
	"notes": "If the character is hit, they also become poisoned.",
	"spotDC": 14
}
```
The above example will have the trap make an attack against the victim's AC with a +4 bonus to its attack roll.
On a hit it does 2d8+6 damage.
The "notes" field is a message that is whispered to the GM as a reminder about anything else that happens with the trap.
The "message" is shown to everyone when the trap is triggered to describe what the trap is, and any other flavor text associated with it.
The DC to spot the trap with passive perception is 14.

*Requires Saving Throw*

```
{
	"damage": "8d6 + 8",
  "fx": "explode-fire",
	"message": "A magical glyph flashes to life and then erupts in a whirling storm of fire!",
	"missHalf": true,
	"notes": "The sound of the trap going off alerts the mindflayers in area K26.",
	"save": "dex",
	"saveDC": 16,
	"sound": "explode",
	"spotDC": 20
}
```
The above example will have the victim make a dexterity saving throw against DC 16. For the "save" property, you can specifiy any of the following: "str", "dex", "con", "int", "wis", or "cha".
The trap deals 8d6+8 damage on a hit and has a passive perception DC 20 to spot it.
The "missHalf": true line tells the trap that it still does half damage on a miss.
The "sound" property specifies the same of a sound in your jukebox to play when the trap activates.

## Notes on trap automation:
The theme's automated attacks and saving throws do not account for conditional
modifiers, Advantage, or Disadvantage. Players will need to apply those in an
ad hoc fashion.

If a trap deals damage, the theme will not automatically subtract
the damage from the character's hit points. Players will still need to do that
themselves after applying conditional modifiers to their AC/saves,
applying damage resistance, vulnerability, etc..

redpajama_set_name: RedPajamaGithub


text:
<!DOCTYPE html>

    {% include header.html %}

        Skip to main content

    {% include nav-home.html %}

        {{ content }}

    {% include footer.html %}


text:
/**
 *
 */
package ws.biotea.ld2rdf.rdf.persistence.oa;

import com.hp.hpl.jena.datatypes.xsd.XSDDatatype;
import com.hp.hpl.jena.rdf.model.AnonId;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.Property;
import com.hp.hpl.jena.rdf.model.Resource;

import edu.stanford.smi.protege.exception.OntologyLoadException;

import org.apache.jena.riot.RDFFormat;
import org.apache.log4j.Logger;

import ws.biotea.ld2rdf.exception.RDFModelIOException;
import ws.biotea.ld2rdf.rdf.model.BaseAnnotation;
import ws.biotea.ld2rdf.rdf.model.ao.Annotation;
import ws.biotea.ld2rdf.rdf.model.ao.ElementSelector;
import ws.biotea.ld2rdf.rdf.model.ao.Selector;
import ws.biotea.ld2rdf.rdf.model.aoextended.AnnotationE;
import ws.biotea.ld2rdf.rdf.model.oa.OpenAnnotation;
import ws.biotea.ld2rdf.rdf.persistence.AnnotationDAO;
import ws.biotea.ld2rdf.rdf.persistence.ConnectionLDModel;
import ws.biotea.ld2rdf.rdfGeneration.jats.GlobalArticleConfig;
import ws.biotea.ld2rdf.util.annotation.AnnotationClassesAndProperties;
import ws.biotea.ld2rdf.util.ResourceConfig;
import ws.biotea.ld2rdf.util.annotation.AnnotationOntologyPrefix;
import ws.biotea.ld2rdf.util.GenerateMD5;
import ws.biotea.ld2rdf.util.OntologyPrefix;

import java.io.File;
import java.io.FileNotFoundException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @author leylajael
 *
 */
public class AnnotationOWLOA extends AnnotationDAO {
	Logger logger = Logger.getLogger(this.getClass());
	private List<Map<String, String>> prefixes;

	/**
	 * Constructor.
	 */
	public AnnotationOWLOA() {
		prefixes = new ArrayList<Map<String, String>>();
		prefixes.add(OntologyPrefix.prefixesMap_RDF());
		prefixes.add(AnnotationOntologyPrefix.prefixesMap_OA());
	}
	/**
	 * Adds an annotation to the model.
	 * @return
	 * @throws URISyntaxException
	 * @throws URISyntaxException
	 * @throws OntologyLoadException
	 * @throws ClassNotFoundException
	 * @throws FileNotFoundException
	 */
	//@Override
	public URI insertAnnotation(String base, String baseURL, AnnotationE annot, String id, Model modelOut,
			boolean blankNode) throws RDFModelIOException, FileNotFoundException, ClassNotFoundException, OntologyLoadException, URISyntaxException {
		createAnnotationInModel(base, baseURL, annot, id, modelOut, blankNode);
		return (annot.getUri());
	}

	//@Override
	public URI insertAnnotation(String base, String baseURL, AnnotationE annotation, String id, String fileOutName, RDFFormat format, boolean empty, boolean blankNode) throws RDFModelIOException, FileNotFoundException, ClassNotFoundException, OntologyLoadException, URISyntaxException {
		ConnectionLDModel conn = new ConnectionLDModel(this.prefixes);
		Model model = conn.openJenaModel(fileOutName, empty);
		this.insertAnnotation(base, baseURL, annotation, id, model, blankNode);
		conn.closeAndWriteJenaModel(format);
		return (annotation.getUri());
	}
	/**
	 * Inserts a list of annotations.
	 * @param baseURL
	 * @param list
	 * @param empty
	 * @throws OntologyLoadException
	 * @throws ClassNotFoundException
	 * @throws FileNotFoundException
	 * @throws RDFModelIOException
	 * @throws Exception
	 */
	//@Override
	public List<AnnotationE> insertAnnotations(String base, String baseURL, List<AnnotationE> list, Model modelOut,
			boolean blankNode) throws RDFModelIOException {
		List<AnnotationE> inserted = new ArrayList<AnnotationE>();
		for (AnnotationE annotation: list) {
			try {
				createAnnotationInModel(base, baseURL, annotation, null, modelOut, blankNode);
				inserted.add(annotation);
			} catch (Exception e) {
				//e.printStackTrace();
				logger.error("- ERROR - OpenAnnotation not inserted: There has been an error inserting annotation " + annotation + ", error: " + e.getLocalizedMessage());
			}
		}
		return inserted;
	}
	//@Override
	public List<AnnotationE> insertAnnotations(String base, String baseURL, List<AnnotationE> list
			, String fileOutName, RDFFormat format, boolean empty, boolean blankNode) throws RDFModelIOException {
		List<AnnotationE> inserted = new ArrayList<AnnotationE>();
		try {
			ConnectionLDModel conn = new ConnectionLDModel(this.prefixes);
			Model model = conn.openJenaModel(fileOutName, empty);
			inserted = this.insertAnnotations(base, baseURL, list, model, blankNode);
			conn.closeAndWriteJenaModel(format);
		} catch (Exception e) {
			//e.printStackTrace();
			logger.fatal("- FATAL - Annotations model " + fileOutName + " was not closed/saved: " + e.getMessage());
			throw new RDFModelIOException(e);
		}
		//File file = new File(fileOutName);
		logger.info("==Annotated RDF ==" + fileOutName + " ANNOT: " + inserted.size());
		if (inserted.size() == 0) {
			File file = new File(fileOutName);
			file.delete();
		}
		return inserted;
	}
	/**
	 *
	 * @param model
	 * @param baseURL
	 * @param annotation
	 * @param id
	 * @throws URISyntaxException
	 */
	private void createAnnotationInModel (String base, String baseURL, AnnotationE annotation, String id, Model model,
			boolean blankNode) throws URISyntaxException {
		//OntClass annotationClass = model.getOntClass(OpenAnnotation.ANNOTATION_CLASS);
		Property opType = model.getProperty(ResourceConfig.OP_RDF_TYPE);
		Property opHasSTY = model.getProperty(AnnotationClassesAndProperties.UMLS_HAS_STY.getURLValue());

		Property opBody = model.getProperty(OpenAnnotation.ANNOTATION_OP_BODY);
		Property opRDFValue = model.getProperty(OpenAnnotation.ANNOTATION_OP_VALUE);
		Property opHasTarget = model.getProperty(OpenAnnotation.ANNOTATION_OP_TARGET);
		Property opHasSource = model.getProperty(OpenAnnotation.ANNOTATION_OP_SOURCE);

		Property dpCreatedOn = model.getProperty(Annotation.ANNOTATION_DP_CREATED_ON);
		Property opCreatedBy = model.getProperty(Annotation.ANNOTATION_OP_CREATED_BY);
		Property opAuthoredBy = model.getProperty(Annotation.ANNOTATION_OP_AUTHORED_BY);

		Property dpLabel = model.getProperty(BaseAnnotation.ANNOTATION_DP_LABEL);
		Property rdfsComment = model.getProperty(BaseAnnotation.RDFS_COMMENT);
		Property bioteaOcurrences = model.getProperty(BaseAnnotation.BIOTEA_OCURRENCES);
		Property bioteaIDF = model.getProperty(BaseAnnotation.BIOTEA_IDF);
		Property opSeeAlso = model.getProperty(BaseAnnotation.RDFS_SEE_ALSO);
		Property opSameAs = model.getProperty(BaseAnnotation.OWL_SAME_AS);
		Property dpCUI = model.getProperty(AnnotationClassesAndProperties.UMLS_CUI.getURLValue());
		Property dpTUI = model.getProperty(AnnotationClassesAndProperties.UMLS_TUI.getURLValue());
		Property dpScore = model.getProperty(BaseAnnotation.DP_SCORE);

		baseURL += annotation.getDocumentID();

		//OpenAnnotation, Body (literal), and createdOn (date)
		if (id == null) {
			StringBuffer signature = new StringBuffer();
			signature.append(annotation.getAuthor().toString());
			signature.append(annotation.getResource().toString());
			signature.append(annotation.getTopics());
			annotation.setId(GenerateMD5.getInstance().getMD5Hash(signature.toString()));
		} else {
			annotation.setId(id);
		}
		String idPrefix = OpenAnnotation.ANNOTATION_ID;
		try {
			idPrefix = annotation.getClass().getField("ANNOTATION_ID").get(null).toString();
		} catch (Exception e) {}
		String annotationClazz = OpenAnnotation.ANNOTATION_CLASS;
		Resource annotationRes;
		Resource annotationClass = model.createResource(annotationClazz);
		if (blankNode) {
			if (annotation.getDocumentID() != null) {
				annotation.setNodeId(annotation.getDocumentID() + "_" + idPrefix + annotation.getId());
			} else {
				annotation.setNodeId(idPrefix + annotation.getId());
			}
			annotation.setUri(null);
			annotationRes = model.createResource(new AnonId(annotation.getNodeId()));
			annotationRes.addProperty(opType, annotationClass);
		} else {
			annotation.setNodeId(null);
			String resourceURI = baseURL + "_" + annotation.getId();
			annotation.setUri(new URI(resourceURI));
			annotationRes = model.createResource(annotation.getUri().toString(), annotationClass);
			if (!annotationClazz.equals(OpenAnnotation.ANNOTATION_CLASS)) {
				annotationRes.addProperty(opType, annotationClass);
			}
		}

		//provenance
		annotationRes.addLiteral(dpCreatedOn, annotation.getCreationDate());
		Resource resCreator = model.createResource(annotation.getCreator().getUri().toString());
		annotationRes.addProperty(opCreatedBy, resCreator);
		Resource resAuthor = model.createResource(annotation.getAuthor().getUri().toString());
		annotationRes.addProperty(opAuthoredBy, resAuthor);

		//body
		int textualBody = 1;
		Resource annotationTextualBodyClass = model.createResource(OpenAnnotation.TEXTUAL_BODY_CLASS);
		for (String body: annotation.getBodies()) {
			Resource annotationTextualBody = model.createResource(new AnonId("TextualBody_" + textualBody + "_" + annotation.getId() ));
			annotationTextualBody.addProperty(opType, annotationTextualBodyClass);
			annotationTextualBody.addLiteral(opRDFValue, body);
			annotationRes.addProperty(opBody, annotationTextualBody);
			textualBody++;
		}
		//body topics
		for (ws.biotea.ld2rdf.rdf.model.ao.Topic topic:annotation.getTopics()) {
			Resource resTopic = model.createResource(topic.getURL().toString());
			annotationRes.addProperty(opBody, resTopic);
			if (ResourceConfig.withBio()) {
				String strIdentifier = AnnotationOntologyPrefix.toIdentifiersOrg(topic.getNameSpace().toString());
				if (strIdentifier != null) {
					Resource resIdentifier = model.createResource(strIdentifier);
					resTopic.addProperty(opSameAs, resIdentifier);
				}
	            strIdentifier = AnnotationOntologyPrefix.toBio2RDFOrg(topic.getNameSpace().toString());
	            if (strIdentifier != null) {
	                Resource resIdentifier = model.createResource(strIdentifier);
	                resTopic.addProperty(opSameAs, resIdentifier);
	            }
			}
			String cui = AnnotationOntologyPrefix.getCUI(topic.getURL().toString());
            if (cui != null) {
            	resTopic.addLiteral(dpCUI, cui);
            	for (String sty: topic.getUmlsType()) {
            		resTopic.addLiteral(dpTUI, sty);
            		Resource typeClass = model.createResource(AnnotationClassesAndProperties.UMLS_STY.getURLValue() + "/" + sty);
            		resTopic.addProperty(opHasSTY, typeClass);
            	}
            }
			for (URI seeAlso: topic.getSeeAlso()) {
				Resource resIdentifier = model.createResource(seeAlso.toString());
				resTopic.addProperty(opSeeAlso, resIdentifier);
			}
			if ((topic.getComment() != null) && (topic.getComment().length() != 0)) {
				resTopic.addLiteral(rdfsComment, topic.getComment());
			}
		}

		//Context
		if (ResourceConfig.getKeepSelector()) {
			for (Selector selector:annotation.getContext()) {
				if (selector instanceof ElementSelector) {
					ElementSelector element = (ElementSelector)selector;
					if (element.getElementURI().equals(annotation.getResource().getUri().toString())) {
						Resource resDocument = model.createResource(GlobalArticleConfig.getArticleRdfUri(ResourceConfig.getBioteaBase(base), annotation.getDocumentID()));
						annotationRes.addProperty(opHasTarget, resDocument);
					} else {
						String resSelectorURI = element.getElementURI();
						if (!resSelectorURI.startsWith("http://")) {
							resSelectorURI = (GlobalArticleConfig.getArticleParagraphRdfUri(ResourceConfig.getBioteaBase(base), annotation.getDocumentID(), resSelectorURI));
						}
						Resource resSelector = model.createResource(resSelectorURI);
						Resource resDocument = model.createResource(GlobalArticleConfig.getArticleRdfUri(ResourceConfig.getBioteaBase(base), annotation.getDocumentID()));
						resSelector.addProperty(opHasSource, resDocument);
						annotationRes.addProperty(opHasTarget, resSelector);
					}
				}
			}
			if (annotation.getContext().isEmpty()) {
				//annotated resource
				Resource resDocument = model.createResource(GlobalArticleConfig.getArticleRdfUri(ResourceConfig.getBioteaBase(base), annotation.getDocumentID()));
				annotationRes.addProperty(opHasTarget, resDocument);
			}
		} else {
			//annotated resource
			Resource resDocument = model.createResource(GlobalArticleConfig.getArticleRdfUri(ResourceConfig.getBioteaBase(base), annotation.getDocumentID()));
			annotationRes.addProperty(opHasTarget, resDocument);
		}

		//others
		if (annotation.getLabel() != null) {
			annotationRes.addLiteral(dpLabel, annotation.getLabel());
		}
		if ((annotation.getComment() != null) && (annotation.getComment().length() != 0)) {
			annotationRes.addLiteral(rdfsComment, annotation.getComment());
		}
		if (annotation.getFrequency() != null) {
			annotationRes.addProperty(bioteaOcurrences, "" + annotation.getFrequency(), XSDDatatype.XSDint);
		}
		if (annotation.getIDF() != null) {
			annotationRes.addProperty(bioteaIDF, "" + annotation.getIDF(), XSDDatatype.XSDdouble);
		}
		if (annotation.getScore() != null) {
			annotationRes.addProperty(dpScore, "" + annotation.getScore(), XSDDatatype.XSDdouble);
		}
	}
	//@Override
	public void deleteAnnotation(String baseURL, String id, String uri, String fileOut, RDFFormat format, boolean empty) throws UnsupportedOperationException {
		throw new UnsupportedOperationException();
	}
	//@Override
	public void deleteAnnotation(String baseURL, String id, String uri, Model modelOut) throws UnsupportedOperationException {
		throw new UnsupportedOperationException();
	}
	//@Override
	public URI updateAnnotation(String base, String baseURL, AnnotationE annotation, String uri
			, String fileOut, RDFFormat format, boolean empty) throws Exception {
		this.deleteAnnotation(baseURL, annotation.getId(), uri, fileOut, format, empty);
		return (this.insertAnnotation(base, baseURL, annotation, annotation.getId(), fileOut
				, format, empty, annotation.getUri() == null));
	}
	//@Override
	public URI updateAnnotation(String base, String baseURL, AnnotationE annotation, String uri, Model modelOut) throws Exception {
		this.deleteAnnotation(baseURL, annotation.getId(), uri, modelOut);
		return (this.insertAnnotation(base, baseURL, annotation, annotation.getId(), modelOut, annotation.getUri() == null));
	}
}


text:
using System.Reflection;
using System.Runtime.InteropServices;

[assembly: AssemblyTitle("Advance_Decline_Line_(_ADL_)_")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("Advance_Decline_Line_(_ADL_)_")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: ComVisible(false)]

[assembly: Guid("35f19c43-c7cc-4f53-b8e0-61caaf9cd8e8")]

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]


text:
"""
from sys import argv

script, input_file = argv

def print_all(f):
	print f.read()

def rewind(f):
	f.seek(0)

def print_a_line(line_count, f):
	print line_count, f.readline()
	print "line = %d " % line_count

current_file = open(input_file)

print "First let's print the whole file: "
print_all(current_file)
#print "line = %d " % line_count

print "Now let's rewind, kind of like a tape."
rewind(current_file)
#print "line = %d " % line_count

print "Now let's print three lines: "

current_line = 1
print_a_line(current_line, current_file)
#print "line = %d " % line_count

current_line = current_line + 1
print_a_line(current_line, current_file)
#print "line = %d " % line_count

current_line = current_line + 1
print_a_line(current_line, current_file)
#print "line = %d " % line_count

current_line = current_line + 1
print_a_line(current_line, current_file)
#print "line = %d " % line_count
"""


text:
package cmd

import (
	"github.com/qiniu/qshell/v2/cmd_test/test"
	"strings"
	"testing"
)

func TestVersion(t *testing.T) {
	result := test.RunCmd(t, "version")
	if !strings.Contains(result, "UNSTABLE") {
		t.Fatal("version")
	}
}


text:
	local suite =  test.declare("vstudio_vs2010_files")
	local vc2010 = premake.vstudio.vc2010

--
-- Setup
--

	local sln, prj

	function suite.setup()
		_ACTION = "vs2010"
		sln = test.createsolution()
	end

	local function prepare()
		prj = premake.solution.getproject(sln, 1)
		vc2010.files(prj)
	end

--
-- Test filtering of source files into the correct categories.
--

	function suite.clInclude_onHFile()
		files { "include/hello.h" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ClInclude Include="include\hello.h" />
	</ItemGroup>
		]]
	end

	function suite.clCompile_onCFile()
		files { "hello.c" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.c" />
	</ItemGroup>
		]]
	end

	function suite.resourceCompile_onRCFile()
		files { "resources/hello.rc" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ResourceCompile Include="resources\hello.rc" />
	</ItemGroup>
		]]
	end

	function suite.none_onTxtFile()
		files { "docs/hello.txt" }
		prepare()
		test.capture [[
	<ItemGroup>
		<None Include="docs\hello.txt" />
	</ItemGroup>
		]]
	end

	function suite.customBuild_onBuildRule()
		files { "hello.cg" }
		configuration "**.cg"
			buildcommands { "cgc $(InputFile)" }
			buildoutputs { "$(InputName).obj" }
		prepare()
		test.capture [[
	<ItemGroup>
		<CustomBuild Include="hello.cg">
			<FileType>Document</FileType>
			<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cgc $(InputFile)</Command>
			<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(InputName).obj</Outputs>
			<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cgc $(InputFile)</Command>
			<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(InputName).obj</Outputs>
		</CustomBuild>
	</ItemGroup>
		]]
	end

	function suite.customBuild_onBuildRuleWithMessage()
		files { "hello.cg" }
		configuration "**.cg"
			buildmessage "Compiling shader $(InputFile)"
			buildcommands { "cgc $(InputFile)" }
			buildoutputs { "$(InputName).obj" }
		prepare()
		test.capture [[
	<ItemGroup>
		<CustomBuild Include="hello.cg">
			<FileType>Document</FileType>
			<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cgc $(InputFile)</Command>
			<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(InputName).obj</Outputs>
			<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Compiling shader $(InputFile)</Message>
			<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cgc $(InputFile)</Command>
			<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(InputName).obj</Outputs>
			<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Compiling shader $(InputFile)</Message>
		</CustomBuild>
	</ItemGroup>
		]]
	end

--
-- If a PCH source is specified, ensure it is included in the file configuration.
--

	function suite.precompiledHeader_onPchSource()
		files { "afxwin.cpp" }
		pchheader "afxwin.h"
		pchsource "afxwin.cpp"
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="afxwin.cpp">
			<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
			<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
		</ClCompile>
	</ItemGroup>
		]]
	end

--
-- If a file is excluded from a configuration, make sure it is marked as such.
--

	function suite.excludedFromBuild_onExcludedFile()
		files { "hello.cpp" }
		configuration "Debug"
		removefiles { "hello.cpp" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
		</ClCompile>
	</ItemGroup>
		]]
	end

	function suite.excludedFromBuild_onExcludeFlag()
		files { "hello.cpp" }
		configuration "hello.cpp"
		flags { "ExcludeFromBuild" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
			<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
		</ClCompile>
	</ItemGroup>
		]]
	end

	function suite.excludedFromBuild_onResourceFile_excludedFile()
		files { "hello.rc" }
		configuration "Debug"
		removefiles { "hello.rc" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ResourceCompile Include="hello.rc">
			<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
		</ResourceCompile>
	</ItemGroup>
		]]
	end

	function suite.excludedFromBuild_onResourceFile_excludeFlag()
		files { "hello.rc" }
		configuration "hello.rc"
		flags { "ExcludeFromBuild" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ResourceCompile Include="hello.rc">
			<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
			<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
		</ResourceCompile>
	</ItemGroup>
		]]
	end

	function suite.excludedFromBuild_onResourceFile_excludeFlag_nonWindows()
		files { "hello.rc" }
		system "PS3"
		configuration "hello.rc"
		flags { "ExcludeFromBuild" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ResourceCompile Include="hello.rc" />
	</ItemGroup>
		]]
	end

	function suite.excludedFromBuild_onCustomBuildRule_excludedFile()
		files { "hello.cg" }
		configuration "**.cg"
			buildcommands { "cgc $(InputFile)" }
			buildoutputs { "$(InputName).obj" }
		configuration "Debug"
			removefiles { "hello.cg" }
		prepare()
		test.capture [[
	<ItemGroup>
		<CustomBuild Include="hello.cg">
			<FileType>Document</FileType>
			<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cgc $(InputFile)</Command>
			<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(InputName).obj</Outputs>
		</CustomBuild>
	</ItemGroup>
		]]
	end

	function suite.excludedFromBuild_onCustomBuildRule_excludeFlag()
		files { "hello.cg" }
		configuration "**.cg"
			buildcommands { "cgc $(InputFile)" }
			buildoutputs { "$(InputName).obj" }
			flags { "ExcludeFromBuild" }
		prepare()
		test.capture [[
	<ItemGroup>
		<CustomBuild Include="hello.cg">
			<FileType>Document</FileType>
			<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
			<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cgc $(InputFile)</Command>
			<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(InputName).obj</Outputs>
			<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
			<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cgc $(InputFile)</Command>
			<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(InputName).obj</Outputs>
		</CustomBuild>
	</ItemGroup>
		]]
	end

	function suite.excludedFromBuild_onCustomBuildRule_withNoCommands()
		files { "hello.cg" }
		configuration { "**.cg", "Debug" }
			buildcommands { "cgc $(InputFile)" }
			buildoutputs { "$(InputName).obj" }
		configuration { "**.cg" }
			flags { "ExcludeFromBuild" }
		prepare()
		test.capture [[
	<ItemGroup>
		<CustomBuild Include="hello.cg">
			<FileType>Document</FileType>
			<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
			<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cgc $(InputFile)</Command>
			<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(InputName).obj</Outputs>
		</CustomBuild>
	</ItemGroup>
		]]
	end

--
-- If two files at different folder levels have the same name, a different
-- object file name should be used for each.
--

	function suite.uniqueObjectNames_onSourceNameCollision()
		files { "hello.cpp", "greetings/hello.cpp" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="greetings\hello.cpp" />
		<ClCompile Include="hello.cpp">
			<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)\hello1.obj</ObjectFileName>
			<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)\hello1.obj</ObjectFileName>
		</ClCompile>
	</ItemGroup>
		]]
	end

--
-- Check handling of per-file forced includes.
--

	function suite.forcedIncludeFiles()
		files { "hello.cpp" }
		configuration "**.cpp"
			forceincludes { "../include/force1.h", "../include/force2.h" }

		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\include\force1.h;..\include\force2.h</ForcedIncludeFiles>
			<ForcedIncludeFiles Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\include\force1.h;..\include\force2.h</ForcedIncludeFiles>
		</ClCompile>
	</ItemGroup>
		]]
	end

--
-- Check handling of per-file command line build options.
--

	function suite.additionalOptions()
		files { "hello.cpp" }
		configuration "**.cpp"
			buildoptions { "/Xc" }

		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/Xc %(AdditionalOptions)</AdditionalOptions>
			<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">/Xc %(AdditionalOptions)</AdditionalOptions>
		</ClCompile>
	</ItemGroup>
		]]
	end

--
-- Check handling of per-file optimization levels.
--

	function suite.onOptimize()
		files { "hello.cpp" }
		configuration "hello.cpp"
		optimize "On"
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Full</Optimization>
		]]
	end

	function suite.onOptimizeSize()
		files { "hello.cpp" }
		configuration "hello.cpp"
		optimize "Size"
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MinSpace</Optimization>
		]]
	end

	function suite.onOptimizeSpeed()
		files { "hello.cpp" }
		configuration "hello.cpp"
		optimize "Speed"
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MaxSpeed</Optimization>
		]]
	end

	function suite.onOptimizeFull()
		files { "hello.cpp" }
		configuration "hello.cpp"
		optimize "Full"
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Full</Optimization>
		]]
	end

	function suite.onOptimizeOff()
		files { "hello.cpp" }
		configuration "hello.cpp"
		optimize "Off"
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
		]]
	end

	function suite.onOptimizeDebug()
		files { "hello.cpp" }
		configuration "hello.cpp"
		optimize "Debug"
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization>
		]]
	end

--
-- Check handling of per-file no PCH build options.
--

	function suite.excludedFromPCH()
		files { "hello.cpp" }
		configuration "**.cpp"
		flags { "NoPCH" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
			<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
		</ClCompile>
	</ItemGroup>
		]]
	end

--
-- Check handling of per-file command line build options.
--

	function suite.perFileDefines()
		files { "hello.cpp" }
		configuration "**.cpp"
			defines { "IS_CPP" }
		prepare()
		test.capture [[
	<ItemGroup>
		<ClCompile Include="hello.cpp">
			<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">IS_CPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
			<PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">IS_CPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
		</ClCompile>
	</ItemGroup>
		]]
	end

--
-- Make sure that the sort order of the source files is maintained even
-- when virtual paths are used to organize them.
--

	function suite.maintainsSortOrder_onVirtualPaths()
		files { "SystemTray.h", "PrefsWriter.h", "SystemTray.cpp", "PrefsWriter.cpp" }
		vpaths {
			["source/mfc"] = { "PrefsWriter.*" },
			["source/core"] = { "SystemTray.*" },
		}
		prepare()
		test.capture [[
	<ItemGroup>
		<ClInclude Include="PrefsWriter.h" />
		<ClInclude Include="SystemTray.h" />
	</ItemGroup>
		]]
	end


text:
<fieldset class="accordion-group fd-question-fieldset">
    <legend class="accordion-heading">
        <% if (help) { %>
        <a href="<%=help.link%>" target="_blank" class="fd-help pull-right"
                data-title="<%=help.title%>"
                data-content="<%=help.text%>"
                data-placement="left">

        <% } %>
        <a class="accordion-toggle<% if (isCollapsed) { %> collapsed<% } %>" href="#<%=fieldsetClass%>" data-toggle="collapse">

            <%=fieldsetTitle%>

    </legend>

    <div id="<%=fieldsetClass%>" class="accordion-body collapse<% if
        (!isCollapsed) { %> in<% } %>" >

</fieldset>


text:
class Admin::CommentsController < Admin::ApplicationController

end


text:
import React from 'react';
import {
    Text,
    View
} from 'react-native';

const Card = (props) => {
    return (
        <View style={[styles.containerStyle, props.style]}>
            {props.children}
        </View>
    );
};

const styles = {
    containerStyle: {
        borderWidth: 1,
        borderRadius: 2,
        borderColor: "#DDD",
        borderBottomWidth: 0,
        backgroundColor: "white",
        elevation: 5,
        shadowColor: '#333333',
        shadowOffset: {
          width: 0,
          height: 2
        },
        shadowRadius: 2,
        shadowOpacity: 0.60,
        marginLeft: 10,
        marginRight: 10,
        marginTop: 8,
        marginBottom: 8
    }
};

export { Card };


text:
import React, { Component, Fragment } from 'react'
import SocialLink from '../SocialLink'

class Footer extends Component {
  render() {
    return (
      <Fragment>
        <footer>
          <SocialLink href="http://twitter.com/fforres" iconName="Twitter" />
          <SocialLink href="http://facebook.com/fforres" iconName="Facebook" />
          <SocialLink href="http://flickr.com/fforres" iconName="Flicker" />
          <SocialLink href="http://github.com/fforres" iconName="Github" />
          <SocialLink
            href="https://www.linkedin.com/in/fforres"
            iconName="Linkedin"
          />
        </footer>
        <style jsx>{`
          .container {
            width: 100%;
            margin: 0 auto;
            max-width: 46rem;
          }
          footer {
            display: flex;
            justify-content: center;
            padding-bottom: 3rem;
          }
        `}</style>
      </Fragment>
    )
  }
}

export default Footer


text:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ChangeListManager">
    <list default="true" id="f6b98d2b-f957-47a3-a586-af4c0aee8ca5" name="Default" comment="" />
    <ignored path="MMS.iws" />
    <ignored path=".idea/workspace.xml" />
    <ignored path=".idea/dataSources.local.xml" />
    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
    <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="FavoritesManager">
    <favorites_list name="MMS" />
  </component>
  <component name="FileEditorManager">
    <leaf>
      <file leaf-file-name="post.rb" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/users/app/models/mms/users/post.rb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="2" column="38" selection-start-line="2" selection-start-column="38" selection-end-line="2" selection-end-column="38" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="user.rb" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/users/app/models/mms/users/user.rb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="routes.rb" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/config/routes.rb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="6" column="0" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="new.html.erb" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/users/app/views/devise/registrations/new.html.erb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="-18.125">
              <caret line="29" column="0" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="password_change.html.erb" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/users/app/views/devise/mailer/password_change.html.erb">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0">
              <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
    </leaf>
  </component>
  <component name="FileTemplateManagerImpl">
    <option name="RECENT_TEMPLATES">
      <list>
        <option value="Ruby Class Template" />
      </list>
    </option>
  </component>
  <component name="IdeDocumentHistory">
    <option name="CHANGED_PATHS">
      <list>
        <option value="$PROJECT_DIR$/Rakefile" />
        <option value="$PROJECT_DIR$/core/core/config/routes.rb" />
        <option value="$PROJECT_DIR$/core/core/lib/mms/core/version.rb" />
        <option value="$PROJECT_DIR$/core/core/mms_core.gemspec" />
        <option value="$PROJECT_DIR$/core/core/lib/core.rb" />
        <option value="$PROJECT_DIR$/build.sh" />
        <option value="$PROJECT_DIR$/build-ci.rb" />
        <option value="$PROJECT_DIR$/core/core/Gemfile" />
        <option value="$PROJECT_DIR$/core/core/lib/mms/core/engine.rb" />
        <option value="$PROJECT_DIR$/core/Gemfile" />
        <option value="$PROJECT_DIR$/core/lib/mms/core/engine.rb" />
        <option value="$PROJECT_DIR$/core/bin/rails" />
        <option value="$PROJECT_DIR$/core/lib/core.rb" />
        <option value="$PROJECT_DIR$/core/lib/mms_core.rb" />
        <option value="$PROJECT_DIR$/test_app/config/routes.rb" />
        <option value="$PROJECT_DIR$/users/bin/rails" />
        <option value="$PROJECT_DIR$/backend/bin/rails" />
        <option value="$PROJECT_DIR$/users/lib/mms/users/version.rb" />
        <option value="$PROJECT_DIR$/Gemfile" />
        <option value="$PROJECT_DIR$/users/Gemfile" />
        <option value="$PROJECT_DIR$/backend/Gemfile" />
        <option value="$PROJECT_DIR$/users/config/routes.rb" />
        <option value="$PROJECT_DIR$/backend/lib/mms/backend/version.rb" />
        <option value="$PROJECT_DIR$/test_app/Gemfile" />
        <option value="$PROJECT_DIR$/users/lib/mms_users.rb" />
        <option value="$PROJECT_DIR$/users/db/migrate/20160314084817_create_mms_users_posts.rb" />
        <option value="$PROJECT_DIR$/users/lib/mms/users/engine.rb" />
        <option value="$PROJECT_DIR$/users/app/models/mms/users/post.rb" />
        <option value="$PROJECT_DIR$/users/app/models/mms/users.rb" />
        <option value="$PROJECT_DIR$/common_dependencies.rb" />
        <option value="$PROJECT_DIR$/app/controllers/mms/application_controller.rb" />
        <option value="$PROJECT_DIR$/app/controllers/mms/base_controller.rb" />
        <option value="$PROJECT_DIR$/users/app/models/mms/users/user.rb" />
        <option value="$PROJECT_DIR$/config/initializers/devise.rb" />
        <option value="$PROJECT_DIR$/backend/config/routes.rb" />
        <option value="$PROJECT_DIR$/backend/lib/mms_backend.rb" />
        <option value="$PROJECT_DIR$/lib/mms.rb" />
        <option value="$PROJECT_DIR$/backend/lib/mms/backend/engine.rb" />
        <option value="$PROJECT_DIR$/backend/app/models/mms/backend/post.rb" />
        <option value="$PROJECT_DIR$/backend/app/controllers/mms/backend/application_controller.rb" />
        <option value="$PROJECT_DIR$/users/app/controllers/mms/users/base_controller.rb" />
        <option value="$PROJECT_DIR$/users/app/controllers/mms/users/posts_controller.rb" />
        <option value="$PROJECT_DIR$/backend/app/controllers/mms/backend/posts_controller.rb" />
        <option value="$PROJECT_DIR$/backend/app/models/mms/backend/admin.rb" />
        <option value="$PROJECT_DIR$/mms.gemspec" />
        <option value="$PROJECT_DIR$/backend/mms_backend.gemspec" />
        <option value="$PROJECT_DIR$/users/mms_users.gemspec" />
        <option value="$PROJECT_DIR$/users/app/controllers/mms/users/registrations_controller.rb" />
        <option value="$PROJECT_DIR$/config/routes.rb" />
        <option value="$PROJECT_DIR$/lib/mms/engine.rb" />
        <option value="$PROJECT_DIR$/app/views/devise/registrations/new.html.erb" />
      </list>
    </option>
  </component>
  <component name="JsBuildToolGruntFileManager" detection-done="true" />
  <component name="JsGulpfileManager">
    <detection-done>true</detection-done>
  </component>
  <component name="NamedScopeManager">
    <order />
  </component>
  <component name="ProjectFrameBounds">
    <option name="x" value="1023" />
    <option name="width" value="1602" />
    <option name="height" value="901" />
  </component>
  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
    <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="0" id="Add" />
    <ConfirmationsSetting value="0" id="Remove" />
  </component>
  <component name="ProjectView">
    <navigator currentView="ProjectPane" proportions="" version="1">
      <flattenPackages />
      <showMembers />
      <showModules />
      <showLibraryContents />
      <hideEmptyPackages />
      <abbreviatePackageNames />
      <autoscrollToSource />
      <autoscrollFromSource />
      <sortByType />
    </navigator>
    <panes>
      <pane id="Scratches" />
      <pane id="Scope" />
      <pane id="ProjectPane">
        <subPane>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="users" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="users" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="views" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="mms" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="users" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="users" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="views" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="users" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="views" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="MMS" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="app" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
    </panes>
  </component>
  <component name="PropertiesComponent">
    <property name="settings.editor.selected.configurable" value="org.jetbrains.plugins.ruby.settings.RubyActiveModuleSdkConfigurable" />
    <property name="settings.editor.splitter.proportion" value="0.2" />
    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
    <property name="WebServerToolWindowFactoryState" value="false" />
  </component>
  <component name="RecentsManager">
    <key name="CopyFile.RECENT_KEYS">
      <recent name="$PROJECT_DIR$/backend/app/models/mms/backend" />
      <recent name="$PROJECT_DIR$/users/app/models/mms/users" />
    </key>
    <key name="MoveFile.RECENT_KEYS">
      <recent name="$PROJECT_DIR$/users/app/views" />
      <recent name="$PROJECT_DIR$/users/app/views/mms/users" />
      <recent name="$PROJECT_DIR$/backend/app/controllers/mms/backend" />
      <recent name="$PROJECT_DIR$/users/app/models/mms" />
      <recent name="$PROJECT_DIR$/users/app/models/mms/users" />
    </key>
  </component>
  <component name="RunManager">
    <configuration default="true" type="CucumberRunConfigurationType" factoryName="Cucumber">
      <predefined_log_file id="RUBY_CUCUMBER" enabled="true" />
      <module name="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
      <envs />
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*.feature" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TAGS_FILTER" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_NAME_FILTER" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_ARGS" VALUE="--color -r features" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="VERBOSE_OPTION" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_RUNNER_PATH" VALUE="" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_RUNNER" VALUE="false" />
      <CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SETTINGS_VERSION" VALUE="2" />
      <method />
    </configuration>
    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
      <method />
    </configuration>
    <configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
      <predefined_log_file id="RUBY_RSPEC" enabled="true" />
      <module name="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
      <envs />
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
      <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
      <method />
    </configuration>
    <configuration default="true" type="RubyRunConfigurationType" factoryName="Ruby">
      <module name="" />
      <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="" />
      <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
      <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
      <RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
      <envs />
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
      <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="" />
      <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
      <method />
    </configuration>
    <configuration default="true" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest">
      <predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
      <module name="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
      <envs />
      <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
      <EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
      <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
        <COVERAGE_PATTERN ENABLED="true">
          <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
        </COVERAGE_PATTERN>
      </EXTENSION>
      <EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
      <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
      <method />
    </configuration>
    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
      <node-options />
      <gulpfile />
      <tasks />
      <arguments />
      <pass-parent-envs>true</pass-parent-envs>
      <envs />
      <method />
    </configuration>
  </component>
  <component name="ShelveChangesManager" show_recycled="false" />
  <component name="TaskManager">
    <task active="true" id="Default" summary="Default task">
      <changelist id="f6b98d2b-f957-47a3-a586-af4c0aee8ca5" name="Default" comment="" />
      <created>1457705204753</created>
      <option name="number" value="Default" />
      <updated>1457705204753</updated>
    </task>
    <servers />
  </component>
  <component name="ToolWindowManager">
    <frame x="1023" y="0" width="1602" height="901" extended-state="6" />
    <editor active="false" />
    <layout>
      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32965687" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" 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.33" sideWeight="0.5" order="6" 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.32965687" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Database" 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="Structure" active="false" anchor="left" 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="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24875" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" 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="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" 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.33" sideWeight="0.5" order="7" 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="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="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="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" />
      <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" />
    </layout>
  </component>
  <component name="VcsContentAnnotationSettings">
    <option name="myLimit" value="2678400000" />
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager />
    <watches-manager />
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/lib/mms.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="18" selection-start-line="0" selection-start-column="18" selection-end-line="0" selection-end-column="18" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/mms.gemspec">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="15" column="3" selection-start-line="15" selection-start-column="3" selection-end-line="15" selection-end-column="3" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Gemfile">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="71" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Rakefile">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Rakefile">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="24" column="48" selection-start-line="24" selection-start-column="48" selection-end-line="24" selection-end-column="48" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/lib/tasks/users_tasks.rake">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/bin/rails">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/bin/rails">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/bin/rails">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/Gemfile">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="7" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/Gemfile">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="7" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/lib/mms/users/version.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/lib/mms/backend/version.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/db/migrate/20160314092819_create_mms_users_posts.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="27" selection-start-line="2" selection-start-column="18" selection-end-line="2" selection-end-column="33" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Gemfile">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/common_dependencies.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="5" column="3" selection-start-line="5" selection-start-column="3" selection-end-line="5" selection-end-column="3" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/app/controllers/mms/application_controller.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/app/controllers/mms/base_controller.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="4" column="0" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/initializers/devise.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="246" column="30" selection-start-line="246" selection-start-column="30" selection-end-line="246" selection-end-column="30" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/mms.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="6" column="0" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/config/routes.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/lib/mms_users.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="1" column="0" selection-start-line="1" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/lib/mms/users/engine.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="7" column="12" selection-start-line="5" selection-start-column="6" selection-end-line="9" selection-end-column="9" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/lib/mms_backend.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/lib/mms/backend/engine.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="13" column="0" selection-start-line="13" selection-start-column="0" selection-end-line="13" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/config/routes.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/app/models/mms/backend.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/db/migrate/20160314100400_create_mms_backend_posts.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="30" selection-start-line="2" selection-start-column="18" selection-end-line="2" selection-end-column="35" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/app/models/mms/backend/post.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="5" column="0" selection-start-line="5" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/app/controllers/mms/users/application_controller.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="5" column="3" selection-start-line="5" selection-start-column="3" selection-end-line="5" selection-end-column="3" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/app/models/mms/backend/admin.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="6" column="13" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/mms.gemspec">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="19" column="37" selection-start-line="19" selection-start-column="37" selection-end-line="19" selection-end-column="37" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/mms_backend.gemspec">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="19" column="37" selection-start-line="19" selection-start-column="37" selection-end-line="19" selection-end-column="37" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/mms_users.gemspec">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="23" column="0" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/app/controllers/mms/users/registrations_controller.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.40076336">
          <caret line="21" column="3" selection-start-line="21" selection-start-column="3" selection-end-line="21" selection-end-column="3" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/app/controllers/mms/users/posts_controller.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.21755725">
          <caret line="27" column="0" selection-start-line="27" selection-start-column="0" selection-end-line="27" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/app/controllers/mms/backend/posts_controller.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.3244275">
          <caret line="17" column="11" selection-start-line="17" selection-start-column="11" selection-end-line="17" selection-end-column="11" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/backend/app/controllers/mms/backend/application_controller.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.13358779">
          <caret line="7" column="0" selection-start-line="7" selection-start-column="0" selection-end-line="7" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/app/models/mms/users/post.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="2" column="38" selection-start-line="2" selection-start-column="38" selection-end-line="2" selection-end-column="38" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/app/models/mms/users/user.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="10" column="0" selection-start-line="10" selection-start-column="0" selection-end-line="10" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/lib/mms/engine.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.3053435">
          <caret line="16" column="0" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/config/routes.rb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="6" column="0" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/app/views/devise/registrations/new.html.erb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="-18.125">
          <caret line="29" column="0" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/users/app/views/devise/mailer/password_change.html.erb">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
  </component>
</project>


text:
package org.qi4j.api.value;

/**
 * Thrown when an error occur during value state (de)serialization.
 */
public class ValueSerializationException
    extends RuntimeException
{

    private static final long serialVersionUID = 1L;

    public ValueSerializationException()
    {
        super();
    }

    public ValueSerializationException( String message )
    {
        super( message );
    }

    public ValueSerializationException( String message, Throwable cause )
    {
        super( message, cause );
    }

    public ValueSerializationException( Throwable cause )
    {
        super( cause.getClass().getName() + ": " + cause.getMessage(), cause );
    }
}


text:
package org.apache.mesos.elasticsearch.scheduler;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.*;

/**
 *
 */
@EnableAutoConfiguration
@ComponentScan
@org.springframework.context.annotation.Configuration
public class WebApplication {
}


text:
function childMonitorState(props, state, action) {
  const child = props.children;
  return child.type.update(child.props, state, action);
}

export default function reducer(props, state = {}, action) {
  return {
    childMonitorState: childMonitorState(props, state.childMonitorState, action)
  };
}