import numpy as np
import os
import shutil
import tempfile
import unittest

import torch
from caffe2.proto import caffe2_pb2
from caffe2.python import core, test_util, workspace, model_helper, brew

import caffe2.python.hypothesis_test_util as htu
import hypothesis.strategies as st
from hypothesis import given, settings

class TestWorkspace(unittest.TestCase):
    def setUp(self):
        self.net = core.Net("test-net")
        self.testblob_ref = self.net.ConstantFill(
            [], "testblob", shape=[1, 2, 3, 4], value=1.0)
        workspace.ResetWorkspace()

    def testRootFolder(self):
        self.assertEqual(workspace.ResetWorkspace(), True)
        self.assertEqual(workspace.RootFolder(), ".")
        self.assertEqual(
            workspace.ResetWorkspace("/tmp/caffe-workspace-test"), True)
        self.assertEqual(workspace.RootFolder(), "/tmp/caffe-workspace-test")

    def testWorkspaceHasBlobWithNonexistingName(self):
        self.assertEqual(workspace.HasBlob("non-existing"), False)

    def testRunOperatorOnce(self):
        self.assertEqual(
            workspace.RunOperatorOnce(
                self.net.Proto().op[0].SerializeToString()
            ), True
        )
        self.assertEqual(workspace.HasBlob("testblob"), True)
        blobs = workspace.Blobs()
        self.assertEqual(len(blobs), 1)
        self.assertEqual(blobs[0], "testblob")

    def testGetOperatorCost(self):
        op = core.CreateOperator(
            "Conv2D",
            ["X", "W"], ["Y"],
            stride_h=1,
            stride_w=1,
            pad_t=1,
            pad_l=1,
            pad_b=1,
            pad_r=1,
            kernel=3,
        )
        X = np.zeros((1, 8, 8, 8))
        W = np.zeros((1, 1, 3, 3))
        workspace.FeedBlob("X", X)
        workspace.FeedBlob("W", W)
        flops, _ = workspace.GetOperatorCost(op.SerializeToString(), ["X", "W"])
        self.assertEqual(flops, 1152)

    def testRunNetOnce(self):
        self.assertEqual(
            workspace.RunNetOnce(self.net.Proto().SerializeToString()), True)
        self.assertEqual(workspace.HasBlob("testblob"), True)

    def testCurrentWorkspaceWrapper(self):
        self.assertNotIn("testblob", workspace.C.Workspace.current.blobs)
        self.assertEqual(
            workspace.RunNetOnce(self.net.Proto().SerializeToString()), True)
        self.assertEqual(workspace.HasBlob("testblob"), True)
        self.assertIn("testblob", workspace.C.Workspace.current.blobs)
        workspace.ResetWorkspace()
        self.assertNotIn("testblob", workspace.C.Workspace.current.blobs)

    def testRunPlan(self):
        plan = core.Plan("test-plan")
        plan.AddStep(core.ExecutionStep("test-step", self.net))
        self.assertEqual(
            workspace.RunPlan(plan.Proto().SerializeToString()), True)
        self.assertEqual(workspace.HasBlob("testblob"), True)

    def testRunPlanInBackground(self):
        plan = core.Plan("test-plan")
        plan.AddStep(core.ExecutionStep("test-step", self.net))
        background_plan = workspace.RunPlanInBackground(plan)
        while not background_plan.is_done():
            pass
        self.assertEqual(background_plan.is_succeeded(), True)
        self.assertEqual(workspace.HasBlob("testblob"), True)

    def testConstructPlanFromSteps(self):
        step = core.ExecutionStep("test-step-as-plan", self.net)
        self.assertEqual(workspace.RunPlan(step), True)
        self.assertEqual(workspace.HasBlob("testblob"), True)

    def testResetWorkspace(self):
        self.assertEqual(
            workspace.RunNetOnce(self.net.Proto().SerializeToString()), True)
        self.assertEqual(workspace.HasBlob("testblob"), True)
        self.assertEqual(workspace.ResetWorkspace(), True)
        self.assertEqual(workspace.HasBlob("testblob"), False)

    def testTensorAccess(self):
        ws = workspace.C.Workspace()

        """ test in-place modification """
        ws.create_blob("tensor").feed(np.array([1.1, 1.2, 1.3]))
        tensor = ws.blobs["tensor"].tensor()
        tensor.data[0] = 3.3
        val = np.array([3.3, 1.2, 1.3])
        np.testing.assert_array_equal(tensor.data, val)
        np.testing.assert_array_equal(ws.blobs["tensor"].fetch(), val)

        """ test in-place initialization """
        tensor.init([2, 3], core.DataType.INT32)
        for x in range(2):
            for y in range(3):
                tensor.data[x, y] = 0
        tensor.data[1, 1] = 100
        val = np.zeros([2, 3], dtype=np.int32)
        val[1, 1] = 100
        np.testing.assert_array_equal(tensor.data, val)
        np.testing.assert_array_equal(ws.blobs["tensor"].fetch(), val)

        """ strings cannot be initialized from python """
        with self.assertRaises(RuntimeError):
            tensor.init([3, 4], core.DataType.STRING)

        """ feed (copy) data into tensor """
        val = np.array([[b'abc', b'def'], [b'ghi', b'jkl']], dtype=np.object)
        tensor.feed(val)
        self.assertEquals(tensor.data[0, 0], b'abc')
        np.testing.assert_array_equal(ws.blobs["tensor"].fetch(), val)

        val = np.array([1.1, 10.2])
        tensor.feed(val)
        val[0] = 5.2
        self.assertEquals(tensor.data[0], 1.1)

        """ fetch (copy) data from tensor """
        val = np.array([1.1, 1.2])
        tensor.feed(val)
        val2 = tensor.fetch()
        tensor.data[0] = 5.2
        val3 = tensor.fetch()
        np.testing.assert_array_equal(val, val2)
        self.assertEquals(val3[0], 5.2)

    def testFetchFeedBlob(self):
        self.assertEqual(
            workspace.RunNetOnce(self.net.Proto().SerializeToString()), True)
        fetched = workspace.FetchBlob("testblob")
        # check if fetched is correct.
        self.assertEqual(fetched.shape, (1, 2, 3, 4))
        np.testing.assert_array_equal(fetched, 1.0)
        fetched[:] = 2.0
        self.assertEqual(workspace.FeedBlob("testblob", fetched), True)
        fetched_again = workspace.FetchBlob("testblob")
        self.assertEqual(fetched_again.shape, (1, 2, 3, 4))
        np.testing.assert_array_equal(fetched_again, 2.0)

    def testFetchFeedBlobViaBlobReference(self):
        self.assertEqual(
            workspace.RunNetOnce(self.net.Proto().SerializeToString()), True)
        fetched = workspace.FetchBlob(self.testblob_ref)
        # check if fetched is correct.
        self.assertEqual(fetched.shape, (1, 2, 3, 4))
        np.testing.assert_array_equal(fetched, 1.0)
        fetched[:] = 2.0
        self.assertEqual(workspace.FeedBlob(self.testblob_ref, fetched), True)
        fetched_again = workspace.FetchBlob("testblob")  # fetch by name now
        self.assertEqual(fetched_again.shape, (1, 2, 3, 4))
        np.testing.assert_array_equal(fetched_again, 2.0)

    def testFetchFeedBlobTypes(self):
        for dtype in [np.float16, np.float32, np.float64, np.bool,
                      np.int8, np.int16, np.int32, np.int64,
                      np.uint8, np.uint16]:
            try:
                rng = np.iinfo(dtype).max * 2
            except ValueError:
                rng = 1000
            data = ((np.random.rand(2, 3, 4) - 0.5) * rng).astype(dtype)
            self.assertEqual(workspace.FeedBlob("testblob_types", data), True)
            fetched_back = workspace.FetchBlob("testblob_types")
            self.assertEqual(fetched_back.shape, (2, 3, 4))
            self.assertEqual(fetched_back.dtype, dtype)
            np.testing.assert_array_equal(fetched_back, data)

    def testFetchFeedBlobBool(self):
        """Special case for bool to ensure coverage of both true and false."""
        data = np.zeros((2, 3, 4)).astype(np.bool)
        data.flat[::2] = True
        self.assertEqual(workspace.FeedBlob("testblob_types", data), True)
        fetched_back = workspace.FetchBlob("testblob_types")
        self.assertEqual(fetched_back.shape, (2, 3, 4))
        self.assertEqual(fetched_back.dtype, np.bool)
        np.testing.assert_array_equal(fetched_back, data)

    def testGetBlobSizeBytes(self):
        for dtype in [np.float16, np.float32, np.float64, np.bool,
                      np.int8, np.int16, np.int32, np.int64,
                      np.uint8, np.uint16]:
            data = np.random.randn(2, 3).astype(dtype)
            self.assertTrue(workspace.FeedBlob("testblob_sizeBytes", data), True)
            self.assertEqual(
                workspace.GetBlobSizeBytes("testblob_sizeBytes"),
                6 * np.dtype(dtype).itemsize)
        strs1 = np.array([b'Hello World!', b'abcd'])
        strs2 = np.array([b'element1', b'element2'])
        strs1_len, strs2_len = 0, 0
        for str in strs1:
            strs1_len += len(str)
        for str in strs2:
            strs2_len += len(str)
        self.assertTrue(workspace.FeedBlob("testblob_str1", strs1), True)
        self.assertTrue(workspace.FeedBlob("testblob_str2", strs2), True)
        # size of blob "testblob_str1" = size_str1 * meta_.itemsize() + strs1_len
        # size of blob "testblob_str2" = size_str2 * meta_.itemsize() + strs2_len
        self.assertEqual(
            workspace.GetBlobSizeBytes("testblob_str1") -
            workspace.GetBlobSizeBytes("testblob_str2"), strs1_len - strs2_len)

    def testFetchFeedBlobZeroDim(self):
        data = np.empty(shape=(2, 0, 3), dtype=np.float32)
        self.assertEqual(workspace.FeedBlob("testblob_empty", data), True)
        fetched_back = workspace.FetchBlob("testblob_empty")
        self.assertEqual(fetched_back.shape, (2, 0, 3))
        self.assertEqual(fetched_back.dtype, np.float32)

    def testFetchFeedLongStringTensor(self):
        # long strings trigger array of object creation
        strs = np.array([
            b' '.join(10 * [b'long string']),
            b' '.join(128 * [b'very long string']),
            b'small \0\1\2 string',
            b"Hello, world! I have special \0 symbols \1!"])
        workspace.FeedBlob('my_str_tensor', strs)
        strs2 = workspace.FetchBlob('my_str_tensor')
        self.assertEqual(strs.shape, strs2.shape)
        for i in range(0, strs.shape[0]):
            self.assertEqual(strs[i], strs2[i])

    def testFetchFeedShortStringTensor(self):
        # small strings trigger NPY_STRING array
        strs = np.array([b'elem1', b'elem 2', b'element 3'])
        workspace.FeedBlob('my_str_tensor_2', strs)
        strs2 = workspace.FetchBlob('my_str_tensor_2')
        self.assertEqual(strs.shape, strs2.shape)
        for i in range(0, strs.shape[0]):
            self.assertEqual(strs[i], strs2[i])

    def testFetchFeedPlainString(self):
        # this is actual string, not a tensor of strings
        s = b"Hello, world! I have special \0 symbols \1!"
        workspace.FeedBlob('my_plain_string', s)
        s2 = workspace.FetchBlob('my_plain_string')
        self.assertEqual(s, s2)

    def testFetchBlobs(self):
        s1 = b"test1"
        s2 = b"test2"
        workspace.FeedBlob('s1', s1)
        workspace.FeedBlob('s2', s2)
        fetch1, fetch2 = workspace.FetchBlobs(['s1', 's2'])
        self.assertEquals(s1, fetch1)
        self.assertEquals(s2, fetch2)

    def testFetchFeedViaBlobDict(self):
        self.assertEqual(
            workspace.RunNetOnce(self.net.Proto().SerializeToString()), True)
        fetched = workspace.blobs["testblob"]
        # check if fetched is correct.
        self.assertEqual(fetched.shape, (1, 2, 3, 4))
        np.testing.assert_array_equal(fetched, 1.0)
        fetched[:] = 2.0
        workspace.blobs["testblob"] = fetched
        fetched_again = workspace.blobs["testblob"]
        self.assertEqual(fetched_again.shape, (1, 2, 3, 4))
        np.testing.assert_array_equal(fetched_again, 2.0)

        self.assertTrue("testblob" in workspace.blobs)
        self.assertFalse("non_existant" in workspace.blobs)
        self.assertEqual(len(workspace.blobs), 1)
        for key in workspace.blobs:
            self.assertEqual(key, "testblob")

    def testTorchInterop(self):
        workspace.RunOperatorOnce(core.CreateOperator(
            "ConstantFill", [], "foo", shape=(4,), value=2, dtype=10))
        t = workspace.FetchTorch("foo")
        t.resize_(5)
        t[4] = t[2] = 777
        np.testing.assert_array_equal(t.numpy(), np.array([2,2,777,2,777]))
        np.testing.assert_array_equal(
            workspace.FetchBlob("foo"), np.array([2,2,777,2,777]))

        z = torch.ones((4,), dtype=torch.int64)
        workspace.FeedBlob('bar', z)
        workspace.RunOperatorOnce(
            core.CreateOperator("Reshape", ['bar'], ['bar', '_'], shape=(2,2)))
        z[0,1] = 123
        np.testing.assert_array_equal(
            workspace.FetchBlob("bar"), np.array([[1,123],[1,1]]))
        np.testing.assert_array_equal(z, np.array([[1,123],[1,1]]))

class TestMultiWorkspaces(unittest.TestCase):
    def setUp(self):
        workspace.SwitchWorkspace("default")
        workspace.ResetWorkspace()

    def testCreateWorkspace(self):
        self.net = core.Net("test-net")
        self.net.ConstantFill([], "testblob", shape=[1, 2, 3, 4], value=1.0)
        self.assertEqual(
            workspace.RunNetOnce(self.net.Proto().SerializeToString()), True
        )
        self.assertEqual(workspace.HasBlob("testblob"), True)
        self.assertEqual(workspace.SwitchWorkspace("test", True), None)
        self.assertEqual(workspace.HasBlob("testblob"), False)
        self.assertEqual(workspace.SwitchWorkspace("default"), None)
        self.assertEqual(workspace.HasBlob("testblob"), True)

        try:
            # The following should raise an error.
            workspace.SwitchWorkspace("non-existing")
            # so this should never happen.
            self.assertEqual(True, False)
        except RuntimeError:
            pass

        workspaces = workspace.Workspaces()
        self.assertTrue("default" in workspaces)
        self.assertTrue("test" in workspaces)

@unittest.skipIf(not workspace.has_gpu_support, "No gpu support.")
class TestWorkspaceGPU(test_util.TestCase):

    def setUp(self):
        workspace.ResetWorkspace()
        self.net = core.Net("test-net")
        self.net.ConstantFill([], "testblob", shape=[1, 2, 3, 4], value=1.0)
        self.net.RunAllOnGPU()

    def testFetchBlobGPU(self):
        self.assertEqual(
            workspace.RunNetOnce(self.net.Proto().SerializeToString()), True)
        fetched = workspace.FetchBlob("testblob")
        # check if fetched is correct.
        self.assertEqual(fetched.shape, (1, 2, 3, 4))
        np.testing.assert_array_equal(fetched, 1.0)
        fetched[:] = 2.0
        self.assertEqual(workspace.FeedBlob("testblob", fetched), True)
        fetched_again = workspace.FetchBlob("testblob")
        self.assertEqual(fetched_again.shape, (1, 2, 3, 4))
        np.testing.assert_array_equal(fetched_again, 2.0)

    def testGetGpuPeerAccessPattern(self):
        pattern = workspace.GetGpuPeerAccessPattern()
        self.assertEqual(type(pattern), np.ndarray)
        self.assertEqual(pattern.ndim, 2)
        self.assertEqual(pattern.shape[0], pattern.shape[1])
        self.assertEqual(pattern.shape[0], workspace.NumGpuDevices())

    @unittest.skipIf(not workspace.has_cuda_support,
                     "Tensor interop doesn't yet work on ROCm")
    def testTorchInterop(self):
        # CUDA has convenient mem stats, let's use them to make sure we didn't
        # leak memory
        initial_mem = torch.cuda.memory_allocated()
        workspace.RunOperatorOnce(core.CreateOperator(
            "ConstantFill", [], "foo", shape=(4,), value=2, dtype=10,
            device_option=core.DeviceOption(workspace.GpuDeviceType)))
        t = workspace.FetchTorch("foo")
        t.resize_(5)
        self.assertTrue(t.is_cuda)
        t[4] = t[2] = 777
        np.testing.assert_array_equal(
            t.cpu().numpy(), np.array([2,2,777,2,777]))
        np.testing.assert_array_equal(
            workspace.FetchBlob("foo"), np.array([2,2,777,2,777]))

        z = torch.ones((4,), dtype=torch.int64, device="cuda")
        workspace.FeedBlob('bar', z)
        workspace.RunOperatorOnce(
            core.CreateOperator("Reshape", ['bar'], ['bar', '_'], shape=(2,2),
            device_option=core.DeviceOption(workspace.GpuDeviceType)))
        z[0,1] = 123
        np.testing.assert_array_equal(
            workspace.FetchBlob("bar"), np.array([[1,123],[1,1]]))
        np.testing.assert_array_equal(z.cpu(), np.array([[1,123],[1,1]]))

        self.assertGreater(torch.cuda.memory_allocated(), initial_mem)
        # clean up everything
        del t
        del z
        workspace.ResetWorkspace()
        self.assertEqual(torch.cuda.memory_allocated(), initial_mem)

@unittest.skipIf(not workspace.C.use_mkldnn, "No MKLDNN support.")
class TestWorkspaceIDEEP(test_util.TestCase):

    def testFeedFetchBlobIDEEP(self):
        arr = np.random.randn(2, 3).astype(np.float32)
        workspace.FeedBlob(
            "testblob_ideep", arr, core.DeviceOption(caffe2_pb2.IDEEP))
        fetched = workspace.FetchBlob("testblob_ideep")
        np.testing.assert_array_equal(arr, fetched)

class TestImmedibate(test_util.TestCase):
    def testImmediateEnterExit(self):
        workspace.StartImmediate(i_know=True)
        self.assertTrue(workspace.IsImmediate())
        workspace.StopImmediate()
        self.assertFalse(workspace.IsImmediate())

    def testImmediateRunsCorrectly(self):
        workspace.StartImmediate(i_know=True)
        net = core.Net("test-net")
        net.ConstantFill([], "testblob", shape=[1, 2, 3, 4], value=1.0)
        self.assertEqual(
            workspace.ImmediateBlobs(), ["testblob"])
        content = workspace.FetchImmediate("testblob")
        # Also, the immediate mode should not invade the original namespace,
        # so we check if this is so.
        with self.assertRaises(RuntimeError):
            workspace.FetchBlob("testblob")
        np.testing.assert_array_equal(content, 1.0)
        content[:] = 2.0
        self.assertTrue(workspace.FeedImmediate("testblob", content))
        np.testing.assert_array_equal(
            workspace.FetchImmediate("testblob"), 2.0)
        workspace.StopImmediate()
        with self.assertRaises(RuntimeError):
            content = workspace.FetchImmediate("testblob")

    def testImmediateRootFolder(self):
        workspace.StartImmediate(i_know=True)
        # for testing we will look into the _immediate_root_folder variable
        # but in normal usage you should not access that.
        self.assertTrue(len(workspace._immediate_root_folder) > 0)
        root_folder = workspace._immediate_root_folder
        self.assertTrue(os.path.isdir(root_folder))
        workspace.StopImmediate()
        self.assertTrue(len(workspace._immediate_root_folder) == 0)
        # After termination, immediate mode should have the root folder
        # deleted.
        self.assertFalse(os.path.exists(root_folder))

class TestCppEnforceAsException(test_util.TestCase):
    def testEnforce(self):
        op = core.CreateOperator("Relu", ["X"], ["Y"])
        with self.assertRaises(RuntimeError):
            workspace.RunOperatorOnce(op)

class TestCWorkspace(htu.HypothesisTestCase):
    def test_net_execution(self):
        ws = workspace.C.Workspace()
        self.assertEqual(ws.nets, {})
        self.assertEqual(ws.blobs, {})
        net = core.Net("test-net")
        net.ConstantFill([], "testblob", shape=[1, 2, 3, 4], value=1.0)
        ws.create_net(net)
        # If we do not specify overwrite, this should raise an error.
        with self.assertRaises(RuntimeError):
            ws.create_net(net)
        # But, if we specify overwrite, this should pass.
        ws.create_net(net, True)
        # Overwrite can also be a kwarg.
        ws.create_net(net, overwrite=True)
        self.assertIn("testblob", ws.blobs)
        self.assertEqual(len(ws.nets), 1)
        net_name = net.Proto().name
        self.assertIn("test-net", net_name)
        net = ws.nets[net_name].run()
        blob = ws.blobs["testblob"]
        np.testing.assert_array_equal(
            np.ones((1, 2, 3, 4), dtype=np.float32),
            blob.fetch())

    @given(name=st.text(), value=st.floats(min_value=-1, max_value=1.0))
    def test_operator_run(self, name, value):
        ws = workspace.C.Workspace()
        op = core.CreateOperator(
            "ConstantFill", [], [name], shape=[1], value=value)
        ws.run(op)
        self.assertIn(name, ws.blobs)
        np.testing.assert_allclose(
            [value], ws.blobs[name].fetch(), atol=1e-4, rtol=1e-4)

    @given(blob_name=st.text(),
           net_name=st.text(),
           value=st.floats(min_value=-1, max_value=1.0))
    def test_net_run(self, blob_name, net_name, value):
        ws = workspace.C.Workspace()
        net = core.Net(net_name)
        net.ConstantFill([], [blob_name], shape=[1], value=value)
        ws.run(net)
        self.assertIn(blob_name, ws.blobs)
        self.assertNotIn(net_name, ws.nets)
        np.testing.assert_allclose(
            [value], ws.blobs[blob_name].fetch(), atol=1e-4, rtol=1e-4)

    @given(blob_name=st.text(),
           net_name=st.text(),
           plan_name=st.text(),
           value=st.floats(min_value=-1, max_value=1.0))
    def test_plan_run(self, blob_name, plan_name, net_name, value):
        ws = workspace.C.Workspace()
        plan = core.Plan(plan_name)
        net = core.Net(net_name)
        net.ConstantFill([], [blob_name], shape=[1], value=value)

        plan.AddStep(core.ExecutionStep("step", nets=[net], num_iter=1))

        ws.run(plan)
        self.assertIn(blob_name, ws.blobs)
        self.assertIn(net.Name(), ws.nets)
        np.testing.assert_allclose(
            [value], ws.blobs[blob_name].fetch(), atol=1e-4, rtol=1e-4)

    @given(blob_name=st.text(),
           net_name=st.text(),
           value=st.floats(min_value=-1, max_value=1.0))
    def test_net_create(self, blob_name, net_name, value):
        ws = workspace.C.Workspace()
        net = core.Net(net_name)
        net.ConstantFill([], [blob_name], shape=[1], value=value)
        ws.create_net(net).run()
        self.assertIn(blob_name, ws.blobs)
        self.assertIn(net.Name(), ws.nets)
        np.testing.assert_allclose(
            [value], ws.blobs[blob_name].fetch(), atol=1e-4, rtol=1e-4)

    @given(name=st.text(),
           value=htu.tensor(),
           device_option=st.sampled_from(htu.device_options))
    def test_array_serde(self, name, value, device_option):
        ws = workspace.C.Workspace()
        ws.create_blob(name).feed(value, device_option=device_option)
        self.assertIn(name, ws.blobs)
        blob = ws.blobs[name]
        np.testing.assert_equal(value, ws.blobs[name].fetch())
        serde_blob = ws.create_blob("{}_serde".format(name))
        serde_blob.deserialize(blob.serialize(name))
        np.testing.assert_equal(value, serde_blob.fetch())

    @given(name=st.text(), value=st.text())
    def test_string_serde(self, name, value):
        value = value.encode('ascii', 'ignore')
        ws = workspace.C.Workspace()
        ws.create_blob(name).feed(value)
        self.assertIn(name, ws.blobs)
        blob = ws.blobs[name]
        self.assertEqual(value, ws.blobs[name].fetch())
        serde_blob = ws.create_blob("{}_serde".format(name))
        serde_blob.deserialize(blob.serialize(name))
        self.assertEqual(value, serde_blob.fetch())

    def test_exception(self):
        ws = workspace.C.Workspace()

        with self.assertRaises(TypeError):
            ws.create_net("...")

class TestPredictor(unittest.TestCase):
    def _create_model(self):
        m = model_helper.ModelHelper()
        y = brew.fc(m, "data", "y",
                    dim_in=4, dim_out=2,
                    weight_init=('ConstantFill', dict(value=1.0)),
                    bias_init=('ConstantFill', dict(value=0.0)),
                    axis=0)
        m.net.AddExternalOutput(y)
        return m

    # Use this test with a bigger model to see how using Predictor allows to
    # avoid issues with low protobuf size limit in Python
    #
    # def test_predictor_predefined(self):
    #     workspace.ResetWorkspace()
    #     path = 'caffe2/caffe2/test/assets/'
    #     with open(path + 'squeeze_predict_net.pb') as f:
    #         self.predict_net = f.read()
    #     with open(path + 'squeeze_init_net.pb') as f:
    #         self.init_net = f.read()
    #     self.predictor = workspace.Predictor(self.init_net, self.predict_net)

    #     inputs = [np.zeros((1, 3, 256, 256), dtype='f')]
    #     outputs = self.predictor.run(inputs)
    #     self.assertEqual(len(outputs), 1)
    #     self.assertEqual(outputs[0].shape, (1, 1000, 1, 1))
    #     self.assertAlmostEqual(outputs[0][0][0][0][0], 5.19026289e-05)

    def test_predictor_memory_model(self):
        workspace.ResetWorkspace()
        m = self._create_model()
        workspace.FeedBlob("data", np.zeros([4], dtype='float32'))
        self.predictor = workspace.Predictor(
            workspace.StringifyProto(m.param_init_net.Proto()),
            workspace.StringifyProto(m.net.Proto()))

        inputs = np.array([1, 3, 256, 256], dtype='float32')
        outputs = self.predictor.run([inputs])
        np.testing.assert_array_almost_equal(
            np.array([[516, 516]], dtype='float32'), outputs)

class TestTransform(htu.HypothesisTestCase):
    @given(input_dim=st.integers(min_value=1, max_value=10),
           output_dim=st.integers(min_value=1, max_value=10),
           batch_size=st.integers(min_value=1, max_value=10))
    def test_simple_transform(self, input_dim, output_dim, batch_size):
        m = model_helper.ModelHelper()
        fc1 = brew.fc(m, "data", "fc1", dim_in=input_dim, dim_out=output_dim)
        fc2 = brew.fc(m, fc1, "fc2", dim_in=output_dim, dim_out=output_dim)
        conv = brew.conv(m, fc2, "conv",
                            dim_in=output_dim,
                            dim_out=output_dim,
                            use_cudnn=True,
                            engine="CUDNN",
                            kernel=3)

        conv.Relu([], conv)\
           .Softmax([], "pred") \
           .LabelCrossEntropy(["label"], ["xent"]) \
           .AveragedLoss([], "loss")

        transformed_net_proto = workspace.ApplyTransform(
            "ConvToNNPack",
            m.net.Proto())

        self.assertEqual(transformed_net_proto.op[2].engine, "NNPACK")

    @given(input_dim=st.integers(min_value=1, max_value=10),
           output_dim=st.integers(min_value=1, max_value=10),
           batch_size=st.integers(min_value=1, max_value=10))
    @settings(deadline=10000)
    def test_registry_invalid(self, input_dim, output_dim, batch_size):
        m = model_helper.ModelHelper()
        brew.fc(m, "data", "fc1", dim_in=input_dim, dim_out=output_dim)
        with self.assertRaises(RuntimeError):
            workspace.ApplyTransform(
                "definitely_not_a_real_transform",
                m.net.Proto())

    @given(value=st.floats(min_value=-1, max_value=1))
    @settings(deadline=10000)
    def test_apply_transform_if_faster(self, value):

        init_net = core.Net("init_net")
        init_net.ConstantFill([], ["data"], shape=[5, 5, 5, 5], value=value)
        init_net.ConstantFill([], ["conv_w"], shape=[5, 5, 3, 3], value=value)
        init_net.ConstantFill([], ["conv_b"], shape=[5], value=value)

        self.assertEqual(
            workspace.RunNetOnce(init_net.Proto().SerializeToString()), True)

        m = model_helper.ModelHelper()
        conv = brew.conv(m, "data", "conv",
                            dim_in=5,
                            dim_out=5,
                            kernel=3,
                            use_cudnn=True,
                            engine="CUDNN")

        conv.Relu([], conv)\
           .Softmax([], "pred") \
           .AveragedLoss([], "loss")

        self.assertEqual(
            workspace.RunNetOnce(m.net.Proto().SerializeToString()), True)

        proto = workspace.ApplyTransformIfFaster(
            "ConvToNNPack",
            m.net.Proto(),
            init_net.Proto())
        self.assertEqual(
            workspace.RunNetOnce(proto.SerializeToString()), True)
        proto = workspace.ApplyTransformIfFaster(
            "ConvToNNPack",
            m.net.Proto(),
            init_net.Proto(),
            warmup_runs=10,
            main_runs=100,
            improvement_threshold=2.0)
        self.assertEqual(
            workspace.RunNetOnce(proto.SerializeToString()), True)

class MyModule(torch.jit.ScriptModule):
    def __init__(self):
        super(MyModule, self).__init__()
        self.mult = torch.nn.Parameter(torch.tensor([[1, 2, 3, 4, 5.0]]))

    @torch.jit.script_method
    def forward(self, x):
        return self.mult.mm(x)

    @torch.jit.script_method
    def multi_input(self, x, y, z=2):
        # type: (Tensor, Tensor, int) -> Tensor
        return x + y + z

    @torch.jit.script_method
    def multi_output(self, x):
        return (x, x + 1)

@unittest.skipIf(
    "ScriptModule" not in core._REGISTERED_OPERATORS,
    "Script module integration in Caffe2 is not enabled")
class TestScriptModule(test_util.TestCase):
    def _createFeedModule(self):
        workspace.FeedBlob('m', MyModule())

    def testCreation(self):
        m = MyModule()
        workspace.FeedBlob('module', m)
        m2 = workspace.FetchBlob('module')
        self.assertTrue(m2 is not None)

    def testForward(self):
        self._createFeedModule()
        val = np.random.rand(5, 5).astype(np.float32)
        param = np.array([[1, 2, 3, 4, 5]]).astype(np.float32)
        workspace.FeedBlob('w', val)
        workspace.RunOperatorOnce(core.CreateOperator("ScriptModule", ["m", "w"], ["y"]))
        np.testing.assert_almost_equal(workspace.FetchBlob("y"), np.matmul(param, val), decimal=5)

    def testMultiInputOutput(self):
        self._createFeedModule()
        val = np.random.rand(5, 5).astype(np.float32)
        workspace.FeedBlob('w', val)
        val2 = np.random.rand(5, 5).astype(np.float32)
        workspace.FeedBlob('w2', val2)
        workspace.RunOperatorOnce(core.CreateOperator("ScriptModule", ["m", "w", "w2"], ["y"], method="multi_input"))
        workspace.RunOperatorOnce(core.CreateOperator("ScriptModule", ["m", "w"], ["y1", "y2"], method="multi_output"))
        np.testing.assert_almost_equal(workspace.FetchBlob("y"), val + val2 + 2, decimal=5)
        np.testing.assert_almost_equal(workspace.FetchBlob("y1"), val, decimal=5)
        np.testing.assert_almost_equal(workspace.FetchBlob("y2"), val + 1, decimal=5)

    def testSerialization(self):
        tmpdir = tempfile.mkdtemp()
        try:
            self._createFeedModule()
            workspace.RunOperatorOnce(core.CreateOperator(
                "Save",
                ["m"], [],
                absolute_path=1,
                db=os.path.join(tmpdir, "db"), db_type="minidb"))
            workspace.ResetWorkspace()

            self.assertFalse(workspace.HasBlob('m'))
            workspace.RunOperatorOnce(core.CreateOperator(
                "Load",
                [], [],
                absolute_path=1,
                db=os.path.join(tmpdir, "db"), db_type="minidb",
                load_all=1))
            self.assertTrue(workspace.HasBlob('m'))
            # TODO: make caffe2 side load return python-sided module
            # right now it returns the base class (torch._C.ScriptModule)
            # self.assertTrue(isinstance(workspace.FetchBlob('m'), torch.jit.ScriptModule))

            # do something with the module
            val = np.random.rand(5, 5).astype(np.float32)
            param = np.array([[1, 2, 3, 4, 5]]).astype(np.float32)
            workspace.FeedBlob('w', val)
            workspace.RunOperatorOnce(core.CreateOperator("ScriptModule", ["m", "w"], ["y"]))
            np.testing.assert_almost_equal(workspace.FetchBlob("y"), np.matmul(param, val), decimal=5)
        finally:
            # clean up temp folder.
            try:
                shutil.rmtree(tmpdir)
            except OSError as e:
                if e.errno != errno.ENOENT:
                    raise

class TestScriptModuleFromString(TestScriptModule):
    def _createFeedModule(self):
        workspace.RunOperatorOnce(
            core.CreateOperator(
                "ScriptModuleLoad", [], ["m"],
                serialized_binary=self._get_modules_bytes(MyModule())))

    def _get_modules_bytes(self, the_module):
        import io
        buffer = io.BytesIO()
        torch.jit.save(the_module, buffer)
        return buffer.getvalue()

if __name__ == '__main__':
    unittest.main()

{'repo_name': 'pytorch/pytorch', 'stars': '40242', 'repo_language': 'C++', 'file_name': 'example2.c', 'mime_type': 'text/x-c', 'hash': 5089011472687363824, 'source_dataset': 'data'}


{'repo_name': 'mekanism/Mekanism', 'stars': '577', 'repo_language': 'Java', 'file_name': 'gradle-wrapper.properties', 'mime_type': 'text/plain', 'hash': 7552644669617414060, 'source_dataset': 'data'}


webcomponents.js
================

[![Join the chat at https://gitter.im/webcomponents/webcomponentsjs](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/webcomponents/webcomponentsjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

A suite of polyfills supporting the [Web Components](http://webcomponents.org) specs:

**Custom Elements**: allows authors to define their own custom tags ([spec](https://w3c.github.io/webcomponents/spec/custom/)).

**HTML Imports**: a way to include and reuse HTML documents via other HTML documents ([spec](https://w3c.github.io/webcomponents/spec/imports/)).

**Shadow DOM**: provides encapsulation by hiding DOM subtrees under shadow roots ([spec](https://w3c.github.io/webcomponents/spec/shadow/)).

This also folds in polyfills for `MutationObserver` and `WeakMap`.

## Releases

Pre-built (concatenated & minified) versions of the polyfills are maintained in the [tagged versions](https://github.com/webcomponents/webcomponentsjs/releases) of this repo. There are two variants:

`webcomponents.js` includes all of the polyfills.

`webcomponents-lite.js` includes all polyfills except for shadow DOM.

## Browser Support

Our polyfills are intended to work in the latest versions of evergreen browsers. See below
for our complete browser support matrix:

| Polyfill   | IE10 | IE11+ | Chrome* | Firefox* | Safari 7+* | Chrome Android* | Mobile Safari* |
| ---------- |:----:|:-----:|:-------:|:--------:|:----------:|:---------------:|:--------------:|
| Custom Elements | ~ | ✓ | ✓ | ✓ | ✓ | ✓| ✓ |
| HTML Imports | ~ | ✓ | ✓ | ✓ | ✓| ✓| ✓ |
| Shadow DOM | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Templates | ✓ | ✓ | ✓ | ✓| ✓ | ✓ | ✓ |

*Indicates the current version of the browser

~Indicates support may be flaky. If using Custom Elements or HTML Imports with Shadow DOM,
you will get the non-flaky Mutation Observer polyfill that Shadow DOM includes.

The polyfills may work in older browsers, however require additional polyfills (such as classList)
to be used. We cannot guarantee support for browsers outside of our compatibility matrix.

### Manually Building

If you wish to build the polyfills yourself, you'll need `node` and `gulp` on your system:

 * install [node.js](http://nodejs.org/) using the instructions on their website
 * use `npm` to install [gulp.js](http://gulpjs.com/): `npm install -g gulp`

Now you are ready to build the polyfills with:

    # install dependencies
    npm install
    # build
    gulp build

The builds will be placed into the `dist/` directory.

## Contribute

See the [contributing guide](CONTRIBUTING.md)

## License

Everything in this repository is BSD style license unless otherwise specified.

Copyright (c) 2015 The Polymer Authors. All rights reserved.

{'repo_name': 'ecwyne/meteor-polymer', 'stars': '142', 'repo_language': 'JavaScript', 'file_name': 'demo.html', 'mime_type': 'text/html', 'hash': 8194035625527258589, 'source_dataset': 'data'}


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  m_Name: Menu_Levelselect
  serializedVersion: 6
  m_Legacy: 0
  m_Compressed: 0
  m_UseHighQualityCurve: 1
  m_RotationCurves: []
  m_CompressedRotationCurves: []
  m_EulerCurves:
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: {x: 0, y: 0, z: 0}
        inSlope: {x: 0, y: 0, z: 112.61002}
        outSlope: {x: 0, y: 0, z: 112.61002}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.41830757}
      - serializedVersion: 3
        time: 0.51666665
        value: {x: 0, y: 0, z: 21.748007}
        inSlope: {x: 0, y: 0, z: -19.904537}
        outSlope: {x: 0, y: 0, z: -19.904537}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.9874141}
      - serializedVersion: 3
        time: 0.8
        value: {x: 0, y: 0, z: -50.93655}
        inSlope: {x: 0, y: 0, z: -549.94714}
        outSlope: {x: 0, y: 0, z: -549.94714}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.10536156}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 1.3333334
        value: {x: 0, y: 0, z: -187.10443}
        inSlope: {x: 0, y: 0, z: -21.309958}
        outSlope: {x: 0, y: 0, z: -21.309958}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.19394028}
      - serializedVersion: 3
        time: 1.9666667
        value: {x: 0, y: 0, z: -180}
        inSlope: {x: 0, y: 0, z: 0}
        outSlope: {x: 0, y: 0, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 2.65
        value: {x: 0, y: 0, z: -180}
        inSlope: {x: 0, y: 0, z: 0}
        outSlope: {x: 0, y: 0, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    path: TableFlip
  m_PositionCurves:
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: {x: 0, y: 0, z: 0}
        inSlope: {x: 0, y: 0, z: 0}
        outSlope: {x: 0, y: 0, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 2
        value: {x: 0, y: 0, z: 0}
        inSlope: {x: 0, y: -4.2362146, z: 0}
        outSlope: {x: 0, y: -4.2362146, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.1609335, z: 0.33333334}
      - serializedVersion: 3
        time: 2.25
        value: {x: 0, y: -0.6, z: 0}
        inSlope: {x: 0, y: -0.68838984, z: 0}
        outSlope: {x: 0, y: -0.68838984, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.07211876, z: 0.33333334}
      - serializedVersion: 3
        time: 2.85
        value: {x: 0, y: -0.2814172, z: 0}
        inSlope: {x: 0, y: 0.27274278, z: 0}
        outSlope: {x: 0, y: 0.27274278, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.28903642, z: 0.33333334}
      - serializedVersion: 3
        time: 3
        value: {x: 0, y: -0.2720311, z: 0}
        inSlope: {x: 0, y: -0.11219566, z: 0}
        outSlope: {x: 0, y: -0.11219566, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 3.4166667
        value: {x: 0, y: -0.36627734, z: 0}
        inSlope: {x: 0, y: -0.06704242, z: 0}
        outSlope: {x: 0, y: -0.06704242, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.18282309, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 3.6666667
        value: {x: 0, y: -0.37092164, z: 0}
        inSlope: {x: 0, y: 0, z: 0}
        outSlope: {x: 0, y: 0, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    path: TableFlip/UniverseHolder
  m_ScaleCurves:
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: {x: 1, y: 1, z: 1.0033493}
        inSlope: {x: 0, y: 0, z: 0}
        outSlope: {x: 0, y: 0, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 2
        value: {x: 0.53324014, y: 1.3659883, z: 0.53658944}
        inSlope: {x: 0, y: 0, z: 0}
        outSlope: {x: 0, y: 0, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 2.35
        value: {x: 0.6913389, y: 1.3005936, z: 0.70046973}
        inSlope: {x: 1.2060212, y: -0.595368, z: 1.1895026}
        outSlope: {x: 1.2060212, y: -0.595368, z: 1.1895026}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.31631523, z: 0.33333334}
      - serializedVersion: 3
        time: 2.4666667
        value: {x: 0.87706625, y: 1.1813152, z: 0.88041556}
        inSlope: {x: 2.0114956, y: -1.3169873, z: 1.9233959}
        outSlope: {x: 2.0114956, y: -1.3169873, z: 1.9233959}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.19198951, y: 0.33333334, z: 0.20992501}
      - serializedVersion: 3
        time: 2.7333333
        value: {x: 1.3086609, y: 0.9157424, z: 1.3120102}
        inSlope: {x: -0.2401081, y: 0.01699225, z: -0.24963807}
        outSlope: {x: -0.2401081, y: 0.01699225, z: -0.24963807}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.27452645, y: 0.32373232, z: 0.20839779}
      - serializedVersion: 3
        time: 3.1166666
        value: {x: 0.82486963, y: 1.244905, z: 0.82821894}
        inSlope: {x: 0, y: 0.1258112, z: 0}
        outSlope: {x: 0, y: 0.1258112, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 3.5
        value: {x: 1.0703131, y: 0.9245903, z: 1.0706364}
        inSlope: {x: 0.50548935, y: -0.003944384, z: 0.4992573}
        outSlope: {x: 0.50548935, y: -0.003944384, z: 0.4992573}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.38856083, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 3.5833333
        value: {x: 1.0929013, y: 0.9338574, z: 1.0929462}
        inSlope: {x: 0, y: 0.20456077, z: 0}
        outSlope: {x: 0, y: 0.20456077, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 3.85
        value: {x: 0.920853, y: 0.9899573, z: 0.9218446}
        inSlope: {x: -1.5668602, y: -0.0069907703, z: -1.4122669}
        outSlope: {x: -1.5668602, y: -0.0069907703, z: -1.4122669}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.20687534, y: 0.33333334, z: 0.22105849}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 3.9333334
        value: {x: 0.82032084, y: 0.9760859, z: 0.82682973}
        inSlope: {x: -0.85090256, y: -0.34771666, z: -0.85264677}
        outSlope: {x: -0.85090256, y: -0.34771666, z: -0.85264677}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 4.0833335
        value: {x: 0.7848882, y: 0.7206487, z: 0.7882375}
        inSlope: {x: 0.3622808, y: 0.35962474, z: 0.38810548}
        outSlope: {x: 0.3622808, y: 0.35962474, z: 0.38810548}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.19559543, y: 0.19172414, z: 0.2072099}
      - serializedVersion: 3
        time: 4.5
        value: {x: 14.195489, y: 14.195489, z: 14.198838}
        inSlope: {x: 93.9628, y: 95.35657, z: 98.54363}
        outSlope: {x: 93.9628, y: 95.35657, z: 98.54363}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.06373904, y: 0.05362131, z: 0.06373904}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 4.6666665
        value: {x: 31.856075, y: 31.856075, z: 31.975933}
        inSlope: {x: 25.71441, y: 25.966963, z: 25.87098}
        outSlope: {x: 25.71441, y: 25.966963, z: 25.87098}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.68106145, y: 0.83394605, z: 0.7447622}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    path: TableFlip/UniverseHolder
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: {x: 1, y: 1, z: 1}
        inSlope: {x: 0, y: 0, z: 0}
        outSlope: {x: 0, y: 0, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      - serializedVersion: 3
        time: 4.6666665
        value: {x: 1, y: 1, z: 1}
        inSlope: {x: 0, y: 0, z: 0}
        outSlope: {x: 0, y: 0, z: 0}
        tangentMode: 0
        weightedMode: 0
        inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
        outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    path: TableFlip
  m_FloatCurves:
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 0
        inSlope: Infinity
        outSlope: Infinity
        tangentMode: 103
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      - serializedVersion: 3
        time: 1.9833333
        value: 0
        inSlope: Infinity
        outSlope: Infinity
        tangentMode: 103
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      - serializedVersion: 3
        time: 2
        value: 1
        inSlope: Infinity
        outSlope: Infinity
        tangentMode: 103
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_IsActive
    path: TableFlip/UniverseHolder
    classID: 1
    script: {fileID: 0}
  m_PPtrCurves: []
  m_SampleRate: 60
  m_WrapMode: 0
  m_Bounds:
    m_Center: {x: 0, y: 0, z: 0}
    m_Extent: {x: 0, y: 0, z: 0}
  m_ClipBindingConstant:
    genericBindings:
    - serializedVersion: 2
      path: 2403497992
      attribute: 1
      script: {fileID: 0}
      typeID: 4
      customType: 0
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 4239612502
      attribute: 4
      script: {fileID: 0}
      typeID: 4
      customType: 4
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 2403497992
      attribute: 3
      script: {fileID: 0}
      typeID: 4
      customType: 0
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 2403497992
      attribute: 2086281974
      script: {fileID: 0}
      typeID: 1
      customType: 0
      isPPtrCurve: 0
    - serializedVersion: 2
      path: 4239612502
      attribute: 3
      script: {fileID: 0}
      typeID: 4
      customType: 0
      isPPtrCurve: 0
    pptrCurveMapping: []
  m_AnimationClipSettings:
    serializedVersion: 2
    m_AdditiveReferencePoseClip: {fileID: 0}
    m_AdditiveReferencePoseTime: 0
    m_StartTime: 0
    m_StopTime: 4.6666665
    m_OrientationOffsetY: 0
    m_Level: 0
    m_CycleOffset: 0
    m_HasAdditiveReferencePose: 0
    m_LoopTime: 0
    m_LoopBlend: 0
    m_LoopBlendOrientation: 0
    m_LoopBlendPositionY: 0
    m_LoopBlendPositionXZ: 0
    m_KeepOriginalOrientation: 0
    m_KeepOriginalPositionY: 1
    m_KeepOriginalPositionXZ: 0
    m_HeightFromFeet: 0
    m_Mirror: 0
  m_EditorCurves:
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: localEulerAnglesRaw.x
    path: TableFlip
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: localEulerAnglesRaw.y
    path: TableFlip
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 0
        inSlope: 112.61002
        outSlope: 112.61002
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.41830757
      - serializedVersion: 3
        time: 0.51666665
        value: 21.748007
        inSlope: -19.904537
        outSlope: -19.904537
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.9874141
      - serializedVersion: 3
        time: 0.8
        value: -50.93655
        inSlope: -549.94714
        outSlope: -549.94714
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.10536156
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 1.3333334
        value: -187.10443
        inSlope: -21.309958
        outSlope: -21.309958
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.19394028
      - serializedVersion: 3
        time: 1.9666667
        value: -180
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2.65
        value: -180
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: localEulerAnglesRaw.z
    path: TableFlip
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 0
        inSlope: Infinity
        outSlope: Infinity
        tangentMode: 103
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      - serializedVersion: 3
        time: 1.9833333
        value: 0
        inSlope: Infinity
        outSlope: Infinity
        tangentMode: 103
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      - serializedVersion: 3
        time: 2
        value: 1
        inSlope: Infinity
        outSlope: Infinity
        tangentMode: 103
        weightedMode: 0
        inWeight: 0
        outWeight: 0
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_IsActive
    path: TableFlip/UniverseHolder
    classID: 1
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 1
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2
        value: 0.53324014
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2.4666667
        value: 0.87706625
        inSlope: 2.0114956
        outSlope: 2.0114956
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.19198951
      - serializedVersion: 3
        time: 2.7333333
        value: 1.3086609
        inSlope: -0.2401081
        outSlope: -0.2401081
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.27452645
      - serializedVersion: 3
        time: 3.1166666
        value: 0.82486963
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 3.5833333
        value: 1.0929013
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 3.85
        value: 0.920853
        inSlope: -1.5668602
        outSlope: -1.5668602
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.20687534
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 4.0833335
        value: 0.7848882
        inSlope: 0.3622808
        outSlope: 0.3622808
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.19559543
      - serializedVersion: 3
        time: 4.5
        value: 14.195489
        inSlope: 93.9628
        outSlope: 93.9628
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.06373904
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 4.6666665
        value: 31.856075
        inSlope: 25.71441
        outSlope: 25.71441
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.68106145
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalScale.x
    path: TableFlip/UniverseHolder
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 1
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2
        value: 1.3659883
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2.35
        value: 1.3005936
        inSlope: -0.595368
        outSlope: -0.595368
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.31631523
      - serializedVersion: 3
        time: 2.7333333
        value: 0.9157424
        inSlope: 0.01699225
        outSlope: 0.01699225
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.32373232
      - serializedVersion: 3
        time: 3.1166666
        value: 1.244905
        inSlope: 0.1258112
        outSlope: 0.1258112
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 3.5
        value: 0.9245903
        inSlope: -0.003944384
        outSlope: -0.003944384
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.38856083
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 3.9333334
        value: 0.9760859
        inSlope: -0.34771666
        outSlope: -0.34771666
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 4.0833335
        value: 0.7206487
        inSlope: 0.35962474
        outSlope: 0.35962474
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.19172414
      - serializedVersion: 3
        time: 4.5
        value: 14.195489
        inSlope: 95.35657
        outSlope: 95.35657
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.05362131
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 4.6666665
        value: 31.856075
        inSlope: 25.966963
        outSlope: 25.966963
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.83394605
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalScale.y
    path: TableFlip/UniverseHolder
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 1.0033493
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2
        value: 0.53658944
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2.4666667
        value: 0.88041556
        inSlope: 1.9233959
        outSlope: 1.9233959
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.20992501
      - serializedVersion: 3
        time: 2.7333333
        value: 1.3120102
        inSlope: -0.24963807
        outSlope: -0.24963807
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.20839779
      - serializedVersion: 3
        time: 3.1166666
        value: 0.82821894
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 3.5833333
        value: 1.0929462
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 3.85
        value: 0.9218446
        inSlope: -1.4122669
        outSlope: -1.4122669
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.22105849
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 4.0833335
        value: 0.7882375
        inSlope: 0.38810548
        outSlope: 0.38810548
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.2072099
      - serializedVersion: 3
        time: 4.5
        value: 14.198838
        inSlope: 98.54363
        outSlope: 98.54363
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.06373904
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 4.6666665
        value: 31.975933
        inSlope: 25.87098
        outSlope: 25.87098
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.7447622
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalScale.z
    path: TableFlip/UniverseHolder
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2.25
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 3
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalPosition.x
    path: TableFlip/UniverseHolder
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2
        value: 0
        inSlope: -4.2362146
        outSlope: -4.2362146
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.1609335
      - serializedVersion: 3
        time: 2.25
        value: -0.6
        inSlope: -0.68838984
        outSlope: -0.68838984
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.07211876
      - serializedVersion: 3
        time: 2.85
        value: -0.2814172
        inSlope: 0.27274278
        outSlope: 0.27274278
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.28903642
      - serializedVersion: 3
        time: 3.4166667
        value: -0.36627734
        inSlope: -0.06704242
        outSlope: -0.06704242
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.18282309
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 3.6666667
        value: -0.37092164
        inSlope: 0
        outSlope: 0
        tangentMode: 0
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalPosition.y
    path: TableFlip/UniverseHolder
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 2.25
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 3
        value: 0
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalPosition.z
    path: TableFlip/UniverseHolder
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 1
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 4.6666665
        value: 1
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalScale.x
    path: TableFlip
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 1
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 4.6666665
        value: 1
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalScale.y
    path: TableFlip
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve:
      - serializedVersion: 3
        time: 0
        value: 1
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      - serializedVersion: 3
        time: 4.6666665
        value: 1
        inSlope: 0
        outSlope: 0
        tangentMode: 136
        weightedMode: 0
        inWeight: 0.33333334
        outWeight: 0.33333334
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalScale.z
    path: TableFlip
    classID: 4
    script: {fileID: 0}
  m_EulerEditorCurves:
  - curve:
      serializedVersion: 2
      m_Curve: []
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalEulerAngles.x
    path: TableFlip
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve: []
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalEulerAngles.y
    path: TableFlip
    classID: 4
    script: {fileID: 0}
  - curve:
      serializedVersion: 2
      m_Curve: []
      m_PreInfinity: 2
      m_PostInfinity: 2
      m_RotationOrder: 4
    attribute: m_LocalEulerAngles.z
    path: TableFlip
    classID: 4
    script: {fileID: 0}
  m_HasGenericRootTransform: 0
  m_HasMotionFloatCurves: 0
  m_Events: []

{'repo_name': 'ValveSoftware/Moondust', 'stars': '137', 'repo_language': 'C#', 'file_name': 'AudioManager.asset', 'mime_type': 'text/plain', 'hash': -2152607896213440689, 'source_dataset': 'data'}


################################################################################
#
# This COOLFluiD CFcase file tests:
#
# P3 FR, VCJH, Euler2D, Forward Euler, RoeFlux, mesh with curved quads, subsonic inlet
# and outlet, mirror BCs
#
################################################################################
#
# Comments begin with "#"
# Meta Comments begin with triple "#"
#
### Residual = -4.90909

CFEnv.ExceptionLogLevel    = 1000
CFEnv.DoAssertions         = true
CFEnv.AssertionDumps       = true
CFEnv.AssertionThrows      = true
CFEnv.AssertThrows         = true
CFEnv.AssertDumps          = true
CFEnv.ExceptionDumps       = true
CFEnv.ExceptionOutputs     = true
CFEnv.RegistSignalHandlers = false
CFEnv.OnlyCPU0Writes = false

#CFEnv.TraceToStdOut = true

# SubSystem Modules
Simulator.Modules.Libs = libCFmeshFileWriter libCFmeshFileReader libGmsh2CFmesh libParaViewWriter libTecplotWriter libNavierStokes libFluxReconstructionMethod libFluxReconstructionNavierStokes libEmptyConvergenceMethod libForwardEuler libPetscI

# SubSystem Parameters
Simulator.Paths.WorkingDir = plugins/NavierStokes/testcases/SinusBump
Simulator.Paths.ResultsDir = plugins/NavierStokes/testcases/SinusBump

##################################################################
## SubSystemMesh only creates the mesh and upgrades it serially ##
##################################################################

Simulator.SubSystems     = SubSysMesh SubSystem
Simulator.SubSystemTypes = OnlyMeshSubSystem StandardSubSystem
Simulator.SubSysMesh.Namespaces = MeshNamespace
Simulator.SubSysMesh.Ranks = 0:0
Simulator.SubSysMesh.MeshNamespace.MeshData = MeshMeshData
Simulator.SubSysMesh.MeshNamespace.SubSystemStatus = MeshSubSystemStatus
Simulator.SubSysMesh.MeshNamespace.PhysicalModelType = Euler2D
#Simulator.SubSysMesh.MeshNamespace.PhysicalModelName = Euler2D
Simulator.SubSysMesh.MeshMeshData.listTRS = Bump Top Inlet Outlet
Simulator.SubSysMesh.MeshMeshData.Namespaces = MeshNamespace

Simulator.SubSysMesh.OutputFormat = CFmesh
Simulator.SubSysMesh.CFmesh.FileName = sineBumpQuadUpgraded.CFmesh
Simulator.SubSysMesh.CFmesh.WriteSol = WriteSolution
Simulator.SubSysMesh.CFmesh.Namespace = MeshNamespace

Simulator.SubSysMesh.MeshCreator = CFmeshFileReader
Simulator.SubSysMesh.CFmeshFileReader.Data.FileName = sineBumpQuadCurved_5_20.CFmesh
Simulator.SubSysMesh.CFmeshFileReader.Namespace = MeshNamespace

Simulator.SubSysMesh.SpaceMethod = Null
Simulator.SubSysMesh.Null.Builder = MeshUpgrade
Simulator.SubSysMesh.Null.MeshUpgrade.PolynomialOrder = P2
Simulator.SubSysMesh.Null.Namespace = MeshNamespace

##################################
## SubSystem runs the FR solver ##
##################################

Simulator.SubSystem.Default.PhysicalModelType = Euler2D
Simulator.SubSystem.Euler2D.refValues = 1.0 0.591607978 0.591607978 2.675
Simulator.SubSystem.Euler2D. = 1.0
Simulator.SubSystem.Euler2D.ConvTerm.pRef = 1.
Simulator.SubSystem.Euler2D.ConvTerm.tempRef = 0.003483762
Simulator.SubSystem.Euler2D.ConvTerm.machInf = 0.5

Simulator.SubSystem.OutputFormat        = ParaView CFmesh Tecplot

Simulator.SubSystem.CFmesh.FileName     = bump.CFmesh
Simulator.SubSystem.CFmesh.WriteSol = ParWriteSolution
Simulator.SubSystem.CFmesh.SaveRate = 20000
Simulator.SubSystem.CFmesh.AppendTime = false
Simulator.SubSystem.CFmesh.AppendIter = false

Simulator.SubSystem.Tecplot.FileName = bump.plt
Simulator.SubSystem.Tecplot.Data.updateVar = Cons
Simulator.SubSystem.Tecplot.WriteSol = WriteSolutionHighOrder
Simulator.SubSystem.Tecplot.SaveRate = 20000
Simulator.SubSystem.Tecplot.AppendTime = false
Simulator.SubSystem.Tecplot.AppendIter = false

Simulator.SubSystem.ParaView.FileName    = bump.vtu
Simulator.SubSystem.ParaView.WriteSol    = WriteSolutionHighOrder
Simulator.SubSystem.ParaView.Data.updateVar = Cons
Simulator.SubSystem.ParaView.SaveRate = 20000
Simulator.SubSystem.ParaView.AppendTime = false
Simulator.SubSystem.ParaView.AppendIter = false

Simulator.SubSystem.StopCondition          = MaxNumberSteps
Simulator.SubSystem.MaxNumberSteps.nbSteps = 300000

Simulator.SubSystem.ConvergenceMethod = FwdEuler
Simulator.SubSystem.FwdEuler.Data.CFL.Value = 0.9
Simulator.SubSystem.FwdEuler.ShowRate        = 1000
Simulator.SubSystem.FwdEuler.ConvRate        = 1000

Simulator.SubSystem.SpaceMethod = FluxReconstruction
Simulator.SubSystem.Default.listTRS = InnerCells Bump Top Inlet Outlet

Simulator.SubSystem.MeshCreator = CFmeshFileReader
Simulator.SubSystem.CFmeshFileReader.Data.FileName = sineBumpQuadUpgraded.CFmesh
Simulator.SubSystem.CFmeshFileReader.Data.CollaboratorNames = FluxReconstruction

# choose which builder we use
Simulator.SubSystem.FluxReconstruction.Builder = StdBuilder
Simulator.SubSystem.FluxReconstruction.SpaceRHSJacobCom = RHS
Simulator.SubSystem.FluxReconstruction.ExtrapolateCom = Null
Simulator.SubSystem.FluxReconstruction.Data.UpdateVar   = Cons
Simulator.SubSystem.FluxReconstruction.Data.SolutionVar = Cons
Simulator.SubSystem.FluxReconstruction.Data.LinearVar   = Roe
Simulator.SubSystem.FluxReconstruction.Data.RiemannFlux = LaxFriedrichsFlux #RoeFlux #

#Simulator.SubSystem.FluxReconstruction.ComputeErrorCom = ComputeErrorEuler

Simulator.SubSystem.FluxReconstruction.Data.SolutionPointDistribution = GaussLegendre
Simulator.SubSystem.FluxReconstruction.Data.FluxPointDistribution = GaussLegendre

Simulator.SubSystem.FluxReconstruction.Data.CorrectionFunctionComputer = VCJH
Simulator.SubSystem.FluxReconstruction.Data.VCJH.CFactor = 0.03

Simulator.SubSystem.FluxReconstruction.InitComds = StdInitState #Null #
Simulator.SubSystem.FluxReconstruction.InitNames = InField

Simulator.SubSystem.FluxReconstruction.InField.applyTRS = InnerCells
Simulator.SubSystem.FluxReconstruction.InField.Vars = x y
Simulator.SubSystem.FluxReconstruction.InField.Def = 1.0 0.591607978 0.0 2.675

Simulator.SubSystem.FluxReconstruction.BcNames = Wall Inlet Outlet
Simulator.SubSystem.FluxReconstruction.Wall.applyTRS = Bump Top
Simulator.SubSystem.FluxReconstruction.Inlet.applyTRS = Inlet
Simulator.SubSystem.FluxReconstruction.Outlet.applyTRS = Outlet

Simulator.SubSystem.FluxReconstruction.Data.BcTypes = MirrorEuler2D SubInletEulerTtPtAlpha2D SubOutletEuler2D
Simulator.SubSystem.FluxReconstruction.Data.BcNames = Wall          Inlet                    Outlet

Simulator.SubSystem.FluxReconstruction.Data.Inlet.Ttot = 0.00365795
Simulator.SubSystem.FluxReconstruction.Data.Inlet.Ptot = 1.186212306
Simulator.SubSystem.FluxReconstruction.Data.Inlet.alpha = 0.0

Simulator.SubSystem.FluxReconstruction.Data.Outlet.P = 1.0

{'repo_name': 'andrealani/COOLFluiD', 'stars': '148', 'repo_language': 'Gnuplot', 'file_name': 'ParalutionLSS.cxx', 'mime_type': 'text/x-c++', 'hash': 9219251974660276900, 'source_dataset': 'data'}


-- Checks that highlighting is generated correctly for all code in
-- the record modules in the mutual block.
IOTCM currentFile NonInteractive Direct (Cmd_load currentFile [])

{'repo_name': 'agda/agda', 'stars': '1296', 'repo_language': 'Haskell', 'file_name': 'documentation.rst', 'mime_type': 'text/plain', 'hash': -5855570841545714175, 'source_dataset': 'data'}


package com.planet_ink.coffee_mud.Items.BasicTech;
import com.planet_ink.coffee_mud.core.interfaces.*;
import com.planet_ink.coffee_mud.core.*;
import com.planet_ink.coffee_mud.core.collections.*;
import com.planet_ink.coffee_mud.Abilities.interfaces.*;
import com.planet_ink.coffee_mud.Areas.interfaces.*;
import com.planet_ink.coffee_mud.Behaviors.interfaces.*;
import com.planet_ink.coffee_mud.CharClasses.interfaces.*;
import com.planet_ink.coffee_mud.Commands.interfaces.*;
import com.planet_ink.coffee_mud.Common.interfaces.*;
import com.planet_ink.coffee_mud.Exits.interfaces.*;
import com.planet_ink.coffee_mud.Items.interfaces.*;
import com.planet_ink.coffee_mud.Items.interfaces.Technical.TechType;
import com.planet_ink.coffee_mud.Libraries.interfaces.*;
import com.planet_ink.coffee_mud.Locales.interfaces.*;
import com.planet_ink.coffee_mud.MOBS.interfaces.*;
import com.planet_ink.coffee_mud.Races.interfaces.*;

import java.util.*;

/*
   Copyright 2013-2020 Bo Zimmerman

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

	   http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
*/
public class GenMutingField extends GenPersonalShield
{
	@Override
	public String ID()
	{
		return "GenMutingField";
	}

	public GenMutingField()
	{
		super();
		setName("a muting field generator");
		setDisplayText("a muting field generator sits here.");
		setDescription("The muting field generator is worn about the body and activated to use. It neutralizes sonic and stunning weapon damage. ");
	}

	@Override
	protected String fieldOnStr(final MOB viewerM)
	{
		return L((owner() instanceof MOB)?
			"An dense field surrounds <O-NAME>.":
			"An dense field surrounds <T-NAME>.");
	}

	@Override
	protected String fieldDeadStr(final MOB viewerM)
	{
		return L((owner() instanceof MOB)?
			"The dense field around <O-NAME> flickers and dies out.":
			"The dense field around <T-NAME> flickers and dies out.");
	}

	@Override
	protected boolean doShield(final MOB mob, final CMMsg msg, final double successFactor)
	{
		mob.phyStats().setSensesMask(mob.phyStats().sensesMask()|PhyStats.CAN_NOT_HEAR);
		if(mob.location()!=null)
		{
			if(msg.tool() instanceof Weapon)
			{
				final String s="^F"+((Weapon)msg.tool()).hitString(0)+"^N";
				if(s.indexOf("<DAMAGE> <T-HIM-HER>")>0)
					mob.location().show(msg.source(),msg.target(),msg.tool(),CMMsg.MSG_OK_VISUAL,CMStrings.replaceAll(s, "<DAMAGE>", L("it`s absorbed by the shield around")));
				else
				if(s.indexOf("<DAMAGES> <T-HIM-HER>")>0)
					mob.location().show(msg.source(),msg.target(),msg.tool(),CMMsg.MSG_OK_VISUAL,CMStrings.replaceAll(s, "<DAMAGES>", L("is absorbed by the shield around")));
				else
					mob.location().show(mob,msg.source(),msg.tool(),CMMsg.MSG_OK_VISUAL,L("The field around <S-NAME> absorbs the <O-NAMENOART> damage."));
			}
			else
				mob.location().show(mob,msg.source(),msg.tool(),CMMsg.MSG_OK_VISUAL,L("The field around <S-NAME> absorbs the <O-NAMENOART> damage."));
		}
		return false;
	}

	@Override
	protected boolean doesShield(final MOB mob, final CMMsg msg, final double successFactor)
	{
		if(!activated())
			return false;
		if((msg.tool() instanceof Electronics)
		&& (msg.tool() instanceof Weapon)
		&& (Math.random() >= successFactor)
		&& (((Weapon)msg.tool()).weaponDamageType()==Weapon.TYPE_SONICING))
		{
			return true;
		}
		return false;
	}
}

{'repo_name': 'bozimmerman/CoffeeMud', 'stars': '120', 'repo_language': 'Java', 'file_name': 'ColorSupport.java', 'mime_type': 'text/plain', 'hash': 5242875154342071066, 'source_dataset': 'data'}


require 'tzinfo/timezone_definition'

module TZInfo
  module Definitions
    module America
      module Monterrey
        include TimezoneDefinition

        timezone 'America/Monterrey' do |tz|
          tz.offset :o0, -24076, 0, :LMT
          tz.offset :o1, -21600, 0, :CST
          tz.offset :o2, -21600, 3600, :CDT

          tz.transition 1922, 1, :o1, 9692223, 4
          tz.transition 1988, 4, :o2, 576057600
          tz.transition 1988, 10, :o1, 594198000
          tz.transition 1996, 4, :o2, 828864000
          tz.transition 1996, 10, :o1, 846399600
          tz.transition 1997, 4, :o2, 860313600
          tz.transition 1997, 10, :o1, 877849200
          tz.transition 1998, 4, :o2, 891763200
          tz.transition 1998, 10, :o1, 909298800
          tz.transition 1999, 4, :o2, 923212800
          tz.transition 1999, 10, :o1, 941353200
          tz.transition 2000, 4, :o2, 954662400
          tz.transition 2000, 10, :o1, 972802800
          tz.transition 2001, 5, :o2, 989136000
          tz.transition 2001, 9, :o1, 1001833200
          tz.transition 2002, 4, :o2, 1018166400
          tz.transition 2002, 10, :o1, 1035702000
          tz.transition 2003, 4, :o2, 1049616000
          tz.transition 2003, 10, :o1, 1067151600
          tz.transition 2004, 4, :o2, 1081065600
          tz.transition 2004, 10, :o1, 1099206000
          tz.transition 2005, 4, :o2, 1112515200
          tz.transition 2005, 10, :o1, 1130655600
          tz.transition 2006, 4, :o2, 1143964800
          tz.transition 2006, 10, :o1, 1162105200
          tz.transition 2007, 4, :o2, 1175414400
          tz.transition 2007, 10, :o1, 1193554800
          tz.transition 2008, 4, :o2, 1207468800
          tz.transition 2008, 10, :o1, 1225004400
          tz.transition 2009, 4, :o2, 1238918400
          tz.transition 2009, 10, :o1, 1256454000
          tz.transition 2010, 4, :o2, 1270368000
          tz.transition 2010, 10, :o1, 1288508400
          tz.transition 2011, 4, :o2, 1301817600
          tz.transition 2011, 10, :o1, 1319958000
          tz.transition 2012, 4, :o2, 1333267200
          tz.transition 2012, 10, :o1, 1351407600
          tz.transition 2013, 4, :o2, 1365321600
          tz.transition 2013, 10, :o1, 1382857200
          tz.transition 2014, 4, :o2, 1396771200
          tz.transition 2014, 10, :o1, 1414306800
          tz.transition 2015, 4, :o2, 1428220800
          tz.transition 2015, 10, :o1, 1445756400
          tz.transition 2016, 4, :o2, 1459670400
          tz.transition 2016, 10, :o1, 1477810800
          tz.transition 2017, 4, :o2, 1491120000
          tz.transition 2017, 10, :o1, 1509260400
          tz.transition 2018, 4, :o2, 1522569600
          tz.transition 2018, 10, :o1, 1540710000
          tz.transition 2019, 4, :o2, 1554624000
          tz.transition 2019, 10, :o1, 1572159600
          tz.transition 2020, 4, :o2, 1586073600
          tz.transition 2020, 10, :o1, 1603609200
          tz.transition 2021, 4, :o2, 1617523200
          tz.transition 2021, 10, :o1, 1635663600
          tz.transition 2022, 4, :o2, 1648972800
          tz.transition 2022, 10, :o1, 1667113200
          tz.transition 2023, 4, :o2, 1680422400
          tz.transition 2023, 10, :o1, 1698562800
          tz.transition 2024, 4, :o2, 1712476800
          tz.transition 2024, 10, :o1, 1730012400
          tz.transition 2025, 4, :o2, 1743926400
          tz.transition 2025, 10, :o1, 1761462000
          tz.transition 2026, 4, :o2, 1775376000
          tz.transition 2026, 10, :o1, 1792911600
          tz.transition 2027, 4, :o2, 1806825600
          tz.transition 2027, 10, :o1, 1824966000
          tz.transition 2028, 4, :o2, 1838275200
          tz.transition 2028, 10, :o1, 1856415600
          tz.transition 2029, 4, :o2, 1869724800
          tz.transition 2029, 10, :o1, 1887865200
          tz.transition 2030, 4, :o2, 1901779200
          tz.transition 2030, 10, :o1, 1919314800
          tz.transition 2031, 4, :o2, 1933228800
          tz.transition 2031, 10, :o1, 1950764400
          tz.transition 2032, 4, :o2, 1964678400
          tz.transition 2032, 10, :o1, 1982818800
          tz.transition 2033, 4, :o2, 1996128000
          tz.transition 2033, 10, :o1, 2014268400
          tz.transition 2034, 4, :o2, 2027577600
          tz.transition 2034, 10, :o1, 2045718000
          tz.transition 2035, 4, :o2, 2059027200
          tz.transition 2035, 10, :o1, 2077167600
          tz.transition 2036, 4, :o2, 2091081600
          tz.transition 2036, 10, :o1, 2108617200
          tz.transition 2037, 4, :o2, 2122531200
          tz.transition 2037, 10, :o1, 2140066800
          tz.transition 2038, 4, :o2, 14793107, 6
          tz.transition 2038, 10, :o1, 59177467, 24
          tz.transition 2039, 4, :o2, 14795291, 6
          tz.transition 2039, 10, :o1, 59186203, 24
          tz.transition 2040, 4, :o2, 14797475, 6
          tz.transition 2040, 10, :o1, 59194939, 24
          tz.transition 2041, 4, :o2, 14799701, 6
          tz.transition 2041, 10, :o1, 59203675, 24
          tz.transition 2042, 4, :o2, 14801885, 6
          tz.transition 2042, 10, :o1, 59212411, 24
          tz.transition 2043, 4, :o2, 14804069, 6
          tz.transition 2043, 10, :o1, 59221147, 24
          tz.transition 2044, 4, :o2, 14806253, 6
          tz.transition 2044, 10, :o1, 59230051, 24
          tz.transition 2045, 4, :o2, 14808437, 6
          tz.transition 2045, 10, :o1, 59238787, 24
          tz.transition 2046, 4, :o2, 14810621, 6
          tz.transition 2046, 10, :o1, 59247523, 24
          tz.transition 2047, 4, :o2, 14812847, 6
          tz.transition 2047, 10, :o1, 59256259, 24
          tz.transition 2048, 4, :o2, 14815031, 6
          tz.transition 2048, 10, :o1, 59264995, 24
          tz.transition 2049, 4, :o2, 14817215, 6
          tz.transition 2049, 10, :o1, 59273899, 24
          tz.transition 2050, 4, :o2, 14819399, 6
          tz.transition 2050, 10, :o1, 59282635, 24
        end
      end
    end
  end
end

{'repo_name': 'parasew/instiki', 'stars': '442', 'repo_language': 'JavaScript', 'file_name': 'dragdrop.js', 'mime_type': 'text/plain', 'hash': -8509783727478923494, 'source_dataset': 'data'}


/******************************************************************************
 *
 * Copyright(c) 2009-2014  Realtek Corporation.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 *
 * The full GNU General Public License is included in this distribution in the
 * file called LICENSE.
 *
 * Contact Information:
 * wlanfae <wlanfae@realtek.com>
 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
 * Hsinchu 300, Taiwan.
 *
 * Larry Finger <Larry.Finger@lwfinger.net>
 *
 *****************************************************************************/

#ifndef __RTL92E_LED_H__
#define __RTL92E_LED_H__

void rtl92ee_init_sw_leds(struct ieee80211_hw *hw);
void rtl92ee_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled);
void rtl92ee_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled);
void rtl92ee_led_control(struct ieee80211_hw *hw, enum led_ctl_mode ledaction);

#endif

{'repo_name': 'ValveSoftware/steamos_kernel', 'stars': '292', 'repo_language': 'C', 'file_name': 'Kconfig', 'mime_type': 'text/plain', 'hash': -5093091552428849089, 'source_dataset': 'data'}


Power Admin Battlefield 3 for Big Brother Bot
=============================================

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

This plugin brings Battlefield 3 specific features to Bigbrotherbot.

Commands
--------

!roundnext
  Switch to next round, without ending current

!roundrestart
  Restart current round

!kill <player> [reason]
  Kill a player without scoring effects

!changeteam <player>
  move <player> to the other team

!swap <player A> [<player B>]
  swap player A's team/squad with player B's team/squad

!setnextmap <map> [, <gamemode> [, <rounds>]]
  select the next map to load after current round. If the map is not in the current map rotation list, then it is added.
  When no gamemode or no rounds is specified, then uses the current values.
  Parameters MUST be separated by a comma ','.

  Usage example :
   - `!setnextmap firestorm, conquest, 2`
   - `!setnextmap bazaar, rush, 1`

!punkbuster <punkbuster command>
  run a punkbuster command

!loadconfig <config file>
  load a config file to change server vars, map list, game modes

!listconfig
  list available config files

!scramble
  (un)request scrambler to scramble teams at next round

!scramblemode <random/score>
  set the scrambling strategy

!autoscramble <off/round/map>
  set the auto-scrambling mode

!unlockmode <all|common|stats|none>
  set the weapons unlocks

!vehicles <on|off>
  (en|dis)able vehicles spawn

!autobalance <off|on>
  (de)activate the autobalancer

!autoassign <off|on>
  (de)activate the autoassigner which puts connecting player into the right team

!endround <winning team id>
  end current round and set winning team

!idle <off|on|min>
  set the idle kicker off/on or to the number of minute you wish

!serverreboot
  restart the BF3 gameserver

!yell <msg>
  yell a message to all players

!yellplayer <player name> <msg>
  yell a message to a given player

!yellteam <msg>
  yell a message to your teammates

!yellsquad <msg>
  yell a message to your squadmates

!nuke <all|us|ru>
  kill all players or players from a given team

!viplist [filter]
  display VIP names
  If `filter` is provided then only display names matching that filter.
  Will display first connected VIPs and then at most the 1st 15 VIP names from the list.

!vips
  display the currently connected VIPs

!vipadd <player>
  add `player` to the VIP list
  If the player you want to add is connected, then you don't have to enter its full name as a parameter.

!vipremove <player>
  remove `player` from the VIP list
  If the player you want to add is connected, then you don't have to enter its full name as a parameter.
  Note that you won't be able to remove admins of higher level that you are.

!vipclear
  clear the VIP list

!vipsave
  write the VIP list to the disk

!vipload
  load the VIP list from the disk

!gunmaster <index>
  set weapon preset for the next Gunmaster round

Other features
--------------

CONFIG MANAGER
~~~~~~~~~~~~~~

Configmanager can automatically load server config scripts at each map change based on current
gamemode and/or map. It will first look if a b3_<gametype>_<mapname>.cfg exists
(example: b3_teamdeathmatch0_mp001.cfg) and execute it. If it doesn't exist, it checks for
b3_<gametype>.cfg (example: b3_rushlarge0.cfg).

If none of them exist, it will look for b3_main.cfg. This file makes it possible to reset certain
vars, so always create a b3_main.cfg if you want to enable and use this feature.

Example Scenario
~~~~~~~~~~~~~~~~

You are running a server with mixed gametypes of Conquest and Rush and you want to play Rush maps
without vehicles. What you need to do is to create a file called "b3_rushlarge0.cfg" inside your
configmanager folder with required settings. "vars.vehicleSpawnAllowed false" in this case. Also
make sure you add "vars.vehicleSpawnAllowed True" in your b3_main.cfg so that when a conquest map
comes in rotation vehicles are enabled again.

Please take note that config manager plugin supports only instantaneous server vars.

{'repo_name': 'BigBrotherBot/big-brother-bot', 'stars': '135', 'repo_language': 'Python', 'file_name': 'readme-windows.txt', 'mime_type': 'text/plain', 'hash': -8025505868129934353, 'source_dataset': 'data'}